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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。
, j' i) x3 r" I# Y# _7 u. Y我是在DSP初始化这不太明白。& [* f) h. y3 E$ |8 q" h; q
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
- k. O0 {" J# P- [5 T
0 S1 W+ c1 B0 O, D1 Q8 B$ p9 x* f/ I/ w* j' |* U
首先        PSCInit();//UART0使能! M9 c5 K6 {. a( E
void PSCInit(void)" }% J+ ~6 @" {
{. H  v% J( X. X7 c: c
        // 对相应外设模块的使能也可以在 BootLoader 中完成
, }/ O% j' x. j    // 使能 UART0 模块
- @0 l  {) c; M4 r    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);9 a1 j4 K% O: a  a1 x& i. ^1 u0 {; s
}4 m; b' Y: s4 W

9 t7 p3 I' V, o' i5 K& g# l% ]2 q& s4 T! n  V4 k
然后是 双核通信的初始化           AppInit();) ]" ^" X, {0 ]+ x( u4 b5 v
void AppInit(void). n' B* X& I$ g2 [
{
& a" a/ s6 d1 t( X! M3 m+ C    /* Structure to initialize IPC (see Ipc.h for definitions) */+ F# q* I& B# n" q
    struct IPC_cfg ipcCfg = {
+ k3 \1 d( a: T4 g            IPC_DSP0,             /* local processor Id */$ Q2 i$ t! |$ ~
            IPC_ARM_HOST,         /* remote processor Id */( h/ L% Y0 g3 T% c7 `5 Q1 i3 U5 R
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */; Z1 O+ M% w6 U4 n  ?
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */! `2 G' [! d) J
            NUM_MAX_EVENT,        /* maximum number of events to be created */
$ J9 Z' V3 o  ]9 E6 |            &ipcPvMemDsp,         /* local side private IPC memory */
1 W( r; l5 @/ K, v3 Q            &ipcPvMemArm          /* remote side private IPC memory */
7 y7 |/ c2 o+ \( r9 t    };4 ^: |9 l9 w- C, O/ V+ ^& m5 k
    IntDSPINTCInit();
2 l3 A- r; `7 Z: b  K    IPC_init(&ipcCfg);, T$ [: @2 i2 S% f
    IPC_intRegister(C674X_MASK_INT5);
4 t5 n4 j$ r9 J: v3 c    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));6 ]1 h2 t. C+ w$ L$ h
" R8 |1 P2 Q$ ?# w$ M- ^
    /*  Enabling interrupts for DSP C674x CPU */* _1 E: [8 U$ J# c
    IntGlobalEnable();        /* Enable C674x global interrupt */
9 U! K* ^3 Y2 a$ O' a    iAssert (Notify_start()); /* This will enable IPC interrupt */
5 Y! z% c( L  T+ e1 m" Y9 V}' w; _/ Q9 V9 k# T& k

9 E% a* w' v. V, S" H' c2 |0 b然后是  
4 A1 P! [$ }# [/ g2 X0 {            // UART 初始化1 W5 G2 y9 t) M2 q4 h5 e
            UARTInit();. S9 x/ a3 n! b* Y9 R- j! M
/ a, l9 n1 V+ s" T' ~0 u" p
            // UART 中断初始化2 S; D  H% i! t
            UARTInterruptInit();: S( l; q/ f- M! O
* B. G. r  L2 w4 I: b4 t, b  _

9 z! W" ]' s/ {. S- J8 G- R5 R: _void UARTInit(void)% y8 U! f+ \6 }: F$ O( N0 t; R* v8 ?
{: e6 o' x0 p, E. x
        // 配置 UART0 参数) f/ {  u$ w( M2 s
        // 波特率 115200 数据位 8 停止位 1 无校验位
* `& Z4 L/ F& F, m    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200," R. }- |7 \9 x! Z
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);' ?# ?4 `5 e& J2 U: u. _
        // 使能 UART0
  I0 I* ?/ F- L0 e        UARTEnable(SOC_UART_0_REGS);# t3 H4 [# J) L, ?/ J3 E9 F

) |1 }% O5 m0 V5 I) N' n% B    // 使能接收 / 发送 FIFO
, F9 V- @" R: T) w& O3 G% f//    UARTFIFOEnable(SOC_UART_0_REGS);
+ E" h+ t; m! f7 I  N; m) P7 X: L8 {( C. h. ^; P/ j! p
        UARTFIFODisable(SOC_UART_0_REGS);
  y( {8 [; t; O/ z6 z0 r+ X5 f! }- ~( Z
    // 设置 FIFO 级别     接收FIFO的级别
) L/ g0 I4 ?/ y' S2 E//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
: X% P& E1 F' Z  n0 A}) x) A/ @( @  D$ o* O1 T
1 n' \' [: G1 s; V
  Y' {0 q" {6 U2 l4 X
void UARTInterruptInit(void)% ^& T$ n3 Y) i- M
{9 y8 [* h! f* S9 l# s
        IntRegister(C674X_MASK_INT4, UARTIsr);9 Y9 l" J/ d* f- ?* l6 d
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
2 ?0 z& p6 M; H2 m2 B        IntEnable(C674X_MASK_INT4);/ X, ~$ S% R! q4 F8 L3 I

7 ~* Y) X6 ?% x& \* P/ B        // 使能中断
6 X- Y- |4 k5 [        unsigned int intFlags = 0;* m; I9 \: r' D. P
    intFlags |= (UART_INT_LINE_STAT  |  \! H: `  i' J  [' g% p
                 UART_INT_TX_EMPTY |    \
% K6 G% s- q$ U  _, n& v                 UART_INT_RXDATA_CTI);- K" M" g, \% A2 n* [8 _1 @. R
    UARTIntEnable(SOC_UART_0_REGS, intFlags);
- C' S; T6 V# A, k1 b! L}
3 c# }% v* g( M# S, R1 G: Y) ]- }" _9 ?
3 I& ]- {# p0 F( {! }/ A

1 g' u8 t2 R0 v8 U' ivoid UARTIsr()- b, I# D& j6 D: q, ?
{; t+ A3 I2 X. D* s/ s4 F5 m
    static unsigned int length = sizeof(txArray);  o5 @+ c" h; Z& d8 u7 I
    static unsigned int count = 0;7 G  }- \$ @1 N6 K: E
    unsigned int int_id = 0;9 H. \4 F* n! d- a9 Q

2 @3 }, r. d& l! Q3 D/ J$ a/ q- O$ X, p: C+ E
  ^3 W% ]( ^$ \1 P
    // 确定中断源
' R  o7 [' b7 k$ A( E6 m    int_id = UARTIntStatus(SOC_UART_0_REGS);
+ p- H% ]- v; ^, u% f
( E% _: o. g/ N, t3 t    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。& S/ ~+ o5 z  Z0 e  b( s

5 ^# b2 O+ r9 q7 U
! c! Z+ V. u( J, X    // 清除 UART2 系统中断& K" y6 y: W+ \8 L/ r! n
    IntEventClear(SYS_INT_UART0_INT);
) N; h0 E+ L! f- ]8 \) J
, t& N+ v7 r* h( f6 H) W    // 发送中断
7 P, J7 B- p: Y    if(UART_INTID_TX_EMPTY == int_id)+ M1 n3 T1 y$ A5 q1 \  k
    {$ J0 ]( v0 X! G4 X! {. Q
        if(0 < length)2 q  v2 n; q+ n. b6 H
        {) i$ S# {+ ~: W' N7 q" {9 y! C
            // 写一个字节到 THR8 [4 L5 k, `# i5 E' h
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
/ b- u/ h, F( D' H7 D9 y8 b/ K            length--;
- W) s8 g% u% }            count++;
; S( g  T- e8 ]' t0 F        }8 O) E9 o/ H8 M* A7 j! K& E  }
        if(0 == length)
3 W3 I! B' T. P) i/ l0 c) F7 c9 X        {8 r5 T2 e3 g) ]- w4 c8 d
            // 禁用发送中断
% }" _  ^2 ^) g. E            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
2 E) n6 J5 g3 M( U0 i  l* Y        }/ P4 \& w1 h2 P8 l6 F3 X: H9 r3 z
     }5 \# E! ~/ {6 J/ n/ g- d
1 u# f, ]7 A$ C
    // 接收中断$ c: l! v" y3 Z' Z2 m" H" Y+ B
    if(UART_INTID_RX_DATA == int_id)
, H2 i4 s; D! c, @, R9 @    {! s& ?/ w$ D6 D5 {# A
        if(status_a0==0)
5 w+ d  f5 R- N- u) c4 R. ]        {
' C( |2 B( E0 t5 b( ?8 p                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
: j) q* a8 {3 \* C& _- ~                if(a[0]=='#')+ {  f  L# X4 \0 B8 D
                {
6 V7 ~6 V3 r5 x6 F                        status_a0=0x01;" l# M- d. P3 Q! d4 ^
                        status_a1=0x01;/ m, w' k9 f+ O1 s: K2 a
                }
1 Z. L. L+ q$ j7 S4 N" r/ f        }
) m$ R% X. k* G; {+ a        if(status_a1==0x01)+ H/ R- A; N3 c3 O: l1 c
        {
& S4 k& C. r' ?- c% o( o) k& `4 R0 ^                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
0 `  b/ R& l) Z" ]0 t                if(a[1]=='R')* P9 \. c" @; u- _; ~
                {2 @* f+ s7 R1 A' N
                        status_a1=0;
1 G; W1 ]1 \% U9 h+ {. i- M                        status_a2=0x01;( x* R  Z% r3 F: }  ~0 T
                }
. X# }0 D0 T; R$ S. g* ~0 s; M        }
; w' R! t- I& Y3 b/ {, W. X        if(status_a2==0x01)6 B# x  C' k4 r* S5 f
        {
* Y# K4 A( A0 W, ?' v                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
5 T" f% a; C( H) L. s1 |8 M' i                if(a[2]=='A')
+ j" i* V9 N7 M9 e- p2 E  {* k1 Z                {
; X) e. Q. U9 r8 R6 K4 U$ O' [                        status_a2=0;, Y+ S, C6 a% e/ y3 I& s
                        status_a3=0x01;
$ s" m! ]! g6 z' d7 T* _5 \* ?! C* B+ Q                }
$ h0 K! |* L- [6 X: {        }
3 m$ h0 H3 ~; w- w4 `$ }5 `% R2 {        if(status_a3==0x01)
- p" L1 C, ^: A9 ]! z        {
$ j( U  C9 D* S# C                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);1 n0 m: u' b; Z7 y
                if(a[3]=='N')
: d6 H3 v* n# B2 u5 k                {
" k! {+ s$ [. U; {                        status_a3=0;
7 D* j+ w) |. {; ]/ E8 d9 D7 I# {                        status_a4=0x01;. s1 H! f: N- ?% z! @2 w; X7 \% @1 y
                }
3 t$ ~$ X2 w7 h) j5 y        }
2 _! A' d! D# t* B( b. d3 x. B! M        if(status_a4==0x01)4 u; s5 [% l8 z  K. z( u
        {
( X3 \/ R/ k* N                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
) a# Q, e4 U* z- Z$ Z                if(a[4]=='G')9 u% t8 p% N. w" P5 L. R
                {
; O& W& J2 a0 z                        status_a4=0;$ ~4 c1 k1 h/ g; I
                        status_a5=0x01;9 P# l0 b  w! s- k1 j
                }7 o$ t' N* c) I: {
        }1 p; G, g- V& J, p. Y9 [
        if(status_a5==0x01)
: f4 t3 \) {9 G7 N        {7 D6 w" v/ r; y& \% D
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);3 F. ^1 w/ {- W2 W& G1 S
                if(a[5]=='E')
: u: J9 f( i$ I/ f& w( s                {+ K/ b1 e; L7 m6 S" V1 }* o
                        status_a5=0;, N5 g# K' v) ^' m  A! ~* j# J
                        status_OK=0x01;# Y7 C- f) Q' X9 k" l. \
                }! b: l+ i5 P! Z9 f2 ]3 ~
        }4 ?# g4 ?7 J6 y7 H, f
            if(status_OK==0x01)+ J3 m- }2 l) ~2 }; I7 q- f
        {$ u, g5 Z' Y7 X8 R
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
4 T, ~( U5 x, e                        lengthrx++;1 t8 h# _$ P6 ^+ A7 P- U
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)$ s" `) Y8 k7 F
                        {
6 I$ V2 p" X% A& J0 c5 ]                                RecState=0x01;+ g0 z& S$ p' n5 `3 P
                        }
6 s- E8 c( F: u( c7 o         }6 |8 U7 E( B. c
2 ~7 ^3 t7 a( ~. o, \
     }
5 H* Y. u/ K0 K, S* e/ E
; X1 G& N% t3 C' N8 W$ V    // 接收错误
' p0 N4 J( r5 E/ Z' @/ w6 P) K    if(UART_INTID_RX_LINE_STAT == int_id)/ r4 N1 W4 v+ X& }, _3 r
    {* T& k4 n, k, }* C" `! I, Q  T- M
        while(UARTRxErrorGet(SOC_UART_0_REGS))& g2 k- |0 k; a6 {, j
        {
3 R1 z( I# O/ x% }# G# t            // 从 RBR 读一个字节! z( h6 x' j* O$ f5 |! a- G+ r
            UARTCharGetNonBlocking(SOC_UART_0_REGS);2 W! ]; w1 T- r/ }
        }5 R4 o4 ^$ R: H6 w% }' q9 Q
    }* `) S8 E3 ?+ [( F

! h- O  w: F- h3 P9 H5 X( g    return;! `9 o  E, h% e" l1 V- \
}
# L: K* g* T  R2 V6 R# U/ J* Z6 Z, f

+ z, n' U/ O' W" S% p
' @  A: R5 ]  y4 k* M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2096

积分

创龙

Rank: 8Rank: 8

积分
2096
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
7 P$ o6 p4 K9 R5 k# s& w7 z& d# S; u
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。4 u1 X" s+ G+ v6 P* X9 {

! B* f2 e6 V% c$ j9 W要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13. O# W  C0 ~: C# H5 q
hi,
" @! Z/ ^& g" }/ P1 H( h* f- _' y* g
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

7 l6 W6 ]  \  G' d4 |/ @) }8 Cvoid main (void)
' o2 x4 }. q% Z% t7 _9 V{
7 \  A; l& Y' p/ A$ }; W        int i,j;( Q% p2 S# J* o/ ?
    char *str_buf;
2 o( t3 q# z5 g- ]2 C5 ]    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];, L1 U( S2 G- y
        double est_L_b_=0;
) t8 ^1 a5 g# ?% a4 V+ k! {        double est_lambda_b_=0;' V( [0 c' \4 C/ y
        double eul_[3][1]={0};/ ~- _. b3 L7 ?# X  f
        double est_v_eb_e_[3][1]={0};- g* d8 P1 _! [0 q
        double est_C_b_e_[3][3]={0};
, u9 s8 K( w/ z% m0 v    char *qm;
) j% B1 I6 `& n! r( X/ U$ Q' l8 `' X' D    char rec[70];
  B# V, c1 D' J+ [) H( L" y9 z        double L_b=0;
2 r0 h) Z/ R( ]: q        double lambda_b=0;
# h- r! C% ~$ ]9 k2 {        double h_b=0;/ S/ T6 ]4 W# P- [" {* a
        double rate;; N& S) s# T& i) J8 v& B
; W! A. p6 L* p1 E* K* `7 B

/ j4 m' k% h$ C; i        // 外设使能配置
- U4 p5 R7 r5 Q' Y- U8 `3 j% y        PSCInit();. p3 m. y9 b6 F3 s
3 \+ t6 G+ T7 q& z% @
        AppInit();
8 f, C" w' b7 |" Y
/ R3 V1 \; b7 `  W$ n( G        // UART 初始化
! a! y1 d7 a% S3 W        UARTInit();
# n3 d4 ]5 v2 Y) @) I# x/ b0 s) V* r9 t7 Y) x5 w; f
        // UART 中断初始化1 @3 E- {$ m. J2 G
        UARTInterruptInit();
1 a7 E+ ~% y- v  l6 J' J* u1 `0 a. b9 x) c/ Q6 S# w3 J4 }
    evtRcvd = 0;6 c( G6 n/ ]& [# j  s. }; N
    RecState=0;+ D: c6 I5 C1 y9 Z( z
    /* Initialize */6 z1 \& O7 M3 E4 M

  d5 }8 r' C2 p9 J" _! d    printf("DSP subsystem ready\n");! N1 `6 T& r6 [) A2 d- T8 {
+ w: D: V0 o) z/ b1 l
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
+ g: O2 Q6 q- r% p( G3 U& `; ?4 Z2 G' G
for(;;)2 Y4 e0 ]# [2 _8 t7 c- o" t
{
6 s9 E4 o/ J0 t3 A3 W: w1 C" I        if((RecState&0x01)!=0)
9 ]7 E& J7 r! z, l3 q" Q        {
- P" q6 }  K) _                printf("liuzhenxing\n");
' N/ e8 w/ ?2 _$ i/ m* v# j        }
: |" X) H) F8 a1 _4 Q6 h' u- H        else
# g$ {  [% _0 |) Q        {
" u3 D" T5 b' E6 j5 ]; |6 Q       wait_event();& `+ n& f* |/ @) J9 ?2 T/ P
3 }9 n% `/ w4 Y+ Q
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针! Q! ?0 u! k( z6 ?7 L0 r

# p% N3 b* C1 \* G: _! Q8 i           for(i=0;i<60;i++)' O. m% @5 y5 X+ _5 ?! s# Y  p% ^" h) j
           {7 {* {& |. K1 P8 E( d" |7 {/ m5 ?
                    rec=*qm;
- ~! Y3 G- b& l/ {                    qm++;
1 C  a7 W% w/ w; v- i+ z           }: F4 j" m7 s1 f! E8 w  ^: m4 m
6 r$ C/ A7 D0 `/ m6 D! ]
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);1 ?9 x% B+ N, M4 |* q3 ?

  s% r3 X4 T* ]+ k) R; E7 n           L_b=L_b_receive_double;
+ g5 w) f, U! A. B6 S           lambda_b=lambda_b_receive_double;! O* z; U, H. e# G
           h_b=h_b_receive_double;
5 l$ ~4 T" Q0 r. `; j0 Q           for(i=0;i<3;i++)
- R8 Z7 D3 ?5 Q- E                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];
8 w4 M% b" M3 E1 n4 _           for(i=0;i<3;i++)
3 G5 e* f& N2 P# _8 p; E3 x+ _                    for(j=0;j<3;j++)# N" V* V. ]" j
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
  ?) G1 {+ [% e/ M& K$ ?
  U, ^; t1 J) M8 S3 S; `- y                printf("L=%lf\n",L_b);
  W  A+ \3 N# J                printf("lambda=%lf\n",lambda_b);
6 U& @5 p2 U3 [# ?% D4 p* r                printf("h=%lf\n",h_b);
/ o' _  l: R- W/ L! S6 H0 {5 Z' F2 h0 x) \+ g1 [
                for (i=0;i<3;i++)
; o- ~2 ~* C. m+ C% `0 \                        printf("%lf\n",est_v_eb_e_[0]);# J  f0 |% ?( Z2 s6 i+ t( X
                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]);
0 L$ ?# e, q- {- s% H                printf("rate=%lf\n",rate);! W4 b5 D) F/ O! G4 c& y: G

- l2 L) A" x% h; R$ y' H: N                CTM_to_Euler(est_C_b_e_,eul_);
* L4 \0 C. E  P6 K/ |/ h9 t                for (i=0;i<3;i++)
9 w6 `9 o. u6 b* E1 q2 e                        printf("%lf\n",eul_[0]);
) S& e5 V6 k. G                printf("end************************\n\n\n");
; g2 Q! l+ ^: e6 W- Q! _; J3 T* R1 O1 i
                /**********************************************************************/( A' J/ W# R6 u: u

0 G: A: Q& a$ p- |8 T            char flag[4];
( m9 q3 X" M' o5 Y2 K0 Z( T0 I) `; v5 N  E, U1 F" M# {8 x
            flag[3]=0x00;$ r% o# |. c/ @4 F4 d+ R( p6 R5 ^
            flag[2]=0x00;
" H7 z$ X* ?( `$ l3 {5 M            flag[1]=0x00;
$ U% w. m- e8 s            flag[0]=0x01;
* ~* i* i  O3 u" F8 h( s1 f( s1 I6 i0 e. P! _
    /* Allocate I/O buffer and init with string */. J3 S- Y7 M7 I0 y& I1 k
    str_buf = (char *) malloc(80);6 g& I0 `( S# e. R2 B0 r
    str_buf =flag;+ z# ~( C& F* |0 r( Z: L) D% R8 Z

* @, S; n( D$ m' A, q+ S    /* Send buffer to remote CPU */" D  p  z4 ^5 [3 K  q, l
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));: W. Y* E  R4 m6 S4 I' d- O

! Y0 x) n  c$ L6 m    printf((char *) myPayload);
! i2 E9 h& p/ x' u4 [1 F        }& h, j" K- n6 i% f* `9 B) L+ j5 X
}
0 [) w$ H( K. B) _$ \3 K, W; @8 w$ d) x! h
    WAIT_HERE;
) o& P/ `& O& n6 @3 o/ ^' x}$ N1 \$ o) l; K4 z4 u7 I
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:  R1 G/ N) _/ n  j5 Y
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。( }$ R! U# D4 f/ F3 w. Q
然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2096

积分

创龙

Rank: 8Rank: 8

积分
2096
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:546 C! _9 X% \1 q
syslink 的初始化是否成功,notify 通信是否正常了?
/ N- h1 [0 o9 }2 K* q
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
3 X) o# B# T3 I# I0 `' B) y/ N- vsyslink 的初始化是否成功,notify 通信是否正常了?

1 q# U6 F9 z9 [# c9 B我用的是裸机开发的双核通信,用的是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
* {( N3 r  T% b5 C$ ?我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程
2 Z! y1 f6 o4 T3 d* d' n* `$ X" B
建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-3 12:25 , Processed in 0.050912 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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