1.哪几种嵌入式操作系统最常见?
2.å¦ä½å®å¶VxWorksï¼
3.VxWorks下设备驱动程序及BSP开发指南内容简介
4.Error: L6218E: Undefined symbol __aeabi_assert (referred from mbrtu.o).
哪几种嵌入式操作系统最常见?
现在目前主流常见的码下四种嵌入式操作系统分别是VxWorks、Windows CE、码下μC/OS-Ⅱ、码下嵌入式Linux,码下它们各自拥有各自的码下优缺点。
(1)VxWorks
VxWorks操作系统是码下osg glstudio 源码美国WindRiver公司于年设计开发的一种嵌入式实时操作系统(RTOS),是码下Tornado嵌入式开发环境的关键组成部分。良好的码下持续发展能力、高性能的码下内核以及友好的用户开发环境,在嵌入式实时操作系统领域逐渐占据一席之地。码下
VxWorks具有可裁剪微内核结构、码下高效的码下任务管理、灵活的码下任务间通讯、微妙级的码下中断处理、支持多种物理介质及标准的码下、完整的条码标签设计源码TCP/TP网络协议等众多优点,然而其价格昂贵。由于操作系统本身以及开发环境都是专用的,价格一般比较高,通常需要花费万元人民币以上才能建立起一个可用的开发环境,对每一个应用一般还要另外收起版税。一般不提供源代码,只提供二进制代码。它们都是专用操作系统,需要专门的技术人员掌握开发技术和维护,所以软件的开发和维护成本都非常高。
(2)Windows CE
Windows CE与Windows系列有较好的兼容性,无疑是Windows CE推广的一大优势。其中WinCE3.0是一种针对小容量、移动式、智能化、麦盟科技 源码位、了解设备的模块化实时嵌入式操作系统。为建立针对掌上设备、无线设备的动态应用程序和服务提供了一种功能丰富的操作系统平台,它能在多种处理器体系结构上运行,并且通常适用于那些对内存占用空间具有一定限制的设备。它是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对从掌上电脑到专用的工业控制器的用户电子设备进行定制。从技术角度上讲,Windows CE作为嵌入式操作系统有很多的缺陷:不开放源代码,使应用开发人员很难实现产品的定制;在效率、功耗方面的表现并不出色,而且和Windows一样占用过多的苹果x开关源码系统内存,运用程序庞大;具有版权许可费。
(3)μC/OS-Ⅱ
μC/OS-Ⅱ是著名的源代码公开的实时内核,是专为嵌入式应用设计的,可用于位和位单片机或数字信号处理器(DSP)。它是在原版本μC/OS的基础上做了重大改进与升级,并有了近十年的使用实践,有许多成功应用实时内核的示例。它的主要特点有:公开源代码,容易就能把操作系统移植到各个不同的硬件平台上;可移植性好,绝大部分源代码是用C语言写的,便于移植到其他微处理器上;可固化、可裁剪;多任务,可管理个任务;实用性和可靠性;由于μC/OS-Ⅱ仅是一个实时内核,这就以为着它不像其他实时操作系统那样提供给用户的只是一些API函数接口,还要很多工作需要用户自己去完成。金装溯源码
(4)嵌入式Linux
嵌入式Linux最大的特点就是源代码公开并且遵循GPL协议,在近几年里成为研究热点,据IDG预测嵌入式Linux将占未来两年的嵌入式操作系统份额的%。
由于其源代码公开,人们可以任意修改,以满足自己的应用,并且查错也很容易。遵从GPL,无须为每例应用交纳许可证费。有大量的应用软件可用。其中大部分都遵从GPL,是开放源代码和免费的。可以稍加修改后应用与用户自己的系统。有大量的免费和有限的开发工具,且都遵从GPL。有庞大的开发人员群体,无需专门的人才,只要懂Unix/Linux和C语言即可。优秀的网络功能,这在互联网时代尤其重要。稳定是Linux本身具备的一个很大优点。内核精悍,运行所需资源少,十分适合嵌入式应用。
支持的硬件数量庞大,嵌入式Linux和普通Linux并五本质区别,PC上用到的硬件嵌入式Linux几乎都支持。而且各种硬件的驱动程序源代码都可以得到,为用户编写自己专有硬件的驱动程序带来很大方便。
å¦ä½å®å¶VxWorksï¼
VxWorksæ¯ç±ç¾å½Wind River å ¬å¸æ¨åºçä¸ç§å¼ºåµå ¥å¼å®æ¶æä½ç³»ç»ï¼RTOSï¼ãå®éç¨å¾®å æ ¸ç»æï¼å ·æé«å¯é æ§ãå®æ¶æ§ãå¯è£åæ§çç¹ç¹ï¼èä¸æ¯æå¤ç§CPUãVxWorksçä¸ä¸ªéè¦ç¹ç¹æ¯å®çå¯ç§»æ¤æ§ï¼åºç¨ç¨åºç¼ç å¨å¾å¤§ç¨åº¦ä¸ä¸ç®æ æ¿ç硬件åç»ææ å ³ãå®æææç¹å®ç硬件åè½é½éæå¨ä¸ä¸ªç§°ä¹ä¸ºæ¿çº§æ¯æå BSPï¼Board Support Packageï¼çåºä¸ã
ç®å为æ¢Wind Riverå ¬å¸æä¾çåºäºæä¸CPU è¯ä¼°æ¿çBSP è¶ è¿ä¸ªï¼å½ç¨æ·å¼åèªå·±ç®æ æ¿çBSPæ¶ï¼æ¯è¾ç®åçæ¹æ³æ¯ä»ææä¾çBSPä¸éä¸ä¸ªææ¥è¿çæ¥ä¿®æ¹ãè¿éæå°çBSPç设计就æ¯æè¿ç§æ¿çº§ç对ä¾èµäºç¡¬ä»¶çæºä»£ç åå¿ è¦çä¿®æ¹ãå¢å æå é¤ï¼ä»¥æ»¡è¶³ç¹å®ç硬件ç¯å¢ã
1 BSPçæ¦å¿µ
BSP(Board Support Package,ââæ¿çº§æ¯æå )æ¯ä»äºåºå±ç¡¬ä»¶åä¸å±è½¯ä»¶ä¹é´çåºå±è½¯ä»¶å¼åå ï¼è¿æºäºåµå ¥å¼æä½ç³»ç»ä¸ç¡¬ä»¶æ å ³ç设计ææ³ãå¦ä»çåç§åµå ¥å¼ç³»ç»,é½éç¨äºåå±ç设计æ¹æ³ãå®å°ç³»ç»ä¸ä¸ç¡¬ä»¶ç´æ¥ç¸å ³çä¸å±è½¯ä»¶ç¬ç«åºæ¥,称ä¹ä¸ºæ¿çº§æ¯æå (BSP)ãè¿éBSPç主è¦åè½ä¸ºå±è½ç¡¬ä»¶ï¼æä¾æä½ç³»ç»ç驱å¨å硬件驱å¨ï¼å ·ä½åè½å æ¬ï¼
(1)ç®æ æ¿ç¡¬ä»¶åå§åï¼ä¸»è¦æ¯CPUçåå§åï¼ä¸ºæ´ä¸ªç³»ç»æä¾åºå±ç¡¬ä»¶æ¯æï¼
(2)为æä½ç³»ç»æä¾è®¾å¤é©±å¨ç¨åºåç³»ç»ä¸ææå¡ç¨åºï¼
(3)å®å¶æä½ç³»ç»çåè½ï¼ä¸ºè½¯ä»¶ç³»ç»æä¾ä¸ä¸ªå®æ¶å¤ä»»å¡çè¿è¡ç¯å¢ï¼
(4)åå§åæä½ç³»ç»ï¼ä¸ºæä½ç³»ç»çæ£å¸¸è¿è¡å好åå¤ï¼æ 线SOCå¼åå¹³å°å S3CB0 ARM7å¼åæ¿å S3C ARM9å¼åæ¿å ATSAM7S ARM7 åçæºå¼åæ¿ä¹çââELITE-Iåçæºå¦ä¹ å¼åç³»ç»å S3C ARM9å¼åæ¿(II) å EPMTC CPLDå¼åæ¿ å
2 BSPæ件ç»æååè½
BSPä¸å æ¬æºä»£ç ã头æ件ãMAKEæ件ãæ´¾çæ件以åäºè¿å¶é©±å¨ç¨åºæ¨¡åãå¨VxWorks ä¸ç¡¬ä»¶é©±å¨ç¨åºå为éç¨æ§åBSPä¸ç¨æ§ä¸¤ç±»ãå¨å¼åBSPæ¶ï¼æ¢è¦å¯¹BSPä¸ç¨ç驱å¨ç¨åºæä¾æ¯æï¼è¿è¦å°éç¨ç设å¤é©±å¨ç¨åºéæå¨ä¸èµ·ãå æ¤ï¼ç¼åç设å¤é©±å¨ç¨åºï¼å¯æ ¹æ®å ·ä½æ åµæ¾å¨BSPä¸çåéä½ç½®ã
BSPæä»¶å¨ VxWorks /target /config /allåVxWorks /target /config / bspnameæ件夹éãå ¶ä¸ï¼allæ件夹éçæ件æ¯ææBSPçéç¨æ件ï¼bspnameæ件夹çæ件æ¯ç¨æ·èªå·±å®å¶çBSPæ件[1]ãç»è¿ç¼è¯ãé¾æ¥ï¼å¹¶å¨makefileådepend.bspnameçæ件çæ§å¶ä¸ï¼åç¨åºæåå°çæéåãBSPçç»æå主è¦æ件åè½å¦ä¸ã
(1)Tornado\target\config\all\ç®å½ä¸çæ件ãå æ¬bootConfig.cï¼bootInit.cï¼usrConfig.cçï¼å®ä»¬æ¯ææBSPå ±äº«çï¼ä¸»è¦æ¯ç¼ºçå®ä¹äºææVxWorksé 置以åBoot Romçåå§åæ§å¶ä»£ç ï¼æ以ä¸æ¯ç¹å«éè¦ä¸è¦æ´æ¹éé¢çä»»ä½æ件ã
(2)Tornado\target\config\bspname\ç®å½ä¸çæ件ãå æ¬makefileï¼depend.bspnameï¼config.hï¼bspname.hï¼romInit.sï¼sysALib.sï¼sysLib.cï¼sysSerial.cçï¼å ¶ä¸config.hä¸å å«ç¹å®CPUæ¿çææå å«æ件åå®ä¹ã
VxWorksæ¯æå¤ç§å¤çå¨å¹³å°ï¼ç¨æ·å¯ä»¥é对ä¸åçç®æ ç³»ç»ï¼éè¿ä¿®æ¹è¿äºæ件æ¥å®æBSPä¸ VxWorkså¨ä¸åå¹³å°ä¸ç移æ¤ã
3 Vxworksæ ååç±»åå ¶å¯å¨è¿ç¨
3.1 VxWorksæ ååå ¶åç±»
VxWorkså¨å¯å¨è¿ç¨ä¸æ¶åå°ä¸¤ä¸ªæ åæ件ï¼bootromæ ååVxWorksæ åãè¿ä¸¤ä¸ªæ åæ件é½è¦ä½¿ç¨BSP代ç ãbootromæ件æ¯ä»ROMå¼å¯¼VxWorksçå¼å¯¼ç®æ 模åï¼ç¨äºå¯¹ç®æ æ¿è¿è¡åå§åï¼å è½½VxWorksæä½ç³»ç»æ åãVxWorks imageå å«VxWorks OSï¼æç»è¿è¡äºç®æ æ¿ä¸ãVxWorksæ åæå 载类åå¯å为ï¼å¯ä¸è½½æ ååå¯å¼å¯¼æ åï¼æè¿è¡æ¹å¼å为å¨ROMä¸åå¨RAMä¸ä¸¤ç§ã
å¯ä¸è½½æ åï¼Loadable Imageï¼ï¼å®å®é å æ¬ä¸¤é¨åï¼ä¸æ¯VxWorksï¼äºæ¯boot ROMï¼ä¸¤é¨åæ¯ç¬ç«å建çãå¯å¼å¯¼æ å(Bootable Image)æ¯å°å¼å¯¼ç¨åºåVxWorksè为ä¸ä½çæ åï¼ä¸è¬ä¸ºæç»äº§åï¼å æ¬ä¸é©»çROMçæ ååé©»çROMçæ å两ç§ç±»å[2]ã
VxWorkså¨ROMä¸è¿è¡ï¼åªè¦æVxWorks imageçdata段å¤å¶å°RAMçRAM-LOW-ADRSï¼texté¨åçå¨ROM并å¨ROMæ§è¡ãå¨ROMä¸è¿è¡VxWorkså¯ä»¥èçRAM空é´ï¼æå©äºåºç¨ç¨åºææ´å¤§ç空é´è¿è¡ï¼ä½æ¯è¿è¡é度ç¸å¯¹è¾æ ¢ãVxWorkså¨RAMä¸è¿è¡ï¼åå ¥ROMä¸çbootæVxWorks imageæ¯å缩çï¼éå 解å并å¤å¶ææçtextædataå°RAMçRAM-LOW-ADRS,å¨RAMä¸è¿è¡ã
VxWorks下设备驱动程序及BSP开发指南内容简介
本书是关于VxWorks操作系统下的设备驱动程序及BSP(Board Support Package)开发的指南。其语言流畅,结构清晰,内容既全面又深入浅出,是编者结合多年实际开发经验,通过示例源代码和文字说明编写的。此书旨在为以VxWorks为基础的嵌入式系统开发、设计人员提供实用指导,同时也适合其他相关技术人员及爱好者参考。 本书不仅详细介绍了VxWorks操作系统的工作原理和架构,还深入探讨了如何在该系统下开发设备驱动程序。它涵盖了从基本概念、原理、设计到实现的全过程,帮助读者理解如何与硬件进行交互,以及如何优化驱动程序以提高系统的性能和稳定性。同时,书中还提供了丰富的实际案例,使读者能够通过实践加深理解,提高开发技能。 在BSP部分,本书详细阐述了如何根据不同的硬件平台定制和优化BSP,以确保VxWorks在各种硬件环境下的良好运行。它解释了BSP的主要组件,如时钟管理、内存管理、设备管理以及硬件中断处理等,以及如何合理配置这些组件以满足特定硬件平台的需求。 本书还强调了代码的可读性和可维护性,提供了大量的代码示例,并对关键代码段进行了详细的注释和解释。这使得读者不仅能够理解代码的逻辑,还能学会如何在实际开发中应用这些知识。 总之,本书是一本深入浅出、实践性强的指南,不仅适合于VxWorks操作系统下的嵌入式系统开发、设计人员,也能够为其他相关技术人员及爱好者提供宝贵的参考和学习资源。扩展资料
本书详细深入介绍了VxWorks下设备驱动程序及BSP的开发等内容。全书共章,主要内容包括:外部设备及设备驱动程序概述、VxWorks下设备及设备驱动程序、VxWorks下设备驱动程序的分析、驱动程序的轮询和中断处理、编写字符设备驱动程序、编写网络设备驱动程序、BSP概述、VxWorks预内核初始化、BSP的配置、BSP开发等内容。Error: LE: Undefined symbol __aeabi_assert (referred from mbrtu.o).
è¿æå¾å¤åï¼ä¸è¬ä¸ªäººçè¯ä¸è¬æ¯åµå ¥å¼Linuxï¼uclinuxï¼ucos2 è¿äºé½å¯ä»¥èä¸å¯ä»¥æ¥è§¦å°æºç ï¼è¿ä¸ªæ¯å¾å¥½çãé¤æ¤ä¹å¤è¿æ微软çwinceï¼windows embedded7è¿ä¸ªå¾è¯è¿å¥½ï¼æ¯ç«æ¯å¾®è½¯çï¼å¼åå·¥å ·å¤ï¼å¼åå¨æçï¼ä½æ¯çä¸å°æºç ãè¿æå°±æ¯VxWorks ï¼è¿ä¸ªæ¯åµå ¥å¼æ强çå¯æ³èç¥ä¸è¬å¨å¤§ä¼ä¸ï¼åå·¥ä¸æä¼ç¨ãä»ç»äºä¸äºç®æ¯æ¯è¾æåçå§ï¼å½ç¶è¿æå«ç...;...;...;...;...
...;...;...;...;...
...;...;...;...;...
...;...;...;...;...
...;...;...;...;...
...;...;...;...;...