欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    OMAPL138基于SYSLINK的双核通信LED实例.doc

    • 资源ID:4141010       资源大小:1.17MB        全文页数:13页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    OMAPL138基于SYSLINK的双核通信LED实例.doc

    目录1实例编译22实例演示33实例解析63.1实例程序结构解析63.2实例SYS/BIOS应用程序解析73.3实例Linux应用程序解析131 实例编译光盘中demo/syslink/ex10_led实例实现了利用MCSDK的SYSLINK组件在ARM端控制DSP端来操作开发板外设LED执行跑马灯程序。本实例是基于ex03_notify增加DSP控制LED功能。先按照广州创龙OMAPL138开发板的用户手册基于OMAPL138的多核软件开发组件-MCSDK开发教程.pdf安装MCSDK,配置、编译和安装SYSLINK。然后将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/目录下生成Linux端可执行程序app_host,如下图所示:图52 实例演示执行此实例双核通信需要4个文件,syslink.ko、slaveloader、server_dsp.xe674和app_host。按照基于OMAPL138的多核软件开发组件-MCSDK开发教程.pdf教程完成SYSLINK编译和安装后,syslink.ko和slaveloader将位于开发板文件系统如下位置:syslink.ko:/lib/modules/3.3.0/kernel/drivers/dsp/syslink.koslaveloader:开发板任意example的debug目录中,如/ex03_notify/debug/slaveloader。以下为各个文件的作用:syslink.ko:双核通信驱动。slaveloader:用于ARM端启动DSP并加载.xe674格式的SYS/BIOS文件,例如server_dsp.xe674。server_dsp.xe674:DSP端应用程序。在此实例中,增加的DSP端控制LED流水灯功能的代码镜像就是server_dsp.xe674。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会先闪烁两次,再依次点亮所有LED,接着依次熄灭所有LED。Target#./run.sh图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核。3 实例解析3.1 实例程序结构解析在ex10_led目录中运行“tree -L 3”命令,可以看到实例程序目录的结构如下图所示:图10dsp:SYS/BIOS源代码。host:ARM端Linux应用程序。shared:ARM和DSP内存共享相关。products.mak:makefile调用的配置文件,用于识别编译的头文件和库文件路径。3.2 实例SYS/BIOS应用程序解析dsp/main_dsp.c中创建了smain任务,smain任务会先执行Server_init(),如下图所示:图11Server_init()在dsp/Server.c中定义,Server.c是最常修改的SYS/BIOS文件。此实例在Server.c中增加了LED控制函数led_init(),如下图所示:待添加的隐藏文字内容3图12dsp/Server.c中的led_init()函数实现了LED对应的GPIO的基本配置。在初始化配置时让4个LED连续闪烁2次,如下图所示:图13LED对应的GPIO相关寄存器定义如下图所示:图14SYS/BIOS的smain任务完成后会执行dsp/Server.c中的Server_create()函数。如下图所示:图15Server_create()函数在dsp/Server.c中定义,代码如下图所示:图16Server_create()函数会注册notify事件。当ARM端notify事件注册时,DSP会触发Server_notifyCB函数,接着执行dsp/Server.c中的Server_exec()函数。如下图所示: 图17Server_exec()函数在dsp/Server.c中定义,该函数轮询等待ARM端发来的命令,其中Server_waitForEvent()是一种信号量等待方式,当ARM端有命令传送过来时会解除等待,然后解析ARM端传入的命令,解析命令代码如下图所示:图18从上图可以看出,ARM传到DSP并解析出来的是num和event两个变量。APP_CMD_ON_PAYLOAD将在下一章节解释。3.3 实例Linux应用程序解析host/main_host.c功能和dsp/main_dsp.c类似,它初始化SYSLINK,然后执行host/App.c中的App_create()函数注册notify事件,等待DSP端创建notify事件后,接着执行host/App.c中App_exec()函数。ARM端在App_exec()函数中向DSP发送控制LED的命令,代码如下:图19可以看出ARM端发送给DSP的命令有8个,分别是依次点亮4个LED,再依次熄灭4个LED。APP_CMD_ON_PAYLOAD和APP_CMD_OFF_PAYLOAD分别表示控制LED亮和灭,x分别为4个LED编号。控制状态和编号需要DSP端解析。所以APP_CMD_ON_PAYLOAD和APP_CMD_OFF_PAYLOAD是共享数据,其宏定义存放在shared/AppCommon.h中,如下图所示:图20APP_CMD_ON_PAYLOAD和APP_CMD_OFF_PAYLOAD宏是用户根据实际情况在shared/AppCommon.h中修改或者添加的,ARM端和DSP端都会使用到。

    注意事项

    本文(OMAPL138基于SYSLINK的双核通信LED实例.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开