基于SYSLINK双核通信LED实例.docVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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)

chqs52 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档