VxWorks操作系统RTP介绍和使用方法



《VxWorks操作系统RTP介绍和使用方法》由会员分享,可在线阅读,更多相关《VxWorks操作系统RTP介绍和使用方法(6页珍藏版)》请在装配图网上搜索。
1、 VxWorks 操作系统 RTP 介绍和使用方法 从 VxWorks 6.x开始引入 RTP(VxWorks real time process project)模式编程,这种模式的优点是应用程序相互独立, 互不影响,而且增加了内核的稳定性, 缺点 是由于“内核态”与“用户态”的内存拷贝,其执行效率有所降低,随着 CPU 速度越来越快,这点效率的牺牲已经越来越不重要。相比较于传统的 DKM ( downloadable kernel module project ), RTP适合多个团队独立运作,然后汇总联试,这种模式除了全局函数不能再 she
2、ll 里直接调用外,其对应用程序几乎不做任何约束,原有的 DKM 工程代码稍作修改即可正常运行。内核变化较大,需要添加较多的组件, 内存需要较好的划分, 为保持应用程序直接调用函数调试的习惯,需要封装接口供用户使用。 现简单的介绍 RTP使用方法,并给出 demo 代码供参考。 1.新建并编译工程: (1) File->new-> VxWorks real time process project,如图【 1】 图【 1
3、】 (2) 一路 next 后,选择如图【 2】所示的编译器 图【 2】 (3) 选择 Finish 后,工程新建完毕。 (4) 导入源文件:这里的源文件名称是 fooRtpApp.c ,一种较快捷的方式是选中新建的工程,按下 F5,源文件会出现在工程中 . (5) 右键选择编译,出现如图【 3】,选择 Continue 继续。 图【
4、 3】 编译完成后,会生成 vxe 格式的可执行文件,此处为 usrAppA.vxe 。 2. 下载可执行性文件 待板子启动后,使用文件下载到板子中。步骤如下:(1)运行 ->cmd,打开对话窗口,如图【 4】所示: 图【 4】 依次执行如下命令: (a) (该 ip 可在 vxWorks 启动后,输入命令 ifconfig 查看 ) (b) bi (
5、c) cd /tffs0 (d) put (完整的文件路径) (e) by 执行完上述命令后,即可把可执行程序下载到目标板上,如下图 【5】: 图【5】 在串口终端中,输入 ifconfig 命令查看 ip 地址;依次输入如下命令查看刚下载到目标板的文件: (a) cd “ /tffs0 ” (b) ls 上述操作结果如下图 【6
6、】所示: 图【6】 3.运行可执行文件 下载完成后,可以断电重启或者在调试串口中输入命令待系统启动后应用程序自动运行。 ctrl+x 软重启电路板, 4. 调试方法 ( 1 )原有的 DKM 工程, .out 文件被加载后其全局函数可以在 shell 里直接调 用,对调试方便的很,但是 RTP的实现机制决定了其中的函数不能被调用, 所以需要找
7、到一种方法来实现,以达到安全、团队合作,而又方便调试。 函数原型: n “” , ” 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,3 n "usrAppA.vxe","processB" 这种方式在 UP(单核)、多核( SMP)模式下都是安全可
8、用的。 ( 2)如果应用程序存在 BUG 而导致 RTP程序被杀掉,如何能快速定位是哪出了 问题?请注意, RTP模式优势来了,此时 vxWorks 还是活着的,可以输入命令 edrShow 查看所有的异常,能快速定位是哪一个任务出了问题。 ( 3)内核启动后,输入命令: aff_lrtp ,即可手动执行应用程序。这种方式可以 把 RTP及其任务亲和到某一个核上, 当然只是多核跑在 SMP 时有效,单核模式无所谓,因为只有一个核。 ( 4)查看任务 输入命令 ri “”可查看该应用程序中任务状态,比如: ri “ usrAppA.vxe ” 这
9、种方式只查看针对本 RTP的任务状态。
( 5)杀掉 RTP进程
delk “”
***************************Demo***************************************
( 6) Demo 代码如下:
#include
10、lo(int a,int b,int c) { int t1=a,t2=b,t3=c; while(1) { printf ("hello world,^^^^0x%x,0x%x,0x%x\n",t1,t2,t3); taskDelay(30); } } void processB(void) { printf ("hello world\n"); } int main ( int argc, char * argv[], char * envp[], void
11、* auxp /* number of arguments */ /* array of arguments */ /* array of environment strings */ /* implementation-specific auxiliary vector */ ) { taskSpawn ( "hello" taskSuspend (0); return 0; ,150,0,0x60000,process_hello,0,1,2,3,4,5,6,7,8,9); /* stop again to keep RTP alive */ } ************************end*******************************
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年水电工程运行维护管理合同示范文本.docx
- 2025年工程勘测设计合同模板.docx
- 2025年区域产品销售代理合同.docx
- 2025年经销商授权合同样本.docx
- 2025年员工住房资金借贷合同.docx
- 2025年轻钢建筑施工合同示例.docx
- 2025年网络推广托管合同.docx
- 2025年简明个人借款正式合同范例.docx
- 2025年房产按揭贷款合同范例.docx
- 2025年技术合同争议调解.docx
- 2025年电子版城市住宅租赁合同范本.docx
- 2025年简易转让合同协议书样本.docx
- 2025年投资顾问服务合同实例.docx
- 2025年经销合同模板.docx
- 2025年工业项目设计合同样本.docx