双核通信的同时需要DSP核通过UART接口读数据 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8569|回复: 10
打印 上一主题 下一主题

双核通信的同时需要DSP核通过UART接口读数据

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。
  g- |6 ~- w8 Q5 @0 \我是在DSP初始化这不太明白。
/ p. R7 M4 Y6 ^+ M1 a. Q3 h9 ]) B初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。& z7 h: k0 |8 L0 r; O) X- h1 a; K
) m, u1 {# B8 z2 Z5 H% o% m

; a' s) q3 `4 V% T, Y' M首先        PSCInit();//UART0使能
' a8 `+ ?3 \8 A  C: b+ pvoid PSCInit(void)& p4 o- |: l, t3 @4 t
{
) `$ v0 Z' |9 M3 n        // 对相应外设模块的使能也可以在 BootLoader 中完成
8 p, b5 F' P$ H1 C( l; b5 [    // 使能 UART0 模块
- h: U$ [+ N$ I6 z+ y0 Z    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
6 M" B. `/ ~9 H. A}
6 E$ O' m0 G/ L- r
+ P: C* g4 f1 v
( x$ X% g7 f- k9 L
然后是 双核通信的初始化           AppInit();
: ^& R5 w9 E. V3 i3 {  H7 ?2 A+ p* Evoid AppInit(void)- d* J6 A" Z, m6 N1 M5 o
{
5 F( G: u9 Q+ Y/ x5 W    /* Structure to initialize IPC (see Ipc.h for definitions) */
* R4 i* \  k& ^3 G! v    struct IPC_cfg ipcCfg = {
3 Y) O* m+ w8 c& @$ m            IPC_DSP0,             /* local processor Id */* H) _! t+ N; C/ F( z$ g9 c
            IPC_ARM_HOST,         /* remote processor Id */
9 y: @7 e! P7 A. N3 L* W* E; M            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */) t- Z5 i$ x0 U5 V. B
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */: _6 r8 x2 a- P; ?% p
            NUM_MAX_EVENT,        /* maximum number of events to be created */4 A! L0 q& S% z9 `$ W
            &ipcPvMemDsp,         /* local side private IPC memory */
1 D2 D! {: \/ q) N! G, E3 f            &ipcPvMemArm          /* remote side private IPC memory */
/ |! t2 T9 f; j2 G" _. T    };
' H6 p6 M' u% d- R! k    IntDSPINTCInit();# s! b4 M1 S/ Y! v" Q# N, q) X1 {- W
    IPC_init(&ipcCfg);$ l4 W9 `/ ], ~
    IPC_intRegister(C674X_MASK_INT5);$ h. O7 V4 u0 m5 a9 L9 n3 H
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));. }- H9 H: ?; o4 C# I
. q, u& V7 I% n8 O. ^' J: t
    /*  Enabling interrupts for DSP C674x CPU */* ?" C( S: p& J, \$ ?
    IntGlobalEnable();        /* Enable C674x global interrupt */. V; J% y% X2 p% K* e" m! X
    iAssert (Notify_start()); /* This will enable IPC interrupt */
0 O( Z# [3 W4 h}
  C5 P4 {2 q1 b

+ r  e( f7 K% T7 Y% t' y然后是  & N! k9 P( q3 W( C% ^5 K
            // UART 初始化
% E% g& B) d* A: D            UARTInit();
8 S5 H& x/ e% k7 n$ v" S8 }+ P) s8 Q/ g7 t
            // UART 中断初始化
# e+ K) G- |. }' @) ^! a            UARTInterruptInit();
/ [% d& q0 l! {1 y

" v2 E) s+ T: u9 q$ }9 `. M- h) B1 y  {
void UARTInit(void)+ a4 M# d! \9 |4 \2 S. x4 F
{
/ s) ~- ?5 P& ]8 y- y; z4 ^. h4 i: K        // 配置 UART0 参数
; T9 g$ r: Z2 i/ H        // 波特率 115200 数据位 8 停止位 1 无校验位
# h9 S8 g2 f9 }, o- R, f    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,
. {* ?) g8 }/ ?. M% l1 E5 ^( n                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);. b8 J3 {* S( e
        // 使能 UART0; _7 C" C! M- F9 B7 Y; v
        UARTEnable(SOC_UART_0_REGS);
* Z2 x) Y' V: q+ f/ y2 Q; _/ O3 j4 @* g0 s3 }
    // 使能接收 / 发送 FIFO
8 W2 ?1 b3 _( Q. N//    UARTFIFOEnable(SOC_UART_0_REGS);
1 Y* n) N7 v  I* \4 V0 L+ q1 ^# @( Y1 \* H5 P
        UARTFIFODisable(SOC_UART_0_REGS);
/ M" T  W' Q6 M; X& [" T( R" F, f1 k$ y& h2 r
    // 设置 FIFO 级别     接收FIFO的级别
- I, x5 _0 ^0 o% m) z//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
1 ~) j8 U& l( k. `}
( m1 e$ Y% y& {8 [% G( e9 h

/ I, c/ A( q) M* r4 T3 n# a9 Y' U* x1 N6 V0 j) m
void UARTInterruptInit(void)9 p# a  ]1 V4 x. Z0 |4 a& w
{9 u3 A9 a5 H2 q: C
        IntRegister(C674X_MASK_INT4, UARTIsr);6 r& L. W1 }; G8 G7 g9 [8 R
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);  g% ?% L0 K: O0 m+ i
        IntEnable(C674X_MASK_INT4);1 `" `& [+ G2 M

9 M4 P8 t5 q( _4 M* S; p8 d        // 使能中断
' o1 @, \8 K7 k9 G        unsigned int intFlags = 0;
% D3 e8 Q: o) _6 I1 s, N" `( F( k: G    intFlags |= (UART_INT_LINE_STAT  |  \
; h' n! w, {7 @, D1 D                 UART_INT_TX_EMPTY |    \
) j2 Y+ h. \1 `. b6 e& J0 w7 l                 UART_INT_RXDATA_CTI);4 r1 u7 \7 o. g$ `) K: r/ P
    UARTIntEnable(SOC_UART_0_REGS, intFlags);
" N" j& j* {3 g6 k5 W! f}
5 l7 ?: P" N- N

! A( d5 U% K. Z( Z3 f: D% \- z5 _: P& z
void UARTIsr()% [! G; T( R7 s& r6 q, t& O8 B
{
" d( @" Q7 i* ^" s    static unsigned int length = sizeof(txArray);; J$ l, T2 A* m, T; k. v
    static unsigned int count = 0;. K3 Z/ Q( v: z
    unsigned int int_id = 0;8 h) D5 j1 h( v  U1 q6 D: w
" @: i2 M$ C& }/ [; n

$ s& J/ s5 o  _6 S6 y8 M- S- r6 ?3 W3 `& v$ `8 {  ]
    // 确定中断源  s+ C# Y6 f+ N  v4 v
    int_id = UARTIntStatus(SOC_UART_0_REGS);& y1 w% w$ h  w

' _% E4 }  R5 f+ k    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
9 Q* J0 ]; I' t% Q3 O( O  |, C: f
; u. b* ?" R1 D, r* }8 X" U& K: {7 }6 i& B0 ?
    // 清除 UART2 系统中断
6 Z! `  n' e5 S: E    IntEventClear(SYS_INT_UART0_INT);% ?) M8 C! h9 R& d

, @& B3 |  @4 u! J6 m* V! P1 S    // 发送中断! F5 P9 i; r9 c5 s3 n4 y6 h
    if(UART_INTID_TX_EMPTY == int_id)4 R& c: d2 V) q) k4 L
    {8 n  B8 b' `5 Q+ ?* d: k. ~
        if(0 < length)
+ W# w: h7 J% S9 l% q; e4 U        {1 D9 s: |) X3 @; V8 f" E
            // 写一个字节到 THR
  [5 W* t3 Q/ i            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
: Z1 U2 F1 a0 W# p5 v            length--;
* Z" s# P6 ]# v$ E1 q8 ]% c            count++;! n* F& H; K2 e3 |$ o+ P2 `
        }
# {  N5 s/ G5 Z& d$ _, K# ^        if(0 == length)
7 b) l% V' ^* h, P        {4 w1 `0 b5 w7 H/ m
            // 禁用发送中断
* K% [5 A& w* t$ N& F            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
. b  z" q/ n. i, H- B4 Q        }
1 V( s: n" H  w7 e" A     }$ c8 n7 M8 J- s: A3 b+ ~

! U) x3 q' f+ Y9 M    // 接收中断& L8 G9 |% m2 |9 F' T3 Q2 I+ n
    if(UART_INTID_RX_DATA == int_id)2 e1 f5 ?1 M- T0 B$ _
    {- F3 S1 E, U& q- O6 U9 l
        if(status_a0==0)6 y$ L0 H6 ~% {; i- C! v
        {: ?- d, P! \' L- M2 E
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
& i" \$ r: J% |& b                if(a[0]=='#')
2 T& [) A8 t+ V* X                {+ G. p7 z  `) X
                        status_a0=0x01;  U5 L3 {% k  u/ P0 b; ^% B
                        status_a1=0x01;
) B2 f) N/ F! r                }9 u" i  U7 Z6 ]5 T8 _/ E" c# H7 ^
        }. C6 w- ?- ]8 m# J7 K
        if(status_a1==0x01)  t: }7 o9 Z0 q+ v  ]1 I& {8 D( m
        {; n+ o0 c: e; ]
                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);) v( u# `& B+ L! h+ P9 Z3 I; s
                if(a[1]=='R')* q! Y" T) c2 t) m. [# h- u
                {4 f* Y3 B" h0 p* B) O$ u9 m% I" {+ m
                        status_a1=0;* l5 m' H7 _7 p/ N  T) ^2 P3 o5 t
                        status_a2=0x01;9 o7 V& ~& H0 z+ m
                }
: l9 Y8 ^3 {) o3 F1 A* b* w$ i+ {        }
8 U$ g; b: d% v4 h8 |        if(status_a2==0x01)1 A/ S3 I3 V  E: T& H! [5 b
        {. ~" x/ D- M2 P) c
                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);7 k3 ]: I9 l+ c5 \2 g& @
                if(a[2]=='A')
: @% y" }5 j3 r; u7 {% ~/ t                {
* S9 ^+ [( |) n! v                        status_a2=0;( P/ k& `" A: p/ j$ N7 w  x
                        status_a3=0x01;. F! X) W' j& g
                }3 A6 m/ f$ d2 g9 m7 y* R
        }
- C8 A4 X( A: V5 N        if(status_a3==0x01)/ T- R" P# d  u9 }6 A6 o
        {
7 P, }# R( X5 h* |$ R                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);" X+ t+ y) z* {3 o
                if(a[3]=='N')
$ ]( U. S2 o6 U- t. _                {
$ {. @1 q( K! N( `3 U                        status_a3=0;# x  f. y) b# k1 w% B3 ^& S; J
                        status_a4=0x01;
; X/ D" c! |5 f0 E* |+ T' }; P; H                }4 I# Q& F+ e8 A4 M& M6 g
        }
5 {9 k* H& ?3 Z- ]! J        if(status_a4==0x01)
6 g6 S3 h9 L4 C. P0 ?3 k4 Z' ?        {3 s  e3 w. F# ^
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);4 a6 Y8 K7 ]- N: E* l8 C& K8 U
                if(a[4]=='G')* O0 r+ [. f7 i8 V8 w
                {
7 e, p6 D+ W: C, X: q9 {                        status_a4=0;  o& W  ]# s/ h" {
                        status_a5=0x01;
, B# A; p3 g" S% R$ m                }
6 N4 L; `/ Z- y7 Q0 M- g( ?. @3 `        }
* h' G: r* S  t* D; R) {        if(status_a5==0x01)
( H& j1 y, a  v$ w        {
4 W& ?' o7 j1 U                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
' c' Z& o- V4 b. J, b& I                if(a[5]=='E')
0 B6 i' F( \# J$ f- u/ j                {* K# h* c8 {  @8 c+ ~6 v
                        status_a5=0;# q$ b& C0 I, W; X
                        status_OK=0x01;, r; N, P: q) d# e0 O
                }! B6 x' I$ J% N1 }( F9 ^
        }' o0 D4 `& u% J0 B
            if(status_OK==0x01)4 s0 C  ?1 \$ X5 v6 @+ a! g  ~+ B
        {  r# q' [6 M2 X' m
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
, v" w' F: z& L3 H! w                        lengthrx++;! x7 }, b6 r1 H) L
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)5 N8 \) C6 \7 |& I& Q( Y
                        {9 P) g; `; a( e" F
                                RecState=0x01;
" b7 V$ Q6 s' s- u' {                        }1 R0 |! Z  g% a
         }
" B9 V, y  P, [0 |0 s1 G' @* o2 y6 ], x$ g% V6 X
     }
6 u- z( V6 w1 W8 @- }5 U
, R4 x1 b8 j2 `    // 接收错误
" G1 {4 G& d7 k- i0 }( W    if(UART_INTID_RX_LINE_STAT == int_id)
5 ~% T- M' _4 M5 C! \    {
* B: Y: T. f2 H! m        while(UARTRxErrorGet(SOC_UART_0_REGS))0 f; {5 w8 w/ ]" h2 M# P9 e
        {  u$ h2 A) F1 j. \
            // 从 RBR 读一个字节2 y- Q9 T7 V. ]' k! |8 h$ i, ^8 I
            UARTCharGetNonBlocking(SOC_UART_0_REGS);
/ K# U' Y) ]7 R$ _; i) I2 ]- R: y  U        }. B* a6 @! t( ~
    }, B4 ^$ l/ S1 T; M- m
+ e; M. {1 e  @1 u9 E
    return;
) g5 ~/ u, C. e8 Y0 X}' n2 A# j: V! X' I4 C7 w/ I; `& g
% ]3 F" ]& x1 `, ?' Y2 M2 j3 W

- q  R- m, r# e) ~& B- {/ E0 A5 s7 V6 f+ N2 _' _7 P- g% P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2091

积分

创龙

Rank: 8Rank: 8

积分
2091
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,9 O0 L+ ~7 p' u8 x+ q. ^) ~+ p- Z

- ?4 P& b6 S! v2 f  e9 kUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。. J$ _: x$ q. q) P2 D/ d
7 t6 ]! Y$ [" V7 E! P# J( T$ Z
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13; j$ T3 `6 @' f: D  K! S
hi,% G9 u( }! ^2 F& j7 v
% i) n7 p! W6 C' \% r
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
. s: c0 ~5 c- a) q; b# C
void main (void)
) X/ J/ L2 b* H! o' ?{
) n' I) `7 p' }# U- K        int i,j;' y) Q7 W- h+ t; a) V( M" p
    char *str_buf;
; ^* S' ?* |" U, Z    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
' I5 c* F8 n# D' @9 S        double est_L_b_=0;
! M8 S* e% R' j* w0 Z4 X9 @5 v        double est_lambda_b_=0;
: I9 H) {9 [) X        double eul_[3][1]={0};3 \3 s- ^. I) v; w
        double est_v_eb_e_[3][1]={0};+ G. f" g# w  z2 d5 r; |9 J
        double est_C_b_e_[3][3]={0};
& |8 t, r: i4 N% p1 m( B. r    char *qm;% l/ Y8 X* S$ h( H( w
    char rec[70];
. u* ~! y  i3 \& i# U6 m        double L_b=0;
& W4 Z/ ~. \& j' Z        double lambda_b=0;
2 m3 P- ?8 `% c! L  }! l* R" ~! k        double h_b=0;' e8 E+ e# G# a5 Q9 {. [$ o
        double rate;
' D2 p2 \+ ]. o- p8 ?$ F; h8 O$ o5 R* j9 N
9 v% I& q3 q, x0 p
        // 外设使能配置! Y, p% O1 o* q
        PSCInit();* ^$ A4 B0 ^1 q+ g1 X* ~# i

2 {9 ~; E+ ^/ V, X: R: H8 e/ B        AppInit();9 z% o& @) g! e8 v5 [

8 a% w- F4 m. L) z; K# t& |        // UART 初始化
6 Y# Y  E- r8 W        UARTInit();
7 x4 A7 V5 k! o* f" t4 j3 A& i+ F; `4 S( F" x& ?0 L2 G
        // UART 中断初始化4 W- B) ^! S9 S& x+ S  X$ t  t4 I0 a. P
        UARTInterruptInit();0 K  B! f0 k( _# I0 r7 ]/ L9 R

8 V3 Z# d3 a4 ?9 {0 w    evtRcvd = 0;/ Y; _" G4 O/ S0 A
    RecState=0;
. N* L9 [% \# K  X- B2 W    /* Initialize */- m5 J9 u! t1 o$ K
% Z! f  l' Z7 K: w( x7 o- H) k, C
    printf("DSP subsystem ready\n");
) t$ F9 c1 O) x
. z6 X% d4 J! k9 r    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
, d1 A# i& W$ y) E
' I2 J  j: R5 j7 u3 A% Q2 I& Vfor(;;); s8 q4 G6 H. J9 ~
{6 p2 i# R1 H: t
        if((RecState&0x01)!=0)
5 T( v3 o2 j. Q) M" G7 }        {
# h: |1 L  ]7 q1 M) V( a( ~" h6 ~                printf("liuzhenxing\n");  _7 l& Q0 R9 n; Q9 Z& Q" L0 c
        }
$ r. l  M! S  N; n# [4 G        else- N3 S9 M+ J" \, b  `9 t
        {4 b" K4 ~& w: R2 t% H' C
       wait_event();
5 a: D  N' T4 J" S% c. m; J& O9 G# L+ {- _
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
; ^1 P: z& v# U! C$ f, D) \) _; N
3 r2 {# a- c( `( ^" j) q' U6 H           for(i=0;i<60;i++)  b. s: d8 Q7 ^) U4 ^
           {' B$ W" c, [  E9 H
                    rec=*qm;! |. k0 z: E" c
                    qm++;
+ s6 l0 E% p2 E, u- o           }
  I8 J2 i; G& a( L' B
: A* V  t. d  \( L: t  |           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
% `+ [( w) @6 `$ {' t
6 v' I# ^* i: M7 |/ d4 O: ^           L_b=L_b_receive_double;
! r# N0 M* N; i7 S           lambda_b=lambda_b_receive_double;
6 v, c& @& n2 E$ p4 Y& u, v           h_b=h_b_receive_double;
' \2 @! u6 K9 U1 M* [- ^           for(i=0;i<3;i++)' Y3 E& {( {6 n% M- w- V) U
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];3 V, D" d2 E' ^1 ^
           for(i=0;i<3;i++)
) z, B( X* S6 _                    for(j=0;j<3;j++)
1 D2 j; R" f: z6 k7 L( c9 R* m                 est_C_b_e_[j]=est_C_b_e_receive_double[j];7 I, C( s6 E% \0 G/ F( `, \

8 f7 J2 a& _- q: e( X* ?                printf("L=%lf\n",L_b);+ C6 j) z! u  l* l) C7 A6 Z( N% R
                printf("lambda=%lf\n",lambda_b);; n2 C1 \$ p6 {4 D, P! t
                printf("h=%lf\n",h_b);
* Q: Z; C0 z" p$ H9 z( B
& ~/ q. ?6 E" d                for (i=0;i<3;i++)8 T0 e: ~! w& u( g) ?. R# U% u+ d8 t
                        printf("%lf\n",est_v_eb_e_[0]);
' M" h  l2 v# j* A                rate=sqrt(est_v_eb_e_[0][0]*est_v_eb_e_[0][0]+est_v_eb_e_[1][0]*est_v_eb_e_[1][0]+est_v_eb_e_[2][0]*est_v_eb_e_[2][0]);
2 i% N. @) ~2 ?* S) u) q                printf("rate=%lf\n",rate);6 H2 ~, A$ V" n+ w# l

0 V- p, g! f% F1 L9 |/ _& q9 |2 }7 [                CTM_to_Euler(est_C_b_e_,eul_);
8 l( A# K+ Z' _! F# U% f6 C3 u                for (i=0;i<3;i++)5 P3 [' b1 u2 o
                        printf("%lf\n",eul_[0]);' ^; b7 G9 a1 D, k5 G5 G; r
                printf("end************************\n\n\n");
3 H, @' ^% l" s2 G& c  u; p5 W/ h' W6 @' V: f3 e
                /**********************************************************************/% S& B  [2 U# p+ N& |9 N+ n
5 e! B' v  _6 q& N, T
            char flag[4];8 H: K! n7 V& \, P( }* o" `
; @7 B2 D( R" b* g; M6 G, S
            flag[3]=0x00;, z5 ~/ \/ f/ q) }. r
            flag[2]=0x00;+ [: e3 c; @7 y7 E. E3 W5 G
            flag[1]=0x00;: _1 b; G  S; h" b& R
            flag[0]=0x01;" [5 C, a( d/ w5 Y* K
6 A% a: G5 y! c; ~4 t, N
    /* Allocate I/O buffer and init with string */$ M7 d+ m2 u( K4 A9 A
    str_buf = (char *) malloc(80);  k% t+ G% ^: z# a- A
    str_buf =flag;
! Q5 T$ T1 v, ^  a4 n/ B
  }: B; _/ F8 I    /* Send buffer to remote CPU */$ a; \2 |/ g$ Y8 ^' T0 O7 {9 r
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));
1 s" v2 R1 t& g' M, o8 i6 ^. [  h
# b3 F2 F' g2 K! z  ^+ ~, e0 ~' ?! N    printf((char *) myPayload);
0 Z; g; b, n! l( |' S. o% k        }" p! t. G  ?0 v3 k5 p6 l1 x: r& o
}, P0 E$ R& D9 o6 ]

+ A9 |6 S' e% B    WAIT_HERE;
; F4 ^" f) _' u) x8 p3 S- ^* k}9 \' D" W4 c  c9 U' b' p6 b# g
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
地板
 楼主| 发表于 2016-8-17 11:34:30 | 只看该作者
上面的关于UART的子程序,在一楼
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
5#
 楼主| 发表于 2016-8-17 11:37:05 | 只看该作者
我说一下调试的情况:
# X7 l8 S# G/ S( Z我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。) o8 S! I5 g- y& v" x
然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
6#
 楼主| 发表于 2016-8-17 11:40:55 | 只看该作者
我现在就是需要接收数据,基本上不用发送数据,所以不用管发送数据的。
回复 支持 反对

使用道具 举报

0

主题

113

帖子

2091

积分

创龙

Rank: 8Rank: 8

积分
2091
7#
发表于 2016-8-17 11:54:54 | 只看该作者
syslink 的初始化是否成功,notify 通信是否正常了?
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
8#
 楼主| 发表于 2016-8-17 11:57:43 | 只看该作者
Jackindata 发表于 2016-8-17 11:545 I4 b0 j1 S1 G! p, J
syslink 的初始化是否成功,notify 通信是否正常了?
0 C: d8 o3 r9 h- ^8 u& W* J, b; L
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54; p# c5 J& k5 q' S
syslink 的初始化是否成功,notify 通信是否正常了?

3 Y" ~  O, H# h6 N6 T我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

点评

建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确  详情 回复 发表于 2016-8-18 11:34
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
10#
发表于 2016-8-18 11:34:54 | 只看该作者
star_niubi 发表于 2016-8-17 16:20
. @. f& b) |/ O; |我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程
0 W% F6 m2 s- ]4 {% K1 f
建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-18 04:32 , Processed in 0.049730 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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