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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。2 h) P7 b. D" B0 d. @6 q, U* \) a# E
我是在DSP初始化这不太明白。) ]( Z% A* [3 S3 X' H, S
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。, r( l# f9 }% M; t* @3 J* ~+ B

; _3 J; Q& Q  x, y/ N2 N
, m* J! ]( X" h- x. ^( ?( U首先        PSCInit();//UART0使能
  ?0 J/ q' D! dvoid PSCInit(void)6 [; R) Z: Z5 w$ {7 x* i% S
{
$ Z9 ]0 l3 N8 f; o: H. m        // 对相应外设模块的使能也可以在 BootLoader 中完成
) N2 h/ G: T6 z3 J! ?# Y! _% H& D    // 使能 UART0 模块
% V$ h- @  J% V" B# C  K    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
* F" C0 `& C+ r, J% W! @}
  r8 X" F0 U8 }( z/ x& f1 H
  E) a+ ~6 i! ?

% t" s1 }2 s( B7 D然后是 双核通信的初始化           AppInit();/ D/ \, G( T: y4 _
void AppInit(void)
# Z. G9 t5 }' b0 w$ r{
2 b- Q7 h6 g0 v: C& x    /* Structure to initialize IPC (see Ipc.h for definitions) */
/ K7 z2 x7 J' \8 t+ z3 ]4 P6 I    struct IPC_cfg ipcCfg = {$ B- @' Q3 D) m: x+ P. g
            IPC_DSP0,             /* local processor Id */  `: t( {! S) Y# I, L& F
            IPC_ARM_HOST,         /* remote processor Id *// p. T/ k8 f6 N, y" f& V
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
# j' a  W7 g% ]( y, z3 a( T- f            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */6 l3 b; w3 W- K  Z) w: G# w' c# u
            NUM_MAX_EVENT,        /* maximum number of events to be created */
% X; _2 N4 F, p2 w            &ipcPvMemDsp,         /* local side private IPC memory */
. o* j, P! Y( H9 Y            &ipcPvMemArm          /* remote side private IPC memory */  [2 I& [( G5 c  f, r7 j
    };6 k& U, V* q) }/ e. d' i( \4 w
    IntDSPINTCInit();5 i1 z+ v8 _+ `/ m7 N
    IPC_init(&ipcCfg);6 J7 z7 I8 E8 q: A! Q$ N
    IPC_intRegister(C674X_MASK_INT5);
6 a1 a9 e/ t* \/ j7 p/ u- w    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));- P8 k/ Z9 I  R  x# k/ l  h

* ?0 q( U0 \2 Z1 s" k. ~$ u3 J    /*  Enabling interrupts for DSP C674x CPU */: A) a# i' F4 R0 I
    IntGlobalEnable();        /* Enable C674x global interrupt */
: S9 j+ s- A7 D2 h    iAssert (Notify_start()); /* This will enable IPC interrupt */7 L$ j% {+ S; n9 r
}: E1 Q2 Y+ J' g7 K4 q
/ P, O3 f8 X! v6 f
然后是  
+ a, j4 h7 K; Q% o, f1 y. ]            // UART 初始化2 c9 ?) f' {6 m- r% O9 B* e
            UARTInit();0 f9 N/ X& ]4 S$ I  O2 S$ ]0 v8 ]

2 ]! O/ ~+ W/ Z; n            // UART 中断初始化
1 C/ z- O7 E* I            UARTInterruptInit();
/ m/ k7 z, [& Y5 p+ x1 @
0 V+ N6 r% v* y- D2 z

3 p+ X# N# N6 H6 O& }! Rvoid UARTInit(void)
" p8 j7 L  B9 [: x8 j% W1 }) p{
  P8 Y" {* ^0 {9 H6 q' t        // 配置 UART0 参数/ O3 ?, K) ^+ d+ K2 J2 S' j) F
        // 波特率 115200 数据位 8 停止位 1 无校验位! B! P8 I/ _9 C3 D$ {+ j- u
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,) g4 a4 E# Y+ `; u. a
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);- b5 N1 B( L1 G4 e- _
        // 使能 UART0
1 W1 r4 n. a4 x        UARTEnable(SOC_UART_0_REGS);
/ p) ~  o/ B: n2 p9 w) A. n6 j# b. e' A% F& l  r
    // 使能接收 / 发送 FIFO
" _8 o8 d$ _  l; e- S" z! l//    UARTFIFOEnable(SOC_UART_0_REGS);
* z; Y* i1 ^9 u4 |$ S- j1 m
; [  t$ ^# w4 ?# c2 c$ {9 N7 _8 ~        UARTFIFODisable(SOC_UART_0_REGS);8 |' e6 s: h2 x1 f

; j8 l/ e* e, l% }+ b# L    // 设置 FIFO 级别     接收FIFO的级别
2 I$ C  M" U5 _. f//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);% P' {: d5 t# g6 v4 F1 h
}4 D$ I% f* q- v$ T1 \

, l# w" _8 F$ r) b/ n/ y% ]& [7 h% _6 M+ }8 i0 K( r1 e, w
void UARTInterruptInit(void)$ m$ q' P; `% ?" `7 G- z& W
{
) j, K- q4 y( T1 J2 H        IntRegister(C674X_MASK_INT4, UARTIsr);
8 Q- y# q1 V% i8 h* s- r  J$ ~        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);' W" w4 _3 x- m6 }8 ^/ W$ \
        IntEnable(C674X_MASK_INT4);  H; f/ H; ?8 E. u
+ X: q9 Q8 `2 C$ v: `
        // 使能中断
8 I( v2 J" W+ i0 p        unsigned int intFlags = 0;
% O# G  y) G+ n! O. x/ x    intFlags |= (UART_INT_LINE_STAT  |  \
9 ~2 _  E1 d7 n; D0 Z7 r4 ]                 UART_INT_TX_EMPTY |    \
; ^; C1 `0 j, r. Y                 UART_INT_RXDATA_CTI);- r* G1 ~4 w6 E) ?  y4 _
    UARTIntEnable(SOC_UART_0_REGS, intFlags);
2 \1 h! i" W( e" `3 U4 |7 E3 ~+ C}) k1 F/ _! m7 d: U0 Q8 }
7 j$ n7 Y0 C7 z3 _* h

$ m6 G+ H- u3 A7 Svoid UARTIsr()
, V1 X, ]) n; ^6 [: U1 f) ~{
: ]& I; \- s* n1 I, j: C    static unsigned int length = sizeof(txArray);' R" l6 ]+ n; D5 d6 \& O2 S
    static unsigned int count = 0;7 R" R9 v, Z6 r( `0 F6 S- E
    unsigned int int_id = 0;
; Q$ w8 N( P8 c, q! K  h6 m6 _
0 y/ N& b; T+ m9 P2 {3 C1 C+ X" }3 N8 `

) x$ ]% v8 }1 |" J  B2 [$ q) e    // 确定中断源, J: X! @) F2 z# K+ T# r3 f3 l: f
    int_id = UARTIntStatus(SOC_UART_0_REGS);
, F8 s2 v! N# G, j, j8 o
& X, s0 a8 b: @& R$ x/ |    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。3 X! ~: C) v! ^" }6 T

# ^5 h( m9 i" p, ~: L" a3 I# H2 C0 v& d: i
    // 清除 UART2 系统中断9 H2 I) \: o, Z6 W, ?8 k4 h" k; U
    IntEventClear(SYS_INT_UART0_INT);) ^. I  a( }0 _* L9 z
4 u+ N! B$ O8 {
    // 发送中断
5 |6 g" Z- a$ J/ h) T" \  ~    if(UART_INTID_TX_EMPTY == int_id)
( t" E$ ?/ @) u# J% _    {
# a) O+ f7 v" m, \7 I. y        if(0 < length)% a$ @2 d# f0 o% f, B4 B7 i
        {6 {1 f( h; R; @- O, ?0 J
            // 写一个字节到 THR
3 y/ n: b6 X# h, X# m3 E            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);! O9 e8 @, n; y. E: Q
            length--;
% H. X) d0 e3 O1 ~8 Y- a            count++;
6 t" ?& H: q( b. D8 t4 X, q4 V        }* u! z7 G8 L, F0 M
        if(0 == length)
5 x% n+ q: J# t3 q        {/ v9 G% h0 \8 U
            // 禁用发送中断
. ^, M; T! x" q* O; b- m            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);2 K0 b: t1 h1 ]- d$ S
        }
/ t+ p! q* ?, ]5 D% y     }
; y2 [1 M; g2 f- Y! |$ x$ l4 O0 Z- y$ n) T! d2 e
    // 接收中断
6 p9 `( i" D  r1 ^; i    if(UART_INTID_RX_DATA == int_id)1 G" Q& P( {% h: |( E: u7 M% A
    {
8 `2 A' v$ ^9 N: b        if(status_a0==0)5 U9 ^" ~7 u& D; J9 S1 D
        {/ i; [- b3 T3 z: e/ \/ \, @. B! W
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
8 K3 K- S6 B8 ?9 N' U6 T: m3 p                if(a[0]=='#')
' d  L5 F% I' ?/ V5 X# f0 J7 y- B                {
4 Y' J! k, ^+ i6 f: u                        status_a0=0x01;  ~. Y' I( ^( s8 ~3 q& @6 @9 ^# T  S( l
                        status_a1=0x01;
$ a+ z3 c0 s: l' o/ b                }/ Q! Z( o) a* p
        }
: q+ Y& L* `/ x7 k# d' y        if(status_a1==0x01)3 m3 \3 ?& ~, P/ O. U: w& d0 J" s
        {
9 U5 b6 x/ c2 A8 n                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
. m7 o" u8 \. K' R( N) ]$ D                if(a[1]=='R')9 M: u4 r4 N( ?3 N  S: E# w& t9 F! v( I
                {
1 F% ~8 f% r& V( a9 u: y                        status_a1=0;, q& Q' V2 O8 M: N" U# g5 o; ]) y" s
                        status_a2=0x01;
0 k" w1 B' c& z9 R5 v8 |                }
5 E$ I' `5 A( v, R/ ]4 I4 o        }  X" ]0 g! d) U- q
        if(status_a2==0x01)
2 J* d4 x2 N8 u8 b; U" y        {
2 q6 }; S$ P5 j                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);4 a( n  ^. x# x" \
                if(a[2]=='A')
7 E! _% |% T! A                {
) M0 h% K' s) e; s                        status_a2=0;
9 o0 t/ w1 S" |# H                        status_a3=0x01;3 J1 O/ [% Y1 T5 B+ z
                }$ E; r  o( Z7 H0 r" U  ]  e
        }& u# H1 V$ s% f& O
        if(status_a3==0x01)
9 n; F% j* S; g) S$ d# A2 i        {7 x: A( W- t( g3 e" `/ ^
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
1 C( s& A3 z; E                if(a[3]=='N')
- A' c" a8 [. g; V4 B$ D! \                {  B/ ^4 e/ ~+ j- f
                        status_a3=0;8 H0 D" y$ q5 G9 S& P# R
                        status_a4=0x01;
8 U# F; z$ m# r$ F. ?2 Q' t                }
9 G' m; t1 o* N" S& f- D        }1 n$ ~" \1 T# D' R6 v- t" @& k9 b
        if(status_a4==0x01)
. L: c8 E( I  L# Q- e        {# V: r7 z7 L8 w  t6 a
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);) R3 b+ J3 c4 |
                if(a[4]=='G')3 N5 J2 ]7 e7 z6 d: I
                {
1 Q; b3 j9 _) k( e2 ^                        status_a4=0;
; r# j: W' d3 O6 Y0 Q                        status_a5=0x01;
$ D" f$ x2 Z  P) J& C; @1 p  `                }$ K$ ~7 `  r& z
        }6 H1 ?1 x, g4 h) [& x- q, j
        if(status_a5==0x01)
. ]/ m- E  N) ~2 }        {
! K8 m2 N& O' G5 h  l% Q" Y                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
7 H6 b  ^( L6 a8 u                if(a[5]=='E')/ F9 R8 }7 d" _: [! n
                {
7 C; ~  Y2 \: d  _/ d* L  e' x                        status_a5=0;+ F# l0 p9 c' X  f( G5 p, l# F
                        status_OK=0x01;
9 @& \/ K" [# R                }
3 E% o3 d: q% M' F        }
- {; R  U( k: y+ ]* O2 A# {            if(status_OK==0x01)
5 s- g1 W3 C, w/ s        {
( d. s" T9 L5 e5 y5 c2 Q                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
7 L6 u% F' a4 @. m1 v8 b                        lengthrx++;; e! F7 k' ^" N" N6 S' L9 v% u
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
; F$ \# A" s% `: Q& O, z8 O                        {
$ [, C. e# `' C9 K$ }$ L( ^/ }. f                                RecState=0x01;
. h' H$ f0 x4 ^6 {                        }
# Y! m2 J( m! q8 R' V6 ?' p0 K         }$ m* Z+ y: n& L4 l8 L) {
. _& V8 J3 d$ l, ~% j8 N
     }7 V' [  P3 x! J0 E

& n' y3 T1 f4 ~: B$ x3 T    // 接收错误
, E7 B: E' I; b2 ?# @    if(UART_INTID_RX_LINE_STAT == int_id)
+ {8 R0 u1 n! o# M1 J    {" ~: o! d7 d0 q4 e7 ?' h% e& B
        while(UARTRxErrorGet(SOC_UART_0_REGS))
8 q  A: [/ c6 |+ ?. l  S        {) D! I2 k9 j8 T* g& C
            // 从 RBR 读一个字节7 {" I# y& K, B$ W+ F/ b7 ^. d
            UARTCharGetNonBlocking(SOC_UART_0_REGS);
% y" T- M3 u4 c3 P2 k        }' E. T3 {3 [/ H1 f0 O
    }9 l# s  a) M, `) h

8 u; i1 X" p/ H" T    return;
1 ?* |/ b6 t. c$ D. _}
/ \% i' A8 e( I8 w1 t: _+ [  V' P' W5 G5 h! I1 \

1 F  Y& E6 N) P
5 H: }5 H  w. }, K  h) G5 A1 p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2070

积分

创龙

Rank: 8Rank: 8

积分
2070
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
8 O4 ~: @/ Q" L9 Y4 i. Y. L: @1 W
- Z1 Q3 v! o' H1 |UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
2 C% a$ a' p+ E3 A9 M
: x1 L! c' I: \' T# |; M: D要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13: p  P" U* t9 Z! x& ^( Z
hi,- g0 t8 ^2 m, z, b5 m$ |7 C
- ^/ o8 Y5 x6 h9 }
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

: h4 D3 ?1 B( jvoid main (void): x8 x6 j' [; s, t+ p
{( D0 H. t  P0 a" c; _2 P6 d
        int i,j;
4 a# D9 I) Q) ^$ m* F( c( L    char *str_buf;
3 l, X" l, V- `. V# `/ n    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];/ ^. b, ~) @1 _2 g
        double est_L_b_=0;0 ?+ \3 m- c, v* e) B
        double est_lambda_b_=0;
" ?3 w% l5 }7 z  a% s        double eul_[3][1]={0};3 ^$ H; A& i. Y6 i; y7 D9 e
        double est_v_eb_e_[3][1]={0};
- B4 C& X$ M. \' e        double est_C_b_e_[3][3]={0};
) k- d$ z5 }1 e: E9 s, t& R    char *qm;1 t* q. i5 ~. m
    char rec[70];
. M9 n2 _2 Z, z1 I9 ]        double L_b=0;6 T0 f0 f6 E8 j5 Q. P+ I7 M( v, D
        double lambda_b=0;' G( M5 @. C& C1 p' w, X
        double h_b=0;5 T# f8 O$ N  h/ H& c3 u
        double rate;0 x, B. M" A# M" N3 `" G  d! @

! N" a/ r! ~+ I" w, o* a  V/ ~% o$ C( i9 _% r1 {
        // 外设使能配置+ X( _8 m  p' z3 K" Q
        PSCInit();% B* l1 L; E, |
' I) d; K8 K- l$ V
        AppInit();
0 K9 B% x$ w0 c% x7 g& {7 I: ^- E: S2 z0 O8 v' D3 N* u
        // UART 初始化
& _. r) d$ z& V% p4 W' J& m  U, V        UARTInit();
. ]! H: W2 n& l; I! o& [) x8 p. P! H& M/ u8 C# n
        // UART 中断初始化
- h+ I! m$ e, ~        UARTInterruptInit();
, u0 c2 m3 ~* p  f& d& \5 ~) ]
* B, H( G+ G& N3 Q8 h* x5 @4 ?    evtRcvd = 0;- J/ @1 a+ @" L6 V9 B5 \  s, }
    RecState=0;3 s% g4 g$ g# _/ u" q. S0 ^8 K# U
    /* Initialize */- s6 X5 h- X( P9 i5 \; Y

  w% z  _4 b4 ^0 O" ^9 ]    printf("DSP subsystem ready\n");
9 U' q; g; x5 \" a9 O" o. e
3 o9 U  k  I1 m+ F, i    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));  `0 l9 s7 O6 P) ~1 e
) [7 T! w7 L' b; }; m' j  q
for(;;)- T* b  K0 I) P8 B  b0 y+ q2 g# Q
{
5 k1 ]6 w4 p% O  G% F: E; R/ @        if((RecState&0x01)!=0)
- k; n6 x7 I8 \        {8 p3 d( K& f. Y" g
                printf("liuzhenxing\n");
5 L" F" i1 Z; T9 V/ B4 z        }( u  T3 A% z9 z% d6 y
        else+ A0 y9 D9 a) ?3 |
        {$ k8 o+ m- Y0 G9 i1 Q# d! L9 i* C% L9 d
       wait_event();( K) D- D/ y: v7 |8 ^9 J
! \; s( r: |* \3 p4 e0 q$ `
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
/ K1 ?' D9 J* w7 `
4 `  H8 C& r$ U- ^2 l5 N* C* v           for(i=0;i<60;i++)
. i. U) t! g3 m6 s: ?           {& t% a- ?$ Y; ]) m* H
                    rec=*qm;- V$ i; t9 [% W) {0 G5 k+ ?
                    qm++;8 ]/ U$ y& E, b5 V- ]
           }1 z) j. f5 g) K( N/ M+ k0 G
9 i: B% i1 B8 M5 ^! W
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
$ U; ^& w, S& M0 F/ R! U3 u
1 v# Y6 \2 {* @4 N2 L           L_b=L_b_receive_double;3 }, I" P* e3 x7 C
           lambda_b=lambda_b_receive_double;
2 ?* o6 O0 u8 y8 J% h           h_b=h_b_receive_double;& p5 Y# m* b( O  T+ p
           for(i=0;i<3;i++)8 ~" n2 |1 q+ f8 T* E+ T5 T
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];2 P1 [1 ~( H" Y1 Q" H$ Z, l
           for(i=0;i<3;i++)) d( w, p+ z; m3 G# ?
                    for(j=0;j<3;j++)* [5 C: ^7 i* W# }4 D
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];& p5 _7 K4 R% v' Q: k2 b) b

4 i5 ~7 Q! {+ o% d  b+ X                printf("L=%lf\n",L_b);8 n0 S% _( ?# i: r% Y
                printf("lambda=%lf\n",lambda_b);
- R. Z3 ~# E' o. y$ ]/ b6 B                printf("h=%lf\n",h_b);$ p0 d) e8 c: z5 f# T8 \+ a  n
# N( }- r! |7 ~$ N' e6 d
                for (i=0;i<3;i++)) U$ w4 Q& d" d6 ~
                        printf("%lf\n",est_v_eb_e_[0]);* K$ j) U( u8 o( j5 u
                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]);
9 O9 r7 F$ p# ~/ Q3 J. o                printf("rate=%lf\n",rate);
. l! b" C9 D' M: B  R& s2 k, W0 O* G5 J/ M6 v" y& K/ j5 O2 _1 k
                CTM_to_Euler(est_C_b_e_,eul_);0 M$ |2 S, u+ v6 S+ k4 W
                for (i=0;i<3;i++)6 A- B! Y5 y9 a
                        printf("%lf\n",eul_[0]);
3 r3 P5 i. L! I& m% a  t0 `  w                printf("end************************\n\n\n");' @  v3 ]: U3 j8 Y

: P. ^" |/ A' _' `' ^' ]                /**********************************************************************/
- G( Q7 {6 f& [
8 b, R1 b2 _, C0 @2 f& S            char flag[4];: n. u) U4 s: j( W1 I" ^, `

! Q. N5 q, q3 m3 \            flag[3]=0x00;
1 s+ B( ?" v8 j2 p            flag[2]=0x00;: X3 y: q6 f& v$ U4 u  G
            flag[1]=0x00;
, r' ?1 ]1 Z2 B  R8 K            flag[0]=0x01;
5 D3 g- }: R2 d, O9 Z9 g% E* z( g: k
    /* Allocate I/O buffer and init with string */3 W, h+ S4 `, Z) K; B+ f- W
    str_buf = (char *) malloc(80);
3 C* U6 y% _/ Y# |4 T    str_buf =flag;( C5 A& {8 P' @3 \* T) J' V/ |
. a* H# d! h0 i( X) [) [
    /* Send buffer to remote CPU */
4 A" {- o# r! @, e8 e/ ?    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));* {5 }; s3 j. I7 q3 G8 e' u
1 Z$ v+ S4 c1 m2 ?1 ?6 \' e9 E
    printf((char *) myPayload);
7 t0 {# T5 R7 y        }# v. O2 Y: L+ {2 R2 ]1 [( q
}! x1 I1 n/ [+ d, Y* L: E) M- H

) y: X; Y+ h# y- r    WAIT_HERE;5 L% {8 ~9 g, G- M$ b
}
8 _# k* g* z/ \+ \1 `; u- `. @
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:! u+ _7 x  i5 S% e
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。; n- I) Y3 X4 E# I) h; H
然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2070

积分

创龙

Rank: 8Rank: 8

积分
2070
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:540 Q8 V2 m( D* C* D8 _" R
syslink 的初始化是否成功,notify 通信是否正常了?

4 b  b0 h5 P4 T) S6 H双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
2 `; Y) P; n6 B$ C8 b% D- Esyslink 的初始化是否成功,notify 通信是否正常了?

4 D0 K* i- Z% P7 t  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$ ~9 ^2 c: @' h. J% w' A
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

6 S, U( }9 Z+ r建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-30 15:32 , Processed in 0.056753 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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