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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。' |; G3 _& n7 f
我是在DSP初始化这不太明白。) D$ D$ B% ~7 \6 ?/ H9 t( [
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
$ ]% ~9 j1 h, ]! e- s" s
+ }- v; u) T1 {4 C! {" x6 `
' W. W/ Z7 h) ?1 j5 O! W首先        PSCInit();//UART0使能. E+ A6 g& {4 I" b8 ~4 H+ X
void PSCInit(void)) [4 {4 _) C2 _! n
{
  v+ g% e( P8 R  z$ P. {        // 对相应外设模块的使能也可以在 BootLoader 中完成
8 a( |- T! O, O+ o& w5 l    // 使能 UART0 模块& q! v4 F' o$ b' O( S4 d% q$ P
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
9 u8 [! B  s6 X) n. V0 \& p}9 {# u+ g7 w+ ?( f( m

* {; N& G: e9 i) l
4 x& L  v4 V. q然后是 双核通信的初始化           AppInit();/ L% m  X3 u. I9 g& T' S" i
void AppInit(void)# t2 [3 P4 s, b+ Q4 w' C" i
{* S5 g5 g9 a2 Y7 J
    /* Structure to initialize IPC (see Ipc.h for definitions) */0 g6 X2 {3 I: V7 T/ m, W
    struct IPC_cfg ipcCfg = {
( \* h; Q) v" ~            IPC_DSP0,             /* local processor Id */- U3 e9 F& A5 Z* f. G, {4 x
            IPC_ARM_HOST,         /* remote processor Id */
+ G2 T, j$ m+ c& d; q4 `5 b  t! l$ D            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */7 k' M& H1 `7 \! n, `8 ]- u7 z
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
6 O/ y( C. s4 K            NUM_MAX_EVENT,        /* maximum number of events to be created */
# _& v: B' o( [- `            &ipcPvMemDsp,         /* local side private IPC memory */2 c* Y. [! @* z* Z2 u' h
            &ipcPvMemArm          /* remote side private IPC memory */. p% \3 R2 w9 L) m% y$ I
    };
' [% @8 r: K5 D0 o. t    IntDSPINTCInit();
& r  j6 R( {, s, u7 A4 n$ h9 b    IPC_init(&ipcCfg);& {4 c2 c: q3 s4 j" U3 O5 E7 F
    IPC_intRegister(C674X_MASK_INT5);" k: v, a0 b0 t: P/ S* d  w
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
' c9 \" \2 o2 W
4 q: n! |; g' q! [/ [0 O    /*  Enabling interrupts for DSP C674x CPU */, ~0 s+ `! O9 c$ v* `
    IntGlobalEnable();        /* Enable C674x global interrupt */
/ K) e# Q; P6 [    iAssert (Notify_start()); /* This will enable IPC interrupt */# L4 v9 z& K; @1 J, n3 z- y6 \) `
}
. E2 p7 K) r$ D2 o6 e3 ]
  X5 |+ W& h( b- ^* w
然后是  # P; `7 s4 @# s  v* W$ I# N6 I
            // UART 初始化; U' c- m: r& Z' b+ U
            UARTInit();7 K- t! J7 g, j1 i6 B

1 K$ ^( ?) B4 u) J8 K$ F1 G& E            // UART 中断初始化$ D- Y3 ^6 M- z( @& G/ C8 P
            UARTInterruptInit();
2 e- a8 f' z: O/ _9 S
# H* L$ m8 e4 l5 e* ?: `, \

5 k. t8 G0 P7 _2 J* q* }9 Ivoid UARTInit(void)
. }* m' |- d8 p1 W+ ^  A' k{
- ?0 ^& X$ V6 W        // 配置 UART0 参数
; Y# D7 M  B: O1 x        // 波特率 115200 数据位 8 停止位 1 无校验位
  j) O4 s, ]; B    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,) w! @4 E" L2 Y7 P% I5 s/ ~$ y
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);( c+ |8 `8 g+ |' {' Y0 v5 ?
        // 使能 UART0
2 D# W4 G: O! ?. K1 l        UARTEnable(SOC_UART_0_REGS);4 K9 c6 K/ c6 O# ~& P5 y
# x: W% I# o$ I7 v8 v
    // 使能接收 / 发送 FIFO
$ H; m: I' J, Q3 `' X. D//    UARTFIFOEnable(SOC_UART_0_REGS);8 g+ X! T. J9 D

4 p. ?; n! _# o( d- s        UARTFIFODisable(SOC_UART_0_REGS);
! f6 O  n4 v, Y# {7 E6 b7 R' w+ r: F6 e3 \$ O: X
    // 设置 FIFO 级别     接收FIFO的级别1 Z) F& s0 T9 L( e3 ?. M4 a, {- W
//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);, J8 j& e/ n8 y9 h% o8 l
}
: ~4 V* ^  U/ D* d

1 A. T+ O1 O% h! z% T# H0 M2 G2 D2 |9 y- x
void UARTInterruptInit(void)
- b/ y  s* U- q& o7 K{
$ U! L4 @5 J, a1 o2 ?. L* h        IntRegister(C674X_MASK_INT4, UARTIsr);
% T" c2 v$ n  P5 P# X) D9 ~8 {7 u        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
8 h- G4 ^! ^* f0 |6 M  k        IntEnable(C674X_MASK_INT4);! N, |) y$ g  ?

! C, |/ k; l$ z        // 使能中断" {0 A$ P* n4 h; C% u# b
        unsigned int intFlags = 0;
' z0 u( @4 d1 v2 y- L- H8 J& [9 S    intFlags |= (UART_INT_LINE_STAT  |  \( ]4 }" E) M6 b
                 UART_INT_TX_EMPTY |    \
) n! h" H  m8 q4 |- f                 UART_INT_RXDATA_CTI);
8 S5 L+ J( q5 `" x& x    UARTIntEnable(SOC_UART_0_REGS, intFlags);
' y' ~6 p' ^4 V8 V6 v}7 E" f4 @( S3 s; q" J) s7 g

- S3 E" t* ?* ]! A: d2 @5 o5 V3 H# {& A+ j0 s
void UARTIsr()
6 t5 o8 H( o; c6 O{
9 C4 _( i+ n2 y0 `7 e3 z& e    static unsigned int length = sizeof(txArray);
  W. j4 N! d: x* N9 S& `    static unsigned int count = 0;
* b' I4 J$ R7 @, a& b) |, p( m2 L    unsigned int int_id = 0;) A0 @3 Q. m0 w! q3 h' [
. |' @5 d5 e' o9 t. N' g6 w
' j3 x# Z4 u% u* `! T
& J6 i4 k1 P1 a' q  H: Z( I' V
    // 确定中断源
, F. V% e  O" z5 z8 V+ Q- W8 ]& f    int_id = UARTIntStatus(SOC_UART_0_REGS);! w! Z5 U- c" c/ A' V

. i* q; T. f  ?0 @    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
$ f8 h8 W: n. p2 E6 l& E
, t8 X- r7 D! W" Y) \9 W
3 i; @/ Q& x" O    // 清除 UART2 系统中断: }' s) p* h% q/ v8 V& }( ^8 y
    IntEventClear(SYS_INT_UART0_INT);
  Z2 _: U9 r" \; {
  D8 [; r9 Y1 V+ f) F$ v, Y3 m    // 发送中断3 _, B! f+ ~2 g+ M
    if(UART_INTID_TX_EMPTY == int_id)9 `$ y& S" y5 ], Q1 M
    {
( i) y& U0 W* E! n+ Q* q' B0 X        if(0 < length), w2 L/ N! K' E
        {; u) n3 p( U5 b; T) h& ]
            // 写一个字节到 THR/ i( m# O) l0 q* [
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
  ?, g1 j9 ~5 W/ Z            length--;: X, Z5 Q5 x+ Y8 d: w" E
            count++;, l, q; R$ A  I4 `
        }
$ K' Q8 F! z) |. _) _        if(0 == length)
% \1 P* `# y8 t. u2 M        {
: x- {- |/ A% N0 y            // 禁用发送中断
: y; K6 ^9 j1 m0 g% A( b* `9 X            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);* ^8 z# I: K- ?
        }5 S2 ^- `& t# j" y4 c7 c+ N* t
     }4 k" Y' _, z/ p; l* A
" Y  O! ?9 Y1 y. l  E# [# M
    // 接收中断
7 G! I; f, N) a    if(UART_INTID_RX_DATA == int_id)- ^7 B7 }2 P  O" P4 y1 e6 R
    {
, ]& N; P" ~& V, S" U        if(status_a0==0); @) n: I* P9 {2 P+ ~) }
        {  p6 [: R. X( f) j# S" w9 H
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
, Q" l0 K- w$ Q% d" M6 S* e5 v$ ^                if(a[0]=='#')
/ H7 b: x( |$ h" Z& v: A                {
/ }! }' Z9 G4 x' Y' A# n1 K. G                        status_a0=0x01;
2 Q9 ~& {4 U4 K+ H8 J: M% T                        status_a1=0x01;. P: v! U# c- P) d
                }4 N  y( l* v6 J+ n
        }
2 K# E5 G( S: {& E6 Z4 h        if(status_a1==0x01)% _4 V8 Z' n, k# H, g8 ^8 B8 |
        {* c0 ], O# v0 i' c
                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
! W+ I# H: l" T  v9 c: O1 q                if(a[1]=='R')9 h7 C$ u% e( [% s- h/ @/ v
                {
  H0 S8 c5 W, |) C  \  d                        status_a1=0;
! \, a$ k: w  [& n. o                        status_a2=0x01;
* D2 l( a. h2 k/ U& j6 _                }
: B0 E- }9 l5 g" @0 X        }
3 h2 }- N4 @( a% o- Y9 X        if(status_a2==0x01)$ U, w/ M2 b( {
        {
# R* `( r) t( y                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
. o/ q/ T$ p* @+ b9 o% @                if(a[2]=='A')
  J# ?/ [- x0 c' f) N                {4 b2 t  O8 x2 ?9 U1 D( t% ~
                        status_a2=0;
  \9 `6 O  H7 _4 K- X& A                        status_a3=0x01;1 X6 F1 r; i  E# E" F  r
                }5 d9 g% Z! t  G) P. ~. y: Q
        }
# g0 }: T# n7 L' c* ]        if(status_a3==0x01)6 h& K. d. m- B' G; t. R
        {! w0 f- f7 ^5 n9 w- [# _. r9 B
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
) q: `; P( v. @+ @* l                if(a[3]=='N')
: S  P/ L! J: I; X                {- t  a. m- B# Y7 r7 ~
                        status_a3=0;
, f1 |: r6 M$ H6 y; h# O( n                        status_a4=0x01;
' j2 j0 c& O$ w& h! ]                }
! A1 U( ?, G( h" s9 S5 H        }
' A  a0 I5 t* S9 U; g        if(status_a4==0x01)% y* W5 n: g4 U4 u- `; S
        {
/ T+ M4 x3 E2 M                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);% m9 {/ Z5 E$ g. S) v1 C! ~  l
                if(a[4]=='G')
1 K/ v5 J% ^; l: U2 d4 j7 ~                {
) L: A7 u5 t% C8 b! x& G; r                        status_a4=0;
) X" K' |2 [( K/ P/ {# Y! \: F                        status_a5=0x01;
5 ?3 q" x6 E  P! K: m$ ]                }4 j9 I7 {0 p% Q3 `+ C& J7 a
        }
; u. k& o$ M- A6 p* o" ?        if(status_a5==0x01)
! A9 M6 x; i8 E* c, H' A        {* I) [' m$ m! _  v( Q5 `
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);- t  Q1 q; O0 p, i. @1 y: X
                if(a[5]=='E')
: [/ k( y, f1 }' B3 o* C                {4 }5 ~8 x8 O" L
                        status_a5=0;' w0 I7 h) {2 c: v9 d& q+ e( H
                        status_OK=0x01;
$ p5 W! [& j/ |                }& o3 O% |* d' h0 R2 `
        }( H! g7 B  E: L
            if(status_OK==0x01)- I6 q6 W) `' ~( C5 X# s) p
        {* \2 s: H# c# ]3 X- t. v0 s9 k
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);8 {/ J! I6 s; W, S0 u/ m
                        lengthrx++;
, H3 Q: [/ q, x" c* D                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
- c" w$ L7 E. G                        {
" G7 V! v5 y  Y; F# I5 T  Z& b4 w                                RecState=0x01;
, e( b3 F! a& b( O                        }
. q5 ^( M6 C) G  W- a* V         }
# K$ y% ^6 W6 z. |2 |# p( |" c5 h0 u  p! |: f! M8 O
     }
# B) \' z: g! o/ a; v
5 O0 r7 k3 R5 H* ^& F( e; N    // 接收错误9 L2 G+ d- G7 B5 |$ M: w; v: {
    if(UART_INTID_RX_LINE_STAT == int_id)
* |2 n% o! K2 R3 O- V4 h    {& o1 _1 d+ q, L: v/ `. y- `4 |2 i  w0 d
        while(UARTRxErrorGet(SOC_UART_0_REGS))9 J$ a7 ~! V9 [0 Y/ {
        {' X5 }: @& Y9 @- S/ f3 q
            // 从 RBR 读一个字节
2 o, u. h7 a9 N  O1 u            UARTCharGetNonBlocking(SOC_UART_0_REGS);: z+ n# {- b# e
        }4 G# l. J; c8 h) N
    }
3 ?" H& D9 x  ^  d7 X
. o5 v2 S) |# b9 ^4 B, t/ L, D    return;% R  }! f! x# |
}
( d" r4 T5 }$ r7 M. _. ^3 G) Q4 ~. P( C
; M1 N) v6 H3 y+ O* E( ~
, [$ d& M/ v1 S; V  x

4 M3 C* }  c0 p" r- q9 H7 R- D" o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2020

积分

创龙

Rank: 8Rank: 8

积分
2020
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,) i. R& m; J+ a" x  `& q2 n5 M

# }+ {( `4 @8 nUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。0 V* [# C. t- R* y7 J' X4 R
$ K+ S* E9 U  J9 N: \: _
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13+ V$ e: D+ A/ w& d7 k/ [2 [
hi,# D  H" A! f' \8 ~  c3 N& Z

$ j$ V3 I( U: B( E% fUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

- v, v% g% o! }7 o, \0 Svoid main (void)
& K- B' ~# |4 C/ t+ X{
6 j. u) C/ O  s0 q        int i,j;
8 s3 W' O( E- W2 W    char *str_buf;
! N  b9 t+ ~" X$ C    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];" F' r' o. [6 E5 d, i7 i8 {
        double est_L_b_=0;3 e* {, I% t" R- i" t$ d. h" E
        double est_lambda_b_=0;, I3 s% m/ g$ w* A2 [6 M
        double eul_[3][1]={0};
/ u* z7 O4 u* L8 \4 \        double est_v_eb_e_[3][1]={0};
* G  G9 }+ G# q" u0 W2 s        double est_C_b_e_[3][3]={0};
, I2 Y* o  @' y1 m& {+ B    char *qm;
  P& P4 K" R- A0 ^" ?) P& B0 P* R. I" y    char rec[70];1 G! u" B, `- ~* s+ H" x! c7 D
        double L_b=0;
. }/ q2 X3 y% h        double lambda_b=0;
: |- H' p1 Q. t/ s* j1 b        double h_b=0;5 G2 }6 U! c* R7 w$ v
        double rate;
# I- z4 L% W+ m9 w4 n" W
6 j) g3 N$ L+ {* R  e% u5 u0 E7 |& U* s% k( m, w  Y9 g! q
        // 外设使能配置$ L* s2 n' h" U8 D. t
        PSCInit();
/ N. x. G' s$ E) t. a/ m2 @
* D5 w/ e; s6 X8 N+ T% C2 q# g$ s# |        AppInit();& J! d' m3 K0 f% e& k+ N

4 s4 T; ?: Y4 t2 L# k* U  x! L* d        // UART 初始化1 L* l8 B% _; s  ^
        UARTInit();
/ e- j, S3 a. k+ [" w6 Y
1 Z; K+ x. J6 y" [4 |/ A7 G; B0 c        // UART 中断初始化
' v' J( c8 L2 w- q& ?; R! C2 t        UARTInterruptInit();1 o7 S4 f$ T* N% i7 s

0 P* s) B# I6 c    evtRcvd = 0;$ ~+ B5 u! S5 o9 m& u/ o
    RecState=0;. K  I; p4 [8 z$ }' W$ d  H5 C5 ?
    /* Initialize */
6 w+ }7 J  j1 \( ~1 W) H" G* [, h$ h# z  d, u
    printf("DSP subsystem ready\n");) h+ z* S- @& \/ L/ `. O
8 E7 b& }, Q: N
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
. t: ^0 s8 H- U$ K* z2 h5 v% o; j& i! d* a$ o
for(;;)7 D# W2 V, Z( G+ }
{% R% Z1 b$ {+ R* \: ?
        if((RecState&0x01)!=0)- \0 [8 `! n5 F
        {7 ^7 T" x8 e# i8 M
                printf("liuzhenxing\n");
6 s6 t6 r, G' D/ P1 M        }
5 |8 \, t( e, j$ N' x        else
) a1 b* T+ d# o9 Y        {
, P5 L; Q( p& u& Z$ N; Q2 J       wait_event();
: N8 M# w  u  A- z2 ~! E3 {+ n( s" R4 m9 h9 F6 s# _+ p8 E
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针: K0 O3 _8 M8 ~1 N0 R) [3 G

% s8 E2 |2 E4 x, u           for(i=0;i<60;i++)
9 C- w& a$ \8 M) X           {/ {1 Y2 C! X/ x( z" y8 Z5 H9 ^
                    rec=*qm;
+ f3 i% y$ G+ e7 b$ S1 q3 Q                    qm++;
9 w* \% |% [/ t7 C           }
1 R* h: c5 I- Y8 X% n  ?& ~4 ?0 c' a" g( |% |% j
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
5 ^, e$ j1 Z; [! i
& n) j" B& b, g/ C  p' R           L_b=L_b_receive_double;
5 F; g% p) l: L, f0 J           lambda_b=lambda_b_receive_double;
* Q1 g" r) T; G( A) e           h_b=h_b_receive_double;# N4 t' |% Q3 V3 h: @# h
           for(i=0;i<3;i++)
2 t. A5 [2 m3 s                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];
9 A% E3 P2 _2 V           for(i=0;i<3;i++)4 C: T/ ^1 y, D1 g( R/ C/ Y8 C5 U
                    for(j=0;j<3;j++)
% }3 o8 T1 J9 d0 Z3 q                 est_C_b_e_[j]=est_C_b_e_receive_double[j];; I9 K2 v; H! {( S( Y7 G5 }2 p, D4 c

9 j2 \/ a$ U0 I6 O) c                printf("L=%lf\n",L_b);
9 ?" G- ~6 p1 O0 D( p% G                printf("lambda=%lf\n",lambda_b);+ U% l4 x4 D( {& X% _3 W
                printf("h=%lf\n",h_b);
7 C5 T% o! @( q5 i$ V
& i% ^% w2 K& w0 e4 h/ S4 @                for (i=0;i<3;i++)% X' v1 ^$ s0 ?0 P0 u
                        printf("%lf\n",est_v_eb_e_[0]);
  J% ~& k, ~" X. d+ 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]);+ o0 K- a! S! [
                printf("rate=%lf\n",rate);
& i8 S. k; p1 w0 c3 k3 @! n1 T2 i# u7 ~* I7 H
                CTM_to_Euler(est_C_b_e_,eul_);  v+ `. m/ @$ Z! q: F
                for (i=0;i<3;i++)$ R4 i. ~, I6 F' T, i* e, ^1 Z7 |
                        printf("%lf\n",eul_[0]);7 E. ~, r& Y5 V
                printf("end************************\n\n\n");
, Q! L( I2 b' d9 a) b" R8 S6 m+ i* i5 P# u
                /**********************************************************************/5 J$ d8 @8 n( Z! t5 e% k
5 \  f$ J3 i4 x8 B- \" g1 s
            char flag[4];
# g4 R. G2 q. |! A8 S
1 r$ \/ [' x5 D$ X' k! J( N1 |/ q            flag[3]=0x00;7 {$ I5 e4 g  p% l7 D0 X0 C9 V) x
            flag[2]=0x00;
: K* {: P5 h: |1 I$ `7 R. H2 {            flag[1]=0x00;
, m3 P+ h0 s1 i% h3 ~* Y            flag[0]=0x01;
* k" ^8 s- W& X* O- f2 m9 R( u! C# D/ o& J5 y/ g- j
    /* Allocate I/O buffer and init with string */
& ~  l4 t7 k  f) Q  p    str_buf = (char *) malloc(80);  Z5 G/ l3 @: @1 \$ r! U
    str_buf =flag;, M+ H  V) y. [: o; L# O  w$ B( s

8 z* h6 J2 W, n3 O! M$ a    /* Send buffer to remote CPU */% D  }9 C+ J- o' x  v% s3 x% f
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));8 Q- X+ }) }, v4 h

5 N/ }4 S/ n4 R% c# u    printf((char *) myPayload);% u2 r$ ~7 k1 G+ c6 L3 s  q5 }
        }
& H2 ?# o& D$ `}: A. {, F/ Z% Y

0 P' a! N! H+ S" E- }3 f$ H    WAIT_HERE;# V, I, y" g+ K/ ]7 D
}" f5 _7 o9 o) z
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:+ V. ~. p% q: A' [
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
1 g1 Q" R8 d- k4 Z6 L' U然后我把双核通信的初始化屏蔽掉,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% o$ Z. S' Q- c6 r' q  l
syslink 的初始化是否成功,notify 通信是否正常了?
4 r! ~$ G$ Z* Q( V& }) }
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:548 f1 R# j, i- y  R: U7 W% o: v
syslink 的初始化是否成功,notify 通信是否正常了?

3 z; E4 j! h% t) u! x$ U" C我用的是裸机开发的双核通信,用的是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
2 _+ V: w& j% e6 Y- f  |/ p8 L- `我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

. n3 U9 m! \2 @' g0 q$ q建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 13:30 , Processed in 0.052451 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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