VxWorks

请问什么机制导致vxworks比linux的实时性要强

余生颓废 提交于 2019-12-06 12:41:04
过去很多嵌入式系统不是一个操作系统,或者是提供商的专有核心,或者是DOS操作系统的 扩展。显然这些方法并不能适应今天嵌入式系统开发的要求!现有的一些商业实时操作系统 ,尽管提供了很小的核心和多任务开发环境,但性能并不理想,也不符合现在实时嵌入式市 场的需求。 因此,人们把目光投向了通用操作系统(例如Windows、Solaris、linux),希望把它们“ 改造”为实时操作系统。通常这些操作系统功能强大,结构复杂,易于软件的二次开发,实 用性强,并且提供编程人员熟悉的标准API。此外,这些操作系统也提供了一些对实时软件 开发的支持。然而,这些操作系统用于嵌入式系统的开发还存在不足。嵌入式系统要求具备高可靠性,满足应 用需求的可剪裁性,以及比通用操作系统要求更高的实时性。 做为嵌入式系统开发的解决方案,linux在众多通用操作系统中具有独一无二的优势。 首先,Windows和Solaris等专有商业操作系统的剪裁受到商家的严格控制。这大大限制了开 发者的剪裁深度。而linux遵循GPL协议,开放所有系统源代码,非常易于剪裁。 其次,同其它开放源码的通用操作系统(如FreeBSD)相比,linux在多种处理器、开发板支 持和软件开发工具支持上有很强的优势。 linux最初也是作为通用操作系统而设计开发的,但提供了一些实时处理的支持。这包括支 持大部分POSIX标准中的实时功能

vxworks开发基础

自作多情 提交于 2019-12-06 12:40:44
vxworks开发基础 小狼@http://blog.csdn.net/xiaolangyangyang vxworks开发总体框架 一、RTP开发 RTP应用开发入口: usrAppInit.c -> usrAppInit() 二、wind kernel配置/驱动开发 wind kernel配置头文件: prjComps.h、configAll.h、config.h、prjParams.h wind kernel配置也可以在开发环境中使用可视化界面配置 vxworks添加组件的一般步骤: 选择适当的目录 -> 根据读取顺序为CDF文件取名 -> 组件命名 -> 描述与代码相关的内容 -> 设定组件初始化入口 -> 建立初始化顺序 -> 链接帮助文件 -> 定义依赖关系 -> 定义从属关系 三、BSP开发 vxworks bsp移植一般步骤(参照相似BSP包修改): 修改内存尺寸定义 -> 修改Cache驱动 -> 修改中断控制器程序 -> 修改时钟控制器程序 -> 修改串口程序 -> 添加网络设备驱动 -> 修改人机接口 -> 为其他硬件增加驱动程序 主要在sysLib.c中需要用户实现以下系统调用: 1. sysClkConnect() 为系统时钟中断挂接服务程序 2. sysClkDisable() 关闭系统时钟中断 3. sysClkEnable() 打开系统时钟中断 4.

Linux相对于VxWorks的优势

北慕城南 提交于 2019-12-06 12:39:37
  最近的Cisco抛弃了其专有的IOS核心,在 ASR1000的控制平面软件上采用了Linux为基础平台。据传Huawei、H3C等厂商的软件平台也纷纷转向以Linux为基础,而以前他们都采用 vxWorks作为基础。几年前,就连vxWorks的开发者风河公司也宣布同时支持vxWorks和Linux。由此看来,Linux在网络设备领域取 代vxWorks几乎已成定局。这背后的原因究竟是什么?与vxWorks相比,Linux究竟有那些优势?   在我看来,IBM支持Linux,是为了借Linux来挽救其规模庞大的服务器产品线,借助Linux拓展其软件服务市场。(注1)   而网络设备上用Linux,并不在于Linux的技术有多先进,而是Linux所代表的产业链的发展速度超过了vxWorks,用Linux会使软件开发成本更低。   Linux和vxWorks在技术上的主要差异在于:      A、 Linux的核心和用户进程之间是的地址空间隔离的 ,每个用户进程之间的地址空间是隔离的,当某一个用户进程崩溃的时候,不会影响操作系统核心和其他用户进程正常运行。   B、 Linux支持页面级的内存管理,支持换页 。   C、由于隔离的原因,使得 Linux软件的各部分之间耦合性更小 ,Linux的应用程序跟核心之间有清晰的界限,POSIX API。      总而言之,

VxWorks下的机器人设计过程

孤人 提交于 2019-12-06 12:39:01
开始正式启动VxWorks下的硬件开发工作了。打算编写一个由VxWorks下平台的机器人控制系统,下装到VxWorks中,做到开发板中,然后驱动电动机运动,驱动小车运动,躲避障碍物(迷宫型、折线型),下车走的快,并且不乱甩。首先从网上搜寻一些方案,感谢机器人发烧友天地热心的朋友将方案的上传,以下内容是从上摘录的笔记,同时也记录下我学习过程的心路。 我的机器人设计主要是为了验证在VxWorks下编写的仿真平台。 参考资料:《嵌入式计算机系统设计原理》、《嵌入式系统设计》、《嵌入式系统的C程序设计》、 因为我是学软件的,对硬件不是特别精通,需要自学。首先我对需要采购什么硬件搞不太清楚,通过查阅资料需要列一个清单: 开发板:51单片机、Arm7开发板、 电机:四驱车的130电机,或者选择带减速机构的电机。驱动方式方便,直接将轮子固定在齿轮箱的输出轴上。 驱动方式:与电机的型号相关,皮带传动、齿轮传动。皮带传动,只需改变传动轮的大小即可得到所需的传动比。 轮子:自制,轮胎用O型密封圈,皮带转动轮合并,传动皮带也使用O型密封圈。 车体支撑点:万向轮、钢珠 控制部分: 转向机制:模型汽车的转向机制、两轮转向机制: 底盘设计:具有一定的重量,使得小车运行稳定。10MM厚的聚氯乙烯板材,便宜,加工特性好,直接打孔上螺丝,外形圆形或方形均可。 无线模块: 来源: CSDN 作者:

vxworks入门

你离开我真会死。 提交于 2019-12-06 12:38:39
书籍 我的嵌入式知识也不是很精通,中文版只看了三本: 1.Tonardo/VxWorks入门与提高,现在早就不出版了,我看的也是影印版的。书里的内容比较基础,也基本覆盖了各个知识点,作为一本入门的书籍已经是很好的了。介绍的是5.5的开发和它的集成开发环境Tornado2.2。 2.VxWorks下设备驱动程序及BSP开发指南,我看的时候基本是扫着过的,感觉内容也比较一般。 3.VxWorks设备驱动开发详解,前几章简单讲了VxWorks的操作系统,如果以前对操作系统有深入的了解,看起来一定会事半功倍,不了解的话也还好,它讲的并不是很深,并且由于vxWorks不是开源的,很多地方也都是点到为止。后面主要讲解设备驱动,即使不做驱动的话也很有必要把中间两篇的驱动基础知识掌握好一点,最后的设备驱动主要给开发人员的参考吧,我也主要是做应用,所以了解并不是很多。 做嵌入式软件时间并不长,对很多东西了解不多,VxWorks方面主要看过这三本,mark一下,方便自己,也希望能帮助他人。 实时操作系统:保证在一定时间限制下完成特定功能,对外部的异步事件作出响应 微内核:提供最基本的服务,如进程调度、进程间通信、存储管理、I/O,其他服务如文件管理、网络支持等通过接口连接到微内核 任务 任务状态 状态转移 任务调度 优先级抢占 时间片轮转 任务调度的时机:从内核态退出(系统调用,中断) 任务操作 创建

vxworks常用API总结

混江龙づ霸主 提交于 2019-12-06 12:38:20
这两天在看VxWorks下的socket网络方面的编程,其中涉及到不少VxWorks下的函数使用,在网上搜了半天觉得这个很不错,于是将其copy下来。最后给出了copy的链接。 vxWorks编程指南 一、官方的Program Guide 位于安装目录下:\docs\vxworks\guide\index.html 二、常用的库: #i nclude "taskLib.h" /* 任务 */ #i nclude "msgQLib.h" /* 消息队列 */ #i nclude "semLib.h" /* 信号量 */ #i nclude "ioLib.h" /* IO */ #i nclude "wdLib.h" /* Watch dog */ #i nclude "logLib.h" /* 信息输出 */ #i nclude "socket.h" /* 网络套接字 */ 三、IO系统:ioLib.h 1、系统中的IO设备,包括键盘、串口、文件等,都用统一的接口访问。第一步通常先得到文件描述符,然后进行读写或者设置的工作,最后关闭该描述符。 creat:建立文件 open:得到文件或设备的描述符 read:读文件或设备 write:写文件或设备 ioctl:设置参数 close:关闭文件描述符 remove:删除文件 2、内存文件 memDrv( ) - 初始化伪内存设备

VxWorks 内存管理 个人总结DDR SDRAM和Flash

跟風遠走 提交于 2019-12-06 12:37:53
在VxWorks内核编程手册中: 在不支持进程的情况下,vxworks的内存映射是这样的:(SDRAM) 在支持进程的情况下,内存映射另外一个样子: 对应本ppc2020板的内存分配如下:以此为例,可参考来做其他项目。参考模型为支持进程方式。 PowerPC处理器是主控模块的核心部件,以处理器最小系统为中心,扩展外围接口,完成整个系统所需要的功能。Flash(ROM)接口、SDRAM地址空间分配如下: 表2.2-1存储器地址空间映射表 空间 地址 大小 占用片选信号 SDRAM 0x0000_0000--0x3FFF_FFFF 1GB SDCS0# FLASH 0xF000_0000--0xFFFF_FFFF 256MB RCS0# FLASH内存空间说明:0xF000_0000--0xFFFF_FFFF 0xF000_0000--0xF1FF_FFFF Tffs文件系统预留(32M) 0xF200_0000--0xFFEF_FFFF 用户保留存储空间(223M) 0xFFF0_0000-0xFFFF_FFFF Bootrom存储位置(1M) SDRAM存储空间说明:0x0000_0000--0x3FFF_FFFF 0x0000 0000 – 0x0010 0000 VxWorks低端内存区(系统占用) 0x0010 0000 – FREE_RAM_ADRS (end)

VxWorks实时操作系统特点介绍

痴心易碎 提交于 2019-12-06 12:37:35
VxWorks 是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统。Tornado 是WRS 公司推出的一套实时操作系统开发环境,类似MicrosoftVisual C,但是提供了更丰富的调试、仿真环境和工具。 VxWorks的特点 1、VXWORKS既是一个操作系统、又是一个可以运行的最小基本程序 2、VXWORKS有BSP(可以认为是一种低层驱动),可以减小驱动程序的编写过程 3、VXWORKS具有强大的调试能力,可以在没有仿真器的情况下,通过串口调试。 4、VXWORKS具有软件DEBUG功能,可以对软件部分进行模拟调试。 5、VXWORKS具有丰富的函数库。 6、同时VXWORKS自带TCP/IP协议栈。 最大可能的减小开发者系统软硬件开发的难度,缩小开发周期,提高开发效率。 可以部分的保证软硬件开发的同步进行。 一个好的操作系统的几大特点: ● 多任务和可抢占的 ● 任务具有优先级 ● 操作系统具备支持可预测的任务同步机制 ● 支持多任务间的通信 ● 操作系统具备消除优先级转置的机制 ● 存储器优化管理 ● 操作系统的(中断延迟、任务切换、驱动程序延迟等)行为是可知的和可预测的。 ● 实时时钟服务 ● 中断管理服务 可靠性 操作系统的用户希望在一个工作稳定,可以信赖的环境中工作

VxWorks应用开发基本步骤

十年热恋 提交于 2019-12-06 12:37:10
假设BSP部分已经做好,下面说一下开发应用程序的基本步骤: 1.首先从Tornado中建立一个新的Project可以看出,有两种影像可以选择:Bootable和Downloadable,在开发初期通常是先建立一个不包含应用层模块的的bootable project,编译出一个包含基本组件的VxWorks影像,将系统启动起来;其实这一步编译出的就是包含基本组建的一个VxWorks内核,并没有我们的应用代码。 2.在和上面的Bootable工程相同的Workspace中建立一个Downloadable project,在这个工程中编写、编译应用层的模块,然后动态下载到目标机中去调试; 3.应用层模块调试完毕可以发布之后,可以将应用层模块和第一步中的Bootable的VxWorks影像编译到一起; 这时候可以向Boottable Project中加入应用层代码文件,加入方式是Add from project,然后把包含应用层代码的Downloadable project中的文件导入Bootable project,重新编译Bootable Project得到的就是包含应用层的可启动的VxWorks影像。 4.把最终的映象放到软盘、硬盘或者Ftp服务器相应的目录下,这需要根据BootRom中bootline的启动方式来决定。 来源: CSDN 作者: minico 链接: https:/

与vxWorks相比,Linux究竟有那些优势?

不想你离开。 提交于 2019-12-06 12:36:56
2001 年IBM大张旗鼓的宣布支持Linux,并投入10亿美金用于Linux相关开发。 【陈怀临注:是的,没有IBM Linux Research Center的R&D投入,Linux在服务器市场方面的发展绝无今日之局面】 最近的Cisco抛弃了其专有的IOS核心,在 ASR1000的控制平面软件上采用了Linux为基础平台。【 陈怀临注:思科在OS方面目前比较乱了。是的,IOS确实没有能力支持其将来的发展。有兴趣的读者也可参阅弯曲评论相关文章,如“ 思科的OS战略是用三个OS逐步取代IOS。IOS XR用于核心路由器(Core Router),IOS XE用于边缘路由器,NX-OS用于数据中心的网络交换机。三个都是模块化的OS,IOS XE和NX-OS基于Linux内核(目前Linux的代码质量已经全面超过BSD,JUNOS 1996年起步时Linux还不成熟,如果Juniper现在起步,大概也会选择Linux),IOS XR基于一个兼容POSIX的微内核(Microkernel), 名叫QNX。IOS的各个功能模块被移植到这些新的OS,作为单独的进程运行于内核之上。”—《 思科和Juniper的操作系统之争:一个还是多个? 》 】据传Huawei、H3C等厂商的软件平台也纷纷转向以Linux为基础,而以前他们都采用 vxWorks作为基础。【 陈怀临注