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

发布时间 : 星期一 文章VxWorks操作系统RTP介绍和使用方法更新完毕开始阅读0bbd3d4a240c844768eaee77

RTP介绍和使用方法

下载完成后,可以断电重启或者在调试串口中输入命令ctrl+x软重启电路板,待系统启动后应用程序自动运行。 4. 调试方法

(1)原有的DKM工程,.out文件被加载后其全局函数可以在shell里直接调

用,对调试方便的很,但是RTP的实现机制决定了其中的函数不能被调用,所以需要找到一种方法来实现,以达到安全、团队合作,而又方便调试。

函数原型:

n “file_name”,”fun_name”,arg1,arg2,arg3,arg4,arg5,arg6 假如usrAppA.vxe里有如下两全局函数: voidprocess_hello(inta,intb,int c); void processB(void); 执行方法如下:

n \n \这种方式在UP(单核)、多核(SMP)模式下都是安全可用的。

(2)如果应用程序存在BUG而导致RTP程序被杀掉,如何能快速定位是哪出了

问题?请注意,RTP模式优势来了,此时vxWorks还是活着的,可以输入命令edrShow查看所有的异常,能快速定位是哪一个任务出了问题。 (3)内核启动后,输入命令:aff_lrtp,即可手动执行应用程序。这种方式可以

把RTP及其任务亲和到某一个核上,当然只是多核跑在SMP时有效,单核模式无所谓,因为只有一个核。 (4)查看任务

输入命令ri“filename”可查看该应用程序中任务状态,比如: ri“usrAppA.vxe”

这种方式只查看针对本RTP的任务状态。 (5)杀掉RTP进程

delk“filename”

5

RTP介绍和使用方法

***************************Demo***************************************

(6)Demo 代码如下:

#include #include

/*#include */ /*user function*/

voidprocess_hello(inta,intb,int c) { int t1=a,t2=b,t3=c;

while(1) { printf (\ taskDelay(30); } }

voidprocessB(void) { printf (\}

intmain (

intargc, /* number of arguments */

char * argv[], /* array of arguments */

char * envp[], /* array of environment strings */

void * auxp/* implementation-specific auxiliary vector */ )

{

taskSpawn(\,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*******************************

6