双核通信的同时需要DSP核通过UART接口读数据 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。: ?7 _- g9 L% ?7 u  N
我是在DSP初始化这不太明白。; r( |' [* @0 [+ t1 ^. q, y
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。+ K! F  b9 [% ]+ y+ @6 k

. I1 C! b  z1 L) t1 g
0 K; y3 {9 l  I" F首先        PSCInit();//UART0使能/ c% l1 z1 B  j8 `/ C( X
void PSCInit(void)
, ~  k0 u8 ]; A6 T1 f- D1 ?{0 ?8 j) d$ R9 r& U5 g: g+ O6 Q
        // 对相应外设模块的使能也可以在 BootLoader 中完成' I+ @4 ^- ]* F: C; r
    // 使能 UART0 模块& l8 l, R7 z" V- r2 R/ N9 a# H& E
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);' N8 K6 j3 @6 E: s- y( \
}
/ T! B/ p6 Y) a; `; D: w. [1 O5 r
$ p% |5 U5 E3 ~: o' S5 V% v6 Z

2 P3 z& o* J( n6 r然后是 双核通信的初始化           AppInit();/ ^* g8 I# o  ^7 W. `; [8 R3 c
void AppInit(void)! k7 b+ r, a4 s* m9 @# I
{( ^1 |1 A; k# @1 o
    /* Structure to initialize IPC (see Ipc.h for definitions) */8 l; ]; I6 f& O: D8 r) a; K$ ^
    struct IPC_cfg ipcCfg = {( F( |. n" e, I- i
            IPC_DSP0,             /* local processor Id */( j7 f- ]- r  n
            IPC_ARM_HOST,         /* remote processor Id */" w6 f. `! A, d' j
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
2 {5 d& r4 N$ y  L+ \            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
! S6 B" P" P- t8 M            NUM_MAX_EVENT,        /* maximum number of events to be created */
8 E; A4 e0 Y5 h% h9 \$ e            &ipcPvMemDsp,         /* local side private IPC memory */$ c2 m+ J% g9 f7 M: y
            &ipcPvMemArm          /* remote side private IPC memory */! c9 i- w! q  G/ r
    };
2 h8 P" g5 V0 X) I) J    IntDSPINTCInit();7 P/ \& _" \" P" W! o
    IPC_init(&ipcCfg);  J2 l8 X9 X5 H4 {" _
    IPC_intRegister(C674X_MASK_INT5);
8 r5 e6 m" P. I, e$ v    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
$ a3 M! ~% `3 J  x( ?3 z- t; P5 P
  ~  v: D$ q% `0 z: B. u" Z    /*  Enabling interrupts for DSP C674x CPU */, r: u: Z! _2 f, |2 Z
    IntGlobalEnable();        /* Enable C674x global interrupt */
( y/ x+ ^- }! B9 p    iAssert (Notify_start()); /* This will enable IPC interrupt */
5 Y1 _2 `' x. g9 _* W% ~0 F}
4 h7 W1 r  i; z
) O$ }# T, d* r. O) O
然后是  - P, b8 k( j5 O* T
            // UART 初始化
' a! s+ D+ U5 j. k0 ?4 Y: U8 w# U            UARTInit();; O6 x3 w# O) m  `7 F
. C/ Y$ t  }/ _/ _1 P* c. [
            // UART 中断初始化
0 K% e  H7 n1 a$ T! @            UARTInterruptInit();: w9 ?" v, i' }1 L9 _

0 h5 L- B" K, P; l" C" t3 ~/ D4 l4 @. t6 H+ X
void UARTInit(void)
" N+ R/ ]. J+ a{
! x8 t9 J/ ~, I  S5 N6 x9 K* C. z        // 配置 UART0 参数
+ F+ z5 g+ z# ^) X, U8 k% X* g        // 波特率 115200 数据位 8 停止位 1 无校验位0 X, l. `. B5 f* ^: n
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,4 J( a/ k2 ?& \0 _
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);1 b5 ]. Q$ y' @* G/ N$ @# ]; C
        // 使能 UART08 I7 f6 ?+ [9 W4 j9 g0 j
        UARTEnable(SOC_UART_0_REGS);
5 T1 K; \- Y' V( G: p5 }
1 m4 ?, j% R4 a# h, Q% K5 U5 s2 Z    // 使能接收 / 发送 FIFO
$ w# \! j! l* i$ s. w) y- ~$ l7 c//    UARTFIFOEnable(SOC_UART_0_REGS);
' I; _: N1 j2 D, M
: U; b- L* u: I: M1 F) T( B        UARTFIFODisable(SOC_UART_0_REGS);+ l; x; @9 Y6 S. r
! f4 u$ l" ~4 F. W2 a% J
    // 设置 FIFO 级别     接收FIFO的级别1 I8 C- Q) n9 ~1 R/ f9 R& m8 T; S
//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);" U1 K8 M6 Y( J0 c) z1 _
}
! j: g0 v9 o3 u. S% ?

* |. b! ?$ K7 _4 p# H2 f8 o' k
' L' `4 q# d$ V! @void UARTInterruptInit(void)
. F6 y$ L) M: ], A' h1 G9 G0 X{  y. T! G$ e: ]( F
        IntRegister(C674X_MASK_INT4, UARTIsr);- u8 X* K6 t3 M  u2 u0 \
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
1 G& j4 Z8 G# h( G) A% o6 N        IntEnable(C674X_MASK_INT4);% O5 o( A0 U$ j8 \; L0 G2 Y
8 P8 f/ r9 X5 S% K* L
        // 使能中断
1 h* r9 \" K. W1 B/ g7 S+ w" [        unsigned int intFlags = 0;7 s' V' Y% r' j: N. d% `( o2 Z
    intFlags |= (UART_INT_LINE_STAT  |  \
, \* R4 x# M0 ]% ^9 S0 @4 e( m                 UART_INT_TX_EMPTY |    \6 P1 z: V' v7 `. @: \( z" `
                 UART_INT_RXDATA_CTI);. O! K7 Z. B8 {( s5 o) b  [7 R
    UARTIntEnable(SOC_UART_0_REGS, intFlags);& o1 T" V, N. D# P7 V  \" g) C
}$ h, j8 a$ y% |$ k& x5 P& P
5 B+ A3 M$ |* L, ]
* E- _& T3 Z2 U, Y2 w( L9 l/ b
void UARTIsr()( N5 C* _& h; S4 w
{5 k' G1 U2 F1 {( }2 Z
    static unsigned int length = sizeof(txArray);6 b. O  V8 V$ X% }
    static unsigned int count = 0;+ v% U. m, W* H7 W% H: A) ^7 a  L) i
    unsigned int int_id = 0;. ~; G- R- ]) Z) v/ k/ a; z
  z- R4 G! l. \4 @; c2 e1 u

! @8 h5 b  J, D. t0 x; Y4 U! J5 Y+ I
% I5 p7 _/ M7 k: R$ O    // 确定中断源
( h! i2 f4 ]( t. V4 x  _    int_id = UARTIntStatus(SOC_UART_0_REGS);
9 l9 j3 q% a" w: k2 q4 r% U9 U8 o- `$ v6 u
    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
1 Y6 g# s) ?8 ]2 S
; m, @6 R* R) N0 r# G5 r% p  K% ^9 y  D% [" X
    // 清除 UART2 系统中断
. u# }+ \6 o& X3 u    IntEventClear(SYS_INT_UART0_INT);3 }" T; p, P; }7 E* _, R. {

% ]7 Z9 r% I( ]+ M/ t2 P    // 发送中断
: v3 G4 p# I  a7 Y4 x    if(UART_INTID_TX_EMPTY == int_id)+ @9 c8 y/ M9 u8 y" ~
    {0 F7 _* q1 u3 Q1 Z! X2 i
        if(0 < length)
/ u$ B, s7 R6 a& K: B$ u        {# O- Y) n2 k' i$ `3 g& C7 x  E9 s
            // 写一个字节到 THR( Y/ z3 s0 S+ v' n
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
7 M* n  \6 |. P2 f, K            length--;- t& ~. H' }+ {
            count++;. B1 j. l0 `, d) d* |
        }; ^( Z+ I* X( D' L0 @6 g# Q, x
        if(0 == length)) k% S, A3 w7 T4 @5 [2 R3 T
        {: m( c' L2 {  n# w) V7 O0 b, \
            // 禁用发送中断
+ V  v7 p: c, J9 r, P            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
6 ~8 `' C5 L# ^6 f( }3 k% C7 q        }4 x8 U1 x& Q2 k7 |1 f" K/ c, P
     }& T3 A1 N% p% Z) Z6 s+ m
8 S' _5 q$ f, b# c4 p8 r
    // 接收中断) b$ A6 M; h, ]( U  O  N: M  M
    if(UART_INTID_RX_DATA == int_id)
8 ^" n+ L3 i: q: ]. \* u# J+ y    {* s& ^" P  h$ Y3 U5 p7 Y
        if(status_a0==0)
; ~2 ?8 k/ n( r        {
! S( H/ i. Q* E% u  N8 N. M+ Q) w                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
: `0 f3 n* V2 M7 q, Q( k( ^' t                if(a[0]=='#')
, H7 G4 S" j/ a                {
, h# W. b0 l; ]; o                        status_a0=0x01;! m0 d0 c$ a3 G3 _" z1 ^
                        status_a1=0x01;
% ?- H& _( f. b' Z1 _3 K                }* ?2 i" s. f$ y7 T0 g6 x! P  P
        }4 ?6 t, U5 n: e& n+ K
        if(status_a1==0x01)
+ S$ Q. g& H* W* p% }4 M        {
" r9 u$ |0 y  N                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);$ d# Y6 Q1 f( W, k
                if(a[1]=='R')# l$ {5 E; C! r' h2 a" L" n
                {
& T' _* ^# L% D  I                        status_a1=0;1 {3 j0 f% R' U; Q! V
                        status_a2=0x01;
8 M9 j  g& Y2 A9 t2 }. L                }
' S2 M' i+ {" m3 d3 r% e        }
2 F8 Q$ c3 P# U) ?# l, B0 R& F        if(status_a2==0x01)* P9 \' n1 Z5 k( g! w6 u* M
        {
8 M; R0 J0 Z/ P/ |                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);; U8 Y' X0 l) J) Z: @. t9 [
                if(a[2]=='A')9 D1 C+ W& W- H7 f
                {
/ `- y( `3 `5 t9 S- E                        status_a2=0;5 G6 H9 B, W- d0 _
                        status_a3=0x01;& X  t7 i) z' s
                }) K) P3 C( f4 T6 \4 ^) L! `$ z
        }( @$ ^% Z* K, _. k
        if(status_a3==0x01)6 Z. ]# M1 r1 S& }9 M. N
        {
) K. Z* R9 j7 T                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);0 n1 h$ i8 h; ?0 Z5 t' r  P
                if(a[3]=='N')6 s. ]- x! ^6 D9 m3 [) v
                {
/ _2 \+ f& k$ F/ Q# a0 u' {: {                        status_a3=0;9 p( w& K- G* w# N1 e2 d  c  Q' k
                        status_a4=0x01;8 J9 X2 M# G1 ^' V* e; B
                }5 K1 n) s7 s9 w6 {7 N; s+ s( T
        }
; j& i* l7 a) S+ v        if(status_a4==0x01)/ p4 _& d( c! _& [  X
        {5 p( x4 W3 b. `8 J# ~5 v: d
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
  G$ Y6 E6 L- H) U                if(a[4]=='G')7 S$ L1 j# N; H5 C
                {
$ \4 d" q) S  a. p3 \                        status_a4=0;
$ V2 T5 b+ Y4 H$ ]                        status_a5=0x01;
" I# x+ j6 o+ H& |' `5 X                }+ C/ z: V1 e+ x
        }0 M. d% P$ G1 C6 |! S) L( f
        if(status_a5==0x01)
% v& z5 f6 z+ V9 l        {
% z  ]. |! O  \9 k+ ?- D                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
0 F" n& M; W& P% H8 i                if(a[5]=='E')
9 T- @# p: Y5 E# J                {% v& t* o2 P9 N
                        status_a5=0;8 C; o' t- d- d3 t5 E1 L
                        status_OK=0x01;; w; a: Z. ~4 o
                }
6 z9 A& {7 `5 ~! O% c# _! F        }5 o: R6 q' F6 b, G1 ^7 {1 U4 j* @( H
            if(status_OK==0x01)
3 a+ G! l* i! I8 U/ R1 \        {: q6 f( u9 W; w$ n, A
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
1 ^8 C# k6 O: v( h4 T1 g) o# I- ?                        lengthrx++;
) f6 k% L/ A2 z                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
: _+ _' q1 v7 X7 ~9 Q: i( v% i! h: I                        {7 l4 K5 ^) P. [8 Y; Q6 Q* `
                                RecState=0x01;
% ^9 G  m& }' L5 C4 ]                        }+ f4 t5 `  q. s- a7 E  h$ U; A
         }
. i$ h  G) A) b2 z# M8 Y( {9 K7 A& T, O6 Y8 ^) N2 k
     }
1 y$ z" h* d& f; V2 a. H8 n" \0 U+ M  P* J8 J0 R' V0 [1 v
    // 接收错误( h& Y$ ^* t8 h. P% F6 Y7 K0 T
    if(UART_INTID_RX_LINE_STAT == int_id)
( L) k, R& h: B6 i- ~  A( q    {
/ s6 x) r% [* a$ s$ Z- C, J+ o4 Q        while(UARTRxErrorGet(SOC_UART_0_REGS))
" ~4 E: v/ G; \. C        {
; v( l' J3 J/ q! Y8 z: D+ o" }3 ~            // 从 RBR 读一个字节+ M- S% @# H5 l+ g. A! [6 T" f' a
            UARTCharGetNonBlocking(SOC_UART_0_REGS);- o+ m; H5 u% ~- f7 j
        }
! p& b% m- O3 Y    }6 `# z3 E; @. P8 Z0 s* J4 y

3 B# D% B" |5 g    return;# w- q' i4 _. H  @
}" d9 n$ ?$ N3 {, b, l4 t

  R. _3 g1 O5 T6 X* K' G

2 X3 Q5 |# N: v: d& s' _( q% O$ v( S8 B/ i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2165

积分

创龙

Rank: 8Rank: 8

积分
2165
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
/ B5 Y7 q9 V7 u, ^
$ b( a8 F2 T# S# eUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。! G1 X6 t7 ]- o
) W7 r% V) [! O: M
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
: D* X. o9 x- t9 k2 w  \* xhi,8 t0 V! X6 ]) l; H8 t9 k
- a9 t6 `8 z6 j# j9 u+ }$ ^1 M5 q6 N
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
- \0 ?7 J- g) n4 U' E- s( z
void main (void)
, [! H% \. `5 |% n& J5 i{
4 O8 i& Q2 w  x$ Y8 A# K5 V; [9 v" X        int i,j;$ O  {0 [8 L, {* p" L
    char *str_buf;$ n/ k+ d8 c4 b$ @" Q' L
    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
4 {8 _; O" p' y' X3 [$ u8 Z* h0 {        double est_L_b_=0;& G7 N7 n: a3 p
        double est_lambda_b_=0;# y1 E2 N$ @: r% f9 h
        double eul_[3][1]={0};/ V: h" y4 T+ p) V0 C' B1 H, R. T" j
        double est_v_eb_e_[3][1]={0};
* `& z4 e; B2 |% b/ g8 `8 q        double est_C_b_e_[3][3]={0};  L9 n% ]! U1 M5 e) a! L, s6 y
    char *qm;# V4 ~7 W+ O# X& Z9 R5 P
    char rec[70];, U+ w% M8 b& c' R: u+ ], \5 W- j4 J
        double L_b=0;
' f0 @, E" f& ~  l% b! `3 t8 _        double lambda_b=0;
1 i- `2 P' a* [4 y$ d+ Q        double h_b=0;6 {9 g8 M- p- a
        double rate;3 _2 N- D3 c2 {% g
0 ]8 z7 @4 G+ F! h, k

- _$ v& w& U) {- N# x        // 外设使能配置$ i5 D7 ^" I1 s8 g/ n, i
        PSCInit();
! r2 e) v9 T9 f1 \" T& m; w: b* i9 G$ _: {, Z
        AppInit();) m6 I+ {1 b3 O: n
$ \; Q1 \7 P" Q. e
        // UART 初始化: m1 L9 F; e* X
        UARTInit();
5 R6 Q" U6 U5 p) h. r" |4 p! H0 @1 P9 H% G# F8 F
        // UART 中断初始化
8 Z" n7 i5 D! a0 W        UARTInterruptInit();
* n, t1 e# s5 ~3 d* ]3 d0 [* L7 Z
/ i  e9 ^6 H! ^    evtRcvd = 0;
" U6 q6 [* Z3 T/ ?! M    RecState=0;
' _  }" f/ l- f# {7 Z/ s    /* Initialize */6 Q& Y( s, q4 Z4 ]' [* G9 g) T. S
- }2 X4 G6 D2 K& v& C
    printf("DSP subsystem ready\n");7 v* V/ c/ g  _5 d9 _, w
+ {3 i2 _% p8 d' h9 V6 |) B& w
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
6 u) M  v" f  L2 M9 V
+ `# }4 Y; r9 E7 {7 Ifor(;;)
+ k! r+ b* Z1 n$ z, ^, h{0 b$ l6 i! u3 V! \4 |
        if((RecState&0x01)!=0)
/ U. u6 P. W2 u+ i. Q        {
% F+ U5 F4 L* ]9 Q                printf("liuzhenxing\n");" A: s+ r9 ~  A3 J
        }2 R; m  w2 ?+ }1 b* k4 p1 X/ R' A
        else
  ~- K/ ?' z9 @! [        {
# k3 k8 x) D) V! X; Y$ D       wait_event();
( \2 o4 W5 X  u! w4 H0 O/ C. j
: C6 {, m) i' |. ?           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针3 }( P0 X  i4 p& `% ~

1 H$ z" s1 X* b7 m           for(i=0;i<60;i++)
7 B( C. b+ d7 P. p. k. T6 S8 ?           {+ U0 X( Z3 w# u8 u' L
                    rec=*qm;6 @* ]8 j+ N4 [
                    qm++;& @. `3 \# _' ~) D
           }9 {$ C8 {1 F5 ~% Y! w. Z

) D& M+ p/ Q. p2 \0 E. Z9 I           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
! X$ l0 W& d8 C2 ^4 Y' g
$ R( L" Q9 q; e9 m           L_b=L_b_receive_double;" J5 a5 C8 a* F, d7 C" i( W6 O
           lambda_b=lambda_b_receive_double;% S. n# d2 x$ s; G* B- \# c
           h_b=h_b_receive_double;
$ i7 ^* c7 K! M% C* ?" y3 D           for(i=0;i<3;i++)/ e. ?8 S6 d; x+ e
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];$ G8 z1 o! `' Z7 x5 ^+ a
           for(i=0;i<3;i++)
% ?6 X- ]3 }& }1 B# X3 Y2 p                    for(j=0;j<3;j++)
7 M9 Z7 R# @) Q                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
; W7 M4 ?6 ^) S" u8 j; O$ R9 w% u5 `8 B3 M. i
                printf("L=%lf\n",L_b);
& B0 \& `8 _" J: d  R                printf("lambda=%lf\n",lambda_b);
1 \* \3 O# |  U: @4 O8 U( w                printf("h=%lf\n",h_b);
2 q+ N1 |1 P* r& ?0 k5 C' e0 B
                for (i=0;i<3;i++)( ^- Z# ]+ \' P+ |4 B5 h
                        printf("%lf\n",est_v_eb_e_[0]);
, R6 T3 p. |. X* ^                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]);
4 k$ p9 y; i0 j. M3 L9 Y                printf("rate=%lf\n",rate);- n. ~% f1 G* {; P
6 L! S) \0 G# ]0 x, @
                CTM_to_Euler(est_C_b_e_,eul_);
9 b) p# s3 f1 u; }0 |  `, j                for (i=0;i<3;i++)
( i# b7 \& X9 m                        printf("%lf\n",eul_[0]);" Z0 i' L9 w5 H2 Q' _5 f
                printf("end************************\n\n\n");
( B( C4 T& V# Q& O- j1 I5 n* R+ ~- q8 L
                /**********************************************************************/% z! ~! u+ l5 v

+ S, l, m) l0 z1 w# Q  R2 L            char flag[4];/ ?0 S0 G4 [9 ]$ b, D3 i

; t; W+ {6 H/ U, `            flag[3]=0x00;' S& }* f$ X: p' Z2 a9 Z' ]( w/ m
            flag[2]=0x00;0 j: S3 N6 S* ^* A; x! c
            flag[1]=0x00;7 D; j2 o* g! q+ c- o
            flag[0]=0x01;
4 l0 T/ k4 |$ z, a: A$ [
( {1 a  \% Z, @& v5 Q    /* Allocate I/O buffer and init with string */
" Q4 Y& W; G' ?6 }$ \% ^" d    str_buf = (char *) malloc(80);0 x9 O: R4 Q! r, ?4 _
    str_buf =flag;
& r/ A/ s# a3 v0 k* y- `9 \
7 @' _& }" r0 A    /* Send buffer to remote CPU */7 f6 l  F3 Q5 C" i& U+ @
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));
2 W0 c2 @+ U$ P8 n9 w" Y: l6 I
' z& C8 Q# g- P( [    printf((char *) myPayload);
' F/ A) l7 K, o        }) D3 E/ r5 M: u$ v: V; q
}1 ?8 H5 B4 A$ @9 A
1 w+ \3 y  S! Z/ l+ P$ m
    WAIT_HERE;
- N/ j  S; B, ^2 y}( |2 W- F5 u0 D
回复 支持 反对

使用道具 举报

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& r( ^- d" i! |3 M
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
3 B8 c7 \% R; |$ I3 s然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2165

积分

创龙

Rank: 8Rank: 8

积分
2165
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
: K6 c2 F% |4 _3 b; a, Nsyslink 的初始化是否成功,notify 通信是否正常了?
: @' I2 Z' I) N9 n  i
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54" x3 X& I5 I) Z
syslink 的初始化是否成功,notify 通信是否正常了?
  O- P) P4 H! [4 b* j: g5 }3 l
我用的是裸机开发的双核通信,用的是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) O0 s2 p2 e! g* F# j9 N
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

$ A" l- i5 D- D9 h建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-1-31 06:43 , Processed in 0.051738 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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