请问怎样可以解除DSP端输出信息对占用串口1的占用 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5526|回复: 7
打印 上一主题 下一主题

请问怎样可以解除DSP端输出信息对占用串口1的占用

[复制链接]

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
跳转到指定楼层
楼主
发表于 2014-12-4 11:08:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
你好我现在用的你们的omapl138开发板,跑的双核通信的程序,我现在需要通过串口一向外部发信息,但是串口一被DSP占用了,我怎样才能解除DSP占用呢0 U5 d, G- o- S/ {9 b" g7 \1 b4 W: ]
2 c0 B: B7 N$ G, e$ [8 T

  c: _- ^! H2 C& G+ O* J- @谢谢5 Q$ D- R. Q; ^  f+ @
! I7 P( U) \! x/ E6 Y

% ?0 F5 d1 ]8 {, Z6 P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
沙发
发表于 2014-12-4 14:01:26 | 只看该作者
  1 #ifndef _LOG_H_
5 Z: B' ^0 w+ m; s9 y3 @, G+ M  2 #define _LOG_H_( b  C: h& V" J& a) J& R
  3
$ o1 U. S+ I% U6 `, [8 m  4 /* 0: printf; 1: UART1 */
& b5 M5 f3 K. f+ T  Z& R  k1 t  \6 l  5 #define OUTPUT_TO_UART1 18 a! K0 e) v. F; G+ x3 a* C# |  O4 Z
  6
* G$ t7 Z: d+ ^) K5 K  7 /* Switch Log Output */
' V& J  b+ c7 Z  8 #if OUTPUT_TO_UART1
- c6 P* U5 M6 e% Y/ K1 c9 K, l4 D& @  9     /* For UART1 Initial */- @; u7 x& Y# T7 z. _, D
10     #include <stdlib.h>/ j( x: _: e% S& k# \+ j3 ]. n
11     #include "hw_types.h"  ) A* w3 a0 x9 `& m
12     #include "hw_syscfg0_C6748.h"
8 u5 E4 O, I# O; R/ C 13     #include "soc_C6748.h"
. s; F3 v. L! u" W" t9 l 14     #include "psc.h"               : ^. b1 f2 e3 K% f
15     #include "gpio.h"               
' a- }2 m- N9 h8 O 16     #include "uart.h"  a: a  o" g, N: s, ?: d. Q
17     #include "uartStdio.h"7 X1 h' d* g2 ^& ]) D& Y7 w9 P- c
18
" l, ?2 @# q! j 19     #define OUTPUT UARTprintf
3 K5 m5 b- `/ ~0 V7 W 20 #else
% ]" _& L! f' u7 g9 n: f9 T$ ` 21     #include <stdio.h>: X& p% r" ?) t8 u' H) q
22     #include <stdbool.h>& w+ b/ e7 ^% V0 N) I8 q
23 ) ?2 K$ o7 B' m3 i$ i# |4 y5 Y; k
24     #define OUTPUT printf  n9 o( R% o; b$ `+ s) _3 U, b
25 #endif
3 F, b: h2 O+ c4 l3 j- k/ \ 26
  t9 C' s: ]7 w 27 /* Log init */2 Q1 i/ G$ V% u
28 #if OUTPUT_TO_UART1: C  |# q" R  q, Q9 m( t3 a
29     #define LOG_INIT() do {                                     \
3 |1 F6 s1 K; c& u; C. _2 ~/ n 30         PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO,           \
( ?( P7 U. C! C0 N 31                          PSC_POWERDOMAIN_ALWAYS_ON,             \& ~! G. z6 X6 X: u
32                          PSC_MDCTL_NEXT_ENABLE);                \
# C  ?( {+ Q. L5 U  G7 g 33         GPIOBank6Pin12PinMuxSetup();                            \
) ~8 k6 E( H2 E+ C4 ~2 R0 e2 ~+ ^ 34         GPIOBank6Pin13PinMuxSetup();                            \
" t  `$ Z4 f3 d- D0 p6 l 35         GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT);  \
: P6 W4 k* P$ L5 E; ^9 f7 a2 D0 e 36         GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT);  \9 l' j4 p% _1 ~2 }  C6 |
37         UARTStdioInit();                                        \
6 |3 R0 K7 }3 H6 D' u1 u$ ~ 38     } while (0)
5 X1 `! Y! v) } 39 #else
$ E, P! s1 x9 K 40     #define LOG_INIT() do { } while (0)+ Q, l5 n' x( j# x- J
41 #endif
) f' z# X. T2 E# _3 G' W6 p 42
# W" X4 S5 ]5 Q. q 43 /* Log Output */
4 ^2 S8 |( ~5 b& x! _ 44 #define LOG_INFO(format, ...)      \
0 F$ r+ Z4 j0 p4 P6 C/ i. ]' U 45     do {                           \
" c0 s3 W" E- T$ n( e: c: H 46         OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \8 E9 F* r8 I/ b; s
47     } while (0)6 E8 f' p4 s' u
48
! d4 o! ]0 `) L3 I+ t 49 #define LOG_ERROR(format, ...)     \& J+ @1 e# b6 J6 J  X
50     do {                           \& [: @: `& {* `  _/ q6 }2 e
51         OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
" }% p2 K5 O0 R6 g5 W8 I" b4 n 52     } while (0)
# `- f7 b8 u. ]2 P 53
9 }, \3 K5 J% \3 A0 i0 G7 U& H 54 #define LOG_DEBUG(format, ...)     \
; I4 n4 H& s2 R9 w/ V/ k$ O) _7 t 55     do {                           \
* S) B3 J0 H  W# s1 P 56         OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
3 \7 ?# {' ^+ ^# r6 A% F5 T 57     } while (0)
( W, K7 P1 t. j1 n6 C% s5 H) f: B 58
: W' ^7 {/ F1 y# {# v 59 #define LOG_WARN(format, ...)      \
7 ]% F3 \& y  `1 A- v$ b 60     do {                           \
, V6 K1 k' e' y* y( g( I& q 61         OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
) i1 T" [& l/ H  ~# } 62     } while (0)
# G$ N) F. i: o3 a3 I) u 63
6 U( Y# a6 y; p) i) s; k  a4 E 64 #define LOG_TRACE(format, ...)     \
) X3 a8 w( ]) ^2 [+ ^ 65     do {                           \
  g! j0 P1 }6 U$ m/ i 66         OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \) `9 m! i( r% ~5 c, W3 ^( ?
67     } while (0)
: M8 J# u' `( { 68
# A7 g$ B+ z6 |$ p1 V; n" u+ Z  K1 u 69 #define LOG_FATAL(format, ...)     \
' Q% G/ A& V! H4 ?, J 70     do {                           \( G! u. C- @' _& F6 b1 q3 }& K
71         OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
& j6 d) D( k0 V$ u; Z 72         exit(1);                   \) F# t& d- u0 I5 M, ?; q7 Z7 J
73     } while (0)! m! q& A4 [0 M$ g
74 2 s4 p2 c# `! ^! |, t
75 /* Assert */0 s7 N  P: T5 z1 T. Z  Z
76 #define ASSERT(EXP)                \
6 g1 c" G9 L: s 77     do{                            \/ e- G# z5 U+ y9 G0 ?; x/ z" t
78         if (!(EXP)) {              \6 w+ V. `* Y1 w9 B- d$ s
79             OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ );                  \2 q( z6 A' F$ ?9 D
80             exit(1);               \" e% |$ p7 l' |, o
81         }                          \! H7 H3 r* C" t8 N/ S4 [; P) W9 N- \
82     } while(0)
4 M& k) X2 `, W+ L+ W1 N 83 ' C+ R! T& y& P# }$ n
84 #endif
( }7 p, p5 u0 t; x9 \
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
板凳
发表于 2014-12-4 14:03:10 | 只看该作者
修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏- ]1 |$ @4 k( h: I, Z1 W; \
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
地板
 楼主| 发表于 2014-12-4 15:21:54 | 只看该作者
tenny 发表于 2014-12-4 14:03
# X, b1 `3 c  y# R# J9 C# d! N修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏

7 w( e9 n7 W. ]/ H, o你好,是arm这一端的app8 [  w0 w3 a/ q8 U' ]# v
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
5#
 楼主| 发表于 2014-12-4 15:40:21 | 只看该作者
tenny 发表于 2014-12-4 14:03
4 A* N$ |9 w" j# s  K! Z修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏
$ z0 O  [* E6 k( [
你好,你是不是将host/app下的log.h和dsp/driver下的log.h和到一块啦,怎么说下你的思路
: H" Z& }$ A5 l+ ~1 W! [3 [
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
6#
发表于 2014-12-4 15:59:03 | 只看该作者
arm 端的 log 并没有用到 uart1
: G+ z9 [: E* U: Idsp 端的 log 才使用了 uart1
! ]+ R2 j. v' |8 H' W5 Q" n& o2 z所以,你需要也只需要修改的是 dsp 子工程的 log.h(新版本的代码 是在 dsp/app/log.h,旧的是在 dsp/driver/log.h)2 W" O% y% d( e7 S0 E' A- m
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
7#
 楼主| 发表于 2014-12-4 17:19:24 | 只看该作者
tenny 发表于 2014-12-4 15:591 s3 |0 z* D* H5 ^5 [
arm 端的 log 并没有用到 uart1% B8 n7 ]+ j5 R8 P* [; A
dsp 端的 log 才使用了 uart1
/ U5 }$ Y% A9 W! I7 Z6 h所以,你需要也只需要修改的是 dsp 子工程的  ...

5 o3 K, {) }  z1 E  J) q$ U8 y! I那我是不是将你贴出的那段代码,替换DSP/driver下的log.h就可以是吧,  F- g0 Y7 h5 M
然后将#define OUTPUT_TO_UART1 1 换成( \! s* t( y0 n" j1 F0 W
#define OUTPUT_TO_UART1 0
7 Z7 t% _* C9 U2 H) D  是不是这样
  |( D$ s' V& K, v; O. E* o2 ^
/ \9 ]& K% o0 f# Q( ?: B) T: n' e( v; x1 c' T
2 d# u# X3 v% O( H1 |' {% X
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
8#
发表于 2014-12-5 09:25:09 | 只看该作者
: f+ f. l: a+ L) i1 u7 W: H4 P
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2025-7-3 13:47 , Processed in 0.041458 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表