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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。, w) b7 m* {2 m+ ?
我是在DSP初始化这不太明白。* Z  h2 u" ]& J) R
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。' n! S' ^/ N3 w

  b0 Z. h( D# C" E: [/ |0 {1 v2 X) O; {* L+ y' e
首先        PSCInit();//UART0使能& I" g7 m0 l' J" y, E
void PSCInit(void)# f) _6 O% q" ?% l
{
" M7 i) n8 u. U8 L( @: \( ~0 |3 o6 N        // 对相应外设模块的使能也可以在 BootLoader 中完成
+ O5 ~% b" i: c% b7 g5 u* b; y    // 使能 UART0 模块
; B3 i( s8 ^2 g* q& c/ d, ]    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
9 k8 d- ^$ ~' |* L0 F}9 X9 O1 t/ l, C8 M( J" N

- X: h- s' T6 X$ m
6 N8 m6 u, G& I6 A; L0 B然后是 双核通信的初始化           AppInit();
, A; b8 Q8 `& gvoid AppInit(void)9 C" i% A/ ^' f% \5 k* Y. B
{
  _& T& Q3 s# f3 E/ A    /* Structure to initialize IPC (see Ipc.h for definitions) */
$ }' H8 j# j4 P    struct IPC_cfg ipcCfg = {9 ?/ R3 k3 m: o9 u0 e. v
            IPC_DSP0,             /* local processor Id */
: f0 ~# D; F; q/ I/ C1 K. X            IPC_ARM_HOST,         /* remote processor Id */
$ V7 j+ e/ U, \. N' C/ V* x            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
' |  h" g& w3 ~* m. o            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
# A' E' k; w4 P2 M0 o, D6 W  k0 P            NUM_MAX_EVENT,        /* maximum number of events to be created */
5 E: l- L7 T- s$ c            &ipcPvMemDsp,         /* local side private IPC memory */  r; `' p5 U0 \( F! {
            &ipcPvMemArm          /* remote side private IPC memory */1 v" g8 c7 Y% X. O6 Z. T
    };
# N7 a9 z8 }7 r* G    IntDSPINTCInit();, U0 E3 o) s. |% B
    IPC_init(&ipcCfg);) B" c: a( `8 c( t8 V. g) l) |
    IPC_intRegister(C674X_MASK_INT5);7 R* o. E, K3 J/ K) B
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
- d& k$ R+ n8 n4 k9 G) R* x5 [0 D4 f. e7 T3 t% U
    /*  Enabling interrupts for DSP C674x CPU */
+ L' _/ n" b' @5 C( Z3 q9 ]    IntGlobalEnable();        /* Enable C674x global interrupt */
* E- ?3 W$ k( c/ u* U: t    iAssert (Notify_start()); /* This will enable IPC interrupt */
: \5 V; L  |% R; v. H3 G( h, b( D2 z- @}
, J* |7 n/ s3 D5 F" p( a( q& m

& c) a) Y/ H" A1 W9 @) c然后是  8 P8 w( F/ I: z% B
            // UART 初始化
6 s1 t6 G  Z, ~            UARTInit();
, F. q3 r, F  ~& L3 N9 Q  [9 N3 {  R9 _1 R( n7 }& T
            // UART 中断初始化
: j' O# G+ ^, @2 W& n            UARTInterruptInit();
6 O. I7 J0 ~7 @9 H! [
. g$ y! {, R0 f
) r  @+ V7 m2 o3 a/ b
void UARTInit(void)7 y1 `! n+ c& h* e, h
{- P, j  i% z4 A, ]5 @/ h
        // 配置 UART0 参数, J1 i8 ?# n( R& r: R
        // 波特率 115200 数据位 8 停止位 1 无校验位) a6 L& N: L- J. x
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,, g) t% y" c! A0 L6 J
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);+ ^. l( t3 d9 K0 d) f6 N4 q
        // 使能 UART0
! i& @" W6 a4 x        UARTEnable(SOC_UART_0_REGS);
1 `2 P; e9 ~  b9 H& p
9 E9 r6 D0 X+ b: L5 k9 X6 d    // 使能接收 / 发送 FIFO
% r2 H1 i  V7 t5 V6 ]: W; c//    UARTFIFOEnable(SOC_UART_0_REGS);
5 B6 z# }3 ]3 X. Q% T. I$ v- J% x# x5 o+ J9 u) H+ S! B& M" h# g3 z- ]
        UARTFIFODisable(SOC_UART_0_REGS);0 y3 K# o* ]3 B* I

5 n3 g- a+ }: z0 \9 K% j    // 设置 FIFO 级别     接收FIFO的级别
4 M6 @& R6 Q8 ]) }7 J% V1 R0 A+ L; p//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);  j3 g3 y! O- [- t4 q; W1 F
}! R: K2 I, N! g' }4 y

# G7 [8 T7 e+ j. A$ q# M0 N0 f' R, U7 _( P7 C" S
void UARTInterruptInit(void)% z5 u' [% y5 x  D7 E
{$ y' ^! K! {' r$ [0 ]$ M
        IntRegister(C674X_MASK_INT4, UARTIsr);# e9 x0 C. z# K- B+ K1 U5 J5 S3 H
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);+ S& v  ?- K8 L4 v  f9 y
        IntEnable(C674X_MASK_INT4);
& ]* B% j8 O9 a- X
0 e9 m' R6 z8 e, j3 v, \+ F        // 使能中断. W9 o7 i) c& p+ c7 a
        unsigned int intFlags = 0;0 c$ }8 ]- }% c1 Z
    intFlags |= (UART_INT_LINE_STAT  |  \) n9 T5 P, k/ G+ P& |* z
                 UART_INT_TX_EMPTY |    \" ]. O/ D! W/ b) Y4 r: e3 Y
                 UART_INT_RXDATA_CTI);; s# A2 M+ H6 X5 |0 W- O3 B
    UARTIntEnable(SOC_UART_0_REGS, intFlags);
# H3 y2 ]) ?/ }- Z2 d6 |1 o( ?}
. w7 Z7 ?7 S0 p( Y; _/ `# v
1 S6 v  g& @& W+ ^# f; G

0 b$ ?/ m5 {5 X& B7 qvoid UARTIsr()9 r1 u" m% J, Q
{
6 z  o2 {' y" r  F    static unsigned int length = sizeof(txArray);0 Y! W# U: X  P0 M
    static unsigned int count = 0;
/ I% p# B. I6 i) R) K- V; g    unsigned int int_id = 0;
5 E1 e7 p* v; ?) F3 V* e, v, x4 {/ P9 J# K/ J' D

: @8 Z4 h2 ~  I( }8 R- b
4 A6 u$ s% M, x" Y0 f- H* ?: `    // 确定中断源
0 i' c. y+ W$ n; O    int_id = UARTIntStatus(SOC_UART_0_REGS);: j  j( e. M4 I1 o
4 }" n  Y, p: P5 w: z
    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。" q( G0 x$ X% L; X, _
, [% E5 i3 ]4 H3 x% M1 [' \

9 o* e( t$ R: b! w$ x1 U- r4 a    // 清除 UART2 系统中断/ e# f6 x( a. D$ q/ \* c; Y
    IntEventClear(SYS_INT_UART0_INT);
' H/ \& H$ M# W# E+ {/ i6 N( f5 d3 x7 Y3 F) c
    // 发送中断5 {/ I  S  R9 m* _  B* y) k
    if(UART_INTID_TX_EMPTY == int_id)2 y% c+ E; w* F( I1 w. b1 v7 E
    {! N/ m% M# Y# [, c6 ~  |
        if(0 < length)
* v/ T7 ?1 K5 i9 R2 i/ V- ~0 {4 s% g        {# |9 o% L! r, a# [% p8 M4 W
            // 写一个字节到 THR
% h/ f2 p6 V' Q            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
" L" T  J! W+ B2 t( k  u# _: ]            length--;4 F3 g9 m/ l2 f. T
            count++;. p+ ~# M$ \# G% T& P0 z" A
        }
: z* H( v* v% `# L2 b% S        if(0 == length)) s% Z$ u  ?) E# U  G
        {
! {" |- O6 d/ G, {6 \3 U% ?# @            // 禁用发送中断
1 ?, a7 Q: K; ^9 k( h. J' g% R            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);& w! w; L6 U) D2 R+ F
        }
* v. [2 I  V' Y     }
/ v2 r! M( K/ e0 F0 i* x  {
+ z4 L% {6 h, ?$ ~    // 接收中断
8 Y, X7 j, F9 w8 ^" ?    if(UART_INTID_RX_DATA == int_id)0 z2 V: h6 j+ ]" w7 k! S
    {
0 U, a1 |9 l8 u6 Y* g1 {1 \, j        if(status_a0==0)# q! L8 p" G0 |" b3 E0 H
        {
$ F5 P2 F; F" w6 N                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);; u$ ]- o3 d* M! Z* k' o
                if(a[0]=='#')) \1 `5 W5 K4 P$ {
                {/ Y9 B$ o" F6 r( q/ _
                        status_a0=0x01;2 N& z/ j1 g4 \( C+ A" ?
                        status_a1=0x01;# U6 z2 s+ m: c* b+ c7 V1 t
                }$ C3 M+ Y* H1 w. a
        }
  P$ }' m. v# p+ U' o        if(status_a1==0x01)9 o8 Y* D- M* o5 ~5 {7 l
        {
- Z2 i3 N3 M; O& a' L9 J- O( M                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);" J% S9 g: e0 c$ i1 B9 O
                if(a[1]=='R'); W; W- g* }' d
                {
, U% k7 I1 m4 j. s; R                        status_a1=0;9 p& x7 H) S0 p6 i7 o$ `# q8 G! s
                        status_a2=0x01;
/ d6 @4 l) A6 S7 ~. C; W! C3 h                }5 Z% C5 P1 v/ |0 {% v& i* c$ @
        }
  p  {: m+ r- E6 O" n        if(status_a2==0x01)! `+ F( `. K* ^$ s* F3 k
        {
: C& s: \& G1 I5 z8 e9 E) E                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
0 B; W* p! m1 ]0 R9 @                if(a[2]=='A')' f/ M" i: ]5 i3 G
                {8 n7 I' d2 I+ _( o$ K6 M' Y
                        status_a2=0;
$ N# J/ H. ?( ]* t1 R* Q. z$ x                        status_a3=0x01;
& _; C4 I1 M6 {6 F- D5 J+ H                }) P. J/ O5 n- c* E( e) B; y9 q& `
        }
  X) a5 q4 J9 Q# L        if(status_a3==0x01)5 O6 R& I" \! u2 T0 w; z
        {/ W' g* ]8 A+ e4 E0 p
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);6 w: l" L7 a# D! c0 @0 w4 C' k
                if(a[3]=='N')+ Z* E  u( K" {( S  J* D9 ^
                {
4 I: ], i0 Y0 g5 k8 B* A                        status_a3=0;4 d* ?+ y! O/ X9 M
                        status_a4=0x01;
+ i& Z1 V" \6 F' n$ _- ~2 e                }
+ t4 g1 R! A/ n. D        }! {* x  K  `: b+ i4 G6 P
        if(status_a4==0x01)
. _7 `: U6 Q* K7 c        {
. K9 W7 A% }6 y% f8 u                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
8 |. V6 N5 U+ h5 ]  O                if(a[4]=='G'); ?7 ^  \5 ?5 a& x
                {
* ^+ p! w( o) D1 Q. s9 ~3 Y2 m, i                        status_a4=0;
; d* ~+ D, A3 y" z* @, C- F                        status_a5=0x01;. i& T4 E  B2 @6 M# o% L
                }
  Y. [9 h) s3 M: J) ]9 |        }( t8 z5 j) x' ^7 {8 z( i4 W2 t/ [9 V
        if(status_a5==0x01)$ k- v! ?9 |1 I# S( \
        {
1 _' w1 P( {% J2 e                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);6 g3 m9 F3 W$ b* i# j  m1 {
                if(a[5]=='E')
- _+ o) H. u8 n8 v  `; ~! X. c4 \9 Q                {. U0 }8 u2 J. D. J
                        status_a5=0;' |& K: t' e! A/ Z
                        status_OK=0x01;" {* g+ d5 f) j  D5 A5 L2 N: l
                }
% A6 V4 l2 f; R0 o8 o! ~% V! f& I. b        }
1 L' P: e7 X$ U2 c- i6 v            if(status_OK==0x01)  z4 d/ M8 p- B% s" o7 \
        {2 q# K! p- K; N8 b
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
6 t/ W5 R! c; S& B) K                        lengthrx++;
- g2 ~8 h7 h/ W6 l/ n                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)9 }2 x' ^3 Z, S9 o
                        {
- O1 B" z4 H* m; c; ~3 x2 @, F                                RecState=0x01;8 n# y# O  j# D3 }
                        }
* }$ T5 F6 r/ a% q' f) r( R+ r6 \4 L$ A1 B         }- \) t' F4 s* q3 G4 D3 I

, ^, E3 W) w$ S- \     }
0 r) W2 I8 S" M: F' t
" L) G- J/ p" w2 p2 {$ G    // 接收错误
# t7 s3 I2 s% ~+ t/ L    if(UART_INTID_RX_LINE_STAT == int_id)
3 s% Y* q; m8 ?( c" c8 p$ J    {" B7 {! L# }0 G+ {! @( K
        while(UARTRxErrorGet(SOC_UART_0_REGS))
0 D; K( [- y1 G        {7 A- Y+ A! B* e3 I* I' j  x
            // 从 RBR 读一个字节
" u9 s+ B2 l' V% @. R8 }/ V8 v: e            UARTCharGetNonBlocking(SOC_UART_0_REGS);4 b7 s3 |6 D+ `) g
        }1 R& g6 l; M! k1 [, u' O9 a+ v
    }* `' N. K4 Q8 K+ _# F
2 t0 M5 H& |" k! ]% {' {
    return;% B) Z1 j# v% N' c$ B6 z/ i
}
# G) R5 a; D) u4 z5 K
  c4 w6 ]) v6 z' N9 l, o9 |- b
, M9 t/ j; z/ j( X% c3 R3 P8 A

" d$ S4 ~- \* b# u% {3 z! U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2020

积分

创龙

Rank: 8Rank: 8

积分
2020
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,/ _2 u, G1 |; R" S+ W8 x8 e

# z: K* `. J/ tUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。6 @/ W4 O$ Z1 Q, F# Z

: V% \7 y6 F1 O" |' x要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13! s/ L, @! q+ u* P4 c, _0 q* O
hi,
: m0 J" p# f0 e& q
/ _( [/ ^( Q2 |' p" ]  x$ T4 R6 qUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
9 z- S! u  F5 z4 o; }
void main (void)
8 A" E& W6 n! y{
: O! [$ k" w/ r& T( [; H        int i,j;
$ V  [5 J1 s4 S# E% Y6 X    char *str_buf;
3 B4 {; A4 c  t    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
5 t! P7 u, u& P2 {        double est_L_b_=0;7 n0 E" I. h* ~  i; G
        double est_lambda_b_=0;) K( \6 D$ [2 g6 G2 b* {* U2 p+ q
        double eul_[3][1]={0};% k) U% R& D8 m& j3 J
        double est_v_eb_e_[3][1]={0};& w7 b7 E" Z0 v
        double est_C_b_e_[3][3]={0};
9 q, G8 T; _* h& F; P5 q    char *qm;6 W9 z- J" N8 B# `
    char rec[70];
" D. g6 M1 r4 T. z- l        double L_b=0;
0 |7 z( D2 M+ }; A        double lambda_b=0;. i; x- z, G9 n1 r  _: S% I1 @3 h
        double h_b=0;6 `+ S. V$ V0 J6 ~( n
        double rate;1 |0 A5 h# c" L& k) [

$ J9 H3 [% a. H5 }3 z0 [. j& ^8 K
. K) A8 L0 g3 n- T        // 外设使能配置
8 u6 Y+ V1 K* z5 y' D5 {7 y        PSCInit();6 T3 m8 A. ?' H0 d
+ M8 E# X8 k, ~
        AppInit();* }+ u8 W! o! R/ t
% j4 d& P. g8 s( [9 D9 b3 o
        // UART 初始化
/ u& O2 {# A+ S6 m        UARTInit();
. F. V" j4 `. j4 [4 [$ q, X; I# _
- V7 o0 O9 e# I4 i* T- v: t1 j8 g7 z% m        // UART 中断初始化4 c& K( f" c" _5 V
        UARTInterruptInit();
7 ^( P3 }: k/ ^& @
& c3 j+ Z* m( j: w    evtRcvd = 0;3 e# C; P$ B& a0 S
    RecState=0;
. A: O& y& n6 V) i8 X% q    /* Initialize */
% \5 I3 b# D4 `7 P- {) t6 F! i. |+ Z1 \, o, a
    printf("DSP subsystem ready\n");
* Z& E3 O; B7 k$ ]" X7 n$ A
9 S. [; [8 h1 ^7 m- B/ r6 g6 X1 d    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));/ i( R5 i3 x8 A* @
7 j9 N7 N' s2 n2 r8 A
for(;;)& b) Y- c0 \& @0 v" T" |; L
{
# N; a- S& I: i6 a* j        if((RecState&0x01)!=0)& W! S+ Y  c, R' u! M6 o7 F
        {4 F) q1 E* p% _/ H3 F/ y
                printf("liuzhenxing\n");) H& I! G5 x: v) ?$ c+ W
        }9 m" B( X4 ?0 h1 p, b
        else
0 r/ f3 F. a- Y. u+ u        {
9 z' X: s7 `/ G       wait_event();
2 I7 W" V$ g/ ^: y: s
2 K$ s* _5 D, _7 Z% w8 }           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
( Q6 }+ s# j/ r
- ~& R3 @, D4 |% H: ]           for(i=0;i<60;i++)+ T0 E% `6 E5 ~* J1 i6 a
           {3 H. k) L* E/ x9 o, h, A
                    rec=*qm;+ `1 r7 y6 F& M+ [
                    qm++;$ X% B7 c5 C. L7 P1 B+ Q
           }
+ C" a$ i2 m! N8 O$ y7 @+ z( K. u* Y  I
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
4 q2 n( N* V& @, v: M% q3 {* M3 t3 X+ n3 S+ S
           L_b=L_b_receive_double;) S- Q7 N6 F+ }  n. {
           lambda_b=lambda_b_receive_double;, T1 b& a. K# d$ i% t, `
           h_b=h_b_receive_double;5 ^4 V* H7 y( Z! z
           for(i=0;i<3;i++)7 H4 q8 G( p/ B2 q9 J5 X4 e
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];) `1 s/ L2 Y$ l4 e
           for(i=0;i<3;i++)
- J3 s( |; D" q6 Q# [, r" |                    for(j=0;j<3;j++)
6 ]* g6 y4 s. }                 est_C_b_e_[j]=est_C_b_e_receive_double[j];& J; p  ?$ X7 e$ A# e  T6 S) R
& E+ p6 G# Q. \7 R8 W+ b4 U2 ^
                printf("L=%lf\n",L_b);8 O3 `/ o  {4 W: {$ u6 f3 T  Y
                printf("lambda=%lf\n",lambda_b);* r% e) A/ [8 z
                printf("h=%lf\n",h_b);% R" M  `# ]9 B3 k( {; I$ q
8 p" r9 ^" k9 ^% ~
                for (i=0;i<3;i++)
. F" H0 t0 x# E+ ]2 j                        printf("%lf\n",est_v_eb_e_[0]);
5 H5 P$ g$ }3 p( `; _( i                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]);
5 U4 z$ s( ~  ]# X/ K                printf("rate=%lf\n",rate);6 q& a: S- p) r1 u) ^0 j/ }

# j" s; \& J- b$ b! o                CTM_to_Euler(est_C_b_e_,eul_);
& L' y* P4 F, \9 b                for (i=0;i<3;i++)
& Z/ w7 o7 w2 c% p                        printf("%lf\n",eul_[0]);( ?5 F% U# |5 k; w- w
                printf("end************************\n\n\n");
) F. r) h! A2 g+ B8 u
8 }8 X2 {3 I- \" g8 A                /**********************************************************************/
# y# z) a$ r/ B0 H
0 {. t/ Y! Z4 B1 N& n            char flag[4];
' l" o1 X, ]0 t8 \/ g+ ?0 ?
, Y  h- ?, S3 l            flag[3]=0x00;
! ?$ q1 R" c& u2 _& a2 p            flag[2]=0x00;) c: p( k# r3 h$ u+ A
            flag[1]=0x00;
& G1 ?( ]1 Z9 N: g  i4 }; t. o            flag[0]=0x01;
- c# e7 q6 A9 \8 {' R5 ]9 @+ i+ U/ k! w# W$ e8 }
    /* Allocate I/O buffer and init with string */
/ V, X! U# p! O# v( r    str_buf = (char *) malloc(80);
2 h. D& T0 [; t  y8 x    str_buf =flag;
9 Z4 m* p+ e6 K3 C" [. l  v. o+ H( W+ k3 Y9 Q
    /* Send buffer to remote CPU */
  R# R, y" z* y4 @5 U    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));0 z% X- s; c1 G( [; c" w# p1 B
; q% K' |6 l0 r8 Y3 J( y/ B, }
    printf((char *) myPayload);( G3 ]2 }7 Q: k+ o+ S
        }
& z* E' q4 K  J/ u}3 n. k/ f3 d0 a- a

/ v: T8 D. o, W. }* _+ Z    WAIT_HERE;
' E! q) w. _" C( P' ]}
/ w& O. v+ Y0 j5 }* 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 | 只看该作者
我说一下调试的情况:( x/ ]+ f2 u# o! X  O
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。" j* W  w" d7 d% ]( O
然后我把双核通信的初始化屏蔽掉,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
! A  f+ b5 Y% R% ^syslink 的初始化是否成功,notify 通信是否正常了?
* u. ~' @! E' A. T* ?% w) g; }
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
' x2 {& H4 `. e" @4 O. wsyslink 的初始化是否成功,notify 通信是否正常了?

4 I+ T6 v3 }6 w+ |$ E6 V% 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
* e  m  B! a$ @9 K我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

* V# H1 K3 W$ F& x9 a3 X$ i9 z6 p建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 14:41 , Processed in 0.049255 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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