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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。; b# r5 u  r1 {6 o1 c7 p
我是在DSP初始化这不太明白。
' V# O) ?' u2 h3 M7 x初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。2 Y# m; ?& B  f9 b" a" }

" R- q0 r1 l/ V% R* [4 L2 N7 G3 j/ e: O+ w1 [, C
首先        PSCInit();//UART0使能. ]3 I4 c7 z* x
void PSCInit(void)
' N* o( d) x+ [9 O2 D' `# R. f& V{8 c( o5 s) E/ j. K( I. Z
        // 对相应外设模块的使能也可以在 BootLoader 中完成
' w& N1 Z5 `* T& L1 Z    // 使能 UART0 模块; `' R  R+ M9 n9 X: b
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);- N  ]& T- Z8 v0 @/ A4 j
}  o6 P' o! ^! q$ r5 W! Z( Y
( f9 C2 l% u  f5 o' s, l( ^3 u
  C- T& ^: V0 T. u
然后是 双核通信的初始化           AppInit();
8 T/ \; s+ m1 G/ J- }9 pvoid AppInit(void)
2 j# Z7 {/ H3 W# C/ ^{0 t( {1 g1 V1 k* h, }
    /* Structure to initialize IPC (see Ipc.h for definitions) */
! L: _4 ?+ ~8 Z. i& [! g    struct IPC_cfg ipcCfg = {, w( n$ M/ \/ Z0 J1 d9 `2 {
            IPC_DSP0,             /* local processor Id */
6 |/ Y2 j2 M6 b* ~4 c            IPC_ARM_HOST,         /* remote processor Id */1 \8 Y3 F* q' d" `
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */% e" a' ]8 N- n" o7 l! e- S
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */# i& H: [$ F3 F4 e
            NUM_MAX_EVENT,        /* maximum number of events to be created */
4 t; F9 u9 E/ k9 u. i            &ipcPvMemDsp,         /* local side private IPC memory */! s% f: ]& k" C1 F8 n7 \
            &ipcPvMemArm          /* remote side private IPC memory */
; z2 I* C4 b4 W6 W$ `    };
( ?# K8 l) w" C    IntDSPINTCInit();% Y9 e3 ^4 B8 V/ @& B5 B$ o$ X
    IPC_init(&ipcCfg);
! d9 d0 B8 A5 {( M4 _    IPC_intRegister(C674X_MASK_INT5);7 l, r, E% O( t; I" v
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));( U  D6 G- R5 }# ^

0 D" u8 J" g  L+ c    /*  Enabling interrupts for DSP C674x CPU */% Y3 z0 _" T6 I& `0 x
    IntGlobalEnable();        /* Enable C674x global interrupt */3 f8 h: d0 n2 }5 I3 |0 J
    iAssert (Notify_start()); /* This will enable IPC interrupt */
" V: X6 e6 m% O: m6 A}7 k5 G9 h( l7 R, a: |

* \. z8 h' |! s( m然后是  
& t, c5 p4 W3 d0 I& w. a            // UART 初始化- a4 _7 e" X0 ]9 n9 I8 o- Y# t  t& u$ w
            UARTInit();7 V5 C) W- ?+ ?$ J, D9 A

- y0 S: V1 u, `* I7 ]5 T            // UART 中断初始化
/ p6 b) Z! b% g, x9 b            UARTInterruptInit();* q  Q) ~+ w* n0 X! h
0 X  ^6 g# A% e' A6 L9 T
1 e9 }/ R: r  G6 q) \
void UARTInit(void), M9 w8 W0 E" }
{: z9 c( X$ l4 V0 d
        // 配置 UART0 参数
3 Q6 [3 N% ^+ f5 B% U$ t7 b$ \        // 波特率 115200 数据位 8 停止位 1 无校验位* n* A9 D" H/ H2 A" I
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,
, _+ W( T; L9 V4 W8 U                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);) n5 _6 Q, D0 \! a5 l
        // 使能 UART0/ `$ A, O4 `* w9 H! J8 T6 c9 z
        UARTEnable(SOC_UART_0_REGS);- `. u- ^; [8 Y( U
; G2 U" a  P+ `& I6 Y
    // 使能接收 / 发送 FIFO
( b% s# \& X' ~2 U5 h//    UARTFIFOEnable(SOC_UART_0_REGS);$ w- [" O! c" M: b. _; {5 O
2 m& E; k+ ^, K& b) D* h" E6 Q
        UARTFIFODisable(SOC_UART_0_REGS);% `- U2 f1 j) q, Y  R$ s. _$ n
1 h, t" Q( h; A, ^) [5 U
    // 设置 FIFO 级别     接收FIFO的级别3 Q. h" J) F/ d! d3 ^
//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);4 |: E; L0 `# v+ h
}% @3 d7 }# l0 {% }" Y
" A# u7 }4 C: c( {4 ^8 w

; L) G, J8 J* D1 n/ ^2 Z( b4 Pvoid UARTInterruptInit(void)& b5 O& N* F% G5 V3 \: V, _
{
1 T: s- m, z7 ~* R3 Y* v        IntRegister(C674X_MASK_INT4, UARTIsr);  l5 v; o$ S! C; s! E- {( {* D
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);) q+ o; E+ k( L
        IntEnable(C674X_MASK_INT4);
' Q+ u8 |" u' h( c8 A! z4 t7 B7 E; h
        // 使能中断4 i; O6 x. g* v: X9 `
        unsigned int intFlags = 0;
2 B! V* ^% k% A# B! `6 _    intFlags |= (UART_INT_LINE_STAT  |  \
' k$ W/ {# n- z& `- @( X. B8 B2 y                 UART_INT_TX_EMPTY |    \
. N) |/ Y& X: b! \$ l2 x/ W                 UART_INT_RXDATA_CTI);
3 R$ o1 s: c% {- m0 O9 Z: d: m    UARTIntEnable(SOC_UART_0_REGS, intFlags);
- j$ a: E3 j+ b6 Q$ F& R}
( q1 }- Y" l# ?3 C4 O: X4 z

$ r( H! R9 y. k6 w% y3 m; y8 Z4 z* p1 t  b' U
void UARTIsr()3 J" A; D* k9 G; L3 g
{
/ R3 N% T* h5 G. M, J; c  E    static unsigned int length = sizeof(txArray);
! G5 c& }7 L% v0 `, j    static unsigned int count = 0;
8 p6 S/ D$ z, J5 H" k    unsigned int int_id = 0;, Y; Q9 a; N- J& v4 b
2 k5 P0 n. u' q% O, V; m; ~
$ _4 Y: Y! T& ~3 Y. M: }8 d' o

1 j7 G/ @/ G2 ~1 U' S    // 确定中断源
7 m9 n5 [0 a/ ]* f5 D. B    int_id = UARTIntStatus(SOC_UART_0_REGS);. Z0 t6 R+ ?  o* V# ~6 r! I
6 b" D/ b7 @4 V/ Y; m
    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
5 b6 \$ v. Y" `/ S0 l
: E( [5 R/ d8 i
9 L- x; |2 V2 E/ t6 z% ~5 `; g4 y: A( a2 \8 _    // 清除 UART2 系统中断' r6 Q7 O) f4 G( }
    IntEventClear(SYS_INT_UART0_INT);5 \& @8 \5 L* u% S
! P( p. w2 N2 e" `9 \* U# n
    // 发送中断+ Z! m, L# B/ f3 `# _. r" R
    if(UART_INTID_TX_EMPTY == int_id)
* @$ a; R# G/ q& T1 V0 I5 s, c9 d    {# @: e3 u3 a7 O
        if(0 < length)3 |' x* l! C; O$ ?/ [5 ]
        {
" ^, G8 k+ |9 m  ~$ R( c) T            // 写一个字节到 THR
* e8 u# M' z8 v) v& U            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);6 E& X9 C) n* H4 |+ S
            length--;
- Z8 o& t0 b+ G- b( F& t            count++;8 \* I, |( P# x
        }) V" p) C9 `: f6 |
        if(0 == length)
1 y; R& q7 l7 x        {
: i# d8 d- j4 u% D: p: q( L            // 禁用发送中断
0 j4 K( U% W1 ~2 g7 F4 ^            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
, Q& _3 _; c; }  K  U0 v, V        }
& ~: c4 U: j) o( i4 y3 B     }' \2 n; p: E: b, K! J$ _
; L, s1 S1 u9 j2 Q
    // 接收中断
% R; E6 C1 Z. Q" k' G2 _7 z    if(UART_INTID_RX_DATA == int_id)
! y2 a0 e# B. m    {; G3 _8 _" s) l& H& n9 d
        if(status_a0==0)& E0 t  h; m" p! m: L) g5 i
        {
2 A+ A% l" E3 ^& [! a                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
1 Q. a# [1 g) h& T0 I  ?% Y. k                if(a[0]=='#'); k- p+ B( `- w, G) g. M3 G
                {
5 m9 _: l1 X, p2 f                        status_a0=0x01;
# f# B& x3 `/ r! h                        status_a1=0x01;, N8 o1 @2 _. k  K, |5 f& |
                }( M" S- |0 F* G% K. N; x
        }
/ B& T1 {, ^7 v2 U+ m' v        if(status_a1==0x01)' i- v2 N  H, N6 P
        {
% b- Q: Y$ j) N5 |                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);$ y0 g5 S1 Y2 S1 F
                if(a[1]=='R')9 o# y% r" ?3 s" A5 m+ A( w
                {
; W9 y% Z+ N( S4 X( f                        status_a1=0;
+ ^5 f' s! q- f% m6 J& D                        status_a2=0x01;
% X) R2 G+ ]# M. S                }, g; b% `7 i$ g% P$ W
        }
/ j  Z! Q  v4 N- G        if(status_a2==0x01)
- L7 ^+ z) C1 P5 J% `* U        {
2 H4 l/ N( f) \: N6 t                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
% H) g( I1 s  r$ P                if(a[2]=='A')
: _7 x1 V; U) |! I3 X$ J  E1 }' e. P% z% f                {
5 |1 p; P1 C! I; ~' y' ?                        status_a2=0;' f( C$ H4 ~3 r  E
                        status_a3=0x01;
. l; s7 \( [3 s" j                }
/ V8 o' ]$ |7 r8 T7 c+ p! H* s        }
+ U* i2 C: o' z; F        if(status_a3==0x01). U9 g- B* ~! A5 s- y% `5 W& d$ W
        {; a# g( r" L5 |7 N* P9 Q
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);" f- a* C  g% c
                if(a[3]=='N')
' ]4 G: Y6 j+ Z( a                {
) ^3 ?" ^1 N' n! c  _                        status_a3=0;
/ \& G2 P* p& U. y, ~                        status_a4=0x01;8 m! a* _  N% z0 j4 K
                }
9 @( c6 w5 l* M5 W% K1 G1 z        }9 b, j; d2 I4 Z7 m5 ~2 d, [/ ]/ d
        if(status_a4==0x01)
) ?. |0 [& l7 B  A. t8 n        {# Z; L& v! X: c1 X
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
4 J; R: B; h8 o; t/ p. ~                if(a[4]=='G')5 a4 K& L7 v8 W3 M
                {' m0 }$ N( _+ n5 B/ B
                        status_a4=0;
- v  {4 l$ c1 Y4 L* V                        status_a5=0x01;. D9 M0 T2 c# n3 y2 K3 K1 v
                }5 r! {) t4 G3 W' r! ^
        }
- h2 D* K; z5 o( p1 T$ S        if(status_a5==0x01)8 L, T% K; l& Q
        {, w& [+ j  \. J+ }
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);  O, k6 e' d# [* D7 G
                if(a[5]=='E')
6 o; t5 w5 a1 Y$ d                {
  C+ v' W8 n* z" b( F2 e3 S                        status_a5=0;
/ Z# K. X# U! |                        status_OK=0x01;/ Y- Z7 R( @9 ^2 n( G
                }- t& g/ o8 i* J8 P% Y& P
        }  E0 N% `. V# x. g' d' C" n
            if(status_OK==0x01)
' V' M8 y* X4 ~4 g& K* l        {
$ s2 ~% {$ I- N                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);& u' c7 G/ S) i) m
                        lengthrx++;4 `# D$ g; I* \- _6 _& A, X% J
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)$ c; P: w% j; |0 c' l$ g' z
                        {
1 ^4 G- f! W6 n6 G                                RecState=0x01;
# A( Y0 n+ I9 a' c7 K  j$ }                        }
7 s9 p' D8 C& c& H5 x& o         }
$ I1 H4 J$ X+ r- @; k5 m; r% o! ?* Q- i* f2 H( E
     }
9 y" Z; S7 L# q+ x+ j
( z4 b1 R- s: D& L    // 接收错误0 S$ u# y( {4 G6 S. }7 R+ Q
    if(UART_INTID_RX_LINE_STAT == int_id). `$ z- w0 b$ t/ L  ~' `
    {
7 d' w+ M$ G$ ]+ b$ Q8 Y        while(UARTRxErrorGet(SOC_UART_0_REGS))* S+ Y/ {- o; p4 K/ C$ {
        {8 q8 U5 k3 M3 M, ^. m' X
            // 从 RBR 读一个字节
( S1 r& w# u; k            UARTCharGetNonBlocking(SOC_UART_0_REGS);
/ e) v2 h! v. i6 \" W        }
8 W) ^/ b# q4 n) T7 P- B# ]" Q# G    }
9 N/ x/ @( ?4 g/ C* O% V; `* [* L1 L( w8 c2 K3 _6 M
    return;
5 {" y8 A- C7 l1 ]- ^/ s}
  M5 n# Q2 }, ]6 `0 c( _- V4 h- |8 d1 Y: J* i" n5 a9 V
+ N' p4 a# S* l& [5 R3 K
2 r* p, l; i$ B# ~1 Y4 S7 }: a3 s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
11#
 楼主| 发表于 2016-8-21 14:56:04 | 只看该作者
能否说的具体一点,就是双核通信的都修改了哪些寄存器的值,这边双核裸机通信的资料很少。
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
10#
发表于 2016-8-18 11:34:54 | 只看该作者
star_niubi 发表于 2016-8-17 16:20+ k& X7 g8 T& q2 a
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

% l+ T& M+ `* H2 @, T1 o7 G8 |$ q* z建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
: F9 i) w+ J! I; ]+ esyslink 的初始化是否成功,notify 通信是否正常了?
0 r7 l( G  y* X+ \2 d4 U3 ^& z
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

点评

建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确  详情 回复 发表于 2016-8-18 11:34
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
8#
 楼主| 发表于 2016-8-17 11:57:43 | 只看该作者
Jackindata 发表于 2016-8-17 11:54: u; T& i0 c: H- U- W9 B6 R
syslink 的初始化是否成功,notify 通信是否正常了?
9 s) g. S8 F$ H
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

0

主题

113

帖子

2093

积分

创龙

Rank: 8Rank: 8

积分
2093
7#
发表于 2016-8-17 11:54:54 | 只看该作者
syslink 的初始化是否成功,notify 通信是否正常了?
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
5#
 楼主| 发表于 2016-8-17 11:37:05 | 只看该作者
我说一下调试的情况:
) Y6 M% c3 }8 Q; _0 @我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。" V( E/ n$ S( e
然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
地板
 楼主| 发表于 2016-8-17 11:34:30 | 只看该作者
上面的关于UART的子程序,在一楼
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:135 Y- |- L$ C/ }  d3 e+ [9 O
hi,
* w9 R) u4 L. Z* e$ p- G" g7 \
; D$ ^! W/ h! S: I( W; G; sUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
; O, S4 w$ Y4 K! y- T, J2 ~3 E
void main (void)# V% ~0 T+ v0 {: G
{
; u3 I/ o( c8 [        int i,j;' G  Q3 ]/ s' u7 L
    char *str_buf;5 j+ n2 N2 W  e2 L, O0 C
    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];; v3 B  b% T' W
        double est_L_b_=0;6 [8 g- f" R) A! `2 [1 ?
        double est_lambda_b_=0;1 ^) F7 c" z' H5 P
        double eul_[3][1]={0};
$ X0 q' N/ ?* i4 @# e$ k        double est_v_eb_e_[3][1]={0};
7 V3 G+ M. t2 Q! A        double est_C_b_e_[3][3]={0};  d! L1 J) P) }2 y0 g" a
    char *qm;4 O/ W6 ~* ?  z5 t' ]9 o
    char rec[70];
2 v) i% Q; W( ^" a        double L_b=0;
4 k8 n9 v- J( `% Z5 ^        double lambda_b=0;
4 `: a1 U/ W9 g. U        double h_b=0;
( G$ n4 r# z+ y        double rate;
! X  X# C% i% b6 N3 e+ z: G9 C0 W* u$ m  p" T5 h

# \+ l, k; s* _: ?% x1 ?        // 外设使能配置; C$ v" D7 i  ~' e* ^
        PSCInit();
6 b: y1 a& {: r$ Z& m4 o# W
# n) r$ O) K! a0 V' {3 n  ]6 I, m        AppInit();: r1 p7 A: n4 [

  o1 p2 b3 l$ z6 _& T. X2 q$ l        // UART 初始化
$ M6 s0 R$ Q, T8 C        UARTInit();
. ^1 w) m4 E+ c& k( i. ~
* @7 w: C# m( t1 h2 p        // UART 中断初始化5 O, b$ E' @; c' u
        UARTInterruptInit();% M/ S4 w6 D9 \0 }- ~
; X$ h% Z  W/ y- e
    evtRcvd = 0;
. N/ M6 S6 u* P/ {- \% e    RecState=0;
" J- t9 p, n, l- j4 S6 U0 _    /* Initialize */
5 Y; o' I' ^7 i1 H1 ^
( z  h) A- ^; b' F. w    printf("DSP subsystem ready\n");
) n  _& V' l9 `( K! @
8 V& U+ a) O  s4 ]4 ?1 g    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
) ]1 d: B1 f! Y: u: ?/ h; f) \0 N6 x
for(;;)
7 w/ I1 D) A% f, A* f{' q( g0 w" |3 P
        if((RecState&0x01)!=0)! k, I/ a; q0 O: }
        {
+ e3 ]! U; J; ?0 P8 q                printf("liuzhenxing\n");1 u& {, T; H5 N% k
        }* T8 `+ K8 I# S% Q, W. i% ?8 J
        else
0 g' ~7 r4 v7 |; i( c        {
$ j6 ~; `1 T- M3 T  w       wait_event();: h3 q/ [. a. k
& W" Y4 v1 x' b2 r' Y
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
3 ?1 o/ F. M( R+ ~' p: q
/ d  H* w: j/ i& v* D! K           for(i=0;i<60;i++)0 M' b8 m  \. ^2 E/ B, z
           {
0 l4 L# W- z7 _% K0 A. w                    rec=*qm;0 S4 q4 ?5 N/ M
                    qm++;
! h; i+ ^1 ?; T! @0 }           }
! F4 \# ^- a7 N) y. u, S( w5 v% A# E" Q- T
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
5 q" h2 Y# \* h1 z9 `3 v5 N9 x! P9 X7 g/ D
           L_b=L_b_receive_double;
2 V5 F' ]. z/ U( b1 w$ Y5 D           lambda_b=lambda_b_receive_double;: q3 Q" s# N: w
           h_b=h_b_receive_double;# c0 ?  m( o! L  w7 x
           for(i=0;i<3;i++)
( Y. R3 z, {# K' @) {1 W                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];, T, I2 w+ o! o( T; b
           for(i=0;i<3;i++)
' j9 _- v( R) e  S                    for(j=0;j<3;j++)
  x2 Q5 V$ C3 v  R0 ?6 q+ {                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
$ @7 U/ K* X0 l! Q+ A8 z9 V0 v$ j. n7 p2 S! K) Y( s0 w+ T
                printf("L=%lf\n",L_b);
$ E0 C1 i% O  }. M; u* r# t                printf("lambda=%lf\n",lambda_b);
$ s0 ^6 g0 }; D                printf("h=%lf\n",h_b);3 L4 B; x$ x2 j' c
2 N& O6 h1 f+ s; z
                for (i=0;i<3;i++)* }) S- y$ `3 f1 v0 C6 i2 F
                        printf("%lf\n",est_v_eb_e_[0]);
9 a, X) y) G0 a                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]);! u8 n  V: n: q; h/ S
                printf("rate=%lf\n",rate);
% q; l+ K# Q5 _% H* J) k% Z
7 \. w9 @" i5 }7 B% x5 S                CTM_to_Euler(est_C_b_e_,eul_);
3 Q$ `; y* [" {1 J) {0 D                for (i=0;i<3;i++)
! [0 ?2 }% f2 n8 Z9 M                        printf("%lf\n",eul_[0]);9 J* l; v1 F& s" f. C5 R
                printf("end************************\n\n\n");
5 t* V* j/ M% d8 K$ u" W+ w3 l; ~( S/ w! p4 M  Y
                /**********************************************************************/
  ~1 w3 l1 v" Z- U( S. g7 s$ r  q9 I0 A$ j+ F/ s8 G% u
            char flag[4];
- s$ J1 F- {, ^5 ?
7 ~2 K8 e' p) `5 K            flag[3]=0x00;
# d- W+ X% R0 j( t4 t1 ~            flag[2]=0x00;
) k  O* s- d  }. g: i            flag[1]=0x00;7 o% d% s" _( i3 F5 e4 C' D
            flag[0]=0x01;* }' N! W. g6 I

2 G' K/ r8 y8 W+ ?    /* Allocate I/O buffer and init with string */! q  K* s; y, s; F2 ?3 V% v
    str_buf = (char *) malloc(80);3 R# H" ^# x' Z: Q; p8 v
    str_buf =flag;; `' o* [% E; x( I# j+ H2 w- D

7 w2 E; `  \" C2 w9 t) X& O    /* Send buffer to remote CPU */
0 G* T0 L3 d- ?4 A" Q' d    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));) S/ v3 w: I* S  U3 M
' @" `* j2 K3 g: Y  m
    printf((char *) myPayload);( ?- ^- C! D, @3 c* M
        }% w# y9 `1 G6 B+ ~3 S
}! ^& u" P( X7 I1 H0 l3 ?3 x
: k* Q" e! l* v0 ]7 }
    WAIT_HERE;* C9 g, |2 s, Z% w7 R% M3 o
}
! i; F' I" g+ @' k
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-2 14:40 , Processed in 0.048113 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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