新闻中心

EEPW首页>嵌入式系统>设计应用> OMAPL138双核系统的调试方案设计

OMAPL138双核系统的调试方案设计

作者: 时间:2012-05-08 来源:网络 收藏

(3)释放内存
主要采用MSGQ_Close(GppMsgq);释放建立的消息队列。
根据图3,在DSP端,首先需要建立打印任务并且为所需要传输的log长度分配内存空间,随后在log发送端初始化中进行MSGQ的定位MSGQ_locate(),通过定位将指定连接DSP与GPP端的消息传输队列。消息就通过此队列进行传输,采用MSGQ_put()将DSP端的信息发送到GPP端。在多次传输信息后,占用过多的内存空间会导致内存泄露。为防止这种状况的发生,要在传输完毕后进行空间的释放,在下次传输时再重新创建。虽然这会影响到传输时间,但是为了内存空间更加便利安全的管理,在传输结束后应立即释放。
在GPP端,为了使MSGQ调试程序与主程序的运行互不干扰,创建单独线程进行调试使用。在接收内存空间分配好后,采用MSGQ_open()打开已经创建的MSGQ,使用MSGQ_get()消息接收。在接收完调试信息后,可以直接利用printf将调试信息通过串口打印在调试工具上。GPP端打印完成后,同样需要对分配内存空间进行释放。至此完成调试。
该调试方法同样存在着缺陷:DSP端正在运行的任务无法直接显示消息,需要将消息暂存,随后进行任务切换传输,因此无法即时进行调试信息的显示。但对于开发者来说,常常只是需要知道变量的数值或者程序运行的进度,所以此缺陷不会成为影响调试的大障碍,可以接受。

4 测试验证
采用DVSDK中提供的exanlple进行更改,更改上述调试模块,对MSGQ的调试信息进行测试,打印出通过与EMIFA相连接的LED的值,如图4所示。

本文引用地址://m.amcfsurvey.com/article/149121.htm

g.jpg


采用insmod dsplinkk.ko将编译好的内核模块加载进中,然后利用GPP端应用程序载入DSP端应用,在DSP端中,将string为“led test reg=”作为msg->str参数,将控制LED的寄存器作为arg[]参数,传入GPP端打印出来。

结语
本文针对OMAP体系分析了在TI体系中双核进行通信的方式,又分析了DVSDK中双核通信底层模块DSPLink在Linux操作中的搭建和以MSGQ通信时的过程。双核体系硬件拟合性好,功耗低,有很好的应用前景。针对的双核开发过程中调试难的特点设计了log打印的调试方式,在实际的应用中有较大的意义。

linux相关文章:linux教程



上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭