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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。
$ D+ M4 G' V' k2 ~我是在DSP初始化这不太明白。. P' `7 P, R% L" u; P
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
. T% @# b. I4 T6 y$ U/ x% B1 O+ l  q! h! q4 e

' R2 ]& U3 x1 b; g) ^首先        PSCInit();//UART0使能$ h" V: L, G7 }3 L$ `/ N  L
void PSCInit(void); V: H- s2 T- @+ k/ w8 ?
{' P, `% W+ \! A& o, @) V" Y
        // 对相应外设模块的使能也可以在 BootLoader 中完成
( d' `" p* T. g9 \! [    // 使能 UART0 模块
) v$ l6 g5 J( U1 k! R6 @7 C% c    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);: o+ V9 Q9 X3 h! K7 z* c" ~
}7 x* c: i5 e* E2 W) L/ \: e

4 Z% e: Q9 r; X8 I: U! `1 V% x; `- G0 ]% r: R
然后是 双核通信的初始化           AppInit();, T6 C9 c; D; u6 d5 x1 g
void AppInit(void)
! v& Y6 }1 |% W6 T{; [& Y4 u- c& _8 K* Q7 B" ^
    /* Structure to initialize IPC (see Ipc.h for definitions) */
' N7 _7 w2 f/ h" P2 Y    struct IPC_cfg ipcCfg = {6 L; m: H  `" O2 G- m' i4 J/ I% h
            IPC_DSP0,             /* local processor Id */
3 }! v# }! D0 a1 R            IPC_ARM_HOST,         /* remote processor Id */# w4 }$ a5 j( Z
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
+ u/ }: |) j* t8 Q" W& V; |            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */2 }# |2 @' L9 ]9 V- h
            NUM_MAX_EVENT,        /* maximum number of events to be created */
2 W3 V) r1 H0 r            &ipcPvMemDsp,         /* local side private IPC memory */, D$ x4 j# J5 Q& |  m
            &ipcPvMemArm          /* remote side private IPC memory */
) k, T7 g; i$ z    };
$ v# E/ }3 ]: O! V7 I- c1 i2 Y& Y    IntDSPINTCInit();
; R3 r8 j' P' _$ _- n    IPC_init(&ipcCfg);
& o: G- g5 F) v) ?8 U# L! k    IPC_intRegister(C674X_MASK_INT5);
7 ^$ J/ Z* y3 l- H& x% ^$ B+ v    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));3 T1 M* h1 T. T+ O8 v2 _- l
8 R* M7 W! K" D8 J& u
    /*  Enabling interrupts for DSP C674x CPU */. _1 a1 q" c- Z$ A& t* E. q
    IntGlobalEnable();        /* Enable C674x global interrupt */
9 l* {( K/ D3 p9 L$ f/ p    iAssert (Notify_start()); /* This will enable IPC interrupt */
: |/ Q/ G( e& q9 ^4 Y) I}- A" U: s; ~% d+ N3 m/ T

- I$ U" R% d1 f: n( a& D3 P% o# x$ ^然后是  " t$ X4 L+ @: D. O' \; X0 f
            // UART 初始化
& ~8 g# C9 P! ~2 V3 a  v! {            UARTInit();
& m# W  X- [( P8 z- R% r- q9 @2 u. ~& s5 q
            // UART 中断初始化
/ C4 [. l  g' [9 m0 P9 h            UARTInterruptInit();
- I, B! Y6 g% h7 W7 [; M

; K6 _, m' M% [) o/ H1 c6 d
, V, T. N' @. J. F, \void UARTInit(void)
9 b1 o2 s9 T, i& i, ?% m' f{/ l, u# n$ l  u- F
        // 配置 UART0 参数
! I" X; o' U* }- L9 @        // 波特率 115200 数据位 8 停止位 1 无校验位
( I; g7 C# }1 t8 S% Y; ~  _' s  z    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,3 h) `# ~, `0 U$ @3 ^9 Q; U+ [
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);0 G  R7 U" U5 k! T5 F
        // 使能 UART0# _. W- }) K" f- D$ f6 u5 m! Y# r9 [/ [
        UARTEnable(SOC_UART_0_REGS);
* ]7 j. N; B5 h& E/ W. v# d/ _  h5 P7 F1 u  G
    // 使能接收 / 发送 FIFO
* _2 w$ U" M( B) C4 [' P//    UARTFIFOEnable(SOC_UART_0_REGS);0 p4 q* T; M  u% m1 o, T: }
% {- s" x2 W2 T2 x8 A
        UARTFIFODisable(SOC_UART_0_REGS);- l7 a3 c2 ~# P/ h0 o1 Z, P7 q
" z7 B) I% C4 Z1 f
    // 设置 FIFO 级别     接收FIFO的级别' g5 i; R' I, A! P
//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
: l; I) r2 B- u! e}! x6 m; W8 V! D$ M' y
0 J& O. n& _; C" w

4 R# J: _3 F5 \" K+ ~* @- F, k" |void UARTInterruptInit(void)
. F# V7 |$ m8 k' A6 T& E{, M( [0 g# s# E/ D  O
        IntRegister(C674X_MASK_INT4, UARTIsr);% y0 e% c5 V2 `
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
9 m6 Y8 t( R- G9 w        IntEnable(C674X_MASK_INT4);5 v2 a7 v4 I0 p% t# o
' e5 n. @) [; p- [
        // 使能中断
, C1 a+ w3 M9 {7 v: E4 H9 L: M6 K        unsigned int intFlags = 0;/ [9 c4 l. _, {! q1 v  z4 @6 U7 M
    intFlags |= (UART_INT_LINE_STAT  |  \
$ x( }" H$ T9 w+ e( F                 UART_INT_TX_EMPTY |    \
: t$ u6 |, D7 Y" B                 UART_INT_RXDATA_CTI);
- a0 h; H7 N3 x- _7 d( g: q3 \    UARTIntEnable(SOC_UART_0_REGS, intFlags);$ I% ~& z  l: W7 B7 ]4 S
}
" g. Z; \: b4 }

: v8 o! U( m( `6 Y. W) g
6 G: C. z, D7 hvoid UARTIsr(), A/ u/ D. l! N' o% c& F1 _4 U
{3 y/ f5 _5 o. a9 X# `- C4 l
    static unsigned int length = sizeof(txArray);/ p2 o' `/ k% P# x" @. C
    static unsigned int count = 0;
% z. z( k, L9 j, L) b. k    unsigned int int_id = 0;
$ B1 ^( c6 `* D% l: l, e* Z  P- z1 B! a5 E* p( y/ }1 A4 a% g) S* [
! c6 q& H7 J: F7 h, |3 R& c

; U1 K0 |; _# G$ B    // 确定中断源
% U# `4 L! R  V- Q% F/ ]* G    int_id = UARTIntStatus(SOC_UART_0_REGS);! N; h) u7 V( N* A0 @/ b+ C
0 l# q4 E( k3 K' g7 I
    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
8 v1 B3 @; ^! k% c5 z% D6 @; O( }0 i$ `8 S4 W
$ u8 ~  u9 n4 R% U2 B$ x
    // 清除 UART2 系统中断
+ V: P; Y4 _% s0 y. @8 g; f    IntEventClear(SYS_INT_UART0_INT);
+ I3 a0 x$ y: \' k$ I4 l# a. i
3 C$ A& r* [! l3 ?( b0 |    // 发送中断
7 _% A7 j- M9 O' g3 S+ q    if(UART_INTID_TX_EMPTY == int_id)
3 n3 W5 I, G6 z" N+ M    {- S, d% y: T' \: o9 ~
        if(0 < length)
" C9 I- y0 T1 ^( \6 y/ O2 J        {
; m/ F" h# G  h            // 写一个字节到 THR1 F7 q9 T8 [( S9 ]
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);3 o, q% n' Q4 _( w
            length--;, z/ }  a" @8 H. ?
            count++;
/ ~. e+ W2 D$ ?9 Y: A        }
, w' J- ]" R/ v5 y        if(0 == length)7 g. @; h+ L3 O" m
        {  f9 C' k# d: i0 r
            // 禁用发送中断3 w  F5 o6 l4 t* H! p. b# \
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
: z& Q) E( E1 l, n- ~) s. \% v        }
0 z% t0 ]9 U* M# t8 y0 {8 y     }
8 @/ p; F( V% p: x4 s- ?* _6 [5 U0 O, r& `8 @
    // 接收中断
4 N% E/ ]' P8 E6 G; i1 o" X    if(UART_INTID_RX_DATA == int_id)* O) b% x) l' E  A. h
    {
3 j1 U5 u5 n* H9 ~( \( S        if(status_a0==0)
  O) M# D- O4 I5 Y' X* |        {: U1 n' I, ?6 K
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);: I1 d3 G( M9 A3 U! W9 U) f
                if(a[0]=='#')
' ^' }2 j6 K$ D9 Z3 I" S                {4 X% L( k5 v2 t6 Z4 d6 L
                        status_a0=0x01;' a& h+ J3 _, t" d1 b' {' w' d% W
                        status_a1=0x01;' @- l. Y% f$ N5 \  z' @6 Q# a
                }5 Y( B  X/ R8 }/ ^
        }
  x' U  w' @$ v: I        if(status_a1==0x01): a1 @6 e  ]) {' |/ t: L* c( U5 z' A' d
        {- ?* `7 t! _- d, M% }+ [2 _
                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
! g" N+ m7 F9 C, c                if(a[1]=='R')# V, P1 z$ U' V3 D1 |2 W
                {2 K! J# P) J2 k2 s: _
                        status_a1=0;8 o! R( w- B  `+ v* D( T* M/ |' |4 a) e: _
                        status_a2=0x01;% V: A6 v. k1 k' Y% [$ [
                }, h0 J. [9 z$ b% l- e9 B* v6 y
        }2 z9 \9 o8 z) c) W8 E5 o
        if(status_a2==0x01)# z9 a# i$ V: Q" B
        {
! U% r/ a+ W- T2 ?# f                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);0 s; C2 }$ m2 O- o, m) I# y7 x& q
                if(a[2]=='A')
6 T9 [, ], H& r- z2 s                {; }6 ^' K6 O2 j1 t2 R* c" |
                        status_a2=0;( Q' N' p0 b; }' u9 I/ U
                        status_a3=0x01;# B: y+ p/ H5 F0 H
                }2 H$ z0 T8 }0 n' \- |" c
        }, m. M7 s* g. P4 ^" f- t+ W7 f! t
        if(status_a3==0x01)2 j6 a7 k4 Y% S  K2 }" G) k/ @9 J
        {
; M& b% B4 K/ s( @0 _% b                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);2 |* a7 X' ]9 Q3 X: a3 B( A1 W
                if(a[3]=='N')
/ X( t- i7 U: @                {
' L: q8 z' E& M3 q9 P+ j                        status_a3=0;7 l+ c. o: M$ _$ x) k* u
                        status_a4=0x01;
/ z$ o+ p* x/ O) g                }$ X  R0 Y1 X# E# _/ G
        }
& i7 \# G( K+ c6 u        if(status_a4==0x01)
, V) j) o1 e# \  e2 ^/ W        {
5 `* V& x. J2 N# u7 `                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);' b" a9 _) c. ?! I& Z& Q
                if(a[4]=='G')
9 ^- V  E' r2 M# v% O# b                {9 r  b6 }6 G9 w8 l5 N2 D
                        status_a4=0;6 ^6 y+ Q4 w8 a  n$ Y" n
                        status_a5=0x01;
; u, b7 q3 R) u6 k, {5 E                }- {) U; I2 y. R+ F3 I6 L/ W
        }0 h% e( c* V2 r1 C2 L, u% n1 S+ W
        if(status_a5==0x01)
- W( e" ?, A* v# _  V/ T        {
! g. k6 Q5 m' K& H, \5 ], }                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
4 a6 g& O' `7 [5 j                if(a[5]=='E')) {  S& `. H  W
                {# d/ b, t  U, J+ h9 @7 [
                        status_a5=0;" T7 M6 C5 @+ b
                        status_OK=0x01;2 E2 l2 C5 O  N3 K$ a! E' z+ |
                }
; |5 F$ Q# u% d! {. _: h1 Q: |- z        }6 A* Z5 \# K! V8 w; E) C, |
            if(status_OK==0x01)! |+ _) u' `# v: o( q9 C
        {
8 \; a: E" Q7 r                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
. V1 c6 r$ W. t* }, `5 ]                        lengthrx++;7 p9 q  J- e0 X3 n  ~
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)2 C! O5 U* Z: ]: |; r9 n" {; M
                        {
% G& D; Z, H  u* X* D! m                                RecState=0x01;6 H) p: f4 T0 U5 w# v; A
                        }
: H' q! F4 C" u: ]( K5 G         }1 h! m: E. p/ B% C+ C

8 @1 R3 X! a7 W' u. E5 ]2 Z& ^& }     }  M, f4 j1 e) b0 v$ g3 w) A# \

  @0 v% @( z. H. E! d; B. d    // 接收错误
. s/ c  P( x/ j    if(UART_INTID_RX_LINE_STAT == int_id)
9 o! _6 `+ R  D& }' [: L    {  t. q9 Q2 n. h9 y
        while(UARTRxErrorGet(SOC_UART_0_REGS))
3 P- K/ x# x. s4 s9 H        {
% b9 P2 r: A6 O8 }4 a            // 从 RBR 读一个字节
: E+ o3 Q. U& N4 s' s( m            UARTCharGetNonBlocking(SOC_UART_0_REGS);
3 w0 Y5 b7 @5 j2 o, N        }& N7 k0 W  _8 q( a1 `5 e
    }
" X5 M' b) e) s$ W% O* h3 i7 F+ y: y" k
    return;- i  z# r* C, ~
}: |+ T4 Z  |6 Y6 N, b: m

$ {: t" d! a: t. y  H, [+ ?

+ N6 J  v7 t6 ?" x8 j1 p7 A$ |( }( B1 k* \* I! D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2165

积分

创龙

Rank: 8Rank: 8

积分
2165
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,2 D; K% y+ i  [$ `' J
; l8 ~& j5 @2 t2 Y  C
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
" s  p% u, u4 {6 g" C, C+ u/ J7 E
  ^: a; Q" M5 ?7 ]% {# p要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13% k8 Z9 T9 a- p3 w) K1 a' }
hi,
$ A- w7 w) x8 c$ O; {2 e3 s! c+ F8 ~! m, t9 D
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

$ A+ e: X9 U* G: X3 Vvoid main (void)1 D6 x# t7 p7 y5 v& H1 R- C
{
& Z* u+ a: o- o        int i,j;4 F3 d1 z! ^1 \1 K, O  ]
    char *str_buf;
5 j. P- }2 T: x    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
/ P2 u; B" f4 k3 i) a+ H        double est_L_b_=0;
. S4 Q- Y$ f  E- S% c- @7 C! i        double est_lambda_b_=0;1 F% z; ~  ~9 `* ^0 Y* |) q
        double eul_[3][1]={0};  p( O% j  A& o
        double est_v_eb_e_[3][1]={0};/ w, y! \! }6 H# Z" f/ |9 }
        double est_C_b_e_[3][3]={0};
" E1 M: w% }  {6 L. U$ a    char *qm;
# Z% k/ O; {* K; }( B! Q    char rec[70];
( ~& s+ T6 g, {        double L_b=0;1 `9 s3 }3 M( F- |$ Z% S: D
        double lambda_b=0;7 C0 O0 O0 S+ `: u  s
        double h_b=0;
( F' ^+ }, y+ I        double rate;
0 z2 t( g1 ]) G3 z
) U: J6 m! K) ]9 `, O+ h! {1 |6 z* A+ ~; ?1 A* P2 o
        // 外设使能配置6 h6 `% E; I6 ?2 `) _- }6 r' K' T
        PSCInit();8 L2 `# A5 J* A
2 E2 x6 j; f- |
        AppInit();
4 x. ~3 |" |0 ~0 M
9 m6 r& b5 D: J: O" J        // UART 初始化
8 H6 j# s# `% Q' g        UARTInit();8 L2 d: M# d% B

% v& h% y$ z' \* V0 H: Q        // UART 中断初始化0 {/ p" ^7 `- b1 S
        UARTInterruptInit();' M; S+ d* J8 t0 n

1 u, K  C* q1 x& ^/ F$ F7 W    evtRcvd = 0;# C" t1 U2 c/ n2 q8 l
    RecState=0;, x+ B3 d, [1 K, o5 o6 D
    /* Initialize */
! J0 v! }6 m# S! D: @3 v9 C9 N. e# n+ N) }' @  X/ D6 }2 n
    printf("DSP subsystem ready\n");
& Y9 W# A  O6 I4 z
# D0 w" ~! e7 Y$ ], Q    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
. a* ~2 h5 ^' u# {
; B, d' F  f0 k+ wfor(;;)5 Y) z# B0 P8 G+ A5 O3 a& h4 c
{
! F3 b, A. t2 `, x        if((RecState&0x01)!=0)3 Q4 U: B! d+ _8 q; _
        {: _9 N. M& A( @6 ^) K; a; Z
                printf("liuzhenxing\n");2 j- _- m- p* A
        }7 r- v  X0 f+ t) U: }  I, ^
        else
; C" Z: \4 F  |& U& L8 H        {
6 A1 d% }, u: X; \  Z2 b# b' t$ `; }       wait_event();0 e! N" h$ n  a" |0 p: a; f  N
4 w1 o# M1 V* g: D/ n% V# l
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
; P: A) M1 m4 M4 U: q: o3 V, W  u8 ^, h: m, a$ l, s7 D
           for(i=0;i<60;i++)+ I: d. V- c+ k6 x  ?8 @
           {
9 O' b" s) [( C                    rec=*qm;
; E1 I% R: m' j& w: \                    qm++;1 E# k5 F" m  Q3 p3 {
           }% c* n, A- H! l4 M4 J: j
6 e7 a! D* J+ D7 f7 U, y$ `1 U) N
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
. c! r* u6 M/ g) z
1 m" D# K- Y3 H+ A2 B4 d) F% d+ B           L_b=L_b_receive_double;
. P. [, U6 D# ]( K+ Q           lambda_b=lambda_b_receive_double;
" @, x  ?8 u& x( Q           h_b=h_b_receive_double;
# y8 {1 g3 l$ S           for(i=0;i<3;i++)
2 b& S/ m9 Y: i9 g6 k                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];) X3 l5 l! {1 h1 G4 n* D* y9 L; \+ `
           for(i=0;i<3;i++)3 o& R$ u9 n9 _: x4 O$ j
                    for(j=0;j<3;j++)
, D. Q+ |  f! ?                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
& r' M* U" E4 k# A) j: o$ a7 ]% ]4 F  [
                printf("L=%lf\n",L_b);
  ?" ~+ ~- s  H$ a" m; U6 a                printf("lambda=%lf\n",lambda_b);
# H2 A- ?1 ?. u0 Y* i) ?0 f                printf("h=%lf\n",h_b);: y* X6 W5 j  L2 x

% J% `6 O# M4 O) `, K( ?                for (i=0;i<3;i++)
3 u, g& L# \  V                        printf("%lf\n",est_v_eb_e_[0]);4 \) U. m$ e3 `+ J  M  g' x5 N
                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]);6 w6 S" X: |8 `# @
                printf("rate=%lf\n",rate);
( _  }- v7 I6 \- r, X3 \( K( o  }1 e. w. G
                CTM_to_Euler(est_C_b_e_,eul_);
; ?- M% N/ v/ r3 G" E* Y                for (i=0;i<3;i++): X8 O6 x, v. l& l3 z+ m
                        printf("%lf\n",eul_[0]);
; _) V3 D: D! A                printf("end************************\n\n\n");! [3 E% ]& Q+ {
. r6 d% G0 C4 a
                /**********************************************************************/: K& I& `5 r  Y& H* g
5 I' N3 j$ P- Q. a) t5 e$ E
            char flag[4];
! z" X  X3 R9 p$ `) \8 p, v; w
! I/ V$ `6 b! z, Z1 U+ |6 }            flag[3]=0x00;- q( j* H" L) P5 c" C9 E
            flag[2]=0x00;
: U, t3 G  n& ^6 H, Y            flag[1]=0x00;& a9 `% G$ V- a0 P- W
            flag[0]=0x01;
0 i5 c; c+ v% n
2 e) k* R5 D2 l    /* Allocate I/O buffer and init with string */
& n9 O' U1 H4 H: }9 U! |( l    str_buf = (char *) malloc(80);
$ R8 x- G0 [* a, j" M: e    str_buf =flag;
" V- |8 r, N8 q- e* A1 C3 a+ A9 o8 G4 d3 @# z. J  s# W( X0 P
    /* Send buffer to remote CPU */
; W5 z) U$ E! ]    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));
( Q9 M% C4 r( d" I- W8 _  O1 ?
6 l5 L& t: p2 r' B$ n/ g    printf((char *) myPayload);
. D7 c7 X* z4 u$ a0 q        }6 I- x4 T1 v6 V
}
+ u4 M- A; H; C# [5 Z6 _) v! I
! v, G5 @; t( L# e& t    WAIT_HERE;- v+ @8 d' |, I) C& p
}) M# b) }- _! W' |% O4 R4 X+ x
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:
8 z0 B3 g% o5 k" v4 b6 D% Z" F我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
  X+ m$ [  q% L: N然后我把双核通信的初始化屏蔽掉,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
- {$ s2 Q8 ^$ l1 M& l+ s$ ksyslink 的初始化是否成功,notify 通信是否正常了?

0 \0 S/ G5 T4 N1 C% j双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:545 _' p* o) _  N0 r7 F+ d1 N
syslink 的初始化是否成功,notify 通信是否正常了?

( {2 R& u0 w" ~我用的是裸机开发的双核通信,用的是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
+ B5 E' }* Z: z我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程
3 U& r2 w( ?5 ?0 g
建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-31 08:12 , Processed in 0.053961 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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