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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。) Q! y* D2 Z$ U- l$ G. E0 v8 N$ y
我是在DSP初始化这不太明白。
" I2 ~4 p( H1 d6 Y% I: `% f7 b8 B9 [4 ]初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。. L/ D/ L* w, A3 z- t+ b
0 }+ Q3 y$ X+ ^" ?! S! r

8 f- e( y2 ^: l) s首先        PSCInit();//UART0使能, Q; t: A! a1 J$ Z2 p2 ^; W
void PSCInit(void)
' d6 X7 v2 t6 {9 o5 e: o. ^' Z{( u5 D+ n6 G- D0 R' z/ u
        // 对相应外设模块的使能也可以在 BootLoader 中完成
& V3 J' h: J  m: |( \    // 使能 UART0 模块. u+ X% F3 g# [+ a$ c/ X& K- Y
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);' v. q* H6 h6 i/ P: ~: w
}4 A$ T& B+ \6 T% B/ _  T0 l
% K- Q3 R2 G& b4 D) |+ e1 A  K( y

2 S2 S4 j2 X2 z$ U5 ^然后是 双核通信的初始化           AppInit();6 A- m$ [1 Z7 _) j. |6 R; F) E
void AppInit(void)2 L2 n" [9 V, C4 ]5 z9 |5 h8 Q
{
; z% |6 ?2 F; Y; w1 O% ~9 e( i. G: k: J    /* Structure to initialize IPC (see Ipc.h for definitions) */- a+ x* i. p' Z$ N: l6 Q( v0 U' U
    struct IPC_cfg ipcCfg = {( O1 I8 s! V# O9 z- D* L1 M
            IPC_DSP0,             /* local processor Id */2 [* N6 _6 S  A9 P7 Z! `
            IPC_ARM_HOST,         /* remote processor Id */
. a4 s. }  S& B) L8 V# @            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
& u$ x8 w, i* u' m& O) c0 ]6 l; }- w            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
8 ]& S" \) r) L: q            NUM_MAX_EVENT,        /* maximum number of events to be created */  {  \( x2 t# H
            &ipcPvMemDsp,         /* local side private IPC memory */
5 e8 z; W' {& t6 ?: f1 D" k- F            &ipcPvMemArm          /* remote side private IPC memory */
! I* h+ r3 E3 l: V* Y  C# n    };; h' P) y, {9 ?% e4 I7 S7 q
    IntDSPINTCInit();
1 C5 @" H. E2 u. r6 ?, ^, ]    IPC_init(&ipcCfg);
. r% U9 r: t' w3 R3 O    IPC_intRegister(C674X_MASK_INT5);$ }, d# ?% [) b: Z8 y
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
4 L/ s8 w+ T. v) [! ~6 Q7 G0 {- g2 G' J6 E4 b5 }
    /*  Enabling interrupts for DSP C674x CPU */
& t4 U: `: ?) N& G9 D    IntGlobalEnable();        /* Enable C674x global interrupt */
: W( k  [1 m7 M- Z+ o9 V    iAssert (Notify_start()); /* This will enable IPC interrupt */; ]6 |" @- Y. l1 [) ~1 c" F
}6 B1 t- U( i) q4 K( T* h
6 n! W% y0 M, j5 ~
然后是  
8 u4 G; W$ }9 E/ C: Z+ z6 L            // UART 初始化, Y* @& e. r! a# d5 I( a7 ^7 B% F
            UARTInit();
  O! U# k7 j7 J8 d3 ]/ d4 q2 t) T5 ]/ h, j- V9 w2 O- ~
            // UART 中断初始化* s0 d, F: I$ N8 p
            UARTInterruptInit();
7 t8 o$ _" }& ]) g- v7 Y9 L
! A" U; m/ g9 U; x+ y
1 `1 f8 j) v3 w9 ~7 y
void UARTInit(void)
4 L' v3 R% D) E  f, g{- J$ X' h/ u. w( J
        // 配置 UART0 参数
4 I+ @2 K* |2 i" K! f7 m        // 波特率 115200 数据位 8 停止位 1 无校验位
- c3 T1 x, T9 f" z* M    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,) R( B! f2 I1 ]2 z
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
" |* f! P0 ]3 I+ Q) B2 t: Q6 {        // 使能 UART0
1 C$ h" k5 T' C4 `        UARTEnable(SOC_UART_0_REGS);8 @3 k0 j4 t' Y! r) N/ ^" G6 P
' {1 y* U( _; k4 l6 G/ r( D) k
    // 使能接收 / 发送 FIFO
: o. T, ~1 q# t4 H//    UARTFIFOEnable(SOC_UART_0_REGS);
' b: t" n, I/ v+ ^7 H
) r$ ?4 E. v& Y        UARTFIFODisable(SOC_UART_0_REGS);& P9 F' I/ \" W6 e7 K

: S, R; j* H/ S+ d7 U6 z& ]; M3 \3 w    // 设置 FIFO 级别     接收FIFO的级别
) L8 ?$ U# Y$ g5 B" f9 F! g//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);) ~) d+ R" V7 i3 t; ~8 F
}3 X# w5 E/ W3 U! H
( z5 _, y6 P6 K4 w5 c
2 m% x" n" a. _# q7 j5 D6 C
void UARTInterruptInit(void)+ ]/ M3 `( `* T7 r- }. b% i
{1 S) ^8 c" t; I+ }
        IntRegister(C674X_MASK_INT4, UARTIsr);; N: p' h: N: }( W
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
) C$ g: m! [, ^        IntEnable(C674X_MASK_INT4);
" D# R3 v5 z6 ~0 y7 D! o+ k& Z$ m8 ~; f- V
        // 使能中断
7 ^, d) Y) l7 z# r8 H0 B        unsigned int intFlags = 0;% Q6 c- a7 R' y! m" z8 Q
    intFlags |= (UART_INT_LINE_STAT  |  \
$ ]; r' A: g7 q% V" [                 UART_INT_TX_EMPTY |    \
' ~; J- T, z' \$ F+ Q4 [- p                 UART_INT_RXDATA_CTI);, g: d* {  f  q- `4 g
    UARTIntEnable(SOC_UART_0_REGS, intFlags);
: h/ T2 G1 K  l% X}
1 O# S+ D5 {! y$ q8 |: ^

% Z- @# E. v( R" O
  z$ j" X$ }8 w% X  [1 {9 Kvoid UARTIsr()' y' p2 n" S% B* v& W8 v6 o  |( v
{/ H6 n# e# h- D% u' U, J
    static unsigned int length = sizeof(txArray);: F7 d1 g, G3 O0 h7 @! Q
    static unsigned int count = 0;
- ~3 g9 q: J, c- J" q    unsigned int int_id = 0;
1 C7 l* w* k( y" y! |. C; u- a$ m( U. \  W5 S
: S4 L  A/ V# j" G  _2 @

, Q% ]7 P8 k. l, U- ]# K& m    // 确定中断源
: ~) N' X. c3 s/ @# u, c' ^- z    int_id = UARTIntStatus(SOC_UART_0_REGS);/ J. {+ @" o1 t$ H7 W/ Q
1 s/ l6 r9 k. E& Y  F) J- z( b
    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
1 K# Z6 R; r: E
4 U  ^# o: S& n4 d
" a1 x) ?5 U0 d- j2 `- d    // 清除 UART2 系统中断6 s! M* }" G) }5 |$ ]) }2 i! S! q- A
    IntEventClear(SYS_INT_UART0_INT);
+ }. D. h4 b; u% s* w
+ ^; |7 P* j5 h1 u    // 发送中断
6 K' u. v- Z1 P* [0 o    if(UART_INTID_TX_EMPTY == int_id)" \( {+ [5 J/ r5 `3 ?) a% w6 \
    {
+ ?) N* u- }! @- g" Y. _" i7 J        if(0 < length)
6 r7 k& u' m# _  I- y        {
+ b3 N5 K# `+ M& c8 P. [            // 写一个字节到 THR5 e( y3 u+ B3 C8 I3 L0 Q4 R
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
! i  O. q. I9 ]9 w& Q8 N8 n' d            length--;
9 _: A2 {3 \) x' C6 e            count++;
* `! q1 {0 A1 R        }; M  c! _- Z5 r* }% o5 q0 v
        if(0 == length)( ?2 n: t0 [* m% ^
        {
  h- U: e" x, Q4 Y            // 禁用发送中断) V5 e; Z0 b" E: b- G) Q- [
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);4 C) Y: K' i9 e% Q+ b: N
        }
' Y4 `# I4 o' n" G     }. P- E6 ?2 z& j, p0 m- L' p

' l9 k" }! `6 J- c0 {; U& D; r  [    // 接收中断' J; N' l2 o% \/ Z
    if(UART_INTID_RX_DATA == int_id)4 @' o% G* J6 m! J* b1 t
    {
0 U$ \$ I3 X) ^# R5 G( B1 |% h; c- V        if(status_a0==0)
( k3 l' Z( A7 ]9 X. i1 p5 u2 e        {/ h* E: ~6 N0 x; p+ g* n& @& r) K- }
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
3 a$ W7 _( ~, S" }, R                if(a[0]=='#')
( Y4 b6 T* w- r6 O                {
6 J- c2 x7 z% T3 K                        status_a0=0x01;+ r' X- t/ q. P& K6 L4 {
                        status_a1=0x01;
3 {6 L1 S, I, M* y                }6 a% S: v3 ]8 j) a
        }
6 r/ x; j. k- i        if(status_a1==0x01)
" g. ~  ^. e9 X* c& q        {
8 F/ V! o* P  p) W7 H                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);1 D5 d( }2 `* g" W) M
                if(a[1]=='R')
: I% A5 C5 q7 N                {
" m8 h7 A7 k: I( E9 z7 |                        status_a1=0;: W0 }9 E  G# J5 O1 o' q3 L
                        status_a2=0x01;
8 ~0 b3 @% I1 v& @4 R' r                }
0 M6 z: n4 p* S9 ?3 W        }, j  f1 k+ {$ y% X- ~9 G5 x
        if(status_a2==0x01)9 D8 `( C  p2 |8 l
        {
$ r3 `, V# \8 T                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);! t' Z- F. B6 o% ~1 k
                if(a[2]=='A')
1 X$ f7 `" e7 _4 p9 S* O1 W3 L7 b/ B' e                {& h) m& P2 y2 m. k1 y3 J: ?/ S2 A
                        status_a2=0;- ~0 z6 p5 i! ?9 b" R
                        status_a3=0x01;
) g9 N6 B) q. E+ |' g                }9 E, N, S* I, R! U
        }
1 t3 w) d' ^1 x6 C( x4 G# Q        if(status_a3==0x01)
3 K7 M: }2 O* s1 q5 D        {
9 n5 D( i" M6 R2 M6 @5 Y                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
% e, ], j) ]4 _, A/ ?7 z                if(a[3]=='N')
7 u# H$ m, \3 D# Z) C3 {                {
& F& k  v+ N; s( ^                        status_a3=0;* ?) E6 I& `% a" o
                        status_a4=0x01;
4 }4 P) |& |2 Q% W5 K5 a0 ^$ P% m                }$ V* U& E" P4 p
        }
7 Q. c/ Y. L7 R: s8 a        if(status_a4==0x01)
8 s9 {: Q; Z- L0 `; g7 g* Y        {( s; c3 Q0 ^. q+ E7 _3 k9 G7 Q" _
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
2 d* R1 l# E& g, ?% ?  Y                if(a[4]=='G')3 L! A3 \- ^( ~; f1 ]* X5 E8 D% z/ q5 y
                {
. g: d! _/ n" e! D                        status_a4=0;6 R3 h+ B' z! l$ x/ Y% k
                        status_a5=0x01;' b' h# x/ R8 |! I+ O" K; k
                }
' u1 M) ]$ m0 C        }7 f8 G+ F' p+ e% t' ~; Q2 O0 B" Z% K
        if(status_a5==0x01)
; M( L2 ^2 V  ?) ^* H        {- Q8 M( e2 l9 }: R
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
3 Q$ P2 o# d& S# ^" }; H, `                if(a[5]=='E')' b" M. k; P7 L# Q# P6 x" t
                {
2 C/ l1 K! f" Y! g6 R/ Z                        status_a5=0;
5 L9 ^1 `" ^! @                        status_OK=0x01;3 C% K, L* o3 D* y! |9 \
                }
" `. c* {0 b/ k9 m: D" w: }, g* A        }' P/ N7 F$ X# M4 [  F' W/ R* s
            if(status_OK==0x01)* @; G3 z6 W: A( T) S8 k
        {
! t% g/ x& l& s2 i; X% i& i9 u& z; R                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);5 e/ y' G* i6 F+ }; L- G# _
                        lengthrx++;% i8 X/ R" d. ?
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)9 o+ m0 f1 j# i8 q$ o1 ~- {
                        {
3 t0 ]9 ?8 [) F3 W                                RecState=0x01;1 \$ a- @6 `; X% R( i& ~' c
                        }4 _3 P. B- }6 z
         }. b. v# ~! \$ F" z* C. i0 h+ t1 f
  D2 T$ [' m* ]" |$ z. M
     }
8 s- v7 A2 W. B. s, B0 G8 k* O5 c" Q2 r# Y# r" \( x2 ?
    // 接收错误
* ?2 o1 n& _- z- C/ Z- m    if(UART_INTID_RX_LINE_STAT == int_id)
7 d9 z. p# u8 J; A+ M    {1 [8 U- p/ F7 X3 M' L
        while(UARTRxErrorGet(SOC_UART_0_REGS))
1 |9 V0 H  S  I5 x; ~$ U        {3 Z; C( |) c8 _+ f6 b
            // 从 RBR 读一个字节
6 {% u3 {+ @5 ~6 _3 m8 `            UARTCharGetNonBlocking(SOC_UART_0_REGS);% U+ B& H3 ^9 ]$ R+ l6 D7 B
        }
- I9 b& ?- }% g1 M( n% y    }# _; e' L' r1 g$ @6 i

" N0 J. a; n5 S9 f+ ]/ n- \* B    return;
/ s+ C4 x" {  `4 i3 L- ~# Q}
# ?5 F' M/ P/ j& N; v  b
% A% I4 ^. v" A% Z
8 a/ Y4 R  |$ U( I& ^. D
  q8 w3 m% |) L7 p  O  Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2020

积分

创龙

Rank: 8Rank: 8

积分
2020
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,' `' Z) B# U9 a9 ^) i
8 @& t) u+ f- N' l
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
9 |0 N$ f  l% \( V; B: z  U8 p0 r6 z- a
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13# u' W9 s* g3 `# J9 E' n. A& }
hi,
3 H( O# |$ X( q0 C+ X4 j6 ~& J# P$ y$ c  n1 k, u9 T
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
7 k/ P# N4 e6 p3 E
void main (void)
6 c. ~- |; |0 X{
6 w8 q: w5 ?( n$ [        int i,j;
! _( y1 c. c0 E1 O7 {/ k: K8 v    char *str_buf;
0 A, Q( Y4 W- w$ o, H0 w5 \. X: |" v9 P    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];2 M% @& W2 L4 W; J
        double est_L_b_=0;
, Q: p5 r# w+ C        double est_lambda_b_=0;2 `- k( }: ]- j$ B1 l4 O& B) D
        double eul_[3][1]={0};
; ~1 J* Q; y4 u& r1 V$ _" S        double est_v_eb_e_[3][1]={0};- m& D5 x0 c8 X; j  Z
        double est_C_b_e_[3][3]={0};8 U3 O- M  O9 w6 C( i  S& x' n
    char *qm;3 X: ~' ?4 p/ ^  {; Y' i. ^
    char rec[70];  ]& B, A; V6 ?6 c. N6 Q5 |# E, v
        double L_b=0;
  M9 v4 |$ g) X. @* N        double lambda_b=0;
: A- [$ c# z- z5 \  C5 f: o        double h_b=0;. B7 F3 V8 G: X7 p
        double rate;
9 z5 ]# B) o9 t( e4 N8 \6 F) M
/ L! M5 E0 S2 W; \! C1 ~) `- O' S5 c
  Q' {% C2 K6 J        // 外设使能配置
5 [. {2 ^, W5 m0 w/ W# X* v5 X        PSCInit();
, F. K! u( F: b5 R% N! K9 _
2 l9 _0 B( f4 @% h* r7 e4 b        AppInit();
1 w0 _0 G. [% l! ~4 J
# L3 O  J! z- w1 E* o6 _' p) w2 p        // UART 初始化
' y8 U8 W5 D% P4 B/ _7 R        UARTInit();
+ J* W: P1 |. l5 Z) [8 r( B+ o4 R, b, P" T
        // UART 中断初始化! _- c: C! Z2 w2 K: B
        UARTInterruptInit();
6 `* k% |' M9 `) q: i& ^# A
0 o( {" y2 \- b* w" I! S    evtRcvd = 0;+ W% N4 l5 H7 j  n+ A5 u
    RecState=0;7 Z5 S, ~4 T6 u# q& [
    /* Initialize */6 w4 i7 d. X, @! h: V

& ^5 j8 c" x4 [$ P) {    printf("DSP subsystem ready\n");
- G) Z9 K+ ~2 k8 P+ @* ~" \
1 N( K5 q9 \* i* A    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
0 Q# ?: ]+ f+ T4 N) n2 F! o  S/ H4 E9 t1 }1 G$ x
for(;;), R1 G: W# x0 T
{
9 v6 t: r; I6 D1 \/ Z) O. E        if((RecState&0x01)!=0)
6 Q4 ]7 [* R' E0 R1 W9 U        {
3 P$ e; ]" k# y5 ~9 u; z2 u# M                printf("liuzhenxing\n");
/ d2 x" ]1 J0 E7 c0 _        }6 T' n# M8 l) @7 n0 h. m! A1 }
        else3 j: d% ?7 F" Q0 }5 P- @2 {) ]
        {5 `5 @/ b8 m- P
       wait_event();% y9 e0 i: @$ C5 ^- g9 b" r

9 M: y1 a. d$ z4 ?           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针- ~% I* l# j9 W; S+ q- O
" d8 c1 Z  k9 m5 ]# K8 y2 m
           for(i=0;i<60;i++)
; ~" e) A. \  C2 f           {( x9 y$ G, o2 K' r
                    rec=*qm;
* F/ F* m# W8 a/ @8 s0 U( w                    qm++;3 B1 w3 F8 h4 n! `
           }0 U4 i" q( o; @# q, {/ P4 R3 ~

3 ^$ x. T, b. W' w5 I3 d           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);; i! l4 l; B" c
; }5 d! X3 A! }/ r; x
           L_b=L_b_receive_double;
( c$ f0 g6 i) V: Q; w5 }8 j           lambda_b=lambda_b_receive_double;) ?% ]# h1 n% D: j/ j+ Q) U
           h_b=h_b_receive_double;& L4 P+ N4 J4 N+ v5 Q
           for(i=0;i<3;i++), R/ S- D5 O' \& G. j
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];
" \2 S( I5 z# P& X: ?6 }! u           for(i=0;i<3;i++)2 ^6 E/ i0 f1 [- e/ v
                    for(j=0;j<3;j++)
" r3 b1 j( C4 j0 H/ G                 est_C_b_e_[j]=est_C_b_e_receive_double[j];3 A' d% T% Q/ X0 N2 M( v6 G; R
* i- @6 O* h* t) N; E# t6 O  {2 j
                printf("L=%lf\n",L_b);
9 w, B" F" C; d7 k) f& W                printf("lambda=%lf\n",lambda_b);
/ z3 U! A+ S' R                printf("h=%lf\n",h_b);1 _4 h3 e6 I, w& T5 f" M+ W
) c2 p0 L! J6 H7 {1 m/ Y& f
                for (i=0;i<3;i++)0 X( ^0 F% f, t3 f
                        printf("%lf\n",est_v_eb_e_[0]);2 Y  V# z) y3 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]);
. J! Q" q5 x) _* Q                printf("rate=%lf\n",rate);8 `! P% i9 b6 h' x/ f. D: t  P
$ z# n! c8 D, y$ @  ]
                CTM_to_Euler(est_C_b_e_,eul_);. o0 a8 R3 C- O; W# F/ X! k6 }6 Q
                for (i=0;i<3;i++)- P" ^) K0 M; [" W% z
                        printf("%lf\n",eul_[0]);
5 W+ i4 |1 i" q+ r1 ]; P1 h9 n                printf("end************************\n\n\n");
5 z9 |( h0 L1 p" ~$ c3 l; n2 W9 P2 P$ q! @& M9 I
                /**********************************************************************/
4 T5 k5 E- a( T
# y  W( ]3 {- u1 I6 ~9 M            char flag[4];
6 @" Q$ X( g2 u6 f0 l% z+ T+ s: b/ M3 F( A: ], O$ y4 q; @7 _# S
            flag[3]=0x00;- [& {* p( l1 B& ]+ V. x, U! d
            flag[2]=0x00;7 Z3 G: q0 J% ^4 n% u
            flag[1]=0x00;& x/ q$ q# [9 L0 s6 I! i
            flag[0]=0x01;
) Z1 l! Z9 c$ }  ^8 [+ r) t6 P& |1 D$ e# {8 E1 ?
    /* Allocate I/O buffer and init with string */, p6 F$ U8 a# w( t8 F+ e
    str_buf = (char *) malloc(80);  v& f8 I4 W4 |% {$ J
    str_buf =flag;( D0 v4 E' U( P& ^+ X
# O- h, p$ F% H- T+ E
    /* Send buffer to remote CPU */
/ P1 s" m5 @8 ]/ f; |" }    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));# E2 k& e8 ^4 ~9 s

9 e- b+ ], y( u) W    printf((char *) myPayload);
  L# P( @0 |5 S1 s) U8 B        }1 w7 U& Z3 @! u1 F/ I( _& o
}. M! B% }# o4 G% U
3 ?3 r% Q+ x" }* I9 i
    WAIT_HERE;
( j' {1 b- u) \+ q; W/ F4 E+ i}
# o# o( M# [3 [. X# O; [2 B
回复 支持 反对

使用道具 举报

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 I5 J4 e$ b5 y. u我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。7 v# s! C" C1 F1 v9 W9 d- b( N
然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2020

积分

创龙

Rank: 8Rank: 8

积分
2020
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' V- @% K( Y. F- u
syslink 的初始化是否成功,notify 通信是否正常了?
+ s' e6 \; m5 F8 l1 E: Q
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54! z/ W! `! a3 ]- N4 m" p2 o% f
syslink 的初始化是否成功,notify 通信是否正常了?
( A9 v7 M* B# Y
我用的是裸机开发的双核通信,用的是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
: t* U' S* m6 t' p; Q4 r9 z我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程
% c  {; Y+ K6 e3 |) o; K! F$ V
建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 17:05 , Processed in 0.048598 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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