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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
跳转到指定楼层
楼主
发表于 2014-12-4 11:08:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
你好我现在用的你们的omapl138开发板,跑的双核通信的程序,我现在需要通过串口一向外部发信息,但是串口一被DSP占用了,我怎样才能解除DSP占用呢
; f% k5 m3 h# S; M* h) z5 M
2 R/ d5 r- Q: p3 s: q9 a* V3 ]  p: m7 v: O
谢谢9 N  `7 h& K, o! x" v* }
" b. E6 e! U+ p" s( o
  q! Q- w7 Y, G8 x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
沙发
发表于 2014-12-4 14:01:26 | 只看该作者
  1 #ifndef _LOG_H_* u6 B1 A& x# [" r: D
  2 #define _LOG_H_& v, h% o/ z  Y
  3
; n) A* O- o0 y6 e  4 /* 0: printf; 1: UART1 */( j& @8 l4 o: \+ {$ F: W, l
  5 #define OUTPUT_TO_UART1 18 t8 y2 |( h# f5 r
  6 7 o0 l: c2 m6 C5 X9 Z) O
  7 /* Switch Log Output */+ I0 U  }/ i1 v0 M+ H8 p3 t3 I  ]
  8 #if OUTPUT_TO_UART1/ Y( a7 b' _) C) x  {
  9     /* For UART1 Initial */0 t5 `# V5 n9 a' }! g  E
10     #include <stdlib.h>0 O  V" N: Z: }& }/ Q- T4 ]
11     #include "hw_types.h"  
# z. p5 B/ u- e* _9 P  f7 Z$ ~ 12     #include "hw_syscfg0_C6748.h"* m( [* n/ c' \
13     #include "soc_C6748.h"
. |7 k# l- N1 u+ ~2 r$ @  D 14     #include "psc.h"               
4 i% t& f5 l+ r9 t! [- J 15     #include "gpio.h"               
  o8 c9 l2 ], y) V7 m 16     #include "uart.h"5 k: E' m7 u' l8 `) R, F  p
17     #include "uartStdio.h"
) a( `+ O. e7 F. B* \  W3 X; d 18 ! Y2 S8 C( r+ J2 P0 z. L2 F
19     #define OUTPUT UARTprintf( X: B: W2 f' h% ]' s$ s0 d$ |
20 #else
8 @5 ]0 B( W: I2 J- t0 D 21     #include <stdio.h>
8 f: U9 ^4 V3 C2 B 22     #include <stdbool.h>
: J% N2 {" |" x. |3 P 23 " h. d1 I' V% W/ A& b) e* _9 _" x
24     #define OUTPUT printf
. n6 d; ]) T+ v5 t5 G4 c' o; Q 25 #endif. W! i6 C3 I* l. j, z+ Z0 Y. U
26 $ \) e3 m& h8 s, _2 I
27 /* Log init */3 j  [  Y) w1 Q6 c
28 #if OUTPUT_TO_UART1
" K$ O. |2 X4 l: z7 B0 G. S 29     #define LOG_INIT() do {                                     \
" Y2 t2 b8 N4 R9 X 30         PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO,           \1 O4 s  X- H+ u- ^  ~4 b, T6 d
31                          PSC_POWERDOMAIN_ALWAYS_ON,             \
3 H8 Z- y9 ?6 w4 R3 F 32                          PSC_MDCTL_NEXT_ENABLE);                \
( ~2 J8 D* W# ~& I$ T0 u1 R6 _& P 33         GPIOBank6Pin12PinMuxSetup();                            \
" T8 Z, d9 [4 L% F; ]6 F3 C 34         GPIOBank6Pin13PinMuxSetup();                            \! H# K6 Z' R/ h5 t0 Z: P) e
35         GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT);  \
) |- I' O2 s& e4 A4 K 36         GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT);  \2 v  ]! H0 E( ]8 q! p, Q
37         UARTStdioInit();                                        \/ o& o# C4 ]4 M0 a* Q. W: L9 [( k
38     } while (0); |/ p6 p$ y/ \# {+ v
39 #else1 w# M4 [# v' ^( C& d0 [, B" O
40     #define LOG_INIT() do { } while (0)
% _& X& D6 n# `6 A9 |+ G3 L* V" f 41 #endif
* Y! r& ~& N4 A- j: L 42
; Y5 i, n" Q( Y4 v, l0 r 43 /* Log Output */3 b0 _, s8 c: U1 Y' g! W0 T" u: O1 J
44 #define LOG_INFO(format, ...)      \) z0 V0 U. \/ P  u; B* n
45     do {                           \* E9 x# A9 A5 h
46         OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \) @$ c; @1 e/ t. I, i; F& W
47     } while (0)* F) z4 K: |* H9 Q" A" z
48
3 t1 U9 W+ z: L, x/ u 49 #define LOG_ERROR(format, ...)     \
7 e8 L4 v  ^; C$ `" Z  y5 g; L' H 50     do {                           \
* N5 j3 g3 U6 r' B% E7 X  V6 H; n 51         OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
: m6 I1 t4 v3 _" g/ J+ W. i1 m 52     } while (0). W* h6 C6 Y8 O- {4 d! Z7 U* h
53
% I$ M. l: O; W9 ~" b6 o0 R 54 #define LOG_DEBUG(format, ...)     \# O' e+ d7 A- W  i
55     do {                           \8 C9 i1 K' _8 l6 E' r& p$ O- |
56         OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \; d$ j8 W2 O5 e( [
57     } while (0)
0 E  }$ N1 \/ E- d$ h; Q! C 58
1 f3 _5 W. e: T" J) A) p2 q0 t 59 #define LOG_WARN(format, ...)      \
$ x$ t$ X9 _5 ~, o7 w- T) E 60     do {                           \
. m6 X6 p' f7 E. }/ d1 h2 c 61         OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \: }8 b- a/ w1 c4 O& d
62     } while (0)
! D, x& G" O) _7 v" g 63
# v/ }: r( t* W* x! y' j, \ 64 #define LOG_TRACE(format, ...)     \  F. z5 w* J2 P4 k* c4 H
65     do {                           \
2 M5 W2 Y, _/ p 66         OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \. @) d0 g3 X' R; @
67     } while (0)
# F1 N( P: Y4 }9 Z 68 # y+ _1 a) V: U- A0 z) N1 e
69 #define LOG_FATAL(format, ...)     \. N% ~! d1 F$ ~9 |/ f& J- K
70     do {                           \. x& p. U, S3 ]' M; z
71         OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
9 ]) H7 V: D' ?% d! J 72         exit(1);                   \
0 u/ ^) F8 u# I0 Y. f1 _ 73     } while (0). r" b% b5 \1 H4 a, g8 v/ E; e
74
( D; H: Q& U+ A+ k  x 75 /* Assert */- ?9 x0 ^- r+ w9 o6 M- B! _
76 #define ASSERT(EXP)                \0 G, s! I2 A$ X* v0 a5 n
77     do{                            \
; y+ S4 d7 G; l7 y 78         if (!(EXP)) {              \
" ^1 h2 J7 w1 O! l) v 79             OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ );                  \
1 W2 V" o( T. u 80             exit(1);               \7 Y  e6 q8 W4 N( z
81         }                          \
/ w7 v$ u# d1 ~8 J8 H- P! c 82     } while(0)
" \5 |9 V1 D1 X 83 / \  F! U5 O5 U' B9 V4 b, v% U5 e
84 #endif
. w% Q0 R. s7 X3 [' [0 T: l0 M
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
板凳
发表于 2014-12-4 14:03:10 | 只看该作者
修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏
) g) C0 p) M* d
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
地板
 楼主| 发表于 2014-12-4 15:21:54 | 只看该作者
tenny 发表于 2014-12-4 14:031 v# s5 \* A: F' b* q$ o9 L, ]
修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏
. a% i- R2 k' ?+ `  z0 `/ v( s5 _
你好,是arm这一端的app. k2 ]% z- b9 }) ], e* o5 b
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
5#
 楼主| 发表于 2014-12-4 15:40:21 | 只看该作者
tenny 发表于 2014-12-4 14:03# G- j6 x5 b3 t' ~: U% X5 s- Y
修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏

! v  P; ~3 o9 I" Q# `) o" ?' b( c你好,你是不是将host/app下的log.h和dsp/driver下的log.h和到一块啦,怎么说下你的思路! J3 z* ]" L% q6 W: ?7 p
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
6#
发表于 2014-12-4 15:59:03 | 只看该作者
arm 端的 log 并没有用到 uart1& b3 ^9 C; P! ]7 J# ^6 N0 a
dsp 端的 log 才使用了 uart1
$ P1 H8 S# w. F7 }. N# ^8 Z所以,你需要也只需要修改的是 dsp 子工程的 log.h(新版本的代码 是在 dsp/app/log.h,旧的是在 dsp/driver/log.h)
! R: F5 [/ n: u8 j' j
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
7#
 楼主| 发表于 2014-12-4 17:19:24 | 只看该作者
tenny 发表于 2014-12-4 15:59
/ H3 p1 [7 j6 U/ R( S2 B( f/ Warm 端的 log 并没有用到 uart10 J% m$ N% Y* n' y7 B$ P
dsp 端的 log 才使用了 uart1, [/ S4 A/ G2 H8 I7 z; z7 O
所以,你需要也只需要修改的是 dsp 子工程的  ...

9 g' W  q% p2 a( ^! W$ J那我是不是将你贴出的那段代码,替换DSP/driver下的log.h就可以是吧,
3 |5 Z8 h# P" f然后将#define OUTPUT_TO_UART1 1 换成; [7 J. F7 ]1 Z! L' |
#define OUTPUT_TO_UART1 08 c% I/ s4 V4 O. k: K
  是不是这样8 y5 v2 o# f0 M7 X: P  j
. r$ v, d, D! P1 T; V0 `
% M+ A2 l- G* @' P8 W) ?5 [/ P

4 S* h, ~8 z$ ?$ ?
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

, Y& A) Z$ T  f3 [( ~/ p, A
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-4 10:36 , Processed in 0.053191 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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