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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。
( y2 p) h6 N3 ^$ L" R我是在DSP初始化这不太明白。
' c4 S' F  p) N* D2 T' C初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
7 u9 S# M2 P7 ]# i" N
: y8 @! ^" D& t. q$ L2 G% v2 S
. k! T2 X4 I% E. c6 Y首先        PSCInit();//UART0使能
( q4 x' X  `9 R/ ]void PSCInit(void)
$ L4 C& c- Y" B2 u0 B& J7 H; k{
' `1 @- H; _6 \6 B& q        // 对相应外设模块的使能也可以在 BootLoader 中完成
" P% E2 k" a7 c+ e$ o    // 使能 UART0 模块
" I8 a4 m; N% P% }( C  [0 ^    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);: g; M; Y. i8 W( C( v
}& ^5 s  ?+ m; h! n

' R+ Z  P) r. B: q" q/ p7 q+ a6 ]$ J0 J: z+ _  K" ^- m" P* a
然后是 双核通信的初始化           AppInit();
+ P  K7 C; V' Bvoid AppInit(void)  V6 b4 G- c. c5 Z
{
% h  d& Z+ Q4 e; b    /* Structure to initialize IPC (see Ipc.h for definitions) */8 X+ s! X! H  h8 T; b5 N8 q( L) Q/ {
    struct IPC_cfg ipcCfg = {
0 c3 L& u- p" W            IPC_DSP0,             /* local processor Id */& Z3 ^* J/ p: U! g( Y
            IPC_ARM_HOST,         /* remote processor Id */
5 w7 [, l( t. k, |  P6 r; z            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
( ?' X# ^2 R' k6 m5 d8 v) _0 a            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */5 S1 o8 v& p+ a7 b3 \
            NUM_MAX_EVENT,        /* maximum number of events to be created */6 U0 v* T0 G+ w- o
            &ipcPvMemDsp,         /* local side private IPC memory */
) y, m6 m! N: o) [* T            &ipcPvMemArm          /* remote side private IPC memory */$ ~$ N9 s3 Y! X  b
    };
1 I6 T; O! ?4 e# e3 Q: Z    IntDSPINTCInit();
3 M3 h, c  K! n8 v5 B- I: d/ h) f    IPC_init(&ipcCfg);4 N3 n7 F/ w% w
    IPC_intRegister(C674X_MASK_INT5);6 @" s2 |( W3 i3 H
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
# K9 g8 H5 E" l* w' K4 e0 {
+ y2 }. d: j( j    /*  Enabling interrupts for DSP C674x CPU */; h2 t- |% n$ w4 ?! q) s
    IntGlobalEnable();        /* Enable C674x global interrupt */* V; a) P6 ?9 V% g. ^+ J
    iAssert (Notify_start()); /* This will enable IPC interrupt */
& M$ r( l0 _$ R) e: v}
/ l5 _1 z  D5 A$ Z( l4 U' N

  q" n) R# J( t" [# n$ ^然后是  $ x5 b* {. u4 D
            // UART 初始化
* K$ ~; d' h, \7 m1 K: x' k            UARTInit();
! @: s) Z% R. d) |/ l( }8 v7 j5 l' X6 [( U! c* D
            // UART 中断初始化
5 ?' w; ^2 s9 Y8 L  W1 v            UARTInterruptInit();9 [4 ]+ h8 c( u  i
, U* B$ L- g4 l

- N( c  |( l1 V# s9 W8 n$ mvoid UARTInit(void)
7 n* l0 ^7 m8 P' u; L: K{$ h( R. C9 n0 n7 K( A
        // 配置 UART0 参数  ?6 a7 q7 E2 [: F( h) e8 B* W
        // 波特率 115200 数据位 8 停止位 1 无校验位
- Q/ ?4 F6 n; A0 u5 g    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,# f5 m+ j3 c& V$ J. `; f
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
5 r) ?8 L6 U$ ^8 W# }: @% ]5 \        // 使能 UART0
" [* a5 L! `- I* Y( p        UARTEnable(SOC_UART_0_REGS);" C( I0 a. N( p3 D3 l7 ~
9 F$ W1 w+ u9 Z5 O8 w0 k5 X
    // 使能接收 / 发送 FIFO
  o0 h5 q% B$ s  m' c" W//    UARTFIFOEnable(SOC_UART_0_REGS);
" w7 A; N9 D6 t" a  a! N% q0 X  H6 A  V8 d
        UARTFIFODisable(SOC_UART_0_REGS);
6 `0 y: w) V, C2 |/ W6 `; K' B" }( T5 N' F' ]) r+ k/ o) O" F+ s
    // 设置 FIFO 级别     接收FIFO的级别0 z3 p' V5 s+ z
//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
2 V2 Y5 V7 o8 W- z8 E7 U$ w}" ]/ b' t+ \  F' z* C

! d( W( E; c4 s; l3 X# F+ h, N4 t: @  A! \! n2 _
void UARTInterruptInit(void)
/ t' I. N" U0 j+ b$ r) s3 J2 V: Y{* [3 e4 b5 w% B& l/ A
        IntRegister(C674X_MASK_INT4, UARTIsr);
* `; ~+ D# ?/ z# i" J        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);: Z. T2 W7 m4 I* _1 l1 j$ ]& x
        IntEnable(C674X_MASK_INT4);4 j6 G7 x) u- ?. U! V
9 I. H9 }  [4 V( P
        // 使能中断
/ I# v, _' w" I- [. y" v4 u5 ?        unsigned int intFlags = 0;
. r: C/ f; r# o, ]    intFlags |= (UART_INT_LINE_STAT  |  \
* c8 y) I" W5 o" A3 c9 M3 S: G                 UART_INT_TX_EMPTY |    \
, e% s6 A# D; X/ W( A6 b- `                 UART_INT_RXDATA_CTI);8 i8 E. Y8 p1 U5 a  V
    UARTIntEnable(SOC_UART_0_REGS, intFlags);
" V% j) ]+ ?/ W1 C}9 c, K/ R& O  ?8 g. h0 g+ ~; N2 v
5 \+ a- o) C& V1 t5 V% I. J* c
, ?4 J: [5 |- E4 y/ l8 N  I" Z
void UARTIsr()
, p: d6 S2 |3 I{
; s: ]6 o4 R# q4 o* @  [0 G    static unsigned int length = sizeof(txArray);
/ @! ?- ^- o6 w& l    static unsigned int count = 0;
' O3 u+ [; T! R9 i6 O( y( y    unsigned int int_id = 0;! \. f3 [' O0 G' R1 d  m/ V

" i; O2 v8 G9 g) @; g3 A+ I- J- o, t5 d/ m; Q; D% s5 s# {

$ S) b9 k0 f4 {, o9 h    // 确定中断源0 v0 F1 g' H7 l% i6 @8 q1 P. v( e$ ?
    int_id = UARTIntStatus(SOC_UART_0_REGS);, B8 m' i, `6 R( o/ _# l8 w

4 E6 x$ F1 Q3 {2 L  I# R* L    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
3 U4 Q! I# z/ E* \7 _; I
9 N! W, m' v) ~) g% [/ i7 p) h6 H; J7 D+ B- _" R1 W0 t% r8 t1 E9 V8 g* h, }
    // 清除 UART2 系统中断& H0 X8 k+ v1 ]- V- [- a& O
    IntEventClear(SYS_INT_UART0_INT);# a/ P0 \1 \$ c- g% N$ O; [+ G, ^  w

0 k5 u7 l/ O0 j1 |    // 发送中断8 r- ]  O. R1 g5 e! M7 j0 q
    if(UART_INTID_TX_EMPTY == int_id)
0 a% _2 ^$ B1 W; C0 \4 y! i    {
  }* r5 w. a, Y  A9 L- a, H) F& f        if(0 < length)7 K* H6 P' o4 j/ t# }
        {
4 R8 I2 g3 V) u& a# G            // 写一个字节到 THR; S/ n/ o# i5 B$ \, t
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);$ l" E/ B) `' R7 f" u& R2 w' C$ d
            length--;
3 v8 Y/ s5 m$ h% d7 `: p& u  Y            count++;) W7 c9 p( y2 [; c! j  l
        }
6 n3 `1 @9 d# j1 o) ?% ?+ F        if(0 == length)
4 N2 p) H1 d+ m( n        {) H2 W* T! ~0 v9 \1 |5 {
            // 禁用发送中断$ I7 B! S8 c+ n. R( |8 r
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);* t: {; W) z& O; N6 N7 ~, z
        }
0 F& b! c3 |: o1 X/ y- O     }
' ]: ?: ]3 S1 n8 H5 O- V% ]0 Z: F- T6 A$ @
    // 接收中断" R* t* I, m& a) ~
    if(UART_INTID_RX_DATA == int_id)
1 U0 ^+ Y6 Q) D  f7 J# \$ h    {
- _  |; V- t+ b- T% M! Z1 P" ~        if(status_a0==0)2 t# _. g! ?# X( c. @" `" Y
        {
2 b7 G( y! o& {0 O" |! i& ~                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);3 q6 d8 ^; t- n: g. d4 ^5 V
                if(a[0]=='#'); n' R; F& m5 N" x
                {) \6 s6 q9 {% O8 H
                        status_a0=0x01;$ u' ^! O4 j3 e, Y+ h5 l3 P
                        status_a1=0x01;5 \" c8 K# ~, t) S: z( f% y
                }& `2 [/ Y) k! X
        }" R8 `$ b& ?2 a3 c9 X
        if(status_a1==0x01)$ m$ y5 T2 f1 W) z6 \6 d; m
        {
; I8 v' V% _" v6 m% D6 }                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);8 V* N' n3 k$ C1 e
                if(a[1]=='R')
4 @2 p, x! v+ b/ w9 }                {! l/ @! |  P  w4 k: }4 q1 C5 Y6 a" y
                        status_a1=0;
% @; m: K) O( t" y7 e0 C3 Y, x" n                        status_a2=0x01;) b5 q0 z) q- p, T9 E8 P
                }
$ [* _. t% h, j) X, P: C: |        }/ W$ B0 Y3 \" p+ Z
        if(status_a2==0x01)! Z! Q  b& D  w5 w1 W+ G
        {' B  O9 h3 j. Q8 d
                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
4 S: M& h/ v" S( ~: J0 X, \                if(a[2]=='A'): n0 Z( s  p4 Z) T
                {
0 J$ V: T0 a, d; `* [. V3 C                        status_a2=0;
$ C, J& ]* g0 K. ]* r                        status_a3=0x01;4 ^0 h- L5 F1 l
                }; d5 Z' f6 @/ R" c
        }  H; T7 g5 u3 g* F7 ^
        if(status_a3==0x01)5 W( g- q! u; H
        {
, e1 K2 S. Q  P4 v3 B                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
% c  t4 |' N/ m                if(a[3]=='N')( a3 v  ~" v+ f9 K8 |
                {
8 N/ Y8 u- b, Y! v* Z                        status_a3=0;6 k+ n$ v8 J1 P9 {. X6 ]1 f+ l9 a
                        status_a4=0x01;
$ \5 A" E' C& s0 F$ W; v                }+ d9 s  Y$ ?+ m8 v0 o7 E% G% H
        }
! G$ C$ h7 x* X/ W* ~5 u        if(status_a4==0x01)
" u* _5 U* w. d* z3 X" c        {
- J; Y  z8 {6 \( R$ h                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);8 n6 T5 d' \1 E& t# J& z) E" J+ m" D) ?
                if(a[4]=='G')
0 Y1 Q; b8 Q2 O; Q! V! g9 J, Y( |                {; Y6 [& b) j7 U/ l
                        status_a4=0;
: A) g8 ?$ x( F2 P" F9 W6 e# M                        status_a5=0x01;
# U  h! @5 O3 A9 P* @. `. d                }
& a6 Z  q& v8 |0 u; z. _+ M        }# I! D( c6 Y: G* I0 e8 o
        if(status_a5==0x01)
' B# s; U- ~! }% [& ?        {1 W4 [4 |6 p: s) n. p
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
- c  Y- _1 C/ `' F                if(a[5]=='E')1 n4 y" G1 Z5 K/ R% ?
                {2 p5 ^$ j8 ~1 ~/ o5 d
                        status_a5=0;
7 G& D* _* B! |& B6 T, \/ A                        status_OK=0x01;
8 c3 J& k* k, L! y+ j                }3 j' q/ m) ~/ z  k& a
        }
2 |# N+ q. W! l6 F2 O( S. f" P0 R" i            if(status_OK==0x01)
; {" T9 I9 a- q        {6 V. j( G  i3 F0 |4 U
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);; s7 j, v4 p& j3 U9 c- h* m
                        lengthrx++;
3 b; {+ ~9 w! L, I& V/ ?1 o  b3 Y                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)) }  {/ E- {0 z& U. T+ j$ r
                        {
+ P& W* A5 E7 c# Y: U5 z* u$ ~                                RecState=0x01;
; G# W) H( H: q+ f                        }
& Q' a( U$ Y" I/ Z) E; }         }& K' h9 _. f0 r& v8 a6 B+ ~) ?

/ ~) E& C" x& E* p' u     }4 p4 _- E' z. B$ q$ |& \
$ ~" f, a4 T  Z9 l  a
    // 接收错误
1 _/ P, q2 x/ s6 Z    if(UART_INTID_RX_LINE_STAT == int_id)
% w8 o: S# _* q6 {1 R  q% r    {) f1 E0 i; [7 R
        while(UARTRxErrorGet(SOC_UART_0_REGS))
) u) L4 B. Q: {/ E2 M        {- S( s$ _6 M# i/ o
            // 从 RBR 读一个字节, g# N. n% r, K; ?" ~
            UARTCharGetNonBlocking(SOC_UART_0_REGS);
( C3 ~/ j' S  A! q+ L3 `  _4 t, o        }
5 u, z" S) U6 ~; U& c* u    }5 \# A' b  C6 g3 z9 N$ ?5 h

+ f( S$ L% u! A9 U0 }( f" u8 ]    return;1 k! y7 |+ c7 B% }* U) b. c2 s' A1 b% Z
}
- o4 w5 i( U6 }
2 j' {( V6 F: q+ W3 `' k

4 f) b, o1 ]3 P( A
6 Z4 A# s: D: H0 Q# i6 C7 }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2102

积分

创龙

Rank: 8Rank: 8

积分
2102
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,$ R6 Y! h' }( T% P* t, p, H8 v

6 r9 a9 F2 @1 ~9 u% I( jUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
6 O3 \$ ]" X4 x6 ^, k. ?% s- Q7 [( X6 e
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
4 y* k' L& v  Z3 x0 w/ G3 Fhi,
" Y& E0 i3 d% W. X
% t& t. t  R& ~0 Q2 b; `! _! cUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

- x( A+ j) Z% W. j5 cvoid main (void). A* Q: F! p+ N# N
{
5 w: u, f! ?1 N7 L# ?+ y        int i,j;
$ I" K0 a" w. H! J7 _5 R- S    char *str_buf;
8 G) K5 @2 E1 D' H; w    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
& P  ^: {9 h+ ^0 P% N        double est_L_b_=0;0 K3 N. N: }& v* i
        double est_lambda_b_=0;
' d9 |2 f' w3 `+ s9 d. \        double eul_[3][1]={0};
  X8 O( H' i- U        double est_v_eb_e_[3][1]={0};
* H1 ]  P. |' T2 d8 \* w  w& O        double est_C_b_e_[3][3]={0};! f6 {1 ^1 V; ]
    char *qm;
! o6 C% p7 p; X0 `! }2 L8 o    char rec[70];
5 k9 _* m2 T  g3 \        double L_b=0;
* i0 \0 d5 l3 A8 ^4 a' K1 S' K0 J        double lambda_b=0;9 L$ G- g2 N( X8 Z$ o+ _, u
        double h_b=0;2 f1 c6 \+ a. Z/ d# ~$ A: q
        double rate;
6 Q" ~& r+ J  @$ j: m
  S9 Y) V, u4 e! h5 g$ P6 O/ ~
        // 外设使能配置9 ~. l7 U6 J- U
        PSCInit();
( n6 T) N% l$ R# S! n' {, e- D" K4 V/ f$ [: c- F1 h$ ]
        AppInit();, G6 j% t" Q1 A- F' q1 g9 H" U% f/ `

% C3 L% b$ o8 W0 F0 t+ s        // UART 初始化$ N. E* \% D- I: |, g+ V) Z. @1 ?1 ]
        UARTInit();  c8 @: Q/ g, q
& p9 L+ w: a) w5 ?
        // UART 中断初始化7 D+ N5 K, v/ V, j* p8 `
        UARTInterruptInit();
# U, S' I9 T2 a( c( u# Q  n/ i: ]3 f' T0 i% l1 I1 ?
    evtRcvd = 0;
" U* o. G8 }; [3 T$ D    RecState=0;) L9 m. f4 ~6 {4 Y2 t, j* G
    /* Initialize */* b: F+ x4 I' e0 h( Q2 I. m
8 d$ C. k2 B( ?/ y- f
    printf("DSP subsystem ready\n");
1 p5 e" x6 e# q6 v
) L, F* Q5 e: l4 h2 C0 }* l    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));1 s0 N& c. ?: Z  t$ M$ W' N, m

" X  P5 u% D4 v) @. u4 cfor(;;)
4 i' ]6 ?5 j! V4 q! r; Y( C/ f{. @( X, j. j+ g/ v) A+ f0 L# \
        if((RecState&0x01)!=0)
4 p4 d6 _. J- ]! x. H        {
! w' l: g9 U+ |8 I4 t                printf("liuzhenxing\n");
6 U4 \8 x! q) ?( j, o        }: |% G  T) u. _- _
        else
+ Y$ j2 \0 |3 `; E+ U        {
; N5 x' ]' u) p, j2 s# u- s       wait_event();9 g8 `  I: v3 s
" Y( ]" @+ @* Y* B1 `$ O
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
5 p+ v! ~& U9 k9 f  Q2 l0 Y) |/ R" Q0 g
           for(i=0;i<60;i++)) Q: W2 D9 s4 h/ [# A, s- S
           {8 Q5 o/ d9 \/ H
                    rec=*qm;
; S( s+ z$ M- g% Y) l                    qm++;
# G& b& L+ f* x$ F) B/ a" X' I& [           }
0 F4 x% g1 L9 r% G
, e. B# Q6 I- N: j           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);2 V. {& h, p' Q" V, B4 F
" Z7 _0 F! P( ?
           L_b=L_b_receive_double;
6 w4 \2 u* ~, [5 o           lambda_b=lambda_b_receive_double;5 W" p: a1 J# B8 D1 W
           h_b=h_b_receive_double;
6 b, A, _( ]! |/ T/ j4 T3 y/ k7 F1 a           for(i=0;i<3;i++)
( Y( U0 W; h- g- B# ]5 i5 t                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];9 H) S+ h. h! b6 Q, ]/ J" U5 L" s" O
           for(i=0;i<3;i++)
  P6 b2 n1 y" K7 f9 n! l                    for(j=0;j<3;j++)
3 ?# S! I/ y. T# k& E2 W! Y! t                 est_C_b_e_[j]=est_C_b_e_receive_double[j];" l8 Q  R8 H0 {6 K: H

' M& e* _0 N7 K0 P" a. B1 l0 `, ]                printf("L=%lf\n",L_b);7 h; i- s- F0 }4 D
                printf("lambda=%lf\n",lambda_b);: f# Q( O+ v: f) W
                printf("h=%lf\n",h_b);
1 S! d* ]# x7 L! A' C$ Q6 K( j1 o/ y
                for (i=0;i<3;i++): g$ x/ w) O) a" O
                        printf("%lf\n",est_v_eb_e_[0]);
1 A% }+ l  m4 p" A# [+ 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]);2 l+ c2 H8 ^$ e" N& L4 U
                printf("rate=%lf\n",rate);, M  I& M( z1 K$ p5 K8 w, s9 Z
2 r; R. }. H1 a' `  x1 G3 ]2 d9 v
                CTM_to_Euler(est_C_b_e_,eul_);
2 P+ k8 [0 B8 c, t4 i                for (i=0;i<3;i++)' J' g( P) z: q5 C+ J  r+ }
                        printf("%lf\n",eul_[0]);0 f; V. ]% u6 _5 o- k/ M
                printf("end************************\n\n\n");
7 _4 v' J% V7 |7 Z) E* T/ l# {
1 Q, {3 Z9 I1 ?/ x# N' v                /**********************************************************************/+ H4 v+ d8 Q; |& Y) Z1 j# M. }
; t2 r  t* C* U; ]5 l
            char flag[4];0 f/ c0 u5 m6 Q- Z

, ?6 k1 X" ~- Y            flag[3]=0x00;4 S! U) {5 t5 ?! h) k1 T5 @
            flag[2]=0x00;
9 d4 b5 p1 v) N. e# o8 x            flag[1]=0x00;
* ]+ Y6 I) X( w            flag[0]=0x01;8 k; ?5 u8 t) H3 l
) Z. T& Z8 E/ h0 \- r5 o
    /* Allocate I/O buffer and init with string */
8 u5 u: _- p# U    str_buf = (char *) malloc(80);6 r7 v8 V$ M8 ~' H) H7 f! b# S& X
    str_buf =flag;
' l1 x" @) j0 n% m8 Z7 ?' ]) K
+ p) O! M; y, h/ n- }    /* Send buffer to remote CPU */
' K* Z6 ^# e) z7 e    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));0 t6 M; b, O+ U4 u7 O: O0 s; ~
* L1 M, C" l8 _0 N. T- _
    printf((char *) myPayload);
! X  g  i* r$ Y3 N% L) z        }4 ]9 ]+ d2 B4 O% x: P( h. y0 c$ H; H
}
( A- M+ K# s. r0 e6 D2 z! n4 ^; ~) W% ]# d6 X  P1 M; Q# g
    WAIT_HERE;0 f6 c: a9 v# f" q" N9 X! G+ A
}
( w/ p( M( [9 L! x4 R5 S3 j; |
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:3 y; u0 j) ]( n  p7 C. w3 z3 x
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
) U8 Y2 a9 }* W9 m( ^然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2102

积分

创龙

Rank: 8Rank: 8

积分
2102
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
4 K' R- |3 q. M0 P3 I. wsyslink 的初始化是否成功,notify 通信是否正常了?
# D! Q/ R7 f; Z/ `1 ]) y
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54) p4 R5 C% y: f8 }/ e- i/ d
syslink 的初始化是否成功,notify 通信是否正常了?
7 G" E8 l  V" _2 o6 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:201 V7 c) u  R! i
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程
9 H, m0 H3 N" W9 x" B
建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-4 05:43 , Processed in 0.048077 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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