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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
跳转到指定楼层
楼主
发表于 2014-12-4 11:08:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
你好我现在用的你们的omapl138开发板,跑的双核通信的程序,我现在需要通过串口一向外部发信息,但是串口一被DSP占用了,我怎样才能解除DSP占用呢  T- |+ A3 ~( a6 |6 ?5 h2 F

8 ~2 p/ e1 b0 k# S7 ^0 k5 w3 j  s" ~7 g5 p5 ]7 K7 M5 H
谢谢& a5 I* ]" s5 W

, O: W# f+ G, {' s3 c5 ^
  T$ g: U9 P6 M/ E, S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
沙发
发表于 2014-12-4 14:01:26 | 只看该作者
  1 #ifndef _LOG_H_. D2 Q; v# c0 @3 p- n. z' @
  2 #define _LOG_H_# f! U6 ^9 ?/ U& D% h2 G* L, p6 d
  3
& v4 s5 {& n. Y* U& c6 B% ~( m  4 /* 0: printf; 1: UART1 */
) [+ m) n. T7 k0 V0 V$ f  5 #define OUTPUT_TO_UART1 1! e) F$ O. P1 P( n) d. f& v+ Z) q
  6 + y. s' K7 ]6 n# Q' q6 j) a! |
  7 /* Switch Log Output */0 @& V/ f( d8 m# n+ _5 }, ?1 l
  8 #if OUTPUT_TO_UART1& W. `  ^4 H1 |- t8 @" |) n1 A
  9     /* For UART1 Initial */% e: [' V8 b, _! Q! g8 b8 L
10     #include <stdlib.h>
, x% v  |: }! t1 F4 F 11     #include "hw_types.h"  
7 z( D/ }# U; D6 R, X% b0 ` 12     #include "hw_syscfg0_C6748.h": I0 E1 j- J: r. n" E
13     #include "soc_C6748.h"
6 Z* d- v4 w2 v# b  L( a' U 14     #include "psc.h"               7 T1 ~, d2 r; e& C' S
15     #include "gpio.h"               & ~; C+ u; u; Q- _
16     #include "uart.h"
- k8 D) P2 H, q) P 17     #include "uartStdio.h"2 P. F5 M8 ?( j- V3 G$ j
18 # H; e  b  e# ]* f/ ]; ^* l
19     #define OUTPUT UARTprintf6 k0 c! Y' Z4 k
20 #else+ j% G* u, l3 _5 ~' q, K) d8 O& P
21     #include <stdio.h>
0 C/ j; v# ]  b: o 22     #include <stdbool.h>( o$ j  F* f; A) S3 p9 x" S
23 2 O4 R: F, B9 T$ Z: K8 k5 \3 {5 a3 }
24     #define OUTPUT printf
6 w# S# A# l% t5 b 25 #endif
" H8 x8 \2 m) n1 @+ U2 Y/ r 26
9 ]: Q+ z6 a) @& m6 [2 P 27 /* Log init */, \; y, k* u& x* v+ S
28 #if OUTPUT_TO_UART1
& B0 ?8 C$ g) l4 J 29     #define LOG_INIT() do {                                     \
  o! M! K9 @2 U$ s. G! W0 p! x8 \ 30         PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO,           \- L0 u! n* E4 t/ p3 v$ h
31                          PSC_POWERDOMAIN_ALWAYS_ON,             \
1 k) H( }" u; `0 Y 32                          PSC_MDCTL_NEXT_ENABLE);                \
4 A( E" t$ l- `2 T5 V. D! m* a9 j 33         GPIOBank6Pin12PinMuxSetup();                            \
4 n7 G; T2 S7 X) Q, Q 34         GPIOBank6Pin13PinMuxSetup();                            \
4 p' j3 X/ _7 w" q# b 35         GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT);  \
$ ?: r% u: [  b& U' c 36         GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT);  \4 S) s* o+ p% h
37         UARTStdioInit();                                        \
% f) W1 [2 C; }0 k& a+ H 38     } while (0)
; \* a1 K2 ~* l* ~* S# A7 O2 a* S 39 #else
& Y: l4 s- y1 b$ p 40     #define LOG_INIT() do { } while (0)9 n& F( z) x( B# m
41 #endif" B6 k: I, g; E4 j/ _8 n
42
* N" E( A4 O8 A8 s' F 43 /* Log Output */1 i% m4 F! c5 O9 R" p
44 #define LOG_INFO(format, ...)      \
  [; R7 ~, }, A 45     do {                           \
! u! h% v9 T0 s4 i; Q  j 46         OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \" d* L5 ^4 S4 A2 T2 c5 {( Y7 p
47     } while (0)
$ W  L* d8 M5 y 48
2 p+ O; L3 f- Q  ~ 49 #define LOG_ERROR(format, ...)     \0 I' n6 z, }( F8 g& P8 R7 {3 Q3 P
50     do {                           \8 w7 U6 I% q7 C
51         OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
5 _+ p, s0 B5 i9 U6 C, [8 }9 K 52     } while (0)
' Z8 J+ d( ?+ m$ d1 z 53   o) s' d9 n4 w
54 #define LOG_DEBUG(format, ...)     \
% ]. b0 c1 X; ~1 _ 55     do {                           \  Z1 h5 J7 O( ?5 E/ C% y5 F
56         OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \, M; a2 _) l) q9 ^7 c4 L7 |0 \
57     } while (0)
8 {# w, {" j' y+ K3 _$ f 58
& p* ]$ k4 o1 l9 | 59 #define LOG_WARN(format, ...)      \2 m# W. t. I3 w; V" g
60     do {                           \) V% Z$ R. t; y2 e1 a6 O7 @
61         OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \" O3 g, J, N4 A# o
62     } while (0)- n( v8 p9 Y  \& ~2 ?3 K
63 . W9 H0 {" p/ y! `
64 #define LOG_TRACE(format, ...)     \
9 T, Q- l7 G) @! f" K 65     do {                           \
) n! q+ v7 o. H  x 66         OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
( S- S" \$ `# C6 u6 H5 Z5 Q 67     } while (0)8 K7 ]1 m- v3 a( O" F# o# n& k5 k
68
9 H; ]/ C- e. y& [1 z! n 69 #define LOG_FATAL(format, ...)     \7 r, I3 Y8 q" g$ L# V0 K6 @. w; F( }
70     do {                           \1 d! z1 f6 {8 m6 r
71         OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \5 `$ l/ m# ~$ @! ]7 u
72         exit(1);                   \: ^# l1 x* d. }  o3 M% q
73     } while (0); u! z0 Y$ X5 T8 D% L3 X) W
74
. A# E% c: S) b1 q1 B( U 75 /* Assert */' Q" N. j! j2 A# q5 i
76 #define ASSERT(EXP)                \
+ B) Z0 D3 Y& R/ G% c 77     do{                            \
9 _- {4 Q3 M% m: T% j% z8 _) V6 n 78         if (!(EXP)) {              \
: f7 r- D% U6 A2 h- `5 R5 Z 79             OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ );                  \! J2 s4 z2 e" v$ r; Y0 a+ n0 |8 s
80             exit(1);               \
# X: P4 H7 e' ? 81         }                          \
6 R; d  A: n5 a9 Y& P 82     } while(0)
7 k( ?8 L  n3 t8 z3 S% t 83
; r- o6 K7 O7 r& p$ |/ f3 L% l3 R 84 #endif; |$ |& N' R5 G5 N; y( Q
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
板凳
发表于 2014-12-4 14:03:10 | 只看该作者
修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏" L9 W$ {) J0 S0 E& Q. t* x' E
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
地板
 楼主| 发表于 2014-12-4 15:21:54 | 只看该作者
tenny 发表于 2014-12-4 14:03
" Q& _" z. u5 S修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏

& \/ l$ N- S2 P4 F# h你好,是arm这一端的app
4 @% x% N. u. E+ x2 `9 l* e& y
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
5#
 楼主| 发表于 2014-12-4 15:40:21 | 只看该作者
tenny 发表于 2014-12-4 14:03  r4 ^% n3 O3 C6 k
修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏
) z  q' k# I: r# j* D& t0 ~/ E
你好,你是不是将host/app下的log.h和dsp/driver下的log.h和到一块啦,怎么说下你的思路$ ]7 x! d) N- T  l
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
6#
发表于 2014-12-4 15:59:03 | 只看该作者
arm 端的 log 并没有用到 uart1
8 T$ M* w5 u; wdsp 端的 log 才使用了 uart1
0 V8 S' z  H2 C- O所以,你需要也只需要修改的是 dsp 子工程的 log.h(新版本的代码 是在 dsp/app/log.h,旧的是在 dsp/driver/log.h)$ s" ^9 `/ O" p( X% d, P# a0 m0 }9 \
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
7#
 楼主| 发表于 2014-12-4 17:19:24 | 只看该作者
tenny 发表于 2014-12-4 15:59. A6 w5 J* B; @- e. f& g6 q1 n! D
arm 端的 log 并没有用到 uart1- H, h3 _& }% ]4 h" _# ?
dsp 端的 log 才使用了 uart1# ?# v5 [' N) f9 {
所以,你需要也只需要修改的是 dsp 子工程的  ...
" Y! ?9 v# n" l$ k# X
那我是不是将你贴出的那段代码,替换DSP/driver下的log.h就可以是吧,: E8 E/ K1 c- o+ t# B( R  ]( x) K
然后将#define OUTPUT_TO_UART1 1 换成( j! {8 E( a9 n$ ^
#define OUTPUT_TO_UART1 0+ g; t7 E; P  F/ d( {
  是不是这样. O0 E( s& X/ C1 o3 X
4 M+ |& S3 g, j

# q2 k& Z: b) x! g: Z" r% M0 D7 A& Y/ K8 D7 ^
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
8#
发表于 2014-12-5 09:25:09 | 只看该作者

; a! w$ k3 h  H8 F/ ~0 g. o
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-14 06:54 , Processed in 0.042982 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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