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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
跳转到指定楼层
楼主
发表于 2014-12-4 11:08:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
你好我现在用的你们的omapl138开发板,跑的双核通信的程序,我现在需要通过串口一向外部发信息,但是串口一被DSP占用了,我怎样才能解除DSP占用呢& \# ]" U: e$ h3 X( [

  o! }6 B# N8 d2 T( @% V5 z% @9 p1 g4 Q% h; }0 E' U
谢谢2 X% P6 S( j1 G( _4 s

/ H4 K) q/ Q9 b$ b% R2 T9 ~+ ]) }4 s# ]5 B% P! l  U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
沙发
发表于 2014-12-4 14:01:26 | 只看该作者
  1 #ifndef _LOG_H_
0 L) v  g3 h4 K- L! J) B; N  2 #define _LOG_H_( Y4 _# ~; Z) x4 A4 t" P9 R
  3
2 n" z; R6 S/ R  4 /* 0: printf; 1: UART1 */
$ m1 Z! x) [3 q' U; T/ s% f  5 #define OUTPUT_TO_UART1 1
. M# s) |( s! V+ n5 H" \
  6
7 l6 H2 V2 ~  R/ O  7 /* Switch Log Output */" ?- i/ @: U3 q+ g9 y# _) W1 y5 b
  8 #if OUTPUT_TO_UART1
1 b7 O2 I( r* T  9     /* For UART1 Initial */$ d1 c; K* u& y& y8 _
10     #include <stdlib.h>! D; x/ ]: B, U
11     #include "hw_types.h"  
3 D2 \- @( i1 X1 T8 T. g 12     #include "hw_syscfg0_C6748.h"
8 s9 P$ w! P. d% M 13     #include "soc_C6748.h"# G8 W) w2 Y9 m5 _
14     #include "psc.h"               5 X, U# }& {$ G
15     #include "gpio.h"               
6 U" \; K$ Y+ V 16     #include "uart.h"" [3 v9 Q; b2 X/ K. t+ E) K
17     #include "uartStdio.h"
" W1 X8 `( x& S6 O 18
  Z1 P/ J- Y; F- O& S# P8 j 19     #define OUTPUT UARTprintf
/ w- T! ^4 H+ V1 W 20 #else
% [7 p5 E: q( `, b5 U+ r1 J 21     #include <stdio.h>
% D0 ]: t- g6 x" X8 F# { 22     #include <stdbool.h>6 p  Q0 m, j0 v
23
2 S8 P  X3 z! w4 R) i; `! _ 24     #define OUTPUT printf: \* Z  b% W9 W" P6 B7 {2 o" ^
25 #endif
+ ?3 V$ A) M8 c+ }- s 26
( a$ P" v5 q; z 27 /* Log init */
. |7 {, \/ S# ]2 O4 |& o/ P* `- e 28 #if OUTPUT_TO_UART1
$ m# U) |8 m+ f7 I4 A+ ?4 d2 d$ g 29     #define LOG_INIT() do {                                     \) V9 A( T  Q4 M% E) H. D3 r
30         PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO,           \8 m  L: C3 u$ L! p) Y
31                          PSC_POWERDOMAIN_ALWAYS_ON,             \
  D6 M0 Y, [* j/ K  y1 R, d 32                          PSC_MDCTL_NEXT_ENABLE);                \8 k) \) u3 J" Z! |
33         GPIOBank6Pin12PinMuxSetup();                            \" H9 _2 I+ W: E& t3 z1 b& X  {
34         GPIOBank6Pin13PinMuxSetup();                            \
6 |- ~) N$ J$ h" {$ V; h 35         GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT);  \$ q; H, Z' m5 @  ]! u) m2 \' Q! o
36         GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT);  \, I* M6 O2 }/ B8 \! k
37         UARTStdioInit();                                        \% T* g  N( c: }
38     } while (0)! t* ]4 I5 ~6 j  ^
39 #else
% D: M8 a% V' J( T; R' k 40     #define LOG_INIT() do { } while (0)
+ Z, {3 f  N5 [$ t$ t 41 #endif! R! }# f, W6 Z! R% m$ E# i- D
42
$ t- g/ F8 |3 n# I9 c! u 43 /* Log Output */
1 d7 B4 ^- [# ?( `! G 44 #define LOG_INFO(format, ...)      \% j7 A3 u  R9 `2 X7 j
45     do {                           \  C5 c/ ^! T2 q# S4 P/ A
46         OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
" f7 Y" a& g2 \3 P. ^ 47     } while (0)
( e7 y' q' X2 {% w 48
& e4 j% |3 C" \4 O2 R+ u 49 #define LOG_ERROR(format, ...)     \4 z; v7 I/ m! }
50     do {                           \
1 m1 M- v9 R: Y6 R3 r) S 51         OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
0 R! A9 F' M6 {) ` 52     } while (0)2 d5 \9 N- C4 R+ c
53
: r* h7 u9 B2 \, \) H: F 54 #define LOG_DEBUG(format, ...)     \% O- E6 k3 T: ?! o$ _& D1 H
55     do {                           \/ V! D' i  i+ e7 ]9 F7 s
56         OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
# X  e. m! L! V8 a 57     } while (0)
5 b) Q7 e" S7 r9 k" s8 a 58
' h( j+ Q5 i- [6 \- r& ` 59 #define LOG_WARN(format, ...)      \& @; B1 A7 L* q' a% |7 L* S, V
60     do {                           \
; C- e) q  h; u: ] 61         OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
7 H( r' e' f* e* p0 `5 {  J9 S 62     } while (0): U+ D4 z/ R3 U3 h
63
& [- K. d' v( L0 V 64 #define LOG_TRACE(format, ...)     \, x% D  J& z* m7 A- X' E7 K
65     do {                           \' t! X! R1 m1 U4 g; ]' B0 Y3 u
66         OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
* q+ G6 g4 B8 Z* k' v 67     } while (0)/ Z' ^7 }$ @" ~! J& m
68 ' d! d6 l1 a0 Y) Y  T
69 #define LOG_FATAL(format, ...)     \
3 q+ ^+ B8 i: C0 S 70     do {                           \
# m1 z: v! d; v! g: D 71         OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \& m/ q4 X7 p* D! k3 f% i. Y2 S2 j
72         exit(1);                   \% I5 b8 L8 T- _: q- K* F
73     } while (0)6 V( o( F6 J$ ^* ]( w: C$ r* v
74 ! O( C/ I3 @1 J+ r, Q- ^. c
75 /* Assert */( Y7 u' W0 \" @% v
76 #define ASSERT(EXP)                \
1 c6 r3 y& C4 F: ?, k 77     do{                            \
: H6 _# a# E4 M5 y# E, m: c 78         if (!(EXP)) {              \
: w) N7 T* [3 H: _0 O2 a2 W 79             OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ );                  \
  @  A8 a" u2 n8 j. n+ D 80             exit(1);               \
8 n: J! k1 v  \5 c4 Q* s 81         }                          \
3 h' Z/ t( y( P 82     } while(0)
/ N( n4 `* V6 E6 Y- z  D 83 * Z6 z  ^& K0 C" }+ @& j
84 #endif3 ?  l7 q+ q8 v
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
板凳
发表于 2014-12-4 14:03:10 | 只看该作者
修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏9 a+ e  n, s0 Q8 g5 B2 ?
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
地板
 楼主| 发表于 2014-12-4 15:21:54 | 只看该作者
tenny 发表于 2014-12-4 14:03
6 q* g6 z$ H9 ]! c% ]! c$ k修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏
2 z# g/ H0 H7 w3 B- }
你好,是arm这一端的app
) l' X' j& _& d# A+ I: R  y
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
5#
 楼主| 发表于 2014-12-4 15:40:21 | 只看该作者
tenny 发表于 2014-12-4 14:03
+ k- I: S! `0 c* X* Y修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏
7 I# G! I2 d! ]
你好,你是不是将host/app下的log.h和dsp/driver下的log.h和到一块啦,怎么说下你的思路, x- ]# D$ j$ O! O3 @
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
6#
发表于 2014-12-4 15:59:03 | 只看该作者
arm 端的 log 并没有用到 uart1
7 U; v: f! a0 k3 ndsp 端的 log 才使用了 uart13 d) m4 [/ w4 X: ?1 t( z
所以,你需要也只需要修改的是 dsp 子工程的 log.h(新版本的代码 是在 dsp/app/log.h,旧的是在 dsp/driver/log.h)
, |0 a, x& X, a% K7 Q5 u( Z
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
7#
 楼主| 发表于 2014-12-4 17:19:24 | 只看该作者
tenny 发表于 2014-12-4 15:59
5 X5 w# K9 ?# s) S2 t, n; q1 karm 端的 log 并没有用到 uart1+ \4 W4 }4 r! r
dsp 端的 log 才使用了 uart1! G- [' B$ U: F, I  @0 f
所以,你需要也只需要修改的是 dsp 子工程的  ...

7 S* U& t- A0 S5 B- `那我是不是将你贴出的那段代码,替换DSP/driver下的log.h就可以是吧,
7 [7 H7 |0 v$ q: _然后将#define OUTPUT_TO_UART1 1 换成. y+ c! |2 O, ~$ V$ J
#define OUTPUT_TO_UART1 02 W; }3 X9 u( D/ ?' e
  是不是这样/ e  \9 o9 M6 l6 D# G7 s+ E
9 d) y3 y) b9 z& L3 ?: S
1 w% `6 S4 h' ]: W

! ^: r, _' h( B* r2 Z0 J. Y
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

8 n# ~. L& M6 q. p1 r; `4 w
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-5 18:20 , Processed in 0.044193 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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