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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
跳转到指定楼层
楼主
发表于 2014-12-4 11:08:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
你好我现在用的你们的omapl138开发板,跑的双核通信的程序,我现在需要通过串口一向外部发信息,但是串口一被DSP占用了,我怎样才能解除DSP占用呢
! p2 V* S1 P) q4 E: Z3 e) G5 ?  G. _- \8 t
2 {* ^7 C3 z+ Z& \& O4 e8 }
谢谢
6 M/ @$ v' `/ s: C! ~) W$ z! s0 ]
# V& l) o* p* n# r6 @6 F0 H4 l. `. H9 H' H+ s9 \& H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
沙发
发表于 2014-12-4 14:01:26 | 只看该作者
  1 #ifndef _LOG_H_
( a2 F. S: G4 }! B' J  2 #define _LOG_H_
2 ^, I, G/ L0 \+ _  3
6 K/ p/ W" A( B$ G! W% ~8 i/ e. ^  4 /* 0: printf; 1: UART1 */
) j3 Y8 |$ I+ a9 r  5 #define OUTPUT_TO_UART1 1
& Z) b; a! ^# y& _0 k
  6 7 x% p( w+ D+ F
  7 /* Switch Log Output */+ T1 L# e6 ]$ p& U4 i" I
  8 #if OUTPUT_TO_UART1
4 q7 e2 y( D" P' v8 y  9     /* For UART1 Initial */8 J. |/ \4 `7 }% S/ ?' T1 s8 o
10     #include <stdlib.h>
$ d: a2 Y5 p& d' u) f& [8 K 11     #include "hw_types.h"  " I: ~0 I- M9 n. ~2 ?
12     #include "hw_syscfg0_C6748.h"
0 u/ [/ x* u/ x 13     #include "soc_C6748.h"* z9 g+ @  e/ `
14     #include "psc.h"               . n" I% p: D; v; E
15     #include "gpio.h"               9 |, n# [4 w+ V. l) x
16     #include "uart.h"
3 y' l  A& B0 f5 s; a7 d4 v 17     #include "uartStdio.h", p/ ?1 t( u8 O: u
18
3 P' Q) [- \4 C! E9 p; D 19     #define OUTPUT UARTprintf
/ d7 @1 l% {' I$ Z7 G/ u4 ^ 20 #else* f7 k% C) t! y. `, `/ s% i) j- S
21     #include <stdio.h>/ j6 S- A& e6 R3 Z
22     #include <stdbool.h>
1 J5 U* r6 A1 E* Z 23 + V) Y! _1 T0 z; f6 B& A
24     #define OUTPUT printf! ?5 q- Z% i0 I" x& }! n4 N- X# M& G
25 #endif
8 G, Y6 D& v/ l7 W2 Q6 D, b. r5 F 26 # t% O; n# ^" u, g# r" E* R+ _
27 /* Log init */( W7 U1 r$ i1 i; f0 m0 X
28 #if OUTPUT_TO_UART15 o" Z% e4 L# Q6 I
29     #define LOG_INIT() do {                                     \5 Q( F2 D1 M4 h
30         PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO,           \
! w9 [. s' e$ a4 z; R* K 31                          PSC_POWERDOMAIN_ALWAYS_ON,             \5 i6 h/ C4 D2 _& p) M0 l
32                          PSC_MDCTL_NEXT_ENABLE);                \
4 T3 M3 W' q9 H( n7 ?6 U$ h, @; C 33         GPIOBank6Pin12PinMuxSetup();                            \, F( W$ _( J9 @1 A/ M- z/ i4 ?1 n
34         GPIOBank6Pin13PinMuxSetup();                            \' F3 U9 R1 _6 y  c- n% ?
35         GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT);  \9 K/ ^  u( C6 f
36         GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT);  \
: E! @" E! r2 d- {6 g0 i 37         UARTStdioInit();                                        \
& D6 K7 @$ g! t9 a- U7 R 38     } while (0)% a# U: r& Z6 }" _4 d4 [: ]
39 #else( L8 t) Y) v" Z8 _7 {: A
40     #define LOG_INIT() do { } while (0)0 ^( Q7 B% K- I6 l( u! F: K2 T" Q6 O
41 #endif
$ z  m$ N( w) c" C1 }0 h4 { 42
" X+ D# C7 A% E6 N0 J 43 /* Log Output */2 [7 A: j+ J; F+ F+ @9 J
44 #define LOG_INFO(format, ...)      \
. T8 f) W6 A; Z: F  U 45     do {                           \
; Q: J# P8 Y. f7 X9 O3 q% [ 46         OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
$ z2 s! G3 m! b9 P 47     } while (0)6 e! u+ t3 \3 i
48
7 I, K( b# B: i2 D' | 49 #define LOG_ERROR(format, ...)     \( A( e( k. h* m3 `* ~8 u4 g3 A/ H
50     do {                           \" E5 T/ x1 N( H* X" H: P1 w
51         OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
0 f8 T6 O4 |' Q$ { 52     } while (0)
, R+ h; X8 f6 L$ J 53 5 N5 B/ b8 s- U* }8 p4 F, f8 G0 m
54 #define LOG_DEBUG(format, ...)     \, u, ^, S1 L9 i' }2 J7 ~
55     do {                           \
* c8 q, H$ }. j5 v 56         OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \8 H( ~4 ]: J1 n2 [  P5 \
57     } while (0)
/ `) W3 U  X7 h( y9 N 58 " A* p/ K- b4 y* K; F) z% h
59 #define LOG_WARN(format, ...)      \
2 @" l2 r" v8 b2 B* n+ L 60     do {                           \
$ z6 c4 |2 e. }* K3 d* T 61         OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
  c" M7 N6 x: f! {0 k+ _) s4 O 62     } while (0)
% U" M2 U# Z3 Y, X8 K' L" Q 63
2 y8 K$ R2 A0 V" ~ 64 #define LOG_TRACE(format, ...)     \
5 e; f: a* B: d; |# Y! Z 65     do {                           \
5 k, a, ]; `! O6 b3 z5 T 66         OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \- ^8 g9 `7 ?4 s/ w' v- A; m
67     } while (0)8 F& H4 P" L! Q6 v+ g/ M2 q* {
68
0 }& W5 @/ @% R 69 #define LOG_FATAL(format, ...)     \, X# I( c: u- ]3 v+ O" w; ?
70     do {                           \/ D. G7 V: ]+ P: o8 B7 O0 W+ n
71         OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \6 `$ E9 J5 S0 D: P) L6 R
72         exit(1);                   \
" U+ W6 y$ R* R4 `. T$ \$ q$ d" X 73     } while (0)1 q1 x5 E+ R" ]( I8 Y5 A# O
74
) z5 Z, S) ?1 j& e3 V0 N8 S0 {, Q, x2 ` 75 /* Assert */
4 m) U* r: A' X* ~9 l5 ^, @ 76 #define ASSERT(EXP)                \
; k& L+ ~5 [1 z+ M9 r5 g 77     do{                            \. `5 q  P2 o# U( \% J
78         if (!(EXP)) {              \
9 _: a7 `' G) t! C/ Q* [5 Y! n# p 79             OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ );                  \
2 _6 |7 H  S  z' C7 y0 N3 m4 W 80             exit(1);               \$ \# X, r9 U4 b4 [. H' ~# P/ Y
81         }                          \' W3 j7 R2 w* \
82     } while(0)
' G& I- S8 O5 j3 r, B( M 83
+ E% v% q7 z3 b8 A9 s; o 84 #endif' S! B% j7 B/ y2 @3 N0 c
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
板凳
发表于 2014-12-4 14:03:10 | 只看该作者
修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏7 d+ q' s% h/ O! m) ?5 s' g
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
地板
 楼主| 发表于 2014-12-4 15:21:54 | 只看该作者
tenny 发表于 2014-12-4 14:03
+ W. }* b/ h4 |+ }# ~修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏
# {* l; h6 q: @6 ~- X
你好,是arm这一端的app  t% g7 K9 C! F* T2 p
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
5#
 楼主| 发表于 2014-12-4 15:40:21 | 只看该作者
tenny 发表于 2014-12-4 14:031 b0 G7 `6 W" x/ g
修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏
' v9 F# e! i. @1 G  Q# ?8 Q
你好,你是不是将host/app下的log.h和dsp/driver下的log.h和到一块啦,怎么说下你的思路4 W2 Q0 Z( X0 o. i; l! |$ y
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
6#
发表于 2014-12-4 15:59:03 | 只看该作者
arm 端的 log 并没有用到 uart1  w" l) ~! j0 |' _
dsp 端的 log 才使用了 uart1) O. x2 l0 p; h3 ]! {
所以,你需要也只需要修改的是 dsp 子工程的 log.h(新版本的代码 是在 dsp/app/log.h,旧的是在 dsp/driver/log.h)6 g2 Z8 E3 L% {
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
7#
 楼主| 发表于 2014-12-4 17:19:24 | 只看该作者
tenny 发表于 2014-12-4 15:59
! Y* i! ~) l- U' @4 K  R6 d* Uarm 端的 log 并没有用到 uart1+ b3 g; v6 ]7 C2 W, D8 `( M
dsp 端的 log 才使用了 uart17 z3 h; o" Q9 x
所以,你需要也只需要修改的是 dsp 子工程的  ...

9 `. c6 R$ I* _+ h* \: j. W& _那我是不是将你贴出的那段代码,替换DSP/driver下的log.h就可以是吧,
! u. e# K3 K$ A# q然后将#define OUTPUT_TO_UART1 1 换成  y/ x3 P; c# h+ ]
#define OUTPUT_TO_UART1 0
7 Z1 U/ {$ y  ^/ r7 X  是不是这样
0 K4 Q8 R  o/ G/ M% q4 _; U# w4 z2 G8 j9 K# z3 X& Y+ m% Z
' j( x5 }7 R1 n8 c& p0 U

0 z9 f# W  U4 t# K7 B
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
8#
发表于 2014-12-5 09:25:09 | 只看该作者
  y; Z+ r' R( i
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-30 04:40 , Processed in 0.042009 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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