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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
跳转到指定楼层
楼主
发表于 2014-12-4 11:08:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
你好我现在用的你们的omapl138开发板,跑的双核通信的程序,我现在需要通过串口一向外部发信息,但是串口一被DSP占用了,我怎样才能解除DSP占用呢, b+ u0 Y6 D) `! b  Q% n
" L: E% j( ~( [5 [. C
) \! F$ u& I( {" A! n2 ]
谢谢
5 a, K9 e8 ^: E8 p- @- c) X2 z
$ O/ R: a( a/ _1 o3 X: \6 s' h" T9 V4 p; q7 x+ r- U+ V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
沙发
发表于 2014-12-4 14:01:26 | 只看该作者
  1 #ifndef _LOG_H_  R9 K- `  O- n
  2 #define _LOG_H_- _# _8 S, x" i9 Z1 f
  3
  `  l$ ?/ i8 t  N! }) c$ w9 d/ \  4 /* 0: printf; 1: UART1 */% q/ f  K1 n! ?/ m
  5 #define OUTPUT_TO_UART1 1
8 i0 J4 x% L0 G/ k/ d
  6
% D* C" U* h; U- \  A3 j  7 /* Switch Log Output */
1 Z6 ]9 s6 b1 _! k1 Z  8 #if OUTPUT_TO_UART1
6 ~0 z/ H2 w: ]# [% S$ ]# H- N; P  9     /* For UART1 Initial */
# _  ?, i% J* a' d# j 10     #include <stdlib.h>
! r0 b, b0 {6 U: w9 U 11     #include "hw_types.h"  : Q" v. T% M" K/ y
12     #include "hw_syscfg0_C6748.h"
& T$ N# S* ~* o- O/ c6 k$ c% x 13     #include "soc_C6748.h": v: N" j& H+ x7 ^. x8 y: r& W5 A6 w
14     #include "psc.h"               $ |& ^: L1 k) @5 [) j" t
15     #include "gpio.h"               $ U; }' |: f* z- l5 }, B0 v, ]4 j- y
16     #include "uart.h"
. S+ A' A+ h4 h5 B& E# q( n' m6 t 17     #include "uartStdio.h"
" X% n/ c8 S5 F/ @* T" ?* r9 V 18
' K6 X- x: R  U* g& o 19     #define OUTPUT UARTprintf  A' N9 Y  q+ n  Y
20 #else
. t+ m2 o! K9 m, J 21     #include <stdio.h>
; s! H; T7 Q% D2 V) w4 ~+ L 22     #include <stdbool.h>1 N; {( ^2 }2 M% b0 j
23 $ a/ u3 `- w) W4 k, H% q/ ]" v
24     #define OUTPUT printf; a# W. f8 z9 g' h! x: P4 P
25 #endif: U5 b# g9 }. F$ _- p' X/ L2 ^
26 - }- ^, n6 D3 T2 I/ A" P9 w" ^1 ?
27 /* Log init */
. ?' g/ E* W8 c- |7 h$ S0 { 28 #if OUTPUT_TO_UART1; g4 }4 X. P5 ?" t: Z
29     #define LOG_INIT() do {                                     \
6 Z$ u- F8 X0 \( _- O' \0 e- g0 i) R 30         PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO,           \( W4 M+ _% C) d, U) R
31                          PSC_POWERDOMAIN_ALWAYS_ON,             \. M7 g" {, [% j) T" j1 w2 x5 X
32                          PSC_MDCTL_NEXT_ENABLE);                \
2 \! g6 V& P% {9 J: J) }( T) M6 E 33         GPIOBank6Pin12PinMuxSetup();                            \$ p& F) V2 u+ @1 X1 S% v
34         GPIOBank6Pin13PinMuxSetup();                            \
0 n7 S& A, y# q. N  t 35         GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT);  \
* n, d! L4 s+ ?& {3 o) E0 a6 E5 N 36         GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT);  \
& w0 z8 u2 i' e% K3 H0 q& P 37         UARTStdioInit();                                        \
9 d( t  |  r( w% X& i5 N" L$ x! y 38     } while (0)" w, q/ M6 E; I" u
39 #else6 P# u$ h  z$ o6 P
40     #define LOG_INIT() do { } while (0); R! {- s% O" a
41 #endif
% R" \$ [7 j  [ 42
! o! T1 ?3 H4 K: S, Y/ l6 T 43 /* Log Output */4 m) z9 _; P- w5 d% t( |( N
44 #define LOG_INFO(format, ...)      \
0 s7 ^5 R, B4 {( ` 45     do {                           \
! ^7 I. T# u1 I' Y6 X 46         OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \+ }: u  K* c3 f8 H0 r0 s- q+ V
47     } while (0)
/ V+ f' X2 H) }( b0 o" [! M' R 48 # i" m; Z7 R# @3 Y
49 #define LOG_ERROR(format, ...)     \! V7 y( m: M: r' V
50     do {                           \
, N& I. B5 j0 r0 L7 x 51         OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
0 `* l% g& l+ s: m) q 52     } while (0)
1 o. n# S% @  J; |3 }5 r8 ]. e# [ 53
) m  P2 G4 p  ^, S: K/ e. J 54 #define LOG_DEBUG(format, ...)     \- E/ C% @* z9 f- N$ m6 L
55     do {                           \" B0 X/ ?; |6 Y: b( C8 p
56         OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
! T& O, V: p5 g" H 57     } while (0); N1 h1 a2 R9 a
58
1 B# I' g& f: a1 H% G  Z 59 #define LOG_WARN(format, ...)      \
, w# J8 @7 L, ]# ~* r7 m 60     do {                           \6 z9 |  Y2 ~% s+ J; V2 Y
61         OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
& r  R0 s* O( ]. {2 s: Z6 X7 ?* o 62     } while (0)7 k6 k' R1 F0 r9 k
63 & q1 h0 ?. m. }6 t  V
64 #define LOG_TRACE(format, ...)     \
, w. ?' s8 d! `) ^+ D5 E& B 65     do {                           \
. H8 \- l2 w! R) Y( L4 e; q# X 66         OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
' Y' U# ?: |" ]# l# g 67     } while (0)( O5 C: L9 {; I/ h& V
68 0 t: a' n% h5 j2 I5 g( ]4 u
69 #define LOG_FATAL(format, ...)     \' H. }! Y. R/ \, \2 U' U$ k
70     do {                           \! l% B& w/ r. z1 _; \) W- \' }
71         OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
, k5 n! ^4 C+ p  V 72         exit(1);                   \' O0 W. G) B- f9 R  K" b2 ?
73     } while (0)6 r4 f$ ^: V) z7 V- ]
74
* L2 E7 z, \- T* ~4 m/ v4 d' w 75 /* Assert */
3 c- u* W7 @$ c- a3 ?! y/ Q 76 #define ASSERT(EXP)                \) V" r# P& ^, z, S! z
77     do{                            \
+ _1 V9 G: H, V* z5 J+ D 78         if (!(EXP)) {              \
$ |7 \  R! ]! L, M7 g5 m* q 79             OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ );                  \
* G  e* e; }- P, E; O, Y 80             exit(1);               \
, L, M7 F, ?6 c. e  I( e0 ? 81         }                          \" \# D. O3 ?. `( @' Z
82     } while(0)
5 r4 A7 B+ j+ b) C8 w 83 ' V7 D/ }9 h2 \# L+ L
84 #endif
  Z2 f3 \2 V3 ^' G& _5 i; Y
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
板凳
发表于 2014-12-4 14:03:10 | 只看该作者
修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏0 A# |  R! Z: C% }" H/ Q) R! K
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
地板
 楼主| 发表于 2014-12-4 15:21:54 | 只看该作者
tenny 发表于 2014-12-4 14:03; Z1 t, R) l, d$ B
修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏

8 `( M- G& i& z( X$ h! u你好,是arm这一端的app
: C. R" }4 Z( J% C
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
5#
 楼主| 发表于 2014-12-4 15:40:21 | 只看该作者
tenny 发表于 2014-12-4 14:037 f4 T* _3 i- R' ~1 @% f
修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏

; M8 A& c" |' v6 E% u* [你好,你是不是将host/app下的log.h和dsp/driver下的log.h和到一块啦,怎么说下你的思路8 d3 X8 V7 l% A( T
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
6#
发表于 2014-12-4 15:59:03 | 只看该作者
arm 端的 log 并没有用到 uart1" R! l9 U+ [2 F4 S
dsp 端的 log 才使用了 uart1
; P; W; y, d2 H! q1 |, q/ {7 A所以,你需要也只需要修改的是 dsp 子工程的 log.h(新版本的代码 是在 dsp/app/log.h,旧的是在 dsp/driver/log.h): C7 V! F7 e; H# B6 S
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
7#
 楼主| 发表于 2014-12-4 17:19:24 | 只看该作者
tenny 发表于 2014-12-4 15:59: |* g7 M( c, c! I8 W
arm 端的 log 并没有用到 uart1
3 B7 Q+ b9 {" W" g( P% Gdsp 端的 log 才使用了 uart1* J- C' ]2 P! z& Q* A. b& ?
所以,你需要也只需要修改的是 dsp 子工程的  ...
& C+ ^: A+ p3 K( x1 h4 ?
那我是不是将你贴出的那段代码,替换DSP/driver下的log.h就可以是吧,+ I2 s" R! ~8 k6 j7 c' P+ o
然后将#define OUTPUT_TO_UART1 1 换成# ?' s- _& P# Z
#define OUTPUT_TO_UART1 0
0 ^5 y/ s6 r  ?8 H8 ^) D: J  是不是这样- K- B/ j/ Y: U& s

  t0 ^2 ~( `+ Y  L% i( q6 g
' t$ I$ V; o# g) \+ U3 _$ M
9 f9 l3 a4 B5 w  F, k, H1 _4 j% L
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

) l' k2 E5 d! h" |% [) m
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-4 10:22 , Processed in 0.041259 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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