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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
跳转到指定楼层
楼主
发表于 2014-12-4 11:08:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
你好我现在用的你们的omapl138开发板,跑的双核通信的程序,我现在需要通过串口一向外部发信息,但是串口一被DSP占用了,我怎样才能解除DSP占用呢. l, C8 s! F& g4 a
" l' C7 {9 i* Y8 s
% s8 \: [- f' j; j0 i+ @" C8 M5 q4 _
谢谢
3 G. B/ y4 x; R0 o5 d
3 D% X1 ~/ ~4 l, c( A/ Q1 {4 ]
8 o6 i0 F' ^1 }2 Y$ I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
沙发
发表于 2014-12-4 14:01:26 | 只看该作者
  1 #ifndef _LOG_H_
! |  N6 J( _$ B( Y6 Y# u  2 #define _LOG_H_( }9 W4 \1 @1 ?( W* c$ J
  3 4 g. M* `) e0 ^2 d' B% t* ~
  4 /* 0: printf; 1: UART1 */" q  Y7 n8 h2 F2 H7 D' g, r$ J$ }' _7 R
  5 #define OUTPUT_TO_UART1 1/ f& N' ^! @+ @7 \0 L$ _
  6 & n2 b$ Y( C; w5 q' n* W2 Z* w
  7 /* Switch Log Output */: l; O4 K3 C( Y* F
  8 #if OUTPUT_TO_UART1
- ?6 w6 Z; E3 O/ Q3 u  9     /* For UART1 Initial */
& ^) u2 C% n3 c  ?( l7 } 10     #include <stdlib.h>/ P( U; U' W2 G6 F1 i: f. o$ f
11     #include "hw_types.h"  
" v, ^  y: ]& M7 H 12     #include "hw_syscfg0_C6748.h"" P. X; s( w% @) B. f
13     #include "soc_C6748.h"
2 N0 D; R; h$ T2 i7 ?# M 14     #include "psc.h"               ( @# o; z2 J5 H! K
15     #include "gpio.h"               ' E& L5 U% h4 K3 U+ ~
16     #include "uart.h"
" `+ `. g0 `& E' [8 x  x& @3 h, ? 17     #include "uartStdio.h"9 I" H7 S8 P7 S; \1 i1 ]
18
# U4 n' L8 F7 u1 Q1 W 19     #define OUTPUT UARTprintf! ?' a% c0 i* u7 ^: @& z
20 #else! F  L, i5 W6 l; G% s* m
21     #include <stdio.h>1 B+ C) c* {3 S9 H' |& x  C# M6 U
22     #include <stdbool.h>6 `7 n1 D& c) ~
23
7 h6 P% ]& I$ H, q% ~* y) W3 z 24     #define OUTPUT printf
6 n+ y" [& G/ P# Z 25 #endif! ~+ W" J& F7 ]& U; V' d1 K) u
26
; N; J9 m2 V" x+ y3 a 27 /* Log init */5 `6 m. l8 n7 ^2 N' m" F' H
28 #if OUTPUT_TO_UART1
8 J& B* Y: O0 {7 R* ^ 29     #define LOG_INIT() do {                                     \* N0 N  P5 P  E" a. j% q1 F% ]
30         PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO,           \
' C/ j" J2 C6 ^2 E3 R 31                          PSC_POWERDOMAIN_ALWAYS_ON,             \- b9 b2 `8 s+ Q3 y. k
32                          PSC_MDCTL_NEXT_ENABLE);                \6 o8 J5 l$ B; U: X. ^# W
33         GPIOBank6Pin12PinMuxSetup();                            \
9 e8 {& ]' z% F- M3 G& I/ N4 L 34         GPIOBank6Pin13PinMuxSetup();                            \+ Q( f9 E9 W8 w" A+ w9 \
35         GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT);  \
1 X) n2 W/ g! K4 }" {% Y 36         GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT);  \" D6 A' j7 `- R( w  l
37         UARTStdioInit();                                        \
( q- T5 U# @$ V/ s1 C) ]* u 38     } while (0)
- t. e, |7 m! C/ d! a 39 #else
* f% k; Z0 d0 B4 p 40     #define LOG_INIT() do { } while (0)
# V2 T& Z) c7 x  K 41 #endif! {& P: ]# k9 ?9 r7 J; Z
42 8 @) F! M6 x4 T% p% W. l: C) O
43 /* Log Output */2 Y3 j9 F5 s0 U1 \7 o" ?: V. F
44 #define LOG_INFO(format, ...)      \* Z2 ^; e7 d' j3 W3 a$ w6 J5 w
45     do {                           \9 W, v  H7 W) c( t! s9 _
46         OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \4 ]7 ^2 ~, n5 z! ?- @6 ~2 S2 s
47     } while (0)
2 t1 h! S7 \  t9 B1 q 48
+ f5 h% \' s8 X, M# M; {4 s 49 #define LOG_ERROR(format, ...)     \
2 `$ p/ M# Y. V) R9 x 50     do {                           \
) q$ F0 R& i, _' y5 p 51         OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
+ i0 N+ I% y2 P4 Q3 b, U# q 52     } while (0)8 v; {9 K+ \1 P7 ~% z$ L0 k
53 7 p; ?2 ^" o1 U8 l7 t1 X. K
54 #define LOG_DEBUG(format, ...)     \7 ]) @3 Y* @/ v( {. a# C# v5 O6 z& b3 D
55     do {                           \/ v4 \% x9 E1 G; ], I5 D7 U
56         OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
, }) s1 e( ?- l* u3 `0 A9 B* L 57     } while (0)
/ a+ P; |5 l9 I( P. _$ i! ^ 58 " P, F- B9 H* r+ G% X+ A
59 #define LOG_WARN(format, ...)      \3 g1 o9 Q* A. E' ~- J
60     do {                           \
$ M! l* ~+ J$ }1 l, p7 G( f+ a$ n! _ 61         OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \4 a# p3 J3 |; z5 {" p, ?2 w. V( e6 Z
62     } while (0)5 P5 ^( v" F0 R/ F3 Z3 Z
63 8 N5 ~' Z! _5 S5 Y
64 #define LOG_TRACE(format, ...)     \, b  `& i" t# W
65     do {                           \
% N% ?3 O, K2 d/ ]5 V) V# c6 P5 r 66         OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \& N- l$ N, _8 P* p, d7 ]8 Z6 t$ G
67     } while (0)& O9 p% x7 f, d6 A
68 6 f9 v- c. S, ^
69 #define LOG_FATAL(format, ...)     \( M: l; u9 K" l
70     do {                           \+ d2 p+ J3 _$ l& Y+ y
71         OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
8 q1 J% t& |2 |' k7 z 72         exit(1);                   \
0 z! f: n: x* v2 c* @2 R 73     } while (0)
/ P2 `+ K; U5 U! u7 C# U; u 74 2 `# V) \; I2 W  I# ]
75 /* Assert */6 j. I4 O6 _) x' G3 ^8 C+ g
76 #define ASSERT(EXP)                \
/ e$ [$ L5 h5 u4 R4 }2 `+ s# }, o 77     do{                            \
2 A. R, h. N: ` 78         if (!(EXP)) {              \
( s8 B6 y$ Z1 g2 m# D 79             OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ );                  \1 B2 y+ \  j: ]$ Y
80             exit(1);               \
, {" `9 k9 K8 j9 |% \$ i 81         }                          \
5 {: D+ ~. j( u) P 82     } while(0)' e# S, p. T4 R6 F- z4 r* P
83
8 ?# m; x2 i+ c3 d& o/ \2 i/ S0 i+ V, _ 84 #endif8 @8 s1 J% R. I. m9 S
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
板凳
发表于 2014-12-4 14:03:10 | 只看该作者
修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏
3 w" H6 R1 d  ^. a3 j' R- ]# w: Z) n
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
地板
 楼主| 发表于 2014-12-4 15:21:54 | 只看该作者
tenny 发表于 2014-12-4 14:03
; W+ j) q( q' m- j) b+ d$ B修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏

6 x. E8 c4 V' Y; c9 l你好,是arm这一端的app, t7 V$ `% _: c/ p/ u3 N9 C
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
5#
 楼主| 发表于 2014-12-4 15:40:21 | 只看该作者
tenny 发表于 2014-12-4 14:031 b8 q& J  X. e* g- j: C3 m+ P5 @: n' M
修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏
1 R& _6 Q# I4 B
你好,你是不是将host/app下的log.h和dsp/driver下的log.h和到一块啦,怎么说下你的思路
6 f& S' }5 V. w* @; z7 @! Z
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
6#
发表于 2014-12-4 15:59:03 | 只看该作者
arm 端的 log 并没有用到 uart1+ O# g0 L& C& E$ Q9 S+ M
dsp 端的 log 才使用了 uart15 B' O3 o5 f& x, y3 u% {3 A# V
所以,你需要也只需要修改的是 dsp 子工程的 log.h(新版本的代码 是在 dsp/app/log.h,旧的是在 dsp/driver/log.h)( `- i; Q" Z5 M1 x
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
7#
 楼主| 发表于 2014-12-4 17:19:24 | 只看该作者
tenny 发表于 2014-12-4 15:59% w7 k, v6 B) [' }7 J+ w0 l& O3 A
arm 端的 log 并没有用到 uart1
2 Z/ Y% i/ l/ d) f! f8 E! d7 ddsp 端的 log 才使用了 uart1
8 a8 I4 i! w6 F& R所以,你需要也只需要修改的是 dsp 子工程的  ...
( N1 n& x0 a  @5 z+ E( n) s
那我是不是将你贴出的那段代码,替换DSP/driver下的log.h就可以是吧," ^7 f, m% [3 A% h
然后将#define OUTPUT_TO_UART1 1 换成
1 ^) c0 n( n0 [#define OUTPUT_TO_UART1 0
, a, w& H- r' N3 u  是不是这样
9 A( `" G5 }' W* [' F# p' v+ v8 M6 H  s5 J

( K5 x2 ?8 Q! L5 S2 O" U
' D- V; X/ l% c: x8 Z" d2 O
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

/ `0 c8 Q& x; M! `% b% F  T
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-18 14:31 , Processed in 0.045995 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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