VxWorks用的公司相对不是太多,并且如果学会Linux,再学VxWorks并不困难,反过来则有一定困难。VxWorks比Linux的优点是实时性好,在开发方面调试工具之类的比Linux好,但是国内你要找到一个很懂VxWorks的人不多,但懂Linux的就很多。入门的话,学好C语言,试着移植一些驱动到VxWorks里即可,VxWorks兼容POSIX规范,我想你开发的难度应该不是特别大。利益相关:用了5年的VxWorks,也开发了5年的VxWorks的代码(从67至今)。用VxWorks久的人都会感觉它太小了,但它开发实在是太方便了,有调试器,有完整开发套件。在有开发环境的地方,几分钟就能建立一个工程,编译一个image,甚至可以放到PC机上跑。不说实时性之类的技术问题,单说入门,就很快的,比重新编译Linux内核之类的容易的多,我自己实验过裁剪Linux内核,真是头大的事情。VxWorks跨平台做的很好,自带的BSP在发布的时候都经过比较严格的测试,比起Linux来说,各种莫名其妙的硬件错误很难遇到。有人讲到VxWorks像Unix,我觉得不像,至少从我看到的代码上看,几乎没有Unix的东西,只不过是兼容部分POSIX API而已。在VxWorks上做二次开发就需要了解它的具体技术细节了,相对而言,我觉得跟别的系统的驱动差不多,无非就是信号量、内存、进程这些东西。如果你喜欢,用标准C的库也可以实现大部分功能。VxWorks的缺点也很多:文档太少,做这个的人不多,授权太贵。网上能找到的盗版都是55的,但官方都出到69了,说实话我真不喜欢55的那一套东西,太过时了,但要真找一套69的又有困难,授权费太贵。而且55不稳定、功能少(版权问题,我不敢放69的截图,但就组件的个数方面就差别太大了)。对于Linux来说,通常是裁剪很费劲,编译一堆问题,但找相关的文档也容易,如果英文好,去混混社区,总能找到答案,前期入门很难,熟悉以后会容易。而用VxWorks,后期的开发遇到困难就很难找到能帮上的人。
1 用系统自带的ring buffer,把数据扔进去,等到必要的时候将数据读出来上传host
2 建立虚拟内存盘,绑接dos文件系统,直接用标准io接口读写文件,使用dos命令给传到host上
3 通过ftp网络直接读写host目录
4 通过tgtsvr file system读写host目录
这是vxworks的引导程序,进入系统有两种方法。
1,通过硬盘启或CF卡启或FLASH启动,
在[vxworks boot]:后输入 o (是欧不是零)回车
2,通过网络加载的话用 :@ 回车
如果不行的话只能向中兴要密码了。
不能正常运行了。vxworks任务错误代码3d0004是提示vxworks软件中3d程序代码0004分序存在运行错误、代码错误或者3d功能错误,影响正常使用,所以vxworks任务错误代码3d0004程序不能正常运行了。
先讲一讲需要掌握的基本技能。
答:
(1)C语言是所有编程语言中的王者(单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握,大学本科教学中的C语言是远远不够的,有两个非常重要的内容没有讲“文件的 *** 作”和“IO的 *** 作”,其中“IO的 *** 作”是必须掌握的技术。
(2) *** 作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚
(3)计算机原理应该指的是x86的微机原理吧,但是在嵌入式领域x86处理器只是冰山的一小角,还有很多叫做ARM、XScale、SuperH、68K、PowerPC等等等等,无数的其它处理器,有一些我也叫不上名字。但是,X86总规是基础,万变不离其宗,深入学一下还是非常有必要的(尤其对于想要学习Linux的朋友,想要读核的话就必须要深入学习以下x86系统架构)。
如何学习嵌入式开发呢?
答:
大家都知道这个领域人才非常稀缺,但是,学习周期比较长,需要的知识面也比较广,所以不要心急。先看看下面的几个问题,了解一下你现在的知识水平:
(1)你用VC或BC编写过应用程序吗
如果编写过应用程序,那就做好了,如果你没有做过上层应用程序,那么又如何能够去理解更深的更高深的底层程序呢,那就赶快补上这一课吧!
(2)你曾经编写过单片机或者DSP的程序吗
我们把类似51单片机或者DSP上面跑的没有 *** 作系统的程序叫做“代码裸奔”,我们也都曾经编写过裸奔的代码。因为有的时候比如我们编写一个简单的程序,就只需要点几个LED检测几个按钮的状态,那么“代码裸奔”弄一个while(1)的死循环就足够了,杀鸡何必用牛刀。
编写这种裸奔的代码,也是学习嵌入式的必由之路,因为,你将会用C语言去对寄存器写控制字,这就是以后写驱动程序的基础呀。
另外需要说明的是,从概念上说,“代码裸奔”也已经属于嵌入式开发的范畴。
(3)到了最后一个阶段,你就可以开始找一个方向(uCos、Linux、VxWorks、WindowsCE、Palm等等等等),学习有 *** 作系统的嵌入式开发了。
嵌入式 *** 作系统的种类也是无法计数的,有一些我连名字也叫不上来,太多太多了。但是值得庆幸的是,这些 *** 作系统大同小异,相通的。
你正在在读书,建议学习uCos *** 作系统(看邵贝贝的《UC/OS *** 作系统》);如果你不喜欢这么Basic的 *** 作系统,VxWorks也是一个不错的选择,VxWorks进入中国已经好多年了,国内出版的书也都很好,尤其推荐陈智育的《VxWorks程序开发实践》和周启平的《VxWorks下设备驱动程序及BSP开发指南》;Linux简直是恶梦,但是如果你能够走出这个噩梦,你也就成了高手了。
就说这么多吧,路漫漫其修远,祝你成功!
1、直接调用肯定是不行的,首先CPU架构就不是一类的,嵌入式的软件多使用ARM或PowerPC等RISC指令集的CPU,但是如果你有源代码的话,可以在vxworks的编译环境中重新编译一下就行了,一般使用两个重要参数CPU=你的CPU类型如PPC32,TOOS=gnu等。
2、vxworks与无 *** 作系统的单片机不同,首先你的程序能跑起来,说明vxworks *** 作系统已经正常运行并控制你的程序正常运行了;在这种情况下,如果你再下载一个程序进去,如果是相同的程序,有两种情况:一是你的程序是可重入的,可以运行;二是你的程序不可重入,不能正常运行。如果程序不同,应该可以正常运行。
以上就是关于怎么学习VxWorks系统全部的内容,包括:怎么学习VxWorks系统、请教VxWorks嵌入式系统上应用程序文件读写 *** 作、vxworks在boot下怎么启动等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)