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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。3 k0 C0 C: {3 J; ]& q  K5 d
我是在DSP初始化这不太明白。( i: g% M" x  H9 ]. y2 E
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。/ ?2 W$ _8 `. u: Q: o, r
7 @- c5 w% m, b, E1 E7 F- S- F
) G6 k/ x4 d3 L8 q  g7 C
首先        PSCInit();//UART0使能
7 X4 u6 g) A: M9 {void PSCInit(void)
7 T# {! D( R+ G% w; D{
# l. L0 V" S+ t. O        // 对相应外设模块的使能也可以在 BootLoader 中完成3 D3 S0 i% J! u% G, n+ i" B
    // 使能 UART0 模块
. a5 n/ v' @& t' v# S    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
" B0 W) c0 q; x' _/ H7 o/ Q! V}
4 G4 C$ ^( r3 e+ |; y, m

6 N+ Y+ ~0 ?( H: q( t! K. V
# X7 t: S( z& [+ r# r然后是 双核通信的初始化           AppInit();
* M# n' k. u2 ~  wvoid AppInit(void)
# W4 i" o7 |2 I/ `' U{
6 v6 h# d: F# M, u    /* Structure to initialize IPC (see Ipc.h for definitions) */
: F' Q1 f: o  T( ^7 }3 t    struct IPC_cfg ipcCfg = {
# E9 L: O7 _$ p2 B# J( I: b' f            IPC_DSP0,             /* local processor Id */
1 I: ]  `: s! e$ U6 C# M. a4 Y            IPC_ARM_HOST,         /* remote processor Id */
1 f- ?6 l8 u+ |            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
; r% Y" O; L, R% }3 f            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */. M) Y$ D5 e3 v: c) E0 }
            NUM_MAX_EVENT,        /* maximum number of events to be created *// P0 O& c9 L: D  \1 b! @; j% J; O
            &ipcPvMemDsp,         /* local side private IPC memory */9 ~6 O. y5 C  {! ^) f
            &ipcPvMemArm          /* remote side private IPC memory */" w6 a9 j& @$ @: ]$ C) E1 [0 [
    };  [5 Y. F6 L6 u- G& d8 y2 [/ M
    IntDSPINTCInit();
9 y1 J9 n5 G, k6 s; C  M    IPC_init(&ipcCfg);
" d. s$ y; H) m/ z$ C    IPC_intRegister(C674X_MASK_INT5);
4 Y) s& A' `( |7 k- X8 [    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));- Y# N& m( ~& L& ~& b) B3 T
- t. M$ F/ S! ^9 W9 ?  V
    /*  Enabling interrupts for DSP C674x CPU */) Z3 x, x. C) c1 \. @  s2 e
    IntGlobalEnable();        /* Enable C674x global interrupt */
1 |  T, c  v3 \4 Z8 P& p    iAssert (Notify_start()); /* This will enable IPC interrupt */6 d9 B3 G" F7 ]4 V: Q$ N
}2 F6 K% R; F& j! T5 x

4 R+ H# Y6 s& l; t  D- r% |然后是  
; Z4 Z* F9 n7 v            // UART 初始化
) c6 W) L$ K6 c            UARTInit();
9 E! ]6 T$ j+ M# x
& `% L, T! E/ q* O/ Y            // UART 中断初始化1 A* A. ]0 A+ S1 j$ [  G4 `
            UARTInterruptInit();
% _) y7 W' A3 P# b! v0 k" }

  o8 O( w6 `# V+ T% S9 [8 u2 Y5 O, {( K, E
void UARTInit(void)/ S; m* A! V* H1 p
{
# G# H2 S/ r% n( Y; Y        // 配置 UART0 参数
& W# u* j5 [6 [        // 波特率 115200 数据位 8 停止位 1 无校验位
: `9 i3 v0 V1 N% e  B4 t7 }$ x    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,( b7 m+ a/ [" M" y7 Q7 a7 d
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);, Y' y% d% ?+ {
        // 使能 UART0# ^4 l8 G# m" y+ R- h( x
        UARTEnable(SOC_UART_0_REGS);
7 h" N' O( @0 X! ^& b# Q
8 a2 i& ~8 t3 F0 S    // 使能接收 / 发送 FIFO
' ]5 z/ M6 {; M//    UARTFIFOEnable(SOC_UART_0_REGS);
) A1 p; X8 E# S+ o
# `, `3 U" D& r, z        UARTFIFODisable(SOC_UART_0_REGS);
* P1 Z+ u5 I1 J7 {& Y9 _' v
% L" A/ X4 o0 L    // 设置 FIFO 级别     接收FIFO的级别5 y8 G" w& v- [/ k* o5 o" [
//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
' U' m5 _. N! h, A" n3 ~& Z}) O- C; l) W8 ?8 V' q1 q
0 _  N( V4 ?. k. L% S& _& p

+ [3 b& o) h' I4 [/ g: M5 _void UARTInterruptInit(void)
5 ~' }% Z' m8 g: p5 R# K8 O4 b1 X{
- Z6 H& ?/ I) |        IntRegister(C674X_MASK_INT4, UARTIsr);1 }; F( N$ D8 \6 h
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);  N; u& [8 c/ q8 E4 o2 u; H' ~  R
        IntEnable(C674X_MASK_INT4);
/ E- p& O6 u! y$ o3 o  v1 ]0 e) O9 l3 `  q
        // 使能中断+ ?; O% A6 w  A( D3 l
        unsigned int intFlags = 0;
; X2 d# r+ s3 Z9 v4 |9 u    intFlags |= (UART_INT_LINE_STAT  |  \
& c- ]8 Z$ [" [9 [. z% n                 UART_INT_TX_EMPTY |    \: E  Q4 b& k* t, U" a* o" A1 O. X( Y
                 UART_INT_RXDATA_CTI);) n) ^* @# x5 f! \; u3 |- f% ?
    UARTIntEnable(SOC_UART_0_REGS, intFlags);
$ {. z6 ~  j; b2 J}$ k( \1 i/ j6 L+ s4 m
0 f8 R8 R$ H& }! W6 E

  x7 q: W1 s2 Vvoid UARTIsr()5 T& p9 V2 k! z4 ~7 W: }% W9 E
{
; f7 y& D  ]# \    static unsigned int length = sizeof(txArray);
8 H1 O% k( F# K3 }( ]    static unsigned int count = 0;* c' Y9 `) o/ P( e$ S$ Q
    unsigned int int_id = 0;
# v% B$ B0 u6 p  [! }$ Y0 p
5 \" E4 }3 ~$ q& C# [8 w1 R; j$ }. K: h3 Z3 q: l

/ d" o5 x1 `; s    // 确定中断源
! X" e2 P  X/ l* b" f  `    int_id = UARTIntStatus(SOC_UART_0_REGS);1 I2 }* c1 G8 q+ m8 F$ @
% y. ]2 w! Q% s0 `# r' o" V
    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
6 w% M9 b; }5 f% n+ s/ f9 e4 w! `& Z) w; o

& |8 d4 L  V" m( Q2 r% |- K7 j    // 清除 UART2 系统中断0 d5 T# T3 ]4 \) k& [3 G! b
    IntEventClear(SYS_INT_UART0_INT);7 H# x# i( M2 Y; p: |- S$ z
% P/ ~! f# y1 Q6 S$ O, Q) W: c+ m/ j+ {
    // 发送中断' b; \' a  b3 P3 I) g' j
    if(UART_INTID_TX_EMPTY == int_id)
* r. o* s! P% i0 R2 _4 }    {
- W$ M2 K6 P" a/ ~9 ~  b/ _        if(0 < length)
& @0 l& Q. s- U* n1 p; D6 }        {' R, [* T/ _3 c4 m5 S6 ]
            // 写一个字节到 THR8 n9 X; h" u! `8 V
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
( X( X' F' x7 w$ \+ V% A            length--;
( d! F" }/ }6 f9 e9 v! g0 `' u            count++;$ [( ]9 I* p" W1 }
        }  C; a4 w9 k( l% L5 k
        if(0 == length)
/ q* K2 M  p9 x4 D0 f" @        {
9 T3 f1 S2 s6 O5 b% _0 Q) M/ B            // 禁用发送中断
. W& h3 p9 S% ?2 }7 V, ^8 b            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);$ ?5 A8 i; F0 i2 L# H  U
        }5 s! A+ @8 T% w" Z) R
     }
8 ^2 s) d! J8 t" o+ q, p2 q5 Y8 K) ^
+ J" i7 Z: \! u5 _+ \6 W    // 接收中断9 t8 [7 A2 M; N  R* g  h
    if(UART_INTID_RX_DATA == int_id)* b3 {; u9 j4 x
    {/ |1 i# R9 C/ R" c" s* B2 Z% R# R
        if(status_a0==0)" A% M/ Y6 X+ o$ D" n
        {4 A2 A) u6 V6 W+ g& @( \1 C/ H6 G
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
# ?) f; L5 s: H) G0 D% {                if(a[0]=='#')
3 x# S* r, w3 S. r8 @                {) [8 ]& |8 _& i. I& K8 z# |
                        status_a0=0x01;; C5 ?& l7 L/ i+ I& R1 u
                        status_a1=0x01;' N7 {/ R$ z: E, c6 S3 u
                }! b+ k- J5 C9 w' K/ J& }# @) d* R0 R
        }
0 ^+ b( T: H( B4 m        if(status_a1==0x01)
+ o& }# o; |2 {& F! N        {
% u* _' p$ `% ^- v  L9 r, c                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);6 f" W) V7 W1 p+ @7 j) v
                if(a[1]=='R')% V) C9 r. x- G0 t- N% P* Y, m
                {; G& X; v& n! J: ^" o
                        status_a1=0;
& T+ h$ P0 o* Q  @, @6 d                        status_a2=0x01;4 J( k8 E, D2 V5 c7 T. ?7 x! i
                }
4 C7 E+ {3 Z# Y5 t        }
+ D/ H- \1 O  c: f3 ]* g0 Y' d7 E) K% _        if(status_a2==0x01)
; h* o8 C% F) g2 K: \! l! U        {/ i4 _; ]/ o- B3 z; s2 R
                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
. a% `6 D6 N) P- A                if(a[2]=='A')( a1 T+ O/ f8 ?
                {, P6 _& \0 _* C$ O
                        status_a2=0;- p7 g- z6 c9 J9 w2 g' i3 I
                        status_a3=0x01;
: C8 ?% t% p" G- N                }! e, f: f6 B: g2 I8 r2 G; }# [
        }
, p: P% V$ E: T) r0 [        if(status_a3==0x01)
* o3 }1 D7 t) R        {( w1 H: f: y+ z
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);0 V' a  f, v( {
                if(a[3]=='N')
0 N( X0 L4 k) Z+ s  ]: R2 o                {9 l; z5 h9 @9 `& B9 r& }. Z3 h
                        status_a3=0;
% ]- o. V5 z0 w                        status_a4=0x01;+ B3 |7 Y* F: x) ^( B
                }
0 K$ X% [2 T  V$ _' B! r2 I% r        }" q% L4 G* u7 H3 k" y
        if(status_a4==0x01)
$ L8 ]& J$ i. x: N        {$ N' k# j& k* i' j$ O. K
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
. c' t8 m; \2 ^5 Q- x" R                if(a[4]=='G')7 J, J' r3 q% d* R+ K0 X
                {
6 ?; c. ~7 ]; I  }' v                        status_a4=0;
9 L9 Z  ?4 k1 q0 V                        status_a5=0x01;+ [$ e) x' W+ v7 A6 B
                }, C  d# |% I/ p" y
        }
& y* y  Y8 l2 z" C3 F" P6 g  v* ~        if(status_a5==0x01)7 Z, u0 W7 ~( ^1 Z
        {+ a+ d. B: ]4 z2 f) N
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);6 C& A5 R1 J7 }% t" l
                if(a[5]=='E')
, n* Z6 M# R, n1 N2 Q7 O+ |/ H                {
: W5 r* z9 g0 X9 T: Q% o; k/ b  R                        status_a5=0;
# F/ {$ L3 R+ ]) V% L1 \                        status_OK=0x01;
  u! k" W1 M# D" }                }
6 j" W+ d7 n7 `- ^4 x: U. `        }
$ F& c2 Q* D5 t3 U+ S" m% t# t            if(status_OK==0x01); N7 h# D! x1 k3 S
        {$ m& L+ h4 e5 w
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
7 O; ?$ C7 r$ W. J$ z- X8 }) w# r                        lengthrx++;$ R; I2 l0 ~; |% g
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
0 l5 P/ k; }, i6 u8 }  |                        {
" [1 @" ^6 l- m5 ]1 o1 Z                                RecState=0x01;
. N1 G) h7 K% [" p" ?                        }
: }, T5 a( y, n+ r0 r) j         }
; O# H/ A6 X2 _$ ?9 a& P, {+ E! X+ E; s
& R- i6 A- z9 H     }
9 [& S- |: r# J6 D. m: c9 ^3 C, N- c5 f: |! ]: H1 N% s
    // 接收错误0 Z8 q. E" M: v5 B, m
    if(UART_INTID_RX_LINE_STAT == int_id)4 b9 V7 G( {2 Q' z0 r! C; H) ]: ?, U
    {9 W! f3 a! V: p! _$ N/ a: |8 m
        while(UARTRxErrorGet(SOC_UART_0_REGS))
$ u9 o" i, a- H& ~9 |$ y. l        {3 e  {; n! ^) G0 V5 n
            // 从 RBR 读一个字节
9 I( K  n2 X$ g8 t            UARTCharGetNonBlocking(SOC_UART_0_REGS);4 V% Y7 M( L1 y9 b# c# ]- r* L' G& {- Q
        }, ?4 V' I6 m: w- j
    }
, }. z4 H7 Y  @/ W! U7 W, [4 d/ K5 \$ R% ?# b0 z! [" t
    return;# C& O1 v) G0 _! P# m$ |
}
+ L5 s6 e+ [4 F# y) Y+ P
% ^+ j- _  c% x: x9 @5 J
2 S7 J1 u7 E# p* S6 L

* O2 X8 N; J: f/ \* N, M- K2 a& s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2091

积分

创龙

Rank: 8Rank: 8

积分
2091
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,) @& h' @9 L9 _+ W5 a& `) t
2 O0 w. ]7 V4 g& V
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
7 m! p$ p/ W/ }* e
+ ~% Q: Y9 v( z& U4 u  d要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
  ?) l  r" g( i" L/ I+ x0 Shi,% A: j8 {5 Y( e# g

' r. L- M! R- W  [$ R* D  ?UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

- Z+ E/ c' C" [" S% Nvoid main (void)
5 N2 {% [0 r3 g7 O5 P0 P; p3 l{8 f# O  E* O) }$ O+ Y+ X1 H# V& g
        int i,j;
, H* {# E7 m* F5 j    char *str_buf;
7 ~4 X6 O, i. M% h% N+ z0 _5 |1 A6 M    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];8 V8 H  y  o# Z( V$ M' S7 H; t3 w
        double est_L_b_=0;
6 M: \- k" S) p+ @2 D. _; R        double est_lambda_b_=0;$ j! e4 H7 `" _: |9 ^1 o
        double eul_[3][1]={0};( O( j6 k5 {+ P; g5 V
        double est_v_eb_e_[3][1]={0};
4 N$ I7 w: ~. g' _; P( f# S        double est_C_b_e_[3][3]={0};6 v: P2 H0 a& h0 B8 A$ @6 i; {  s
    char *qm;
: g: v6 ^! O' Z6 z8 Y8 Q    char rec[70];
( S  L- W  t& F        double L_b=0;
  X) p  c1 @# R( o        double lambda_b=0;3 |7 M, l. N) n! A. s2 }6 H
        double h_b=0;% s" S# u2 G+ L/ t' K
        double rate;
3 V3 Y/ g* b/ o0 G0 s8 o
, n7 Y8 Q- E( V+ A8 N* [! u9 j7 o3 G$ v2 W& Q
        // 外设使能配置
3 t/ y2 M$ l( H  V& H        PSCInit();2 ^& ?! ^0 f$ T7 V, O
6 w. s. k; G2 H1 Q9 D
        AppInit();
5 v, v2 r/ }& B' r* i: s
. D6 e1 j8 O; v" A  y/ ?$ a7 a        // UART 初始化( i' o! Q& A  L+ V1 }9 ?* w
        UARTInit();9 R1 @2 x1 O+ d4 ?5 d6 o
" }6 c9 H! T. x  T6 g/ H" g
        // UART 中断初始化
0 G" `7 D0 h: F3 v" M6 F8 k        UARTInterruptInit();
: N. z# H/ P/ r7 c7 i, J; |: w8 L* v5 v8 n; ?
    evtRcvd = 0;4 T. B* ?/ @  b9 G$ x( m
    RecState=0;
- Q: i$ D! a4 f0 f    /* Initialize */
& ^8 B( X( @- G" D& b$ ]. P
; h6 t, D( s5 Q- T" p3 F! a  @( y    printf("DSP subsystem ready\n");
( T( Q+ W0 f$ o: J+ M% H; {! {; Y1 v1 N- m/ C- {
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));* ~: z# z5 m0 g. G9 x/ \- e
& O" R: P( D; V. L- s% g
for(;;)
. s6 w+ M0 I9 w3 h% v{
( x: h" i2 k0 H* v7 Y+ o& s& \        if((RecState&0x01)!=0)- R9 ~: u5 T& f( x
        {
3 F/ I# d$ q; b7 U7 g                printf("liuzhenxing\n");' [3 E% G' w3 Q$ X) o
        }
9 u/ o. o* a+ u4 l; k* P$ D        else, t+ @8 V3 [& c4 z8 i* f: |4 l
        {% O4 i3 f8 x9 a, n4 y" `
       wait_event();+ \8 E9 M9 p1 g2 U: ]' O/ I* {
9 B& X5 _1 }  P- _: Y
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针. m# ?' b% Z' ]8 {' y+ ]
) v8 Q8 e2 `6 p/ Y) d
           for(i=0;i<60;i++)
5 i0 g! b6 G8 I3 j1 {( {- Z2 P  {" k           {8 Q5 Y. m1 k* }+ _. L
                    rec=*qm;
! t+ n7 q2 ^( o5 G                    qm++;
# M5 `, e& |9 A8 q+ Z           }
& x! c3 N  E) N+ a2 U0 k( c& P  Z* M, y; T) l
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
& S* z5 p+ `8 a4 |( x# y, Q- P% Y$ C) o$ H' U# C) {7 c% ~
           L_b=L_b_receive_double;
  \/ E( M2 O& \           lambda_b=lambda_b_receive_double;3 k8 i1 J' p1 E# C
           h_b=h_b_receive_double;8 F4 l) x  K4 R2 W' `9 n' y2 u
           for(i=0;i<3;i++)) }3 W' y  Q1 w- g* l
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];7 a4 t8 u- P9 f! `" @4 |
           for(i=0;i<3;i++)
! [( E2 ]0 S% f& t5 [                    for(j=0;j<3;j++)
! Z: J0 p% t) e  E                 est_C_b_e_[j]=est_C_b_e_receive_double[j];( M& J' y/ O4 ~- S' r8 S" W
$ H6 x& g- \! p4 X) ]
                printf("L=%lf\n",L_b);- M) N3 W0 N: o* z- }
                printf("lambda=%lf\n",lambda_b);) j5 p0 h. r) R' |
                printf("h=%lf\n",h_b);
4 t' H$ s& o# P) L1 m% b9 M) P) N8 V; G2 [3 l# q0 I
                for (i=0;i<3;i++)9 R. i6 m5 \" e: x
                        printf("%lf\n",est_v_eb_e_[0]);0 x) O, r0 c6 c3 V- G  S
                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]);
. C3 k3 A3 ^# x, p+ m                printf("rate=%lf\n",rate);7 Q* q" A. f/ C4 ]1 q
. G7 u9 i) N7 s' H" M
                CTM_to_Euler(est_C_b_e_,eul_);
% z- E+ Q# D0 _! ]* V6 @! M& y                for (i=0;i<3;i++)8 k3 {: D% ^7 t6 a
                        printf("%lf\n",eul_[0]);
) C9 K3 _9 L* U1 e1 b5 y                printf("end************************\n\n\n");- i/ X( A- Y. p. @1 o
; H; `5 Z& X& W: \. i' ]6 W9 E
                /**********************************************************************/: y2 U5 F% Q, H- D* a% s0 r  H% L. ]
7 J  j7 Q' `: B+ M6 W/ d
            char flag[4];
0 _9 O' X# [% M# B0 M  T% i
2 ?, G. E4 f' A8 Y/ A9 H            flag[3]=0x00;
  `# `' Q% N; d' Q7 e+ X; ~' F            flag[2]=0x00;
+ @3 p; b$ Y: ?            flag[1]=0x00;5 \. _/ q7 f! }) C7 A1 n
            flag[0]=0x01;0 d: l+ P( M" Q9 H" `8 q6 \
4 N9 F6 f( E) r) V7 P
    /* Allocate I/O buffer and init with string */  t+ j2 H& m+ V' I% i7 _
    str_buf = (char *) malloc(80);
' [+ \# k  r* S% a7 G    str_buf =flag;: {! b; ]5 }1 v' t0 ~  j$ O* C

: P( l* C/ [! D$ f! m6 z3 b    /* Send buffer to remote CPU */! i5 l5 Y- e' p: z$ F4 f! Q- ]
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));1 V- O1 w, }9 k  i
) s  W% s6 Q  u+ p
    printf((char *) myPayload);% V2 Y# O+ s- a% e0 f! d( y
        }3 `' r9 `. n: d7 p7 B, `- i% O4 V
}$ g* g" n) v) t7 _0 R+ ]' Q

9 |7 Z/ C5 r7 _) S5 i. {    WAIT_HERE;2 {: Y4 r  P# b: m' Y+ k5 A/ w
}
1 h, T! ~: Q3 t" P7 U1 G; w
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:
3 _  V% v4 H, R4 [8 A$ X- i我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。0 T8 U& \" F9 c) J
然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2091

积分

创龙

Rank: 8Rank: 8

积分
2091
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/ Q1 x9 \. [, t. M1 m: {
syslink 的初始化是否成功,notify 通信是否正常了?

9 k9 C2 [. v$ J- s双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:544 t, [" d- j+ C$ Z7 P
syslink 的初始化是否成功,notify 通信是否正常了?
8 @1 j2 A7 c* u$ Q# S+ g
我用的是裸机开发的双核通信,用的是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* n' E6 ?. Y; Z4 C/ w
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

' R1 l6 S6 R) @建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-18 01:30 , Processed in 0.048051 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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