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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。% D5 t  w+ k* L$ N% C/ v
我是在DSP初始化这不太明白。2 O" f) l$ B! R/ M: `. L! j
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。! E' B! p5 M- }! Z2 t$ Z

& ~! L- F7 w: O
6 B- i* Y- o4 p7 T/ s首先        PSCInit();//UART0使能- t8 W) k2 y" D0 S- k0 ?
void PSCInit(void)
7 [3 X0 f' D3 J) ~{
! `" T" V, b  e2 X* F9 Y! T  N        // 对相应外设模块的使能也可以在 BootLoader 中完成, X: K- ]: k/ ^0 g# C$ n
    // 使能 UART0 模块
: X- F' k# @0 g! C6 p( @0 _: j/ X    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);' c) f- S. m4 O& _$ }/ k8 g9 ~
}2 u2 f2 Z! |  r2 M
/ T5 ?/ `0 Y. v- m

6 }' s) M, ?6 @, j8 Q! s然后是 双核通信的初始化           AppInit();4 F0 ~) z6 K3 x
void AppInit(void)
0 i" C0 J0 U3 g. c' @( p{" _8 Q* g7 ]; c3 L4 p, v
    /* Structure to initialize IPC (see Ipc.h for definitions) */
, t) p2 F2 b  ^, ~    struct IPC_cfg ipcCfg = {9 \' [7 ?& t: o- ?3 I
            IPC_DSP0,             /* local processor Id */
# H! j& d/ F( C. z: w5 G            IPC_ARM_HOST,         /* remote processor Id */
; R, e+ p5 H2 E$ m; ^  h            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
  [/ M: r7 I# C3 u7 _; V            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
. D& ^: o( }( F  b2 F9 F            NUM_MAX_EVENT,        /* maximum number of events to be created */
7 W/ q9 H0 Y. m$ s. t# H' q            &ipcPvMemDsp,         /* local side private IPC memory */2 o4 K4 c* j' x$ o
            &ipcPvMemArm          /* remote side private IPC memory */& h: _. U3 q" j
    };
3 k+ e4 z/ L2 t3 B    IntDSPINTCInit();
1 x7 j8 ]2 R6 q1 q: y& d    IPC_init(&ipcCfg);( p- m5 w- f$ ], f* d/ u& ?
    IPC_intRegister(C674X_MASK_INT5);
) c& V% |) ~9 @, O, l7 g- L6 p    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));! \! Y% B; b$ r
# o" _- N! W( m4 t2 q4 l
    /*  Enabling interrupts for DSP C674x CPU */
% f# j+ A0 a3 q0 V1 V3 O6 M& g    IntGlobalEnable();        /* Enable C674x global interrupt */
( ~! w" `5 t3 t: K5 u0 O    iAssert (Notify_start()); /* This will enable IPC interrupt */
/ w7 G4 H' M6 e+ V+ Q7 q}, R" {' U% ?5 r# ]! a

: y( M5 {. [) o- {- i! H" j然后是  ; ^+ m: u. v8 p% K' U$ }3 \# m
            // UART 初始化# y' m, |; p5 z6 Z3 S% o  d7 B
            UARTInit();
$ b! c$ B. S+ Y8 _0 @
. v% t3 h1 p+ B; @% S: n- H7 O; p            // UART 中断初始化% B% m( O6 D0 t
            UARTInterruptInit();
& E) ^4 V: E: @5 @
- R3 H+ s  N) r9 X2 V% h5 T

3 L9 Y; J. A7 z& ?# m) Q! Ivoid UARTInit(void)
: `/ ?4 g; e' T) W7 j+ s; @/ }{. N4 A. l: J2 A1 s! I6 c
        // 配置 UART0 参数$ w9 w! K0 k! I, [
        // 波特率 115200 数据位 8 停止位 1 无校验位# G! N! E! E( o9 ~( k4 r, L
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,
) L2 M: O8 h$ K/ B! R                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
" Q. t- |, N* s* f, p        // 使能 UART0
9 Q* c2 m- h% x9 X' d        UARTEnable(SOC_UART_0_REGS);
# L5 F% F# y4 o; t# ]. Q& s* r7 Y, }$ B
, j  H1 I1 I+ \1 @' L    // 使能接收 / 发送 FIFO
0 n' c: v7 Q# q+ n//    UARTFIFOEnable(SOC_UART_0_REGS);/ O, I, J! F1 m+ \, `& s
% ^! Y1 n! t% V1 Z# O
        UARTFIFODisable(SOC_UART_0_REGS);9 Y: [  B+ f" P5 g! j' g6 q

) i5 F; ~/ N$ W6 N. G# W- J/ `    // 设置 FIFO 级别     接收FIFO的级别
$ ]7 t: q, d* @* \+ f8 h( h//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
2 @" Q$ s/ t* e, P% Y# p8 R}5 ]0 H- }0 F  ?4 U

" c" N1 E. B8 d& [
/ z5 s# l, ?% g/ I9 A. E& d, jvoid UARTInterruptInit(void)& W- C' ^6 i" ~$ y5 `; G
{
% H/ p9 z% O0 E7 ?; n5 _  K# y# g8 |        IntRegister(C674X_MASK_INT4, UARTIsr);
) `# s) c+ R- {! j5 d9 R# j        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
' u- m# |7 Y2 X3 ^. ^! J        IntEnable(C674X_MASK_INT4);
5 F+ Q0 [8 C" D3 p* E6 c* B' K+ Y" h5 B7 o
        // 使能中断
/ u+ E: u* u8 G& N1 {        unsigned int intFlags = 0;# \7 X$ l4 F- m# L/ Q* B' n
    intFlags |= (UART_INT_LINE_STAT  |  \
# n* J' n) g" [7 w* C4 O                 UART_INT_TX_EMPTY |    \
. t$ x1 a1 d( S* F4 e' `8 G                 UART_INT_RXDATA_CTI);
2 w. \3 b; e2 }1 v- J- v3 X1 v& N    UARTIntEnable(SOC_UART_0_REGS, intFlags);: |) v! q$ `& L9 x+ P, V# b/ Z! s
}
3 J! e  b, O. {  T
- E. H% w: X8 M7 \
3 Q( q1 h7 _6 B$ F* ?; t5 u
void UARTIsr()  l4 I/ H8 w, a! m/ H, D
{+ l4 t7 L/ l9 v. Q
    static unsigned int length = sizeof(txArray);
, v* ]$ U5 }& k6 H6 P7 M( C- v: N    static unsigned int count = 0;
! h' l: {- n8 b5 ~: ?    unsigned int int_id = 0;
9 i: ?3 k# i- f7 h7 k* R0 }* o' x4 M5 d8 ]2 S
* x# A0 L, o" D# J+ x- \
5 ~" ]2 f+ |- H2 T, E
    // 确定中断源
* }( [9 ~- _0 m3 t& a    int_id = UARTIntStatus(SOC_UART_0_REGS);9 K6 \3 H2 O; O6 e

$ [/ r+ w1 y. c- ~9 H; T% f    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
3 m: V7 C9 G0 k8 |% S9 s- [
# V4 v9 J: ~# j. Z  c! T3 D) W7 F" @- X/ R: W# p5 C7 `. M: K1 S4 d
    // 清除 UART2 系统中断
6 F6 `& B* h2 I9 E* U  s    IntEventClear(SYS_INT_UART0_INT);; S9 ~* {  H; B4 o

  c( ?+ C/ ?7 p7 y  T) j$ i4 b    // 发送中断
/ x: V2 m9 E- D6 o3 n; N: d    if(UART_INTID_TX_EMPTY == int_id)
- C8 _$ Y+ f+ `* ]% K6 T( }    {
: b% ~3 @7 I9 f& x- @* N! j& L        if(0 < length)5 }! n0 c1 q/ S4 _
        {
3 S$ b- x- r( e3 q% V2 z8 A            // 写一个字节到 THR
# u$ W* h6 [* G& h5 z4 D            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);- H: `' Q. q+ N( C* X
            length--;" c) H; E0 }: p# }* ~# K8 [" Q
            count++;0 P9 ?8 }! S4 W# x$ b
        }
& M% E* t0 c" Y) X5 W3 N/ K4 K        if(0 == length)
. M, x8 U% t7 \! I4 I0 s        {
0 @! \  V. p" |- L/ M& G2 E            // 禁用发送中断1 F) F8 x. N6 F+ z, T
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);5 C# q& O8 L3 K  Q4 ~( v  Y
        }9 f8 x8 `8 M: a3 `7 N- X
     }
7 \3 I7 E( l" n- f) Z
4 `& h5 T$ I+ f    // 接收中断
8 I# q' }, M+ a4 _1 e. |3 K    if(UART_INTID_RX_DATA == int_id)
+ i& k6 p5 j+ F1 }    {
' w! A& X2 O# F. L        if(status_a0==0)
% j( w# U1 w" i/ ?1 C6 m        {4 L, @+ a$ V% ]
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
# T  M, R! |( H* o, m2 j9 x2 V                if(a[0]=='#')
8 e4 e  M( e& U1 O7 q- k3 S                {6 {% `# `! e# k+ P0 i  M* Q
                        status_a0=0x01;
' b, Z" D9 I+ ]& b                        status_a1=0x01;
& s1 F- P7 O0 S' E5 R2 M* q                }
! v9 k+ j7 r5 f( ]: ~, L1 O        }+ ?3 h. |, o7 K5 H+ F. n* h+ i: B
        if(status_a1==0x01)4 e2 v, Q- _- p1 {8 d$ u
        {
" w/ f9 U4 ?" H( J                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
  s  |1 b# T9 g  i5 Z& G8 e                if(a[1]=='R')
1 Z: k' K; y5 H6 ?& l0 v& j                {
8 [) n) O6 h1 |2 h0 A                        status_a1=0;" X& [+ M; _1 J: w& _# X* s
                        status_a2=0x01;( L2 H. z* W, Z; q! {. z
                }" g2 i# }0 l5 s1 }$ P9 V* M
        }( g% H% ~5 [' e- X1 ?
        if(status_a2==0x01)" m/ ]* c4 }5 z3 i
        {
! l) z- ^0 x; R* k4 {( {- ^                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);' V2 s& X7 P: K5 v. ?
                if(a[2]=='A'); ~6 |' b2 x$ `9 Q
                {
# ]9 u: k; D2 `0 l2 W* R- B- X7 V8 R                        status_a2=0;
% F( L; w, O* B1 [+ O4 H6 V% M( C                        status_a3=0x01;  n' Q  K3 ~4 H9 @0 h4 U5 Y
                }- {- ~  ~) L2 E* h
        }
) Z0 P0 ~7 @% {; n        if(status_a3==0x01)2 E, H3 ?, u" d$ C
        {
- f1 J. o8 I2 D                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
- C. h8 i. ?' ^/ s                if(a[3]=='N')1 h4 \) R# ?7 {
                {
: _/ ^  @8 b) I                        status_a3=0;6 d0 `# a$ N( G6 x- R
                        status_a4=0x01;* I4 \% |  V/ N  f" ?
                }4 v7 }+ C; u; t: f. q+ j* x' w
        }
! b3 C! c; k& f3 \% M. R0 ~; B        if(status_a4==0x01)3 }9 n; \3 A" M! E6 o9 K4 `
        {" n6 S3 d' \7 V- w4 `( D% ?
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
, L4 Z' A* I; H" e" n1 V# G2 I                if(a[4]=='G')
# [# b( r( O. `4 M% Q4 |: E- t                {/ Q+ Y( l& M+ }5 A5 V2 R( R) B
                        status_a4=0;; b4 u' i, g  m5 j
                        status_a5=0x01;: T/ }- W- b  G. g, J0 s9 D
                }! n; p3 @, l  E9 \3 u8 H
        }$ t* F% g/ ?, j0 d, z' m
        if(status_a5==0x01)" I0 x* A) q  ?/ e+ W; y7 D
        {
! |! a/ q) H5 ~# V! m1 y- i2 e4 \* ~# k                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
) z& A$ F5 k6 u1 P7 x                if(a[5]=='E')
2 ^, l6 y1 E% j. X7 N& n                {3 ]9 ~/ {; x5 N
                        status_a5=0;
( Z* d: q) ?! Y                        status_OK=0x01;
2 K2 ^' u5 T: J2 c* X+ r                }7 _$ Q# |* Y/ H6 ~3 f* a5 E
        }% s; ]7 z. B3 O3 `
            if(status_OK==0x01)$ L" K  e9 @% O" K
        {
% g# `( W) [) Q: }6 X                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
4 E0 _' b, k+ L                        lengthrx++;
/ ]4 C6 L- z" o5 _                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)& ^" ?. a: u" H' n) i7 d- R8 r
                        {
9 \1 c8 o" j5 n' E                                RecState=0x01;
! T/ R7 K3 K' _: ~% ~- B                        }- G  [3 r( `+ o. _  V
         }1 _+ c  ^" R9 w: \9 O, v% N7 L
# p7 }3 J7 ^' v8 Q& R
     }
$ x6 h9 L; ~  {0 S: Y2 C4 b& D$ |9 k- y8 V% x+ _
    // 接收错误
, [5 I; Q4 g" h    if(UART_INTID_RX_LINE_STAT == int_id)7 P9 b6 H% }& V0 C- I: }
    {% u; f7 h& X6 m( i, l
        while(UARTRxErrorGet(SOC_UART_0_REGS))
/ L' [  }: Q( {; Z* T  F! K        {" k' |8 Z! f& q1 f( c
            // 从 RBR 读一个字节( F) H1 g1 J. _( f$ Y1 J: ^) k4 Z& _
            UARTCharGetNonBlocking(SOC_UART_0_REGS);/ v: w2 q! |0 V
        }  e% R. Y" [/ V
    }
9 j; ]+ ~3 l9 r5 m
  h0 w8 c3 ~; ~) H0 d, K    return;
+ `6 k. _6 H; w; b; B}
; A2 u* w6 n& H$ G. w% M! j  C9 [8 G& p& d8 b

) j9 Z1 A: Y+ @+ ~+ |
$ F+ {7 n+ F# R+ P1 d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2025

积分

创龙

Rank: 8Rank: 8

积分
2025
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,' G- n- {7 m+ d$ W9 j
6 O6 G" v- q: U3 g" ]
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
* {# R( `( x) v" E# ^, ?  j3 o* M
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
& N  w/ l1 C0 k7 B. t* M, ^* Shi,: X7 X4 b" W2 r3 W9 a0 P: t% `5 {7 w

+ I5 H; o5 k7 K, J5 l7 AUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

" i1 l1 w: z0 O/ Cvoid main (void)* q! a% Z  k7 D# F# N. o
{
. Q# q% D  f2 z; E- R' K1 p' k. Z4 _        int i,j;# D" F, \# P! f6 E8 a8 {7 O
    char *str_buf;
5 Q( H3 g' U; w+ n6 t    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];! |2 ~' Q0 P: \; V( l9 @$ E
        double est_L_b_=0;
! A$ X6 k# e2 @        double est_lambda_b_=0;" w7 L9 v3 f7 |0 @. O8 V; z
        double eul_[3][1]={0};1 u5 M. Q$ K# h& e( W5 u* G$ e' C7 v
        double est_v_eb_e_[3][1]={0};
5 |% X4 ^7 x4 y6 C: R% l! G# @        double est_C_b_e_[3][3]={0};  W: v; I% t" f# q( {0 @
    char *qm;* g8 v$ p" I+ n1 h; p
    char rec[70];
, n, h9 e* C4 U# U" Q2 J        double L_b=0;
4 ?$ {* h5 N1 P1 y' g        double lambda_b=0;
$ L! c% m& K; V( j$ u  d3 Y" D        double h_b=0;8 o3 y  M6 Q& X( r
        double rate;! h- d7 W/ M# h7 [% Q
- o+ d5 Q3 O& X* ^# `, a" k

5 ~" v# j- r, B! J* r        // 外设使能配置
# U6 g' ^3 T/ K        PSCInit();. v3 u4 j, F4 G9 h* [
; x/ E" I0 T) U
        AppInit();
* _  q9 r  B% `) i- {7 @
5 Z. o% M; v( d# r        // UART 初始化  w/ z, z7 |) }, d' }
        UARTInit();
1 s# w  |) }( l% p" _, r/ Y. J7 E; b+ k! C1 O& Q( A1 O
        // UART 中断初始化
8 K7 @0 t' k, c# V) L! |  \* R2 U3 v# [        UARTInterruptInit();( y9 `5 ?3 t* k
" E; i0 y2 L. L" {$ c. b
    evtRcvd = 0;) P# g: c$ s9 K, ^( ?
    RecState=0;
) B" J! p& E( A2 K( Q    /* Initialize */
" q: z! P# J" d$ o$ r6 S# [" n7 ^2 T8 e1 P( F
    printf("DSP subsystem ready\n");+ r8 \4 M" X. X8 _0 N

% A! _6 `  l" d- [    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));, H8 a$ E# r( m% n' U2 A3 {9 n7 _

# a% ~" i2 a) Z- [( ffor(;;)
! f# u8 f3 S) U: R, U{6 R$ G- `5 f! p
        if((RecState&0x01)!=0)5 E& D8 f  k1 f! [
        {- B# u; v  W3 v! _- k, h9 p
                printf("liuzhenxing\n");
& ?1 t+ f( u; a6 L        }' y9 e) {# @% f  v7 A
        else0 W- u: _+ v/ ~. n
        {
. e# B0 I0 ?+ H7 T, m* f       wait_event();; A# ?# [: B) P! o( s
4 m/ F; F; `4 Y% l+ g
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
& |/ w4 L; J# f& B% h5 g% y
% `1 |1 j* |% F! @: }           for(i=0;i<60;i++)
0 K+ |! R4 f( R/ P# i. S           {
) z, T) Y1 K3 a1 ?                    rec=*qm;6 X1 }2 A) x8 u& s
                    qm++;" x0 n2 A* G' o
           }
) {1 a& O. Q6 `" s2 ~, c/ U1 p9 k) c5 ?! M4 I
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);" X( z& `. S+ W* N  R

! s1 e) B/ U/ h           L_b=L_b_receive_double;4 I1 y4 J4 z- k" H) J# T+ J. T
           lambda_b=lambda_b_receive_double;
, P$ ^! U7 w, q           h_b=h_b_receive_double;. ?7 F: E) w! D  i: q" H4 b
           for(i=0;i<3;i++)
; w% Q5 F. C$ j4 `* R  k# M7 `                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];
8 @/ s6 ~2 {4 h& }           for(i=0;i<3;i++)% L0 s. f" \/ U* J/ f
                    for(j=0;j<3;j++)
! c8 \4 O; b1 X* [/ B5 @5 W/ f                 est_C_b_e_[j]=est_C_b_e_receive_double[j];7 A* C* w  P6 L. L) x5 C. m
5 x$ R/ ]# r7 w! ^9 `+ z. s
                printf("L=%lf\n",L_b);
6 g7 Y. ]; |: r& ~& |                printf("lambda=%lf\n",lambda_b);
2 L* l$ I0 y2 W; w4 L                printf("h=%lf\n",h_b);3 m4 N: U* W# b. i& G

+ z2 C# o3 Z& B% N6 m                for (i=0;i<3;i++)& h" p4 X$ W- w. W8 U
                        printf("%lf\n",est_v_eb_e_[0]);
% F+ h# [. V  F+ T2 ?  z% p6 p                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]);: n0 a% p# s" U
                printf("rate=%lf\n",rate);
) X$ F) l# v* [! I' H+ C3 l7 T, U2 f0 v- @$ u- H, X- C7 r% C* v" v
                CTM_to_Euler(est_C_b_e_,eul_);
# ~& t0 s! b/ L" c5 W2 L                for (i=0;i<3;i++)3 D: a( c. A; W. H0 ?8 q. I  C
                        printf("%lf\n",eul_[0]);
& m/ \5 T! n; J% `% ]. B+ ~                printf("end************************\n\n\n");
1 e; p* [' |  M9 m* e. N7 I1 w$ H8 Q6 P& j% w  M
                /**********************************************************************/
( u4 |6 @+ m" a
! A% D$ C8 N) a9 l: L# {, N            char flag[4];
7 A; |  d. E4 \( `3 J
& I6 u3 H) \& P0 M5 A            flag[3]=0x00;
4 S" j+ c0 n2 W+ Y$ d$ N7 ~, y            flag[2]=0x00;
" B1 e2 o. V* ~. Q, A# R6 Z            flag[1]=0x00;
5 a% D8 R+ E( R$ c- |$ O9 l9 U- D7 r            flag[0]=0x01;+ X+ n5 @7 ^# T; S- X% t
! W! q+ o9 Q3 o( S# ?
    /* Allocate I/O buffer and init with string */- ?# B& @2 C8 S% ?( q& K
    str_buf = (char *) malloc(80);
2 M6 L/ ]0 L# L    str_buf =flag;
" c/ ]' r, F9 h  i4 C# x% M4 X. |7 y, l! B. W( ~
    /* Send buffer to remote CPU */
2 G4 n" P. b: Y: V3 M, r    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));+ `! a4 g# J& g* n8 w; m; g
+ i* e( ^2 r0 n% B. h# {
    printf((char *) myPayload);
2 E# G" c+ s; x9 D9 }        }
* T% L1 l: Z+ i$ i, s" j# ]$ Z+ a" |7 x}
. ~# }; L- s3 D+ Q
$ w) O: E& T: W% Z: y& _) ~5 @    WAIT_HERE;& H' ?8 W) N8 ^
}4 X( J% x* }4 M
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:
/ \( _- @9 J5 ~我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。1 I  O- N9 F# ^5 ?
然后我把双核通信的初始化屏蔽掉,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:547 s) F3 {( H' I- w. o; t3 G
syslink 的初始化是否成功,notify 通信是否正常了?

* [# b9 o5 X- L" e双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
2 M5 r4 C8 |' I, _syslink 的初始化是否成功,notify 通信是否正常了?

/ @# v+ ?- e7 |2 m我用的是裸机开发的双核通信,用的是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:209 K6 u: v6 w5 f4 L" N  [4 C
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

4 C: E$ l  d: q9 I; Y建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 08:08 , Processed in 0.049278 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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