OMAPL138 DSPLINK demo之loop实验学习求助!! - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5982|回复: 1
打印 上一主题 下一主题

OMAPL138 DSPLINK demo之loop实验学习求助!!

[复制链接]

3

主题

6

帖子

41

积分

新手上路

Rank: 1

积分
41
跳转到指定楼层
楼主
发表于 2014-12-17 15:19:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
尊敬的各位: 大家好!最近才开是学习dsp,使用的是创龙的OMAPL138开发板,在使用DSPLINK演示loop实验时,遇到如下问题:: {; Z: G  y) v+ d. G
背景:  arm端使用内核linux2.6.33,根文件系统为创龙提供的根文件系统,dsp端通过《13-OMAPL138的双核通信组件DSPLINK开发入门.pdf》手册中的指导,编译dsplink,然后将demo拷贝到开发板上运行,演示时都和手册中说的一样,于是开始细研究学习,第一个便是loop实验,执行时发现,串口打印输出的只有arm端程序执行的过程,而没有ARM端具体发送的数据和接收到数据输出,也就是意味着不知道数据输出和接收是否正确,于是通过分析源代码,修改后,可以看到即将发送的数据,以及接收到的数据,都是0xe7,这个数据是正确的没有问题,然后修改dsp端代码,这里要做的也就是我想要学习到的重点。
# h1 Z, S9 P0 q' f* C9 ]2 e目的:  当DSP端接收到arm端发送的数据时,返回其他数据,列如0xab,长度为128个字节,同时了解发送数据存储的位置,便于后面使用这个组件时,方便对数据的处理。
* e- {2 Q+ a: ^7 B. A/ ^( P# [自己试验: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]这个指针中(这点是我个人的理解,因为没有找到相关详细的说明),于是在 6 A7 S& ]# M3 Y! P0 s
/* Do processing on this buffer */   if (status == SYS_OK)这里添加如下代码:
- @  M# y- r  }  `3 n        /* Do processing on this buffer */: n) q* j* j" C, ?
        if (status == SYS_OK) {
1 u$ x' h; D) G& Z            /* Add code to process the buffer here*/        2 B, q, K+ l9 z4 ]' G# E
                for(i=0;i<128;i++)1 z; P9 N. N3 H$ n1 _  l9 k: }
                {" S& ^9 I& ?% T3 J( Z+ p
                        *(info->buffers[0]++)=0xab;
$ O1 H2 L5 i2 e+ q) @+ h                }8 S$ \9 B2 H) M2 t/ Q: f8 g" a$ O' x
                buffer=info->buffers[0];
  Y, ]2 O5 n& }, a4 D        }; y8 |$ v$ @7 x2 ~; u* z& P

1 o0 b  N7 Y1 E+ p,编译通过,但是在运行时,arm端接收到数据却成了:. Z5 H2 a% o# Q, @% l! R% n; B9 J
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 t! v4 {, ~* `( B; R; Z
总共128个,长度没错,但是数据完全对不上,不明白这是什么原因,还是说是对SIO_issue和SIO_reclaim函数使用理解得不对,希望创龙技术能够知道下,万分感谢!! B+ |! }3 ~9 L$ m7 I/ e
最后还有一点想要请教,dsplink的演示程序是否可以像在视频中的syslink一样添加到CCS工程中,然后仿真运行啊?
. a2 M1 \* ^( c6 q6 M: t' c  Y. Z9 {" W3 W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

184

帖子

1137

积分

QQ游客

积分
1137
沙发
发表于 2014-12-24 18:45:29 | 只看该作者
SIO_issue是发送数据流,用于发送数据1 A: P( I' _2 d0 `( k! c
SIO_reclaim是回收数据流,用于接收数据
& ]% E! g9 H0 y) [0 |
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-22 05:32 , Processed in 0.038519 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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