嵌入式开发者社区
标题:
OMAPL138 DSPLINK demo之loop实验学习求助!!
[打印本页]
作者:
zhangjun972845
时间:
2014-12-17 15:19
标题:
OMAPL138 DSPLINK demo之loop实验学习求助!!
尊敬的各位: 大家好!最近才开是学习dsp,使用的是创龙的OMAPL138开发板,在使用DSPLINK演示loop实验时,遇到如下问题:
( O: s" G( r3 S( N; H" ^
背景: arm端使用内核linux2.6.33,根文件系统为创龙提供的根文件系统,dsp端通过《13-OMAPL138的双核通信组件DSPLINK开发入门.pdf》手册中的指导,编译dsplink,然后将demo拷贝到开发板上运行,演示时都和手册中说的一样,于是开始细研究学习,第一个便是loop实验,执行时发现,串口打印输出的只有arm端程序执行的过程,而没有ARM端具体发送的数据和接收到数据输出,也就是意味着不知道数据输出和接收是否正确,于是通过分析源代码,修改后,可以看到即将发送的数据,以及接收到的数据,都是0xe7,这个数据是正确的没有问题,然后修改dsp端代码,这里要做的也就是我想要学习到的重点。
) ^ A5 Z) _1 D5 w3 q' ]
目的: 当DSP端接收到arm端发送的数据时,返回其他数据,列如0xab,长度为128个字节,同时了解发送数据存储的位置,便于后面使用这个组件时,方便对数据的处理。
3 I- n" [6 G9 S* P Z! Q0 o" h, g! y
自己试验:tskloop.c的Int TSKLOOP_execute(TSKLOOP_TransferInfo * info)函数中开头定义了,Char * buffer = info->buffers [0] ;,buffers是一个指针数组,故理解buffer指向buffers [0]这个指针,通过SIO_issue(info->inputStream和SIO_reclaim (info->inputStream这两个函数后,说明获得数据应该是存放在buffers [0]这个指针中(这点是我个人的理解,因为没有找到相关详细的说明),于是在
; }" d: ]" H6 q! E+ R% T' c; E
/* Do processing on this buffer */ if (status == SYS_OK)这里添加如下代码:
6 y; z; w/ C0 q% O ? b% I
/* Do processing on this buffer */
5 ~# P' o% N" y( m1 O
if (status == SYS_OK) {
5 I- d" @$ C" s
/* Add code to process the buffer here*/
- _# U" {+ n& @4 `
for(i=0;i<128;i++)
" C8 f0 d# p8 E% ^7 m: q, {2 s
{
, c# R8 I; Q! s, Q1 H, e
*(info->buffers[0]++)=0xab;
/ p' J% A4 {8 X( A% V; X
}
3 W- O/ ]6 A: X4 s) W) d
buffer=info->buffers[0];
4 a) L9 ^, @0 [/ R- L
}
; |' O* G4 H9 J3 d }+ G
; {3 E, o- @7 l: e; y* K
,编译通过,但是在运行时,arm端接收到数据却成了:
: Y; }; c y& w+ _8 E1 q
0 1 0 0 b9 76 ed 92 d5 d5 ff ba ee f6 eb f3 fd be e9 ef fe d6 f5 ff af ff d0 f3 f9 7e 7d 97 7b 4b e9 eb 58 fa ff 97 f5 f7 f1 ff f1 df 7a bd 6f b3 7c f6 fe da eb dd a9 ff 5f f7 f7 bb f9 fe 6b be bd f2 d3 e6 af bf ff d9 6e ff cf de eb 7a 79 ff 7f f7 7b bf 2f ee 7e d6 7d df cf 7d f9 df ed eb 7f 97 fa f5 73 c6 4d da f7 37 7f f3 ff bf ec f8 fe f7 a9 f3 ee ff 71 d3 ed fa 78 bd 6b 7e
4 A8 W0 r/ ^9 P) e5 b
总共128个,长度没错,但是数据完全对不上,不明白这是什么原因,还是说是对
SIO_issue和
SIO_reclaim函数使用理解得不对,希望创龙技术能够知道下,万分感谢!
/ i. r7 f9 x1 y. n4 D- P1 s3 r
最后还有一点想要请教,dsplink的演示程序是否可以像在视频中的syslink一样添加到CCS工程中,然后仿真运行啊?
. o. w. S! H: b9 a' F0 i, _- K/ y
# N% @9 P' M7 N9 N0 N3 h
作者:
Lewis
时间:
2014-12-24 18:45
SIO_issue是发送数据流,用于发送数据
. R5 G1 L# E; x: p* m
SIO_reclaim是回收数据流,用于接收数据
. N3 `1 `! F _6 k3 U
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4