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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。% Q' D# u% d* Q. ^
我是在DSP初始化这不太明白。
0 \+ |! j  b: b  r初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。7 O: i4 c$ |/ g0 Q# p" L2 ?
6 {% E; A8 X$ k- H7 E; s) g
' Y) U4 W* }* h* e& {
首先        PSCInit();//UART0使能
+ `+ P8 X7 M) o5 h; f6 _void PSCInit(void)- |7 K3 z4 W4 M7 q
{" Z3 ]! c6 D* O+ w
        // 对相应外设模块的使能也可以在 BootLoader 中完成
* d4 @% @! R5 q* q/ r- U8 ~    // 使能 UART0 模块
8 w. U$ R5 w5 r    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);# e# e/ O9 Q2 m& E
}9 t! N' z, Q- C5 X5 T

) G4 X1 h1 J3 O8 }+ B6 G+ J8 u  T! r# C* r( U
然后是 双核通信的初始化           AppInit();1 M! e/ X; a3 R3 L% C/ e+ ~- n
void AppInit(void)
8 x6 C, F- J2 O; i+ k! s- O  F{% K: u# B5 J% U' N
    /* Structure to initialize IPC (see Ipc.h for definitions) */5 I' A; d0 L& V7 N" {" F4 j7 e
    struct IPC_cfg ipcCfg = {
( z' c0 r9 H* X$ u( |" Y            IPC_DSP0,             /* local processor Id */
/ ~& O' e) J+ l6 L& g            IPC_ARM_HOST,         /* remote processor Id */
5 Z5 E2 W( u3 E9 f9 l6 j2 q            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */3 g+ p+ ?0 v  P5 |/ }- T
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
+ R! f. c' n2 \. I+ Y            NUM_MAX_EVENT,        /* maximum number of events to be created */& X( @, N! t1 e: y+ m( O
            &ipcPvMemDsp,         /* local side private IPC memory */  `$ E& Z7 R. V* L
            &ipcPvMemArm          /* remote side private IPC memory */
9 I4 \% a# F; A- w    };3 F% z( i" Z! C, a8 V7 |
    IntDSPINTCInit();
- y* x( i& p, O1 o8 h/ @3 m2 ?. W. H9 X    IPC_init(&ipcCfg);
- c9 ?' m2 m  n% j/ e    IPC_intRegister(C674X_MASK_INT5);
1 `* g# y3 `" b# ]2 X" K/ Z    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));4 k  ~! i. P# z. D

: E4 M1 G) }; A& i! _    /*  Enabling interrupts for DSP C674x CPU */* J/ K5 b1 @1 _% i2 \8 z- W. u
    IntGlobalEnable();        /* Enable C674x global interrupt */3 K1 K# }* a8 [) ^$ q
    iAssert (Notify_start()); /* This will enable IPC interrupt */% |5 c2 i2 s$ ^+ ^3 K
}
3 k) C6 ~# v  L/ r2 I
/ V  v* p$ |4 l/ {* O& i
然后是  4 @0 F; L, N4 T! a# J4 A0 a
            // UART 初始化
  ?! f$ N- C3 T+ N! I" M, ?; o            UARTInit();2 W) G# n+ t+ H

. A1 G$ E! F' I4 u  }' z            // UART 中断初始化3 T: E( x3 m- P5 W& [& S$ h& k: ^
            UARTInterruptInit();
# @  x7 O: u: U  i4 J) b6 R  K

1 X' W! {% R; N4 `
: l" ]) B5 i  r. V* T/ c2 q  d5 ^void UARTInit(void)& H% V" ^: G+ z8 W! ]
{$ t3 w2 p" {8 [. l1 }. n0 r
        // 配置 UART0 参数- _3 b2 X: w4 _
        // 波特率 115200 数据位 8 停止位 1 无校验位
  T$ Q- b; Z" Y% j6 L* z    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,3 J$ S. p# z) S& |
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
" R( k3 L/ L) ?+ O) T% i" Q( V$ Q        // 使能 UART0
2 t9 E  g7 ^# d0 X        UARTEnable(SOC_UART_0_REGS);
0 R, g: Q+ g" y  M* q$ ~+ f6 X& o/ l5 b% h% M# o, m6 q- d
    // 使能接收 / 发送 FIFO
) R$ G& T) L: _( r//    UARTFIFOEnable(SOC_UART_0_REGS);# f6 O$ a+ i& T& t8 S/ u+ B
+ n& s# G/ f: K9 A4 l9 K3 ?  W( k
        UARTFIFODisable(SOC_UART_0_REGS);. S& ~# e9 }) h
6 j; `: J, o5 v# r$ _
    // 设置 FIFO 级别     接收FIFO的级别
( l" p3 y) K8 M2 Q' h//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);6 H  J7 o) p" W
}
$ [! Q$ Q) x" ^3 i" Z& C  ~0 w

4 g: v1 c- O- C7 j& n8 y$ x2 O8 h) \8 N* Q
void UARTInterruptInit(void)
. f; ]% `8 u9 E% o0 @{& s* j/ B9 L2 v+ z
        IntRegister(C674X_MASK_INT4, UARTIsr);
+ w! s  y' j7 H7 n. |        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
  @  k  p. Y# M0 w- I" q% c- l        IntEnable(C674X_MASK_INT4);" o  r& Y2 b1 p3 |" r& d
# _6 x+ H# C# E
        // 使能中断
6 I/ p# G$ C& }        unsigned int intFlags = 0;
! K( @0 t" e2 O' k    intFlags |= (UART_INT_LINE_STAT  |  \
  n* n4 o/ Z  R8 W3 O$ A7 A+ l$ |6 w3 a                 UART_INT_TX_EMPTY |    \( {2 n  A% B2 D% w
                 UART_INT_RXDATA_CTI);
- b6 s2 j: z$ L3 `# g; b6 G9 q0 Q    UARTIntEnable(SOC_UART_0_REGS, intFlags);" l: A: k, o+ p6 H; [. w
}
6 v/ o8 K! V/ f6 `

( p" N, r# m) Q. I5 f9 |/ g( N3 z. l3 M
void UARTIsr(); ~: m8 Z3 O; x( A" }" ^8 ^: `
{3 s9 Y7 u" Z( ]6 c$ S
    static unsigned int length = sizeof(txArray);
' ~' E" {- `& q" e0 T$ |: q    static unsigned int count = 0;
$ ~! B+ ?- d1 X6 C1 ^    unsigned int int_id = 0;; m/ l' v3 Y& e; E% t% a2 X2 ~7 q

+ d  {3 k+ k9 u' k/ @. ?* _% A# u$ J, ^/ g( }1 j" Q
4 D; p3 n/ F, P
    // 确定中断源
# n8 S7 I! \- `2 ?3 K6 F8 \    int_id = UARTIntStatus(SOC_UART_0_REGS);
" `* m/ U: _" c: P- ]  L' D( N- A' V$ t# k, }7 {! y+ v" }2 y
    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
5 O* s/ N9 t1 K) T) ?2 }' d! Q) D& Z$ c+ P
! i& y2 F# L, S# k2 Y: T! c3 h
    // 清除 UART2 系统中断* e2 S$ L9 w: j. j& }
    IntEventClear(SYS_INT_UART0_INT);
# }% B2 ?: e+ t, I5 ^2 E' M
! o1 ?: M! J' v+ U1 i    // 发送中断
& {* u/ W6 T: s. \+ ^    if(UART_INTID_TX_EMPTY == int_id)
* f7 Z2 U( T- L2 O$ b& W    {2 Q* ~6 J* x  x5 t* }
        if(0 < length)
3 N1 d, A( ^; E: |$ `) U! l        {- i) {) B9 K, i7 [% c
            // 写一个字节到 THR, s2 E( d: C: {! H
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
1 w: l0 [% e$ u8 T            length--;) Z) I! q/ `6 j. |
            count++;
1 u# X  [7 r  {# m- m0 `        }
& L0 u2 X0 d; T# J: h1 z        if(0 == length)( X: n+ S9 }" `% ]# c9 s6 f
        {
& ?: E/ j% F* Q            // 禁用发送中断
7 t' E; B% e8 S$ y            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
4 d, N0 D# F- O( [        }- f8 `  i# J8 B7 e% D% u. p
     }5 y6 c- j3 O4 Q) W0 J% N. Y% u
( x8 O; E. {( l8 o
    // 接收中断3 Z/ n/ @( A7 A) ?; P
    if(UART_INTID_RX_DATA == int_id)8 k- T# u' J  p8 X5 F( \
    {
& Z0 ~% j0 z# `# p. ?        if(status_a0==0)) e. E. l3 Y' M
        {
+ e5 B% [3 O4 r3 X! S" }! f                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);8 \0 I" o" `0 @# W2 O/ m* H4 f
                if(a[0]=='#')
) Z% p2 ^" N) [- F0 U+ ?! A                {
8 Z+ E1 N8 a* I                        status_a0=0x01;
$ t: K& F7 C( y% _' X/ g: |                        status_a1=0x01;
( ?0 R7 h) l) N) h5 P                }$ V/ \; \5 H' R. v# p
        }2 {. ?- v6 Z: a5 U2 x
        if(status_a1==0x01)' f5 {  ^7 r( u) J& F. s# E7 s) Q  O
        {# p6 \4 b$ D' g) e% ^
                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);# ?: O$ y$ R9 N
                if(a[1]=='R')5 o- \# b7 a* O: F/ [: Z+ |  C( W
                {, ~/ X, ~. X0 @) q. l7 A
                        status_a1=0;
2 R9 r) J2 s0 u: w                        status_a2=0x01;" m' o5 u2 k6 k
                }
/ r5 U& X* B4 H/ z0 A, \" \        }
: G+ w8 C8 p7 Z4 f8 c0 ]6 s' d        if(status_a2==0x01)
' l9 M4 {4 w8 ~        {1 G7 U! i# x0 \; e2 U
                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
8 H1 D2 g  b; u3 ^$ C: p8 t/ h+ _' [                if(a[2]=='A')/ N8 `5 {3 b1 O/ P! x& ]
                {9 O3 M0 g8 O  b: j1 h
                        status_a2=0;
- |! x, s& B+ R1 @9 W4 c& u                        status_a3=0x01;- {/ k/ ^' G# j: b9 ~. L
                }( w0 L9 q, t: b9 E
        }
* N% p% V$ x1 [        if(status_a3==0x01)
9 {6 v6 D5 [5 p$ G        {5 y2 a* L5 m4 U. s3 |9 h- l
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
& `7 g3 O; Z7 j                if(a[3]=='N')
1 M' g, {+ }* m                {
# ~4 o! S$ N# G- L9 @* q# _# X                        status_a3=0;+ R5 a' J) U& @  K: x  j
                        status_a4=0x01;
8 c! e9 ]0 X5 b; l  C) k                }4 r* C+ R# h  Y/ \( R: v
        }3 y& A; _* S) ?$ b0 r
        if(status_a4==0x01)
+ B) z$ A" m; t( h, B$ f: N0 p        {
( W$ k' r+ O0 `( [  G" n& q: q                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);3 W$ F" e: P& y1 L8 T, N: ~0 D
                if(a[4]=='G')1 a+ F; u1 y7 T* @+ \  `
                {
! Y) r9 D& ]: f* P                        status_a4=0;
7 e$ b9 n% E8 p" b8 U& {. s5 U                        status_a5=0x01;, C8 L" I! M8 C$ N" E5 N- I3 B; n0 p
                }7 m* g1 G5 P! `, e9 E6 \; `
        }
# n* j& _; w9 O5 M& \. C6 R        if(status_a5==0x01)
) y0 C9 x$ D; g2 A! J9 m1 R        {) X: m2 a% O( Y* x& ~* }
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);$ t" _" Z- ~4 U
                if(a[5]=='E')5 k1 o9 k- Q! _9 T3 Q
                {$ m0 T! s$ A6 |$ x* K( k% L2 E
                        status_a5=0;& U8 E+ {) G' E! z
                        status_OK=0x01;
5 T# U  s8 }1 J5 f% Y8 R                }
; r5 x# @/ H; R. D' z4 I( T. Y        }" w0 R! b# {. c$ j. u3 t- P
            if(status_OK==0x01)
/ ]& h+ R: P5 y# d        {
$ `, h( D# Q& r1 `, D$ G                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);8 o* i* ?+ n/ Y- R* I8 U
                        lengthrx++;
- e+ ^' P+ O6 m  T; Y0 I4 @/ p                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)2 I& E& V  m. E3 O; [
                        {; g- K. N9 J& ^! W4 b; C
                                RecState=0x01;! i+ n" c- S+ V
                        }
8 g, C( i8 e' R" ^/ N         }
1 v4 w# N/ m. _* N9 ?
2 e9 J4 ]+ q+ x8 K" h& e     }) ?3 m8 J  K7 M# D

8 g7 Y( J: _* W1 E* B    // 接收错误% f5 D3 i3 P. {; q
    if(UART_INTID_RX_LINE_STAT == int_id)) `9 B! v. o; f+ T
    {  j; {. v- v% c
        while(UARTRxErrorGet(SOC_UART_0_REGS))) q$ {* B9 V. D9 J; d
        {
- ]/ [# {8 B5 c2 W            // 从 RBR 读一个字节
$ V* X. K% C* d; D" W5 v( t- n4 L3 i: `( y            UARTCharGetNonBlocking(SOC_UART_0_REGS);" V- q, S3 J5 k, {. B; C
        }
) _& J  {* I+ ?6 N3 V5 z3 j- ?* S    }
5 U- M0 t$ t" ?  n8 e
- a' X0 M0 g/ G8 [$ O4 ^    return;# f  `% x: b4 _
}" n* S* G: n; f
1 k" T% D  R& j; j4 Y# Q0 B
9 V- P) V( v+ ~+ Z
1 h2 N' x- y( C3 v+ O/ S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2165

积分

创龙

Rank: 8Rank: 8

积分
2165
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
  i) p7 |5 K6 r1 M$ }
7 G& E7 U; |- \1 A  ?UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。( J; g9 c. [- g/ r$ Y& l  p1 f$ q
' U1 ~; ~. C# `" v
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
7 n3 B4 B, k. h! W: o6 {6 Rhi,4 i2 u$ `- q7 _1 M: Z
2 y) k' I8 s. [
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
) S# w/ e7 M: F$ s
void main (void)
" Q. R& }( @* {$ d6 s! ~4 Q{  ]9 M. h* y% P5 w7 Y9 z7 T* q
        int i,j;: ]1 [  Z3 k9 w7 ~
    char *str_buf;
- s  f, a8 A. i9 K7 }( @  J! Y    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
+ B) v* z: P4 ~; `        double est_L_b_=0;
3 O8 A7 v5 |+ C7 a0 _        double est_lambda_b_=0;
3 }  q' v  y$ H+ D, E' _- K$ c        double eul_[3][1]={0};& _. w2 z, ~! l# @
        double est_v_eb_e_[3][1]={0};, i. C  Q3 M. B8 m
        double est_C_b_e_[3][3]={0};
5 S0 m! D# h3 g4 O0 v    char *qm;4 y7 O5 i$ a2 b6 q
    char rec[70];% L$ O  d# i& Z9 {& a+ P' {& g
        double L_b=0;
2 H  y' h, e+ [" r7 _" O        double lambda_b=0;7 O. [& J3 _) d% c# ^" A8 c
        double h_b=0;
& \( ]! w% U) h$ g        double rate;- m0 O- B* k+ T
/ U# E8 k; D- [
+ u3 G" Z5 @+ w
        // 外设使能配置
7 n$ a7 X. k& F9 X3 @- y: I        PSCInit();; d2 y+ I& u7 v  B  _9 R: G6 U4 ]
1 u4 i4 C+ F, x: n" s/ N7 @
        AppInit();, `3 }( U% V, t$ z" q9 g7 r, G$ p# u
1 `8 X, w3 ^. I0 ?
        // UART 初始化
; o% F* F3 N0 ~: J5 g$ K# ?) {$ H        UARTInit();
6 e8 d6 ]/ C; O$ `, {! N% Y9 w+ I; B$ R
        // UART 中断初始化
% ^8 U0 c/ b4 a2 E( u% b' B/ @9 Q        UARTInterruptInit();
2 {- M8 b% ^9 o! x+ k* }1 X
$ {, \' c- `  R, Y8 x- {    evtRcvd = 0;
4 y% D3 o; |6 S8 s9 k( K    RecState=0;' @5 a8 g% _& w8 I4 ?  m8 P: C
    /* Initialize */! X" w; r; a3 h; W6 V: u) O) S

& ?/ Z# V% A. Y# G% q    printf("DSP subsystem ready\n");
& f  N" i: H, G6 C6 r* b  p! r9 r7 U( k+ D
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
# t7 C& ?7 ~0 r7 P! p
: w3 |' E. D3 b1 g) {! n/ K. \1 ufor(;;)
, I" Q" Z/ ^" y% t{
  [4 p- l) }2 m! Y        if((RecState&0x01)!=0), T! m1 k1 _9 q
        {: K& j5 [% X  R5 L: _) b
                printf("liuzhenxing\n");6 I  J" r6 F: a1 F
        }: z  I0 m6 }* O! W
        else
5 p2 v" u! M1 X        {
4 `9 ^3 l( v! f* N       wait_event();4 e/ \: l3 T) C4 u
- g  h3 [" T2 s6 o
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
) `; f0 W8 P( g. X9 r, q. r
9 x: P& }8 U: N9 L5 Z           for(i=0;i<60;i++): v- B" s- a0 p5 y0 \& ^
           {
4 S& @. |* e- z                    rec=*qm;
6 r( S9 T# d' _! C0 y* O                    qm++;# i" L9 C9 |3 j/ b2 m
           }% T5 I; g# F! x! L, _' c3 R
' u/ B) A9 A1 m7 p- J: v" \
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);; J  ~, W4 I8 }% p* Y; U

/ i" Y! M" z+ x2 F2 T) M) m1 N           L_b=L_b_receive_double;1 q9 r+ Z' J* p5 ?7 f
           lambda_b=lambda_b_receive_double;& m& }9 W" J2 ?1 X- ?* b+ b+ y
           h_b=h_b_receive_double;( I. N- |3 Q/ Z) w( T
           for(i=0;i<3;i++)- ^' A7 }  N  U2 {# p
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];9 Z+ v% o$ a8 x# y; b
           for(i=0;i<3;i++)
# Q4 F& E) q4 Q  P* V* C1 P/ z! _                    for(j=0;j<3;j++)% |- O' c4 J1 u5 c* U5 Y
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];6 O5 K# m/ ~6 N# G
$ u! P8 I" y4 ]$ U0 m) j
                printf("L=%lf\n",L_b);1 s3 L: ]6 a# |$ X
                printf("lambda=%lf\n",lambda_b);
0 X8 ^0 x. |; U3 z# R                printf("h=%lf\n",h_b);7 d% ^4 r) j% i
( S# u0 m# w0 q0 l& C
                for (i=0;i<3;i++)
8 ?+ a! ]  G# R  p1 X                        printf("%lf\n",est_v_eb_e_[0]);
4 f' m, u, m0 w5 {                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]);
; ~1 b& |, [7 e0 \" G$ h& ~" l0 m' }                printf("rate=%lf\n",rate);6 k2 t  o/ d+ m& |& t( y" k! b
' G8 G9 k' `5 {3 ^3 F$ Q5 j# E
                CTM_to_Euler(est_C_b_e_,eul_);
  ~% v7 P7 P! J5 x1 W                for (i=0;i<3;i++)
. b- _) H3 _% d9 }                        printf("%lf\n",eul_[0]);
6 y' u) p+ H5 y. R. k& Z4 l8 K" `# `                printf("end************************\n\n\n");
5 h2 r" Z, a; P" F! U: K* z3 ^" }' L
                /**********************************************************************/
5 r# t- @3 D! K# e) f8 W6 @
. G0 c" t0 V* }/ u+ z            char flag[4];$ ~# L6 B1 u4 t2 L- W  h' I

# Z) |* n2 L! n' K6 Z            flag[3]=0x00;
3 o7 C  }7 S! i0 z4 w' T            flag[2]=0x00;
$ X4 E; I( U8 j" O2 z            flag[1]=0x00;
% i8 W4 p0 x+ Q# Q) ?' t: d/ |            flag[0]=0x01;
* o& v% `4 r/ a3 e4 d. |5 Z3 }
- W+ i- k& J0 J4 s( u) T    /* Allocate I/O buffer and init with string *// \( F: ~4 ^) t% R
    str_buf = (char *) malloc(80);
% r# t- F' ?# {0 {    str_buf =flag;
9 \5 `' H/ \6 g' {3 s* w
' B" ^/ |0 T, E    /* Send buffer to remote CPU */9 F' H. g: N  z& h  }8 A7 F
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));) F. A7 X% L$ w6 V. t
  z1 M2 i7 I/ c9 u7 u4 y- ~6 I
    printf((char *) myPayload);
$ w' B6 G7 F7 E0 X0 ]        }5 `) h5 F" i& p4 [7 K2 m) V
}+ F) J5 |5 [/ J) t$ D( B

9 V: e$ f9 B* v    WAIT_HERE;/ P3 k7 ?+ f! d/ _: {3 j
}
( ^& W( A9 N5 A( c1 V+ q
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:1 G- d$ I; u8 m$ a+ V
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
+ [, `* K. [4 `, `* I0 C( u然后我把双核通信的初始化屏蔽掉,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
# v, F# S. B4 Z- d% csyslink 的初始化是否成功,notify 通信是否正常了?
. f* b4 Q, M% d& A" f& h3 ]
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
/ F& L2 Y: U5 e  h# s" |- Osyslink 的初始化是否成功,notify 通信是否正常了?
8 r/ g5 O- r) o* \+ Q
我用的是裸机开发的双核通信,用的是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
9 s* i6 a( ^" y1 U我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

  v' f/ q3 u3 |+ _4 _建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-31 13:54 , Processed in 0.055606 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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