- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目 录
1 实例编译 2
2 实例演示 3
3 实例解析 6
3.1 实例程序结构解析 6
3.2 实例SYS/BIOS应用程序解析 7
3.3 实例Linux应用程序解析 13
实例编译
光盘中demo/syslink/ex10_led实例实现了利用MCSDK的SYSLINK组件在ARM端控制端来操作开发板外设跑马灯ex03_notify增加DSP控制LED功能。
先按照手册安装配置编译将ex10_led拷贝到/home/tl/ti/syslink_2_21_01_05/examples目录下(该路径不可随意放置,否者无法包含到SYSLINK里面的头文件ex10_led目录,如下图所示:
图1
执行sudo make clean”清除编译生成文件执行sudo make”命令重新编译该例程
图2
图3
在该目录的dsp/bin/debug/目录下生成xe674格式文件server_dsp.xe674
图4
在该目录的host/bin/debug/目录下生成端可执行程序app_host
图5
实例演示
执行双核通信需要4个文件slaveloader、server_dsp.xe674和app_host。slaveloader将位于开发板文件系统如下位置:
syslink.ko:/lib/modules/3.3.0/kernel/drivers/dsp/syslink.ko
slaveloader:开发板任意example的debug目录中,如/ex03_notify/debug/slaveloader。
以下为各个文件的作用:
syslink.ko:双核通信驱动
slaveloader:用于端启动并加载.xe674格式的/BIOS文件。
app_host:ARM端应用程序。
将slaveloader、server_dsp.xe674、app_host和ex10_led中的run.sh拷贝到开发板同一个,
图6
进入开发板的Linux文件系统后,执行如下命令安装双核通信驱动:
Targert# insmod /lib/modules/3.3.0/kernel/drivers/dsp/syslink.ko TRACE=1 TRACEFAILURE=1
图7
然后执行“./run.sh”命令,观察发现LED会先闪烁两次再依次点亮所有,依次熄灭所有。
图8
使用“cat run.sh”命令可以查看到run.sh脚本中的内容是:
图9
以下为脚本内容的解释:
./slaveloader startup DSP server_dsp.xe674:加载SYS/BIOS应用程序和启动DSP核。
./app_host DSP:启动ARM端Linux应用程序。
./slaveloader shutdown DSP:关闭DSP核。
实例解析
实例程序结构解析
在ex10_led目录中运行“tree -L 3”命令,可以看到实例程序目录的结构如下图所示:
图10
dsp:SYS/BIOS源代码。
host:ARM端Linux应用程序
shared:ARM和DSP内存共享相关。
products.mak:makefile调用的配置文件,用于识别编译的头文件和库文件路径
实例SYS/BIOS应用程序析
ain_dsp.c中创建smain任务smain任务先执行Server_init()
图11
Server_init()在dsp/Server.c中定义,Server.c是最常修改的SYS/BIOS文件。此实例在Server.c中增加了LED控制函数led_init(),如下图所示:
图12
dsp/Server.c中的led_init()函数实现IO的基本
图13
LED对应的GPIO相关寄存器定义如下图所示:
图14
SYS/BIOS的smain任务执行Server_create()函数。如下图所示:
图15
Server_create()函数在dsp/Server.c中定义,代码如下图所示:
图16
Server_create()函数会注册notify事件。当notify事件时触发Server_notifyCB函数执行Server_exec()函数。如下图所示:
图17
Server_exec()函数在dsp/Server.c中定义,该函数轮询等待ARM端发来的命令,其中Server_waitForEvent()是一种信号量等待方式,
图18
从上图可以看出,ARM传到DSP并解析出来的是num和event两个变量。APP_CMD_ON_PAYLOAD将在下一章节解释。
实例Linux应用程序
host/main_host.c功能和dsp/main_dsp.c类似,它初始化SYSLINK,然后执行App_
文档评论(0)