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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
跳转到指定楼层
楼主
发表于 2014-12-4 11:08:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
你好我现在用的你们的omapl138开发板,跑的双核通信的程序,我现在需要通过串口一向外部发信息,但是串口一被DSP占用了,我怎样才能解除DSP占用呢% v3 l8 N. @# [/ t5 k- [
- g8 ]9 Q, a2 D
- \+ g* I. S& j3 I
谢谢9 Z; M) L% F- p- u1 R* G

/ ]! t! z6 \0 C8 o. L& p6 z5 B. r3 d8 ]  g6 c9 p- e' P+ @2 C1 K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
沙发
发表于 2014-12-4 14:01:26 | 只看该作者
  1 #ifndef _LOG_H_
8 S, V, C7 _) |$ L  2 #define _LOG_H_7 e' C' D* ^8 ~5 T4 }
  3
3 k- b- S% L" ~6 a  4 /* 0: printf; 1: UART1 */
& c  J0 J& M2 A  5 #define OUTPUT_TO_UART1 13 ]; ?5 k: G+ B5 ^' V% ?2 u. C
  6
4 F3 R$ O1 w' r& h. t  B2 I) M  7 /* Switch Log Output *// a  C! X5 J2 K1 U
  8 #if OUTPUT_TO_UART13 a. I! |) }) O1 R+ P% ?
  9     /* For UART1 Initial */
. {# Q/ K( I: l9 m# h; U 10     #include <stdlib.h>! ~! G  B! G# R9 |; l5 @0 Q! h& j
11     #include "hw_types.h"  ( i: V& g8 x" I3 s; O
12     #include "hw_syscfg0_C6748.h"9 B: x# ?  w/ {% N: `* O/ |
13     #include "soc_C6748.h". z5 o' e* V4 b2 d& R& b
14     #include "psc.h"               ) [, D0 @: }$ t4 B* ?
15     #include "gpio.h"               / ?( y& Y9 u( U! X1 ]. Z
16     #include "uart.h"
0 f" w+ Q& p, x7 C2 r+ [  z* r" F 17     #include "uartStdio.h"& w* z: G- t+ K: V+ \
18
3 ]) r4 M- ?5 G9 r: h' g 19     #define OUTPUT UARTprintf; V) E8 P/ c* S) r% ]! l9 Q" q' h
20 #else
* h- s% w3 Y3 s2 K- c9 F 21     #include <stdio.h>
/ D1 A( i; i/ ?) o" q 22     #include <stdbool.h>% X( _+ ?0 i4 n+ S
23 9 H2 B4 G" X" K% J
24     #define OUTPUT printf: T2 s- L# |- s8 j+ {6 h9 P, e, K
25 #endif$ ^% A- a4 I8 Q5 I
26
& u3 J7 k2 @/ m 27 /* Log init */
+ _0 h! J- A) r2 o% s 28 #if OUTPUT_TO_UART1
% Q8 \6 O: G  `) X# Y1 I 29     #define LOG_INIT() do {                                     \9 }' f7 z: x# k$ b+ b
30         PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO,           \7 O* c* h+ Q. E
31                          PSC_POWERDOMAIN_ALWAYS_ON,             \
2 ^9 Y' u; l3 |* n& A$ M 32                          PSC_MDCTL_NEXT_ENABLE);                \
, R0 e9 C% t- v7 r' N$ C 33         GPIOBank6Pin12PinMuxSetup();                            \
! P; Q( c/ x2 q+ \5 A 34         GPIOBank6Pin13PinMuxSetup();                            \
- N. q0 T( ?0 }" {( R! P 35         GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT);  \, c1 U% H3 ?  ~8 k4 q! r- ]
36         GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT);  \
* z4 @0 V$ k! ?& K% k( _. F 37         UARTStdioInit();                                        \3 \0 v: @2 H6 {% B$ \1 n
38     } while (0)
7 }3 I5 [6 p# R6 v; [ 39 #else1 v/ e! i" [. x$ A8 E& j9 L8 ~
40     #define LOG_INIT() do { } while (0)
; x* ~; w4 W7 n 41 #endif3 i' ~! E% p& s6 }) q
42 9 R2 P! I# y- b  z! d
43 /* Log Output */8 S! B, ~' `% S* n& a
44 #define LOG_INFO(format, ...)      \
- }; F2 J8 q" o' i6 @) @ 45     do {                           \
6 y$ H6 f4 \/ ?1 j/ r 46         OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \+ p- o/ q* }+ v  s
47     } while (0)
- l$ x* ~1 K; M9 d9 ? 48
1 A. t. H; S; g$ ` 49 #define LOG_ERROR(format, ...)     \8 o5 ~' {% j/ A  }. f$ g1 K& H, u
50     do {                           \( D$ Q2 I6 k7 S
51         OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \! c5 h- _9 A; [2 B+ I. o. _
52     } while (0)6 i. \2 B$ |$ m7 I
53
/ S3 X; T6 x2 L1 h0 h 54 #define LOG_DEBUG(format, ...)     \
0 m2 T; c: Y0 U" B' k7 D 55     do {                           \
2 R, X1 I3 ^0 o6 q# n( l$ R& B 56         OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
# Y) O9 A2 ?2 d9 k  S 57     } while (0)" u/ p, A. v$ a3 G( N
58
# j# o5 Q1 O9 z& E, P 59 #define LOG_WARN(format, ...)      \
- M) v; J+ Z; Z8 f+ v 60     do {                           \/ `  ^6 g! C( h# J/ i4 P
61         OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \/ {5 m- m4 G4 H8 Q/ k
62     } while (0)
7 u0 f! v% M; I/ r" i 63 4 x4 ^8 B' X5 a$ R5 x0 _) P# G
64 #define LOG_TRACE(format, ...)     \
% K7 ^4 a2 [  F( b0 |- Q" p 65     do {                           \
# h$ @  }6 i& u( K3 I. Q9 W6 T! J 66         OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
* C  g2 H$ y% l% y) C 67     } while (0)
" Y0 q: ]2 Q4 G4 C7 ~ 68 2 l! e9 C# F2 F6 a! ~! K
69 #define LOG_FATAL(format, ...)     \, l1 N9 }: z9 p' b! S6 S3 ^1 o$ n+ O3 g/ a
70     do {                           \
8 F% o" A9 \. t, q% s5 u$ h 71         OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
; I2 v$ B" b! C9 B* R# U& r 72         exit(1);                   \
& [2 S# V( M" h. o" G4 Z 73     } while (0)
. u! d; K5 x( N1 j) ~ 74
) _4 v5 f& R9 o. e$ c& Q7 V 75 /* Assert */
9 W3 m" u$ _9 G# h5 i8 y* ` 76 #define ASSERT(EXP)                \
) u. k3 p, |7 n* p8 K1 A5 @' L 77     do{                            \0 Q' a& V6 \4 E% D6 Y/ B/ t% f1 Q
78         if (!(EXP)) {              \
, ~# g" t$ w  s$ a8 _/ p4 e1 @7 O1 C; } 79             OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ );                  \
; d+ D. Z- I/ E9 Y3 y, ~: ? 80             exit(1);               \3 O# l! q: M, G, }  \/ @
81         }                          \
$ I9 H* ~' Q. w# @+ {4 ~ 82     } while(0)8 F$ D% }- Z2 ?4 K+ x% O6 `
83
" p  [* s9 e' d9 X) w+ K5 q 84 #endif/ l  L# f" G% T, j. b/ v
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
板凳
发表于 2014-12-4 14:03:10 | 只看该作者
修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏
% V( y% \0 E7 q, s% j! @( U
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
地板
 楼主| 发表于 2014-12-4 15:21:54 | 只看该作者
tenny 发表于 2014-12-4 14:032 }4 b7 C7 D+ |* O9 a
修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏
5 y: p5 u0 t% o: `1 ?
你好,是arm这一端的app, g4 Z* S# v+ |' }2 k
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
5#
 楼主| 发表于 2014-12-4 15:40:21 | 只看该作者
tenny 发表于 2014-12-4 14:031 u$ e; {2 |) _1 d$ `# U, r
修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏
& l( x8 p8 T3 P/ t
你好,你是不是将host/app下的log.h和dsp/driver下的log.h和到一块啦,怎么说下你的思路0 L7 p! a% i/ S; \# _6 ~! T
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
6#
发表于 2014-12-4 15:59:03 | 只看该作者
arm 端的 log 并没有用到 uart1
& E9 ^& S/ E3 D1 ?+ l) Xdsp 端的 log 才使用了 uart1
% d  {+ r+ J) O* f6 ~( m所以,你需要也只需要修改的是 dsp 子工程的 log.h(新版本的代码 是在 dsp/app/log.h,旧的是在 dsp/driver/log.h)
" ~( ^8 _2 ~' a+ v" M/ t
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
7#
 楼主| 发表于 2014-12-4 17:19:24 | 只看该作者
tenny 发表于 2014-12-4 15:598 f" D# D9 \2 N, h) B  f: a
arm 端的 log 并没有用到 uart1
) {* K3 P- O7 ?+ c5 J# sdsp 端的 log 才使用了 uart1( V9 V+ H6 P* u& h6 X! x
所以,你需要也只需要修改的是 dsp 子工程的  ...
' d/ l9 }( _$ b( `; P6 z* D
那我是不是将你贴出的那段代码,替换DSP/driver下的log.h就可以是吧,' ]' ^' t+ M4 B- l2 Z
然后将#define OUTPUT_TO_UART1 1 换成' X) E. h5 v$ B5 `
#define OUTPUT_TO_UART1 00 }; o6 s: _% _8 F* p( j% s
  是不是这样
$ ?9 {7 r2 u8 ~0 R: u5 r. W. n
# x' g# y. U) L4 G0 ?; \7 o# V) _. `( D' J; O
9 \5 g, \# Q7 e7 p2 h$ {, ^7 w
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
8#
发表于 2014-12-5 09:25:09 | 只看该作者
$ c6 J! D: t2 r* X
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 17:51 , Processed in 0.041234 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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