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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
跳转到指定楼层
楼主
发表于 2014-12-4 11:08:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
你好我现在用的你们的omapl138开发板,跑的双核通信的程序,我现在需要通过串口一向外部发信息,但是串口一被DSP占用了,我怎样才能解除DSP占用呢
# G$ j! Q/ x5 I% a0 O% X. f# G2 c) q4 F* A% A& ?

' o  i( K) H6 ^  b谢谢
( R0 N5 D, ^& ~, H( @3 N9 N1 L
5 O: B! G/ m4 j6 r; i8 _
$ _, a3 J, u8 e2 U( U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
沙发
发表于 2014-12-4 14:01:26 | 只看该作者
  1 #ifndef _LOG_H_6 Q5 X$ E& O4 h' O1 t
  2 #define _LOG_H_
) \0 V- l2 U- u% S+ U  3 2 M& q1 U* Z9 W/ i: \9 G
  4 /* 0: printf; 1: UART1 */
/ a; k+ b3 M+ l4 Z3 v* }  5 #define OUTPUT_TO_UART1 1
5 \; D; s) }5 X( A
  6 4 |% V  M$ ]0 D# R, o. Y
  7 /* Switch Log Output */
( x. R0 c. u) \& x$ F' R6 \$ k  8 #if OUTPUT_TO_UART1
, p/ r5 X' A5 z  9     /* For UART1 Initial */
- b5 C0 d3 L+ x7 ^9 S 10     #include <stdlib.h>
5 }! V5 [7 J7 w0 Y 11     #include "hw_types.h"  
9 v" Y0 r0 u) R( q& N 12     #include "hw_syscfg0_C6748.h"" b7 d" @8 e, x" c$ r. k. w+ U
13     #include "soc_C6748.h"
" u# ^, b; u4 S  j, T. I 14     #include "psc.h"               % K# E0 B0 N! c6 w) c
15     #include "gpio.h"               ' Y! G3 a# B" y8 D( \: ?0 M
16     #include "uart.h"
, ^: S/ P% d+ Q  [+ P" C 17     #include "uartStdio.h"' a. @& W; {' B5 O4 y/ e
18 / }4 S6 r$ j  P% I) q2 k3 i
19     #define OUTPUT UARTprintf/ x' o, F6 g" G" E' \9 p6 H
20 #else
  B4 h6 D6 r' E- w  f: ^ 21     #include <stdio.h>) k: k' {7 k$ p0 j1 s. n8 F. x
22     #include <stdbool.h>( |4 e% {9 O0 B, v( Q! T6 S
23 9 a& }! U+ F  k
24     #define OUTPUT printf
$ m0 C7 h2 {9 C. T7 Y  v 25 #endif0 P2 z6 \7 k1 P
26
5 z% B8 A: r# m9 u+ U# L 27 /* Log init */
/ e& n/ x4 I% }% U 28 #if OUTPUT_TO_UART1  p8 j9 u5 I6 r5 |  T
29     #define LOG_INIT() do {                                     \8 d. P8 V* P. ?5 \
30         PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO,           \5 X3 o4 b6 K: M
31                          PSC_POWERDOMAIN_ALWAYS_ON,             \
& o. c9 T1 X" @) ?( ^7 R2 N 32                          PSC_MDCTL_NEXT_ENABLE);                \
, y; y. V6 A) W( c* R0 Z- p 33         GPIOBank6Pin12PinMuxSetup();                            \( b; o; W6 k2 B: V, w* A  [) ~7 L
34         GPIOBank6Pin13PinMuxSetup();                            \
' b' k2 {+ W! P3 T1 I( o 35         GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT);  \
7 A4 w1 L+ W, U 36         GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT);  \
# [" Q3 b9 i2 L 37         UARTStdioInit();                                        \
; z3 w+ c( [% x  |7 a3 p 38     } while (0)% O- N" j! X* A/ V) y3 z: V4 x
39 #else) a: Z6 F7 w! y1 k2 M$ @- N. R# f9 m
40     #define LOG_INIT() do { } while (0)
3 b0 Q& Z6 A& M7 R 41 #endif
) D% a1 l" r" x" s7 {, ~) Z* z 42
/ ]# R6 Y3 H9 S9 k" a. k 43 /* Log Output */
' N8 h% _) W5 w1 B4 _' B 44 #define LOG_INFO(format, ...)      \
- `0 G  C2 x) ^: d: v, f 45     do {                           \  F" v8 l6 S( B+ T' \. r! j
46         OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \, S/ j* }; Z( o+ j, w- }& r
47     } while (0)
8 t8 j1 K7 B# z& F. j 48
3 j  a5 h$ I, L6 j1 F! k 49 #define LOG_ERROR(format, ...)     \2 R- l% ~: G- ~/ C6 m7 W$ Y6 R
50     do {                           \; c% g: K2 R& i
51         OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \+ T0 P8 V0 y+ j8 l" E$ E' g
52     } while (0)
0 G. M& Y8 z) s3 J/ g/ C' p 53 ' h; H: l' F1 _
54 #define LOG_DEBUG(format, ...)     \
% z, F# v$ g# f2 C- C) S- D 55     do {                           \
9 K+ ?3 ?0 L3 X5 {: Y% X 56         OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
! [2 L- m+ U: k4 j* K/ e8 I. I4 P 57     } while (0)
- u' V. ?7 H6 j+ p2 | 58 / u/ q0 q! W; p+ H8 H
59 #define LOG_WARN(format, ...)      \
9 B: p0 J& v; b: K% _. ~; m 60     do {                           \
5 ^- n& _5 ^( K8 u! \: H 61         OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
7 z3 w6 v0 _5 O  H8 u 62     } while (0)
9 M( c2 w5 L8 x/ { 63 5 T1 x6 M# Z2 T" G
64 #define LOG_TRACE(format, ...)     \
8 v4 d# j& m$ B% e2 q 65     do {                           \
/ A% v9 o* J- E6 E. _1 n, c. ` 66         OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
1 d% Y. H) X# ?8 b; k+ M& K( |) G 67     } while (0)8 g' l* W" J6 G4 \% [. {7 O
68
, B- z+ y9 N" e3 r1 s' W 69 #define LOG_FATAL(format, ...)     \
7 X- \/ Y! {6 ?/ |; M 70     do {                           \
% ~& J5 J7 r3 _% s* @, R8 R 71         OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \, J, @6 l# u7 J/ u
72         exit(1);                   \# j% y* {& `' l6 |
73     } while (0)6 c5 u% d2 h8 o1 X' T& N
74
0 i8 Q9 Y( O3 i5 ^% p 75 /* Assert */6 [2 e! r' ^6 y. U
76 #define ASSERT(EXP)                \
1 T6 p8 l$ ?$ g! \+ E+ \+ j9 v1 [ 77     do{                            \# h+ ]7 j. @6 A. N1 @
78         if (!(EXP)) {              \0 {/ M4 v# z- W0 x' D# q
79             OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ );                  \
6 E6 M$ `& p, D* m3 S* t/ [- b 80             exit(1);               \
8 v5 s+ U& |/ S; A& y 81         }                          \$ b) g! {# S; B2 O9 X6 }: y' ?
82     } while(0)% u+ d7 ~6 w6 s6 \3 C
83
6 h. u8 N5 x. ^* _) j5 f6 G 84 #endif, k3 u' @) m3 m
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
板凳
发表于 2014-12-4 14:03:10 | 只看该作者
修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏9 w/ ]5 U) ^3 A: J2 b. l( W
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
地板
 楼主| 发表于 2014-12-4 15:21:54 | 只看该作者
tenny 发表于 2014-12-4 14:03
- F# o' Y- G7 t7 E- R修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏

1 ]* _2 }. o/ L' W' G- e你好,是arm这一端的app9 Z3 N$ n( @" j
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
5#
 楼主| 发表于 2014-12-4 15:40:21 | 只看该作者
tenny 发表于 2014-12-4 14:03. x% _& n3 s* M" a7 a
修改 app/log.h 文件里的 OUTPUT_TO_UART1 宏

+ L% j6 \5 X9 {  f' C你好,你是不是将host/app下的log.h和dsp/driver下的log.h和到一块啦,怎么说下你的思路7 N7 p, w* m; z+ I* ~
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
6#
发表于 2014-12-4 15:59:03 | 只看该作者
arm 端的 log 并没有用到 uart1
) u$ e' Q* S2 e. udsp 端的 log 才使用了 uart1
+ i* L& X7 B/ z$ p所以,你需要也只需要修改的是 dsp 子工程的 log.h(新版本的代码 是在 dsp/app/log.h,旧的是在 dsp/driver/log.h)
+ q% Q& U1 T+ R6 {( ]  F
回复 支持 反对

使用道具 举报

8

主题

30

帖子

150

积分

注册会员

Rank: 2

积分
150
7#
 楼主| 发表于 2014-12-4 17:19:24 | 只看该作者
tenny 发表于 2014-12-4 15:59; c" ~" F& j: E; l) B% t
arm 端的 log 并没有用到 uart1
% O4 s! S, d2 ?) {: a9 P4 c; w( Odsp 端的 log 才使用了 uart1
+ J2 J5 p1 {* O. G  e( ?所以,你需要也只需要修改的是 dsp 子工程的  ...
$ [# G$ g9 a( a3 c
那我是不是将你贴出的那段代码,替换DSP/driver下的log.h就可以是吧,/ U( S( L/ `3 ^3 U
然后将#define OUTPUT_TO_UART1 1 换成
; F# W) o7 ]1 D6 ~" `' G4 w* A. P- A#define OUTPUT_TO_UART1 0* f9 p1 r  x; a% M, t7 F. a1 i
  是不是这样
6 `4 {7 ], M! h: [; I/ J8 C
) \; r( t! o0 c" A' \1 b* ?. Z/ _+ a6 B3 g9 j$ |3 O3 m0 y
: g; p# M/ @" w# O
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
8#
发表于 2014-12-5 09:25:09 | 只看该作者
0 l/ Q8 ^0 [0 [) Z$ D6 `( a
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-12 14:40 , Processed in 0.042873 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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