现在基本上可以编译通过,可以打印 banner,想加入自己的程序,是在usrAppinit()这个函数里添加吗?我在里面加了句printf()函数,打印确实是打印出来了,但是我不清楚vxworks究竟是不是在这开始运行任务的.如果我在此创建一个任务那是vxworks运行的第一个任务吗?我以前看资料vxworks运行的第一个任务usrRoot()里啊.
还有makefile的问题。我把config/all里面的文件全部放在了BSP下的一个新文件夹configall里,在makefile里定义了CONFIG_ALL的路径,但是我把configall里面的usrConfig.c等文件加入一些错误进去,但是Tornado根本没有编译他们。我想问问怎样才能编译这些文件?
这是bsp的文件,编译库文件时候不会编译这些的,你需要在bsp目录下或你的vip工程下,重新编译才会编译到这些文件。
加入工程编译,然后在shell下可以直接启动运行。
如果想vxworks一启动后就运行,就在usrAppInit()函数里添加你的入口函数就可以了。
usrAppInit是系统启动完成后运行的,也就是usrRoot调用的最后一个函数。
楼上说的挺细了
还要注意在MAKEFILE里把相关的.0文件加上去
usrRoot调用的最后一个函数就是你自己应用程序的入口了
当然 你可以在usrConfig.c里加上自己写的功能 前提是不要破坏内核的启动过程
入工程编译,然后在shell下可以直接启动运行。
如果想vxworks一启动后就运行,就在usrAppInit()函数里添加你的入口函数就可以了。
usrAppInit是系统启动完成后运行的,也就是usrRoot调用的最后一个函数。
最好在usrAppInit中挂任务运行。
还有就是在BSP工程的外部模块中,要加入download工程的.a文件。
有这么一种情况大家讨论下:
我在workbench3.0下已经建立了一个系统工程,现在想在系统里添加自己的程序,于是在usrAppInit()函数中添加了自己的函数,在makefile中也加入了相关的.o文件。重新编译系统,这样是不是不行?需要重新建个工程才行?
6楼的朋友,我觉得你有个问题没弄明白:vxWorks有自己的库,一般不需要你修改vxworks下的任何makefile。当然,你自己编写的工程(也称为vip),需要按照目录或文件的形式逐个添加到vip中,这时候,wb只会编译你的vip,并且链接vxworks已经编译好的对应你的vip的bsp的库。