vxworks操作系统rtp介绍和使用方法

上传人:第*** 文档编号:32819300 上传时间:2018-02-12 格式:DOCX 页数:6 大小:514.59KB
返回 下载 相关 举报
vxworks操作系统rtp介绍和使用方法_第1页
第1页 / 共6页
vxworks操作系统rtp介绍和使用方法_第2页
第2页 / 共6页
vxworks操作系统rtp介绍和使用方法_第3页
第3页 / 共6页
vxworks操作系统rtp介绍和使用方法_第4页
第4页 / 共6页
vxworks操作系统rtp介绍和使用方法_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《vxworks操作系统rtp介绍和使用方法》由会员分享,可在线阅读,更多相关《vxworks操作系统rtp介绍和使用方法(6页珍藏版)》请在金锄头文库上搜索。

1、RTP 介绍和使用方法1VxWorks 操作系统 RTP 介绍和使用方法从 VxWorks 6.x 开始引入 RTP(VxWorks real time process project)模式编程,这种模式的优点是应用程序相互独立,互不影响,而且增加了内核的稳定性,缺点是由于“内核态”与“用户态”的内存拷贝,其执行效率有所降低,随着CPU 速度越来越快,这点效率的牺牲已经越来越不重要。相比较于传统的DKM( downloadable kernel module project) ,RTP 适合多个团队独立运作,然后汇总联试,这种模式除了全局函数不能再 shell 里直接调用外,其对应用程序几乎不

2、做任何约束,原有的 DKM 工程代码稍作修改即可正常运行。内核变化较大,需要添加较多的组件,内存需要较好的划分,为保持应用程序直接调用函数调试的习惯,需要封装接口供用户使用。现简单的介绍 RTP 使用方法,并给出 demo 代码供参考。1新建并编译工程:(1)File-new- VxWorks real time process project,如图 【1】图【1】(2)一路 next 后,选择如图【2】所示的编译器RTP 介绍和使用方法2图【2】(3)选择 Finish 后,工程新建完毕。(4)导入源文件:这里的源文件名称是 fooRtpApp.c,一种较快捷的方式是选中新建的工程,按下 F

3、5,源文件会出现在工程中.(5)右键选择编译,出现如图【3】 ,选择 Continue 继续。图【3】编译完成后,会生成 vxe 格式的可执行文件,此处为 usrAppA.vxe。2. 下载可执行性文件待板子启动后,使用 ftp 将 vxe 文件下载到板子中。步骤如下:(1)运行-cmd,打开对话窗口,如图 【4】所示:RTP 介绍和使用方法3图【4】依次执行如下命令:(a) ftp 192.168.0.2 (该 ip 可在 vxWorks 启动后,输入命令 ifconfig 查看)(b) bi(c) cd /tffs0(d) put filename (完整的文件路径)(e) by执行完上述

4、命令后,即可把可执行程序下载到目标板上,如下图【5】:RTP 介绍和使用方法4图【5】在串口终端中,输入 ifconfig 命令查看 ip 地址;依次输入如下命令查看刚下载到目标板的文件:(a) cd “/tffs0”(b) ls上述操作结果如下图【6】所示:图【6】3运行可执行文件RTP 介绍和使用方法5下载完成后,可以断电重启或者在调试串口中输入命令 ctrl+x 软重启电路板,待系统启动后应用程序自动运行。4. 调试方法(1)原有的 DKM 工程,.out 文件被加载后其全局函数可以在 shell 里直接调用,对调试方便的很,但是 RTP 的实现机制决定了其中的函数不能被调用, 所以需要

5、找到一种方法来实现,以达到安全、团队合作,而又方便调试。函数原型:n “file_name”,”fun_name”,arg1, arg2,arg3, arg4, arg5, arg6假如 usrAppA.vxe 里有如下两全局函数:void process_hello(int a,int b,int c);void processB(void);执行方法如下:n usrAppA.vxe,process_hello,1,2,3n usrAppA.vxe,processB这种方式在 UP(单核) 、多核( SMP)模式下都是安全可用的。(2)如果应用程序存在 BUG 而导致 RTP 程序被杀掉,如

6、何能快速定位是哪出了问题?请注意,RTP 模式优势来了,此时 vxWorks 还是活着的,可以输入命令 edrShow 查看所有的异常,能快速定位是哪一个任务出了问题。(3)内核启动后,输入命令:aff_lrtp,即可手动执行应用程序。这种方式可以把 RTP 及其任务亲和到某一个核上,当然只是多核跑在 SMP 时有效,单核模式无所谓,因为只有一个核。(4)查看任务输入命令 ri “filename”可查看该应用程序中任务状态,比如:ri “usrAppA.vxe”这种方式只查看针对本 RTP 的任务状态。(5)杀掉 RTP 进程delk “filename”RTP 介绍和使用方法6*Demo*

7、(6)Demo 代码如下:#include #include /*#include */*user function*/void process_hello(int a,int b,int c)int t1=a,t2=b,t3=c;while(1)printf (hello world,0x%x,0x%x,0x%xn,t1,t2,t3);taskDelay(30);void processB(void)printf (hello worldn);int main(int argc, /* number of arguments */char * argv, /* array of arguments */char * envp, /* array of environment strings */void * auxp /* implementation-specific auxiliary vector */) taskSpawn(hello,150,0,0x60000,process_hello,0,1,2,3,4,5,6,7,8,9);taskSuspend (0); /* stop again to keep RTP alive */return 0;*end*

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号