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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。" {! E* r" g3 ?7 w
我是在DSP初始化这不太明白。+ w. ^3 I/ f- e% J3 t
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。0 J& b" Q# E& o

/ Z0 P+ e. F0 B  i9 a
" c' N+ E8 \0 u+ r首先        PSCInit();//UART0使能5 {/ q8 L4 ]. m
void PSCInit(void)3 Y' D1 J- P& E4 ]& `
{+ N/ \( x) ~# P
        // 对相应外设模块的使能也可以在 BootLoader 中完成" X+ ?5 i$ T8 L7 f  q0 t1 F( i7 H
    // 使能 UART0 模块
' W7 }+ H5 N( }( [9 D0 G    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);; `7 u& j3 B8 ]+ M! O9 J$ Y# a
}5 x. r5 ~+ q/ [* p- B) E

' M& Z/ V$ y; P7 H" T9 A! E7 [4 x: P1 B1 ~+ z) r
然后是 双核通信的初始化           AppInit();; X" j- Y  c* z/ p
void AppInit(void)3 X8 p% u7 k4 y" k6 H
{
7 G5 s' _* n3 s1 G, y$ t% @    /* Structure to initialize IPC (see Ipc.h for definitions) */
/ M. A  a7 G4 X" A9 u9 V  K    struct IPC_cfg ipcCfg = {
2 D" s! }4 ~& L+ K7 J' h7 b            IPC_DSP0,             /* local processor Id */8 K9 s9 x" b2 [) o! M" p4 H
            IPC_ARM_HOST,         /* remote processor Id */
. O: U7 H' W7 C( V            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */) m( g9 `  Y7 h; \
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
6 a% l+ E' \( A/ n; o* n5 Q) Y& b            NUM_MAX_EVENT,        /* maximum number of events to be created */
4 e$ t3 H& ?" p            &ipcPvMemDsp,         /* local side private IPC memory */
& m1 z+ q1 ?3 ?( G0 W/ w* E5 e            &ipcPvMemArm          /* remote side private IPC memory */
0 I6 v9 m4 Y1 c6 V4 v    };9 L( k; }3 Z! l- e0 F9 e/ W% {
    IntDSPINTCInit();' G/ G# `* y2 o/ f4 Q+ c  s8 M6 `
    IPC_init(&ipcCfg);
/ C( o0 a/ r' S4 Y    IPC_intRegister(C674X_MASK_INT5);' N, J  B' B" D( Z. O& W9 |
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
5 d) \8 @8 g" ~8 z+ f
1 `) J8 j/ \* [! L    /*  Enabling interrupts for DSP C674x CPU */
  ?+ F" E% g  n7 c4 |1 g    IntGlobalEnable();        /* Enable C674x global interrupt */" U1 g0 W/ {$ s2 {6 g
    iAssert (Notify_start()); /* This will enable IPC interrupt */7 Z: y& K* w# t. L
}0 a( V; W5 S2 C+ ]" }& {4 a

4 n2 @# z5 c% S! Z9 n6 a# s然后是  3 P* b3 H0 K4 G6 h
            // UART 初始化
/ D) C/ v4 o2 {7 e& f- b8 f% H$ F            UARTInit();& _; \. g: u8 P
( `" ?# Z6 r+ Y! V5 l( w8 Y7 n
            // UART 中断初始化" x7 v6 R* b0 k
            UARTInterruptInit();; a* j; v7 Z- l/ \7 G
# y  f/ G5 H4 A5 X% D3 |' `
! g* O6 }7 B1 @2 [; w
void UARTInit(void)
/ a/ Z- y) E' t, Y{
6 E2 m  K9 D$ |1 p7 ^' U9 T0 T  i/ z        // 配置 UART0 参数7 j# ~: u" u4 D+ Y2 h% Z/ V
        // 波特率 115200 数据位 8 停止位 1 无校验位
3 Y4 ]3 \- h- C4 I" {& O# @    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,8 M, g  u$ o% o) V- x* S
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);4 `3 T/ l0 Y/ P
        // 使能 UART0
4 d  @/ A5 H8 \  j3 v" N        UARTEnable(SOC_UART_0_REGS);
2 m: ?* i# M) A1 p$ e
: t4 g3 w& ?4 l/ K9 m" @3 |' l4 V    // 使能接收 / 发送 FIFO$ n$ m+ w; G3 W' A/ C+ C" ?/ r8 t
//    UARTFIFOEnable(SOC_UART_0_REGS);
2 t; H  {2 o" @) `: }2 b
" K  B- f. [1 Y$ v: ~( j        UARTFIFODisable(SOC_UART_0_REGS);
$ a: B6 q8 J( R. s, s0 f2 k3 {; r
9 B, O" }: p: U% m  U    // 设置 FIFO 级别     接收FIFO的级别; Y+ V4 |; @7 g8 P2 l. S4 [: w
//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);% {7 F9 c6 u3 ]- C
}
/ o8 l' g+ p" P3 r7 d: F0 z. c
, L2 @9 [# J" O. s* C

. `! H" t7 I3 I+ {( c$ `' Y3 zvoid UARTInterruptInit(void)+ H1 t7 U0 k, y: x7 Z' ~+ a
{
8 ~& b1 e1 M- q1 P" v        IntRegister(C674X_MASK_INT4, UARTIsr);
' ]0 _; w! Z7 g, g5 f* J+ Y0 |        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);) i6 N  Z  r  [
        IntEnable(C674X_MASK_INT4);
3 ]2 m4 ?% X! r5 h2 I% C4 D6 u; A, E2 O9 L2 B' A; R9 c' A
        // 使能中断% a* P' ^! P5 z! B" Y
        unsigned int intFlags = 0;0 d% W0 H. K1 ?
    intFlags |= (UART_INT_LINE_STAT  |  \
) J9 K, ?1 @4 l, L; r                 UART_INT_TX_EMPTY |    \
3 q# f6 `  ~$ c, {) o! H) O                 UART_INT_RXDATA_CTI);7 j8 \4 R% I( Y6 R* K( D
    UARTIntEnable(SOC_UART_0_REGS, intFlags);
/ ^: t2 {" i! x) b0 U, U}2 F/ [- Z% v% E1 Z. x8 L

% j1 K, `! u2 I- `# _- ~7 x6 O
2 |% S# q; Z# ^0 v$ R9 n$ Ovoid UARTIsr()
5 R, Y) d$ @; w, t{- ?& D. p; J  X( z/ r
    static unsigned int length = sizeof(txArray);
) p" L0 z. H5 }; P    static unsigned int count = 0;8 g$ J& y: d3 O0 m. a& m
    unsigned int int_id = 0;* e( b, r- i$ v) A7 u9 V, n) N( l
. e# L& c. ?- O

3 f) X  _$ g# }- E- H
! X7 L) s$ {3 K4 ]; u( |    // 确定中断源/ r2 d7 C" \! Q& S& s4 L5 A; v% T
    int_id = UARTIntStatus(SOC_UART_0_REGS);
% n+ e0 j9 t- T
- ]! b7 V% m+ e% x6 i$ t4 x9 s3 _    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。& T+ V, d  P/ j( @1 u

2 G$ T) u4 B; l: h0 F+ q( _2 u5 J" t( x; q# X  U
    // 清除 UART2 系统中断
6 k; G- d  |, ^5 y0 F4 H% t0 p    IntEventClear(SYS_INT_UART0_INT);. V( y4 K4 y; \) @: x' I

# c4 b$ g8 L9 Y# _+ x    // 发送中断
6 S: [( g1 `8 y* s( a) c2 b2 {- Z    if(UART_INTID_TX_EMPTY == int_id)
2 Z2 b: k+ c, x8 y4 L6 u    {# L/ w- E( |! }# e* ^! J2 s* f
        if(0 < length)% l+ r: B2 E3 Q: y. ?* K8 a
        {
! j9 l! ?# ~9 I            // 写一个字节到 THR  C# B" B, A9 l1 S
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
: A7 x+ v# R: X$ {- j0 p4 |            length--;1 r& |. V& D7 }' {" v# u% {
            count++;
! W) M; {6 ]2 a  y        }
" `8 _, G0 l* C1 `  m  S4 e; S        if(0 == length)* d( ~* H$ G0 `* d, h0 k2 f
        {
3 q) c% @) r4 L' v$ ?3 M0 P            // 禁用发送中断
3 `6 @. t) a# p' v  @            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
5 k/ c, Q- p; ]; V        }
; @, Z* O+ r" A& }     }1 s5 |7 @$ ]* T' l& v& W

& W" H3 d# L4 |/ }    // 接收中断
1 n, Z. S1 u: ]$ i& E3 T' D! r" k    if(UART_INTID_RX_DATA == int_id)
( v5 x1 l% v. T3 |; Z    {
+ H: Q. ^8 X. }6 D  u2 x        if(status_a0==0)
$ h; v& n" L6 l8 W8 M        {3 f# m: f# h) S# {$ w; i. c
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
, o( b- R) k8 ^$ p                if(a[0]=='#'): ^( X& X9 y: B4 B
                {
* m* S* u9 G7 P& a1 @                        status_a0=0x01;
( m3 o9 ~' D2 \& }  H                        status_a1=0x01;
8 W# U: [  v" Z* w% x5 F                }: D, u6 [: s2 j* [
        }, d/ h+ l" h0 ]7 X8 k7 ~9 }
        if(status_a1==0x01)
0 g1 {' c& w: I5 |7 R, Q; I+ k        {
% f" R- z8 [5 R! }* g                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
9 V& Z/ Q! U9 a9 b5 b% s' L                if(a[1]=='R')# I. E% V+ o0 \8 W9 `6 \2 s
                {
8 d9 u( t5 I# R8 D% k) Q                        status_a1=0;
* T' U9 r0 F" [  }7 H                        status_a2=0x01;2 s; Z, A( a+ f- ^$ \7 N' [
                }( d! s8 z; k$ q
        }
3 A: @' O! C% W# o, ~        if(status_a2==0x01)* g* u* d' x9 N" ~& w
        {
; E$ v* [2 M, `" G4 v# M3 B' V                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);  L3 b2 U) h$ \/ a0 j$ n( A# m6 t
                if(a[2]=='A')
) G3 t! O! [  P, ~) P# g                {2 W+ J: L% Q2 m0 A5 g
                        status_a2=0;
( T3 ?: J2 _  y2 M2 R5 ]                        status_a3=0x01;
- \8 t! p" C$ }+ M5 u, ]% t                }
) A& s- Q: R1 U& z0 ^5 L        }
2 Y( I! U/ J5 M: U7 M        if(status_a3==0x01)
0 h5 k% [7 m4 o1 S. J8 \8 z        {
- U, k* {4 Z% V6 F0 A                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
; D) ?0 M# h  l3 V                if(a[3]=='N')7 o0 w8 C( A4 h  Q9 I
                {
2 N. ]! e0 L9 P( u4 u  N9 G                        status_a3=0;9 W6 S+ Y# y7 S3 m: n! @$ A
                        status_a4=0x01;
1 ~7 z5 n) u# e0 t& T: W                }
8 n: `* ?% x* Y. W# _        }
( X6 ]6 e+ H) O" x/ `( T: Z        if(status_a4==0x01)' Y1 Y/ y  s2 ~; X$ \
        {
$ w  k! B4 t8 C, W! y                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
/ V0 A0 `' V6 i8 g' m/ N1 i7 _                if(a[4]=='G')
& t- i  q: [  r                {4 Y5 a. l" [# \- p  G: {) x2 I% f
                        status_a4=0;
' E+ b) ?* e$ o. Z" u                        status_a5=0x01;" p* \% U4 J7 W& |) K& L+ V
                }3 S. p6 Z$ j9 ~9 }1 ?$ N' U" v9 e
        }
& |- p: @( E1 K& T$ l5 f' E# q        if(status_a5==0x01)
4 t2 y; H( g8 E# S% N2 v# C        {
' r, i7 H/ {; I: f& F( j6 F                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);! p. E8 ~& Y5 _6 O; e1 a0 W9 |
                if(a[5]=='E')
' r: W" C& \- m% P: ^( n                {/ }& @$ n1 t% E' ?
                        status_a5=0;
8 l. m; @5 y  [; j5 K9 J0 A7 F                        status_OK=0x01;2 S5 I4 D/ I* x3 U% ?3 f, F
                }
; e: @. D  Q7 d, x9 S# f        }( a, R, E0 M; R7 R
            if(status_OK==0x01): d0 K$ V$ x+ }. h6 k1 l) \4 u
        {
) H$ w! u: G/ K( X) [                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);, u8 q# O7 x2 y  e: X" H' j2 X
                        lengthrx++;8 [- x& P' s5 F% J7 V
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)9 g! d% L0 h4 m1 h0 S
                        {" }/ a* m0 S/ W+ h3 Z
                                RecState=0x01;
7 D- C+ Y- B3 g" p                        }0 r  B, s" T# y
         }# z$ C4 v6 g" g7 P" g# E& _+ X8 \

! J/ F1 A8 V( E1 V     }
; K- Y& A: O, K* F: @" Z' b; r* T/ Y8 u, ~
    // 接收错误( \6 v$ T- s6 ?* l* n/ @3 p+ I
    if(UART_INTID_RX_LINE_STAT == int_id)
7 J! A9 A0 O( I) S4 }' l; [! y- C    {
( @( x( I' O% n$ X& Q0 N        while(UARTRxErrorGet(SOC_UART_0_REGS))
! V2 T8 z- Z: P* p9 ~. m) a        {# ~1 m% `( I; [" i& m& G
            // 从 RBR 读一个字节
4 [7 F; b4 Y% ~+ h            UARTCharGetNonBlocking(SOC_UART_0_REGS);
- n& {$ d4 }5 [- E4 Z* o7 Q9 Z        }0 Q8 o- _" T' ]7 X
    }; r5 Q- {$ i& y* }7 G
9 S/ D- T8 Q$ A  Z
    return;
8 d% X/ j0 f, h5 }& {5 y}& H+ N: }  a) Z% g4 g' x

$ u% V) A, z' n  y' Q5 {+ o1 ?# v5 \

; _6 m7 H$ j1 o" p2 R% S
( W2 C8 [4 N2 m2 [. N5 R1 e( W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2138

积分

创龙

Rank: 8Rank: 8

积分
2138
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
: t' `7 D7 ^9 P" v( E
2 E) ]4 B% R/ sUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。3 n( n& j4 ~2 X
" {8 f/ w3 U; I& v  a
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
# M" j5 T% s, F2 C/ G9 l. Zhi,
/ K! G: V/ Y$ ~- a* L$ D1 o
7 _; K$ i/ D9 `  y; h! VUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

! _4 M. w6 |% T/ j2 o/ Mvoid main (void)1 I$ h: O7 i+ S: M! S( y
{' u8 ?' z* U9 {) G* a. d$ b
        int i,j;4 G! a/ Z6 {/ W8 D+ p: l) `
    char *str_buf;
* `. L! u5 a, ~5 C/ a! i0 Y1 S6 Z( K+ F    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
# L. U8 h& Y4 c# z# H  r% S        double est_L_b_=0;3 m: }8 X$ K. G/ F
        double est_lambda_b_=0;
1 h/ Q3 B) K* P( h5 o) I9 E6 c        double eul_[3][1]={0};
  |4 x& J4 y5 z* z% \        double est_v_eb_e_[3][1]={0};
+ ?/ `0 D7 Z0 Q5 m; O$ t7 [        double est_C_b_e_[3][3]={0};/ ?6 Z' J0 h$ r2 k9 A2 @1 v
    char *qm;
" S* F& P" a: Y" I  @* n    char rec[70];
. w; P- @; g7 _. @        double L_b=0;  B3 y) K0 f6 c" F& d! ~% Y
        double lambda_b=0;
0 l) R8 ~: b8 |% e2 @        double h_b=0;
, g1 D4 T8 E; ?2 p        double rate;- q; y' s( n+ a' o" ?8 Q4 b
. J9 }/ P5 ]! z- M0 y' D

0 h2 Z3 N2 w! m, D# s        // 外设使能配置
" {/ Y: `* `1 Q% Y" X  G        PSCInit();
! @' A( y- M" [
% N8 t* \1 U  [. f! p. k        AppInit();
5 y, O" ?, z+ V* p+ M5 d& S( k) A" _3 B1 B& b& F
        // UART 初始化, O% q7 W7 h% ?9 S6 I1 M
        UARTInit();4 R* @+ s+ d3 Y7 x% [- F

. i+ f3 M# z, I- e        // UART 中断初始化
  V; P  \) \) Z/ M- ?/ j0 x! `# n3 W        UARTInterruptInit();
) L' t- i- O9 I2 G6 r) u  i. ]$ U% U. i' @* h+ O# i0 Y
    evtRcvd = 0;
; u! ^  y/ T. f% M9 m( h/ N    RecState=0;, J9 L& E% D! ?1 L* }  A; {
    /* Initialize */4 S; d) E1 P. y6 N/ E+ S
' |' T7 @$ z" I6 s
    printf("DSP subsystem ready\n");+ k3 P. i9 ^0 ], o. r- j' R
. i9 @% f) P; t6 _
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
( f- M& Z. U3 ]1 b
' ^& s2 R7 A# w3 Q. \0 Z( Z2 _  hfor(;;)6 T/ B  Q( U  ]8 V, K
{. d! R2 e2 U$ ~5 j
        if((RecState&0x01)!=0)
3 X! A! _2 B/ a. E, Y2 N0 V* F        {/ ~3 Q) n  e% o- y7 o
                printf("liuzhenxing\n");5 U. G: R, w8 ~/ E
        }
4 [7 {( W0 g, @3 M5 }        else9 n$ t  o* J7 ]
        {
# @6 y; S0 |, t       wait_event();5 \$ p+ Y5 Q" y, c' }
) T) @8 d- X4 D, F
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针  T: N& ?( F# W* s: [6 F

9 \) f- ^5 G; j$ l+ Y. ~/ q/ E           for(i=0;i<60;i++)
" Z' J" e, ~$ J; }           {, I( ^2 r3 t5 b1 |
                    rec=*qm;* @9 f  O, j$ V" q  I
                    qm++;
- `! ]; s: V/ @. |5 O* e, y           }7 R% k9 h4 f- e5 x9 M
0 X& b, G1 ]8 u
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);, }( A# N4 P0 n$ A- T2 C
; o1 I9 `) o4 U5 w) k
           L_b=L_b_receive_double;( y0 m" j  B3 u: F1 ^$ f7 v/ b) l
           lambda_b=lambda_b_receive_double;
. H( u  r3 b% G4 W( v           h_b=h_b_receive_double;
4 I" @+ R2 _$ \  K" t! l  J           for(i=0;i<3;i++)# w1 U; S/ z" _* k9 I
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];
- v0 w* h! ?6 R' v7 l: }           for(i=0;i<3;i++)7 }% N/ v' @$ s6 A0 l- W% A" K
                    for(j=0;j<3;j++)
; w7 N0 W" F; y3 O7 U& E& i                 est_C_b_e_[j]=est_C_b_e_receive_double[j];2 J( n6 p6 I+ I3 f; f

$ _- ~% A9 F" o" N' t. m4 T                printf("L=%lf\n",L_b);1 D& _8 ^% r% g+ D& U. c# J8 {: _  L
                printf("lambda=%lf\n",lambda_b);
% K( r6 W* o! S0 t# ?7 [3 H. i                printf("h=%lf\n",h_b);9 n5 z! `, l5 _6 J4 k# n3 @
/ m* K0 l% J9 i& E! M
                for (i=0;i<3;i++)* ?( c: t0 U( u8 E! b  {
                        printf("%lf\n",est_v_eb_e_[0]);0 ?6 |* [- m5 ^8 d: {
                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]);+ i4 [" \8 t" B0 E, L
                printf("rate=%lf\n",rate);
. P( U' H! Y2 I% A; x
. R4 z( |; B+ k                CTM_to_Euler(est_C_b_e_,eul_);
$ ]  O& x8 f) Q- \6 T                for (i=0;i<3;i++)# |6 _7 @% j4 A$ a
                        printf("%lf\n",eul_[0]);0 H4 M% B8 D- Z& P6 J
                printf("end************************\n\n\n");0 T, `, A4 x1 d, y. g- e
' F3 R0 d( L9 I. H$ `& Y3 q5 u. B. @
                /**********************************************************************/
" g8 Z: }2 I* R& `# s
, X, f2 N9 N- C" |/ A; Z* W8 c            char flag[4];
# e" n! a% d$ Y9 Q  C  t$ W! a: C$ o- S7 }5 E6 {$ o5 B
            flag[3]=0x00;, W; m( F" w% U) M. M% v$ |; m$ {
            flag[2]=0x00;, _  p; I" H* [4 i% U. ]1 }3 z
            flag[1]=0x00;) u! @: ^, O, u, m# p
            flag[0]=0x01;# j# p+ Y% G4 L. ^* L# ?
3 [* `" B8 m- w# H0 O; U
    /* Allocate I/O buffer and init with string */
7 o, p4 O; F" k    str_buf = (char *) malloc(80);
- l: v8 U# M' w" G6 C1 h% w* y& Q    str_buf =flag;  z2 E# @  @: ?6 k& q5 c4 W9 B

5 n: \  k+ B3 b3 O# w    /* Send buffer to remote CPU */
7 |$ e& k2 ^$ w    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));4 N' e& U4 \& }1 r9 u2 {

7 S" u$ v8 w, _- f( e) q& l; {    printf((char *) myPayload);3 [5 Y' N) ]0 d' ~( n9 ~- ^6 \
        }: B. i* p, c8 _8 Z
}
5 M  }# a8 f2 ?2 G% [& _8 l0 V; u3 X4 m& U, p
    WAIT_HERE;8 U4 A  a3 U& W& P  j4 q- t. U$ m3 H
}
- y1 O* u. J/ Y7 k1 ]6 t7 E3 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 | 只看该作者
我说一下调试的情况:
% F5 M! f. s/ y" H* h& [& M我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
4 h* W: ^' S: X5 ]& T然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2138

积分

创龙

Rank: 8Rank: 8

积分
2138
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 G- l* G% T0 H* c7 a) U# v5 Ksyslink 的初始化是否成功,notify 通信是否正常了?
9 z. d  U$ S9 Q. s, S  _% U  |0 T
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:548 G9 F9 p# F3 m
syslink 的初始化是否成功,notify 通信是否正常了?
1 T4 T. R" b  [- R7 U
我用的是裸机开发的双核通信,用的是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+ w: I( d# q% h  f2 n
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

9 ~- N8 |; I5 E2 K; r0 U$ P' t建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-15 06:08 , Processed in 0.055375 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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