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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。# O% ], s, _: H. u
我是在DSP初始化这不太明白。4 y5 j) _' Y: s- w8 L/ Y1 Z1 Z
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。% ?8 w. j" u$ ^0 x! j, v
) N# U" ]9 _& `$ ]( G. {
& G7 C/ M# R8 z  g1 Z) S0 H
首先        PSCInit();//UART0使能
5 y) t+ Q! I* \5 }void PSCInit(void)  {5 z5 c4 W& Q2 u
{
- ]4 w) X  D" g        // 对相应外设模块的使能也可以在 BootLoader 中完成- S6 r9 J9 q  u" ?) ^0 j8 @
    // 使能 UART0 模块
( l) R) o$ r3 L1 n    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
; e0 s1 p  ?" y4 d9 S% ~2 T}# j* \5 H! `! O( E
/ J& }: \8 }( E
+ }, C$ D/ `6 b& s
然后是 双核通信的初始化           AppInit();
5 O9 B' d. F+ T5 C& H, H! }void AppInit(void)
7 ^9 V0 v6 ?8 J1 o6 I: k+ Z{* g) d2 {+ c& @* q0 R
    /* Structure to initialize IPC (see Ipc.h for definitions) */
& N, C5 `! S5 X/ g( r8 c( d4 M    struct IPC_cfg ipcCfg = {2 l5 G; t3 `0 L% K! a: f
            IPC_DSP0,             /* local processor Id */
, |# F: I7 e$ |, {            IPC_ARM_HOST,         /* remote processor Id */
; {' S0 m: W. e/ F( a            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */( |" [6 d* s3 v6 A+ c- r) ^, `
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
7 O( R- G  {' }" I            NUM_MAX_EVENT,        /* maximum number of events to be created */7 n" J) h9 L% c% g" |: w
            &ipcPvMemDsp,         /* local side private IPC memory */# ~$ V' q) s  P  o
            &ipcPvMemArm          /* remote side private IPC memory */* W0 Q0 K6 s1 W( F, g* w' t% X
    };
1 Z' i# X5 ?# O/ V    IntDSPINTCInit();  Y, _  G3 J$ l
    IPC_init(&ipcCfg);
! d* y% m* F) Z; g    IPC_intRegister(C674X_MASK_INT5);
; O4 w6 q6 o- F" O4 P7 r" T    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
7 W6 {; Q9 A4 u. {# i# o: X/ D9 s5 ^# I  T
    /*  Enabling interrupts for DSP C674x CPU */
3 {7 l) u( s3 Z) N    IntGlobalEnable();        /* Enable C674x global interrupt */! V4 l+ x/ O1 v- d+ ^$ ^
    iAssert (Notify_start()); /* This will enable IPC interrupt */
( {8 c( n6 Z$ a) B) r! k. n! E}5 C, e: Q1 Y/ p1 |% t

! n% |8 ]. F1 \! ]$ I然后是  
. K( q6 Z9 Q! y3 F+ D            // UART 初始化' k& ~0 P! q6 i- {, w
            UARTInit();
' G2 {4 k# ]# j2 B7 c3 d
3 b. z: O% ^/ w. p            // UART 中断初始化
& W# n( c% p! D+ b            UARTInterruptInit();" n& u! }. [) {2 }4 M
# ?, ^. m4 k1 K; p& V& F3 n

3 ~$ i% i/ b4 S8 s0 z7 vvoid UARTInit(void)
  w" @# Q  O: |. B% i{  a) U" [. n3 g! n
        // 配置 UART0 参数+ b7 g, l. b: t+ R
        // 波特率 115200 数据位 8 停止位 1 无校验位$ ?2 H& X/ p8 g7 T! g: }3 E" C: I
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,
0 ^* l% z+ H' N                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
5 t- }& c: j# c/ A' S: x, O* {/ |        // 使能 UART0
6 ^+ g8 m- K2 D: C' }. O        UARTEnable(SOC_UART_0_REGS);
/ F/ T8 J  G2 d0 G* V
& z# K/ K; i, @    // 使能接收 / 发送 FIFO0 w. A  O/ U) ~  {
//    UARTFIFOEnable(SOC_UART_0_REGS);
, N) Z- p% @  H, b% |  |: t3 {( X3 C! B- O: R4 }; g
        UARTFIFODisable(SOC_UART_0_REGS);7 M% Q) o! E  M5 {

8 j$ i. c, x: T1 f    // 设置 FIFO 级别     接收FIFO的级别
  ]% a, j& W( D* X; s6 x3 A//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);5 U  I3 c0 e3 H4 B, \
}
7 O& R0 T2 }5 ^; M$ S. y

* x, ^% B9 ?, b0 J+ Q( K. L; i$ L7 q% o( Y
void UARTInterruptInit(void)
! w3 i, g1 s, t{
* ]' J8 l. W. S        IntRegister(C674X_MASK_INT4, UARTIsr);% s+ r- k) `& f. i2 a, E
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
5 \  m6 x7 ~& S. \% T        IntEnable(C674X_MASK_INT4);
/ }! O# [- h: M; a# p/ F. v- X7 m; ?" f  O- J+ D# ?/ {% s  Y' E
        // 使能中断
% x+ J9 m1 [/ V; s        unsigned int intFlags = 0;. G5 n4 U( x( d1 `
    intFlags |= (UART_INT_LINE_STAT  |  \
; q# y7 @. C1 R6 K( g, c6 k                 UART_INT_TX_EMPTY |    \& V( Q4 V' b2 W, X
                 UART_INT_RXDATA_CTI);  G0 N5 L2 a# F
    UARTIntEnable(SOC_UART_0_REGS, intFlags);$ a- R/ W0 q& V; I* ?1 V
}
3 g  c5 P& ~: o& v
; `- `' j  u$ @# D" W
, n9 R/ m- w/ T" f
void UARTIsr()2 a2 e7 v' S6 n5 ^+ x
{% j( r1 d, Y8 D
    static unsigned int length = sizeof(txArray);; l+ ]& ^7 ]6 w& ?
    static unsigned int count = 0;
3 c: t3 E4 x, H* q$ X2 O    unsigned int int_id = 0;
/ g' n/ d4 i  V( B% W- z9 Q. Q
! h) W& b& R. a; f2 q
3 p! o1 d3 z1 V! O8 A% k3 ?/ [" s
    // 确定中断源
' J) h  W( `- y9 q! _) B9 D9 F    int_id = UARTIntStatus(SOC_UART_0_REGS);0 c! x9 _' _% e, T7 j

" @% o* r# D7 E" A" V4 k    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
* j+ R' G2 M' ]. \, ]4 o5 w
3 v- ~) n4 a) m. A8 ?
$ d7 |. T# V- ~3 ?/ u    // 清除 UART2 系统中断7 m% r: g+ e% [5 `, G/ H
    IntEventClear(SYS_INT_UART0_INT);0 e. v% {$ I  R  `4 w& e9 w7 `

' I9 O9 c3 c8 Y    // 发送中断9 T2 M2 M- B$ l! I6 ^; `0 [6 H! s
    if(UART_INTID_TX_EMPTY == int_id)9 M7 u0 n. F0 N. X- A* C: L( z
    {
, k% ~* c7 `$ {        if(0 < length)
" i7 `' ]  \8 j: z        {
3 D! N" ?+ Z' V: g/ M' [! ^, q5 o            // 写一个字节到 THR* c; x5 Q; ^- K3 d7 {. B/ W1 r+ j
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
- I6 N2 v; H/ u) p0 C% ]* z            length--;$ I# M/ E# n3 E: H5 `+ G
            count++;
% ^5 |8 ?/ I4 O7 V5 g$ z        }* M- z" l, {: u3 G' ^2 y) ]( v
        if(0 == length)
$ W8 ~- V, u5 z; k( q        {
/ g# m  R. W/ q6 q            // 禁用发送中断# \; ~' ^+ Q7 g/ y
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);9 l% {+ x& ]! ]5 y2 D, K
        }
* y2 P4 ~7 H$ p; W! w, J     }
8 ~* H* t: m: E. Z, u
* z4 `+ H! i4 d7 [    // 接收中断
9 s- I  @& {8 [9 m1 R    if(UART_INTID_RX_DATA == int_id)' P2 S. Z0 ?, n) Q5 }
    {
/ y" r# l( {" }; I. H        if(status_a0==0)
# G& y$ w$ U: @. \8 S: }% @, J% l        {
2 g4 f; |! h! O  Q% N# k                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);+ p) F1 l; p+ }" {5 m
                if(a[0]=='#')
( G( W6 \9 m/ V$ ]                {2 x6 Y; X  {- w, p. t# J* P6 T
                        status_a0=0x01;
: S3 C: Z7 \* S3 K! _                        status_a1=0x01;4 g- A' q$ @( A7 e+ M# q
                }
  k6 T- v  I5 M5 [        }, }& G% Z1 S/ [- y0 i
        if(status_a1==0x01)
3 V: e6 g1 a) e9 b* m        {
- D) N  P% [( D8 w* v# Y                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
( k. H% A/ a7 h6 Y; ]8 T+ y8 Z                if(a[1]=='R')9 N) @8 R4 ~; l: G5 K2 D0 j. F) o) d* `
                {& O/ r) O' l2 O- N& @3 i9 g
                        status_a1=0;! i% |8 J$ B: k" `5 G  p. X
                        status_a2=0x01;" j+ r# S( N' w6 m& E6 z
                }& ?1 p/ w7 M0 N0 ~6 ~' ~8 x' s$ m0 @
        }' G4 T( }  k3 v# o0 h$ j& w
        if(status_a2==0x01)
4 l6 ?; ^# Q6 R& Y7 k( x        {
6 J2 g+ Q2 a9 V                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
4 b& m1 Y( n/ g' K9 O                if(a[2]=='A'); z+ j9 g9 j9 i2 a# U
                {
$ Q7 A0 |' n# q" b8 S1 ]3 p6 r- h( v                        status_a2=0;
1 K( V6 T- Y- Q) U0 Z# |$ k6 Z8 J                        status_a3=0x01;. |6 O0 j! a$ w& L8 K$ W- [
                }- u; C0 `0 Z7 R1 `9 s) |
        }6 {& z2 E8 h4 {) J& V
        if(status_a3==0x01), K, W+ ]1 a$ ~. q1 W
        {
4 e/ F! P* }. r: a! k' u8 B                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
6 l7 G6 j% V8 r1 u$ ~                if(a[3]=='N')( n& p8 X3 `9 |  ?8 `, i- L
                {9 P+ j  E$ k  G% T
                        status_a3=0;7 Y8 D! u* F! @0 l$ j
                        status_a4=0x01;0 _# I* ]; H3 \+ v# A9 w
                }
/ u0 f4 j  C7 o; M1 w( x        }
* @0 I. ~, y' v0 @0 Z; P! W* p        if(status_a4==0x01)0 Y5 i3 w& f0 N
        {
0 C9 w1 x4 C1 q+ R0 H! |9 @                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);# e' n, S5 n4 d: o
                if(a[4]=='G')/ l- Y# e6 Q* x  R& f+ G
                {/ H. T- E. y0 o9 J/ y! [% x
                        status_a4=0;
. Q" T; |' |: `9 a# J  i                        status_a5=0x01;
$ t5 e( ?! z9 Q" ?8 o                }% O& F! e5 j+ ^; ^1 ~4 u
        }
0 n% S' _, B" y% x. [( R# `, x8 y& }        if(status_a5==0x01)  k; _$ B/ G! [1 R9 V
        {: p9 {; J' R$ U8 [! I/ c
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);8 D/ p; T6 R5 B
                if(a[5]=='E')8 }% r9 D3 ^7 `8 m- p. j) s4 X
                {
7 |. v5 h7 Z; y9 P" P6 Y                        status_a5=0;$ }9 v! Q3 @+ q4 _# |
                        status_OK=0x01;0 {1 e$ F4 ^% Y' u) m! y6 J9 Y1 A
                }
4 d( ]) ~1 b; x8 A7 ~        }
$ h4 ~) I6 |; O# s) g' C            if(status_OK==0x01)
, q$ {; P) |  `$ E* j* s/ V        {
) ?7 q9 [  L+ D                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);/ c$ c5 N8 k0 Y# {. h4 E
                        lengthrx++;
( U9 F! ~$ \( w7 R4 y                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
& u7 U) d1 ^  M                        {
. g5 R* K3 b, X: x# q                                RecState=0x01;: ^( O6 o! W6 R. f  q% l
                        }) t9 h0 h: k& s: ^+ U
         }, o! ?. ~) f5 _$ r  o# @* _- m& ~4 D
0 {. M: _) D, b
     }% H. w: o2 r1 R8 U9 E% q# \
! v7 b! ?* x3 R; \- A& {
    // 接收错误
" B" O4 y% G! M4 w: k    if(UART_INTID_RX_LINE_STAT == int_id)5 _( L; r0 `' [
    {6 K: w5 n* f% u, P9 |, V
        while(UARTRxErrorGet(SOC_UART_0_REGS))9 N0 d: i  c$ W7 k, D3 b
        {
' m5 P- Q" I  X            // 从 RBR 读一个字节
* g* v3 O5 F' y  x. S, q            UARTCharGetNonBlocking(SOC_UART_0_REGS);
% h+ t( K/ G+ {, g9 u        }; s+ g5 `9 h& ]( Y  c% P
    }
  a' s* F/ [! P; J7 n0 `
6 ?% d* f2 j2 W# b    return;
* Y$ _2 q" G' I) O5 L' X}+ v3 P+ C$ q9 o  C- f
/ @5 ~: r2 |; P4 \" c: C) `$ |8 W

. _6 `3 m* }4 ]  w! y4 r. B' Q
: M# Y( Y, F8 l1 U* t7 C- V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2025

积分

创龙

Rank: 8Rank: 8

积分
2025
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,% j* Z" l- }4 {  \+ c

* r4 X, R* W3 s2 p& h0 ~% X, k- RUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。- Q. D; g  `% ]
# a/ b4 j9 ^' U) G. V8 }9 E) H
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:133 ?: Q* u9 y1 u/ ?8 i& A
hi,* h5 n. [6 \. B3 ^& Q, Y

9 |" P) h  S7 Y2 {UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

5 t2 u8 }6 x7 I5 N; Kvoid main (void). w6 a# l4 N, s+ U- p
{
4 a6 a, {  L! y5 X2 T# _1 I8 K        int i,j;5 x  t, r7 {8 ?: a, V( {' y, c
    char *str_buf;
6 D1 P1 E( B  x  H3 I2 p5 t5 `    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
9 t% D! E6 I+ s        double est_L_b_=0;
/ }! N7 u2 G9 y3 F# M        double est_lambda_b_=0;
. H4 o# e- ]; w        double eul_[3][1]={0};2 o0 h! V1 T6 S' D, l
        double est_v_eb_e_[3][1]={0};2 B$ \; p7 W0 p+ \/ S- e- D3 M
        double est_C_b_e_[3][3]={0};
0 {! V2 v- s& Q* v    char *qm;+ p% l" r; w' R/ E, m
    char rec[70];4 s: y; s9 `3 D8 b
        double L_b=0;
; z/ A3 k* L$ u8 ]2 m        double lambda_b=0;" W# Z- \9 o' I+ m
        double h_b=0;6 N1 q$ [/ l- o5 w2 W. O
        double rate;: \% s* R& p8 B4 Z
' S) U! n. b" w: @3 C; x. ^

4 R! I0 Y8 V9 }9 ^        // 外设使能配置
- G1 E8 w& h3 v, g        PSCInit();9 u, n2 w3 g3 @1 C' ~! g

/ }; r# x1 p1 Q        AppInit();' R4 u9 e: d& y& B- h- I' t6 D- c

, l3 |& z! s' v) S: G: P, V        // UART 初始化) ^9 F6 \$ n' C
        UARTInit();( W- p, k; y8 k! d9 L

$ i  v: M9 B* a- B' v        // UART 中断初始化# B! E9 `  C! N8 r* Z0 C" o# P- p. E, L( b
        UARTInterruptInit();( A- `4 ^# x- C7 F8 L* S/ x; W
- O1 x7 ]& _6 f7 X( a
    evtRcvd = 0;1 U. t' a0 m6 f( ~
    RecState=0;
$ ~; [2 r+ L+ ?/ k. s    /* Initialize */
: {6 T( b6 `2 }" M' E9 m7 e8 h* @6 D) C; q0 c" b
    printf("DSP subsystem ready\n");
6 o2 O8 k, }8 ~! l% N( V: `: M. g% b
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));. }( b/ V  o8 H- j. t9 c
# F; O$ ^5 {3 [7 S, _3 L; K
for(;;)3 `7 m' E8 g4 j7 }( ?! o; i1 x1 {
{5 o2 W# e/ A# Q" w$ n8 g( S
        if((RecState&0x01)!=0)
' X' L$ t/ v; w) w1 H0 D3 C5 g. M        {
- v$ D( p% d: A( |, h$ Q' {                printf("liuzhenxing\n");( N6 e( N/ H, s- V3 m- k) }$ r$ L
        }+ {8 b2 p" H3 A1 @  ^! @
        else$ e- b, B5 T, n% L* m
        {
+ q$ R' e5 `" W+ h2 Q  m; s' S- z       wait_event();! Z6 P$ i+ a4 H* k9 c- B6 e

. G) T7 O4 z1 Z" G6 Y           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
) F: s$ m2 \2 h
6 m  U+ v! W4 v( a! z" \; L  A5 c           for(i=0;i<60;i++)/ l. l8 M* }( C  N: J' r
           {5 p5 B1 g" z9 y5 E( |5 M
                    rec=*qm;
7 [  v0 w9 ]2 m  Q( J                    qm++;8 D- T3 r* ]/ G" g' R
           }' g, _6 Z1 z# k- P& W; o" p
. D4 j$ s$ R6 Z0 N2 h& P3 A
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
2 Z6 O" `2 U- y
8 o( |, G* p4 k* y) j. H0 {6 Q, K4 C           L_b=L_b_receive_double;
( ^- g+ I# m. G# d           lambda_b=lambda_b_receive_double;
9 ~' U/ }* X* t4 W* j           h_b=h_b_receive_double;! U5 f1 E( q7 |4 M+ K
           for(i=0;i<3;i++)
" B% u. u' H: E$ f, X% P5 L                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];8 y9 g; s$ Y# p
           for(i=0;i<3;i++)3 f$ m4 p  A. E4 f
                    for(j=0;j<3;j++)9 U" S7 L+ I! z0 t4 m% q3 b! H
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
+ b9 }; ~' D/ }3 d! w( f5 a
5 @: X1 w0 K) h- v+ n                printf("L=%lf\n",L_b);4 e& Z/ i$ K- f' U, z
                printf("lambda=%lf\n",lambda_b);: b- R3 Q1 }1 }% L; ^
                printf("h=%lf\n",h_b);5 u% D. d4 @! u  D
# x- g4 w( p6 i1 F3 P
                for (i=0;i<3;i++)/ J( u6 i3 f: D) N  F, Y: i0 `
                        printf("%lf\n",est_v_eb_e_[0]);
& h& l' {2 c( I; G- j                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]);  p5 |% L* w5 N5 p$ Q" Q" p" Q$ P7 n
                printf("rate=%lf\n",rate);  p5 B3 Q5 E9 O5 }6 T8 x( n6 I

1 h- ?; i# q  \- a+ D                CTM_to_Euler(est_C_b_e_,eul_);, H! r- w: Y/ B* m0 J# j1 K
                for (i=0;i<3;i++)
7 F! b- S+ m$ A# X/ L2 X                        printf("%lf\n",eul_[0]);
! e4 L% y% s( A; D2 k2 X. t7 w6 o                printf("end************************\n\n\n");7 S4 p9 B& K) G2 b) h/ C0 U* G$ l

3 l. [% {) t9 d' F8 Y( ?+ |2 w- s                /**********************************************************************/( x' J5 D) Z, Q4 Q2 N+ y

" Z) s7 O$ S3 z6 g- \            char flag[4];
0 Y8 ^; L+ P# ~& D
: ^: V" f1 m" ?* |/ [7 G  y            flag[3]=0x00;/ X2 k' [" ^7 I4 N+ W6 @4 u8 F$ @
            flag[2]=0x00;  d+ G5 Y, {& x- R" \
            flag[1]=0x00;
3 c6 K9 r6 Z1 `8 ~9 R9 i            flag[0]=0x01;
" }3 o  k, x  k0 X
2 {- D& }- i. s    /* Allocate I/O buffer and init with string */8 L' t& X. \, ]2 o* j0 e/ s3 Z
    str_buf = (char *) malloc(80);2 O* A  q) g; H
    str_buf =flag;# n+ M& l3 j6 _( I
7 b4 _( G- L& P4 V5 U# P% F
    /* Send buffer to remote CPU */
2 ^5 g& m& m! A* x  j& i    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));; A* e1 X$ l1 L& a) p& i9 Q

7 a# k2 x* I& G3 ^( W' b    printf((char *) myPayload);8 S! f* ~# r8 l' y
        }
4 H; Y8 g/ M" p0 q/ F( ~' q6 {}
7 O2 K0 N  \; O* ^
, J+ _2 f% M6 a) R5 J- e/ @    WAIT_HERE;
0 _1 o4 X% m1 i- I+ N3 r}* V3 N3 {( K, k
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:
" {! \7 ~/ ]( S7 H, K& `5 L我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
6 R3 E5 t/ K" w2 e0 X7 }# W然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2025

积分

创龙

Rank: 8Rank: 8

积分
2025
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:54) ~% J! A" C& l
syslink 的初始化是否成功,notify 通信是否正常了?
4 A- s/ K) a& @4 J  H) v
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
* C/ H* R+ l/ Esyslink 的初始化是否成功,notify 通信是否正常了?
( E& V0 p5 p" y( 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:207 S3 t; I/ N4 k( R7 o3 m6 Z" F
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

2 k& |$ {( R: c$ i/ D0 R: W建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-21 16:17 , Processed in 0.054464 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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