- Mugen-Hive
-
我做过Linux到vxWorks的移植,难易程度,取决于应用的可移植性和底层I/F的使用情况
个人觉得,从Linux到vxWorks比较简单,反过来会难一些。(主要是内存管理,task/进程线程等的差异较大)
主要需要考虑以下内容:
数据类型
ByteOrder
系统函数(内存管理,ByteOrder转换,字符串处理,标准输入输出,Timer,Semaphore等)
驱动程序访问的I/F(地址的转换:vxWorks单一内存空间,内存访问,DMA,PCI,中断相关,排他处理等)
进程线程/task的管理
Makefile
几句话很难概括,具体到项目也会有很大区别,祝顺利
- 北有云溪
-
我做过Linux到vxWorks的移植,难易程度,取决于应用的可移植性和底层I/F的使用情况
个人觉得,从Linux到vxWorks比较简单,反过来会难一些。(主要是内存管理,task/进程线程等的差异较大)
主要需要考虑以下内容:
数据类型
ByteOrder
系统函数(内存管理,ByteOrder转换,字符串处理,标准输入输出,Timer,Semaphore等)
驱动程序访问的I/F(地址的转换:vxWorks单一内存空间,内存访问,DMA,PCI,中断相关,排他处理等)
进程线程/task的管理
Makefile
几句话很难概括,具体到项目也会有很大区别。
相关推荐
vxworks详细资料大全
VxWorks 是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时作业系统。Tornado 是WRS 公司推出的一套实时作业系统开发环境,类似MicrosoftVisual C,但是提供了更丰富的调试、仿真环境和工具。 基本介绍 中文名 :威克沃 外文名 :VxWorks 公司 :Wind River System(风河公司 ) 产品类型 :实时作业系统 开发时间 :1983年 产地 :美国 开发环境 :Tornado/Wind River Workbench 简介,组成,核心,I/O 系统,档案系统,网路支持,工具,新架构,产品, 简介 VxWorks 作业系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时作业系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的核心以及友好的用户开发环境,在嵌入式实时作业系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地套用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的 F-16、FA-18战斗机、B-2 隐形轰炸机和爱国者飞弹上,甚至连1997年4月在火星表面登入的火星探测器、2008年5月登入的凤凰号,和2012年8月登入的好奇号也都使用到了VxWorks上。 组成 VxWorks作业系统有以下部件组成: 核心 多任务调度(采用基于优先权抢占方式,同时支持同优先权任务间的分时间片调度) 任务间的同步 进程间通信机制 中断处理 定时器和记忆体管理机制 I/O 系统 VxWorks 提供了一个快速灵活的与 ANSI C 兼容的 I/O 系统,包括 UNIX 标准的Basic I/O(creat(),remove(),open(),close(),read(),write(),and ioctl().),Buffer I/O (fopen(),fclose(),fread(),fwrite(),getc(),putc()) 以及POSIX 标准的异步 I/O。VxWorks 包括以下驱动程式:网路驱动、管道驱动、RAM盘驱动、SCSI驱动、键盘驱动、显示驱动、磁碟驱动、并口驱动等 。 档案系统 支持四种档案系统:dosFs,rt11Fs,rawFs 和 tapeFs 支持在一个单独的 VxWorks 系统上同时并存几个不同的档案系统。 板级支持包 BSP(Board Support Package) 板级支持包向VxWorks作业系统提供了对各种板子的硬体功能操作的统一的软体接口,它是保证VxWorks作业系统可移植性的关键,它包括硬体初始化、中断的产生和处理、硬体时钟和计时器管理、局域和汇流排记忆体地址映射、记忆体分配等等。每个板级支持包包括一个 ROM 启动(Boot ROM)或其它启动机制。 网路支持 它提供了对其它VxWorks系统和TCP/IP网路系统的"透明"访问,包括与BSD套接字兼容的编程接口,远程过程调用(RPC),SNMP(可选项),远程档案访问(包括客户端和服务端的NFS机制以及使用RSH,FTP 或 TFTP的非NFS机制)以及BOOTP 和代理ARP、DHCP、DNS、OSPF、RIP。无论是松耦合的串列线路、标准的乙太网连线还是紧耦合的利用共享记忆体的背板汇流排,所有的 VxWorks 网路机制都遵循标准的 Inter 协定。 工具 在 Tornado 开发系统中,开发工具是驻留在主机上的。但是也可以根据需要将基于目标机的Shell 和装载卸载模组加入 VxWorks。 嵌入式Vxworks系统的主要套用领域主要有以下几方面: 1.数据网路:如:乙太网交换机、路由器、远程接入伺服器等 2.远程通讯:如:电信用的专用分组交换机和自动呼叫分配器,蜂窝电话系统等 3.医疗设备:如:放射理疗设备 4.消费电子:如:个人数字助理等 5.交通运输:如:导航系统、高速火车控制系统等 6.工业:如:机器人 7.航空航天:如:卫星跟踪系统 8.多媒体:如:电视会议设备 9.计算机外围设备:如:X终端、I/O 系统等 总之,VxWorks的系统结构是一个相当小的微核心的层次结构。核心仅提供多任务环境、进程间通信和同步功能。这些功能模组足够支持VxWorks在较高层次所提供的丰富的性能的要求。 VxWorks6.0版本新增功能: 风河通用平台VxWorks版(GPP)是所有设备软体应用程式的首要基础平台。此通用平台基于全球套用最广泛的运行时作业系统--VxWorks而构建。最新版本(VxWorks 6.1)中的各运行时组件可向后兼容VxWorks的早期版本。此最新版本包含了增强的记忆体保护、容错管理,并支持最新的网路和安全协定以及设备与企业间的连通性。 通用平台组合了最为严格和确定性的实时作业系统,其产品完全集成了现有的产品开发解决方案,从而能够满足贵企业的各种苛刻需求。它无缝集成了业界标准的RTOS(VxWorks 6.1)、功能强大的开发套件(Workbench 2.3)、网路和安全协定、用于工程人员快速启动项目的培训以及迅速扩展您开发团队综合技能的各种专业服务。 新增功能: 通用平台VxWorks 3.1版扩展了的3.0功能:它扩展了架构支持、多处理器讯息处理(基于业界标准的开源式TIPC协定)、增强了网路堆叠以及支持风河Workbench的最新版本。 新架构 - ARM 9,ARM 11 - Intel Pentium M - Intel XScale - MIPS - PowerPC - Renesas SuperH-4,SuperH-4a * 支持通用平台VxWorks 3.0版中的所有架构和BSP * 多处理器讯息通道(基于TIPC协定) * 网路堆叠包括PPP、PPPoE以及多链路PPP * 风河Workbench 2.3 产品 WindNet SNMP WindNet STREAMS WindNet 第三方产品,包括 OSI、SS7、ATM、Frame Relay、CORBA、ISDN、X.25、 CMIP/GDMO、分散式网路管理等。 这些产品扩展了VxWorks的网路特性,并增强了嵌入式处理器的网路特性 虚拟记忆体( VxVMI)与共享记忆体(VxMP) VxVMI 为带有 MMU 的目标板提供了虚拟记忆体机制。 VxMP 提供了共享信号量,讯息伫列和在不同处理器之间的共享记忆体区域。 目标代理(Target Agent) 目标代理遵循 WBD(Wind Debug)协定,允许目标机与主机上的 Tornado 开发工具相连。在目标代理的预设设定中,目标代理是以 VxWorks 的一个任务tWdbTask 的形式运行的。 Tornado 目标伺服器(Target Server)向目标代理发送调试请求。调试请求通常决定目标代理对系统中其它任务的控制和处理。预设状态下,目标伺服器与目标代理通过网路进行通信,但是用户也可以改变通信方式。 实用库 VxWorks 提供了一个实用例程的扩展集,包括中断处理、看门狗定时器、讯息登录、 记忆体分配、字元扫描、线缓冲和环缓冲管理、炼表管理和 ANSI C 标准。 是一个实时作业系统。2023-07-05 17:18:481
vxworks装机时间
时间在10秒左右。把RTC配置成功后,更改vxworks的系统时间:1、首先读取rtc的时间。时,分,秒。2、利用clock_settime设置系统时间。3、在系统初始化时读取bios时间一次,然后修改系统时钟。VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。2023-07-05 17:18:551
freertos vxworks系统的优点和缺点
1、FreeRTOS是一个迷你的实时操作系统内核。最大的特点是“小”,占用资源小,支持8位、16位、32位MCU平台。FreeRTOS提供了操作系统基本的功能和组件,包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等。此外FreeRTOS还有一个最大的优势就是就是免费。不足之处,一方面体现在系统的服务功能上,如FreeRTOS只提供了消息队列和信号量的实现,无法以后进先出的顺序向消息队列发送消息;另一方面,FreeRTOS只是一个操作系统内核,需外扩第三方的GUI(图形用户界面)、TCP/IP协议栈、FS(文件系统)等才能实现一个较复杂的系统,不像μC/OS-II可以和μC/GUI、μC/FS、μC/TCP-IP等无缝结合。2、VxWorks不仅是一种嵌入式实时操作系统,又是可以运行的最小基本程序。其内部有BSP(BoardSupportPackage,板级支持包),便于进行驱动程序的编写。此外,VxWorks具有强实时性、微内核设计、可裁剪性、可移植性和可靠性等特点,能较好地满足嵌入式开发的需求。缺点就是昂贵的价格让开发者望而却步。2023-07-05 17:19:021
VxWorks系统安全吗
安全。波音-787,AH-64用的操作系统就是VxWorks,可见其高指标的可靠性,健壮性和实时性,VxWorks已经在最具挑战性的安全关键应用中得到验证。VxWorks653是一个安全、可靠和可靠的实时操作系统(RTOS),它在最新的ARM、Intel和PowerPC多核处理器平台上提供了一个具有强大时间和空间分区功能的开放式虚拟化平台。2023-07-05 17:19:081
VxWorks是什么?
VxWorks是美国WindRiverSystem公司(以下简称风河公司,即WRS公司)推出的一个实时操作系统。Tornado是WRS公司推出的一套实时操作系统开发环境,类似MicrosoftVisualC,但是提供了更丰富的调试、仿真环境和工具。VxWorks操作系统是美国温瑞尔(WindRiver)公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。VxWorks支持几乎所有现代市场上的嵌入式CPU,包括x86系列、MIPS、PowerPC、FreescaleColdFire、Inteli960、SPARC、SH-4、ARM,StrongARM以及xScaleCPU。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的F-16、F/A-18战斗机、B-2隐形轰炸机和爱国者导弹上,甚至连1997年7月在火星表面登陆的火星探测器,2008年5月在火星表面上登陆的凤凰号火星探测器上也都使用到了VxWorks。2023-07-05 17:19:151
vxworks新建工程,和如何生成库文件及如何使用
File-New-Vxworks Downloadable Kernel ModuleProject 如下图弹出输入工程名点击next点击next点击next点击next在红线出选择相应的编译器点击next红线处是决定生成什么样的文件。例如Linker是生成可执行文件。尔下图是生成动态链接库然后点击next再finish 生成的库怎么用 把生成库文件(文件名为*.a)的路径及文件名复制到下图位置 右键工程选择属性点击build Properties-build Macros弹出 在Image工程也是使用空格分开注意:斜杠是“/”2023-07-05 17:19:211
vxworks中tickGet函数获取的tick是从0开始?
从tick开始。它是一个数值量,本身不能代表时间。如果说要知道tick增加一个代表多少时间的话,那就要看系统的时钟率了。在Shell下,sysClkRateGet可以返回这个始终率的值。比如60。啥意思呢,就是1秒钟产生60个tick。操作系统调度是基于这个tick的,这在硬件上是个优先级很高(除了NMI以外都比它低)的时钟中断。如果你的始终率是60那么一个tick代表的时间就是1000ms/60=16.67ms。也就是tick增加一个所花的时间16.67毫秒。那么你要想你的tick是1ms一下的话,那不就是把时钟率设置成1000就可以了,因为1000ms/1000=1嘛。可以用sysClkRateSet(1000)来达到此目的。嵌入式系统嘛,啥都你自己整,时钟率高了,操作系统调度频率就很高,软件响应能力增强,但硬件中断的处理就不一定是实时的了。时钟率不是越大越好。但太小了绝对好不起来。1ms还是不够用?用辅助时钟吧。它也中断。用起来一样。不过,值得注意的是,千万别整很多东西挂到一个1秒钟执行1000次以上的中断里面,CPU耗不起啊。所以1ms以下的精确定时,推荐用硬件做。注意啊,实时操作系统是软件,怎么说它也是软的。2023-07-05 17:19:281
vxworksm命令使用方法
输入m命令选择对象,指定基点,鼠标往需要移动对象的方向移动一下,输入需要移动的距离就可以了。什么是命令?命令就是必须强制执行。具体的内容和事项有命令下达者说明,也就是执行具体的事项,也叫做任务。2023-07-05 17:19:351
什么是vxworks
vxworks VxWorks 是美国 Wind River System 公司( 以下简称风河 公司 ,即 WRS 公司)推出的一个实时操作系统。Tornado 是WRS 公司推出的一套实时操作系统开发环境,类似Microsoft Visual C,但是提供了更丰富的调试、防真环境和工具。 VxWorks操作系统有以下部件组成: uf0d8 内核(wind): uf0d8 多任务调度(采用基于优先级抢占方式,同时支持同优先级任务间的分时间片调度) uf0d8 任务间的同步 uf0d8 进程间通信机制 uf0d8 中断处理 uf0d8 定时器和内存管理机制 uf0d8 I/O 系统 VxWorks 提供了一个快速灵活的与 ANSI C 兼容的 I/O 系统,包括 UNIX 标准的Basic I/O(creat(), remove(), open(),close(), read(), write(), and ioctl().),Buffer I/O (fopen(), fclose(), fread(), fwrite(), getc(), putc()) 以及POSIX 标准的异步 I/O。VxWorks 包括以下驱动程序:网络驱动、管道驱动、RAM盘驱动、SCSI驱动、键盘驱动、显示驱动、磁盘驱动、并口驱动等 uf0d8 文件系统 支持四种文件系统: dosFs,rt11Fs,rawFs 和 tapeFs 支持在一个单独的 VxWorks 系统上同时并存几个不同的文件系统。 uf0d8 板级支持包 BSP(Board Support Package) 板级支持包向VxWorks操作系统提供了对各种板子的硬件功能操作的统一的软件接口,它是保证VxWorks操作系统可移植性的关键,它包括硬件初始化、中断的产生和处理、硬件时钟和计时器管理、局域和总线内存地址映射、内存分配等等。 每个板级支持包括一个 ROM 启动(Boot ROM)或其它启动机制。 uf0d8 网络支持: 它提供了对其它VxWorks系统和TCP/IP 网络系统的"透明"访问,包括与BSD套接字兼容的编程接口,远程过程调用(RPC),SNMP(可选项),远程文件访问(包括客户端和服务端的NFS机制以及使用RSH,FTP 或 TFTP的非NFS机制)以及BOOTP 和代理ARP、DHCP、DNS、OSPF、RIP。无论是松耦合的串行线路、标准的以太网连接还是紧耦合的利用共享内存的背板总线,所有的 VxWorks 网络机制都遵循标准的 Internet 协议。 uf0d8 系列网络产品: uf0fc WindNet SNMP uf0fc WindNet STREAMS uf0fc WindNet 第三方产品,包括 OSI、SS7、ATM、Frame Relay、CORBA、ISDN、X.25、 uf0fc CMIP/GDMO、分布式网络管理等。 这些产品扩展了VxWorks的网络特性,并增强了嵌入式处理器的网络特性 uf0d8 虚拟内存( VxVMI)与共享内存(VxMP) VxVMI 为带有 MMU 的目标板提供了虚拟内存机制。 VxMP 提供了共享信号量,消息队列和在不同处理器之间的共享内存区域。 uf0d8 目标代理(Target Agent) 目标代理遵循 WBD(Wind Debug)协议,允许目标机与主机上的 Tornado 开发工具相连。在目标代理的缺省设置中,目标代理是以 VxWorks 的一个任务tWdbTask 的形式运行的。 Tornado 目标服务器(Target Server)向目标代理发送调试请求。调试请求通常决定目标代理对系统中其它任务的控制和处理。缺省状态下,目标服务器与目标代理通过网络进行通信,但是用户也可以改变通信方式。 uf0d8 实用库 VxWorks 提供了一个实用例程的扩展集,包括中断处理、看门狗定时器、消息登录、 内存分配、字符扫描、线缓冲和环缓冲管理、链表管理和 ANSI C 标准。 uf0d8 基于目标机的工具 在 Tornado 开发系统中,开发工具是驻留在主机上的。但是也可以根据需要将基于目标机的Shell 和装载卸载模块加入 VxWorks。 总之,VxWorks的系统结构是一个相当小的微内核的层次结构。内核仅提供多任务环境、进程间通信和同步功能。这些功能模块足够支持VxWorks在较高层次所提供的丰富的性能的要求。2023-07-05 17:19:411
请详细介绍一下VxWorks
国外商用嵌入式实时操作系统 VxWORKS 介绍 1 综述 WRS(Wind River System) 公司是国际著名的嵌入式实时操作系统的供应商。其产品 VxWroks 早期运行在 VRTX 、 pSOS 及自身运行较慢的 WIND 内核等实时内核之上,从 5.0 发行起,不再支持别的内核,只运行自己的 WIND 内核(重写的 WIND 内核)。这个系统的基本设计思想是要充分利用 VxWORKS 和 Unix/Windows 的优点,使之与嵌入式软件相互补充达到最优。 Unix 和 Windows 虽然用户界面友好、开发工具丰富,但是由于嵌入式实时系统的时间、空间的局限性,他们不适用于实时应用开发。传统的实时操作系统提供的用于开发的环境资源(非实时组件)又非常贫乏。 VxWORKS 使嵌入式系统开发人员能在嵌入开发环境下更好的使用 Unix/Windows 。 VxWORKS 能够一方面处理紧急的实时事务,另一方面,让主机用于程序开发和非实时的事务。开发者可以根据应用需要恰当地裁减 VxWORKS 。开发时可以包含附加的网络功能加速开发过程,在产品最终版本中,再去掉附加功能,节省系统资源。 WRS 公司还提供最新一代的 IDE---- 主机上的集成开发环境 Tornado, 开发者通过 Tornado 来编辑、编译、连接和存储实时代码,但是实时代码的运行和调试都在 VxWORKS 上进行。最终生成的目标映像可以脱离主机系统和网络,单独运行在 ROM 、磁盘(软 / 硬)或 FLASH 上。主机系统和 VxWORKS 可以在一个混合应用中共同工作:通过网络联接,主机使用 VxWORKS 系统作为实时服务器。 1995 年开发出的 Tornado ,赢得电子设计新闻该年度的“嵌入式开发软件创新奖“( Electronic Design News" “Embedded Development Software Innovation of the Year” award ) [9] 。 2 特点 u2022 支持多种硬件环境 VxWORKS 操作系统支持的 CPU 包括: Power PC 、 68K 、 CPU32 、 Space 、 i960 、 x86 、 Mips 等等;同时支持 RISC 、 DSP 技术。 u2022 微内核结构,任务间切换时间短,中断延迟小,网络流量大。 u2022 较好的可剪裁能力,可裁减组件超过 80 个,用户通过交叉开发环境方便地进行配置。 u2022 支持应用程序的动态连接和动态下载,使开发者省去了每次调试都将应用程序与操作系统内核进行连接和下载的步骤,缩短了编辑 / 调试的周期。 u2022 较好的兼容性:兼容 POSIX1003.1b 标准( Portable Operating System Interface for computer Environments,= Portable Operating System UNIX , IEEE 1003.1 ) 。 u2022 高可靠性、高可用性、高安全性。 3 组成 VxWORKS 包括进程管理、存储管理、设备管理、文件系统管理、网络协议及系统应用等部分,占用很小的存储空间,支持高度裁减,保证系统能以较高的效率运行。 VxWORKS 体系结构如图 1.5 所示 [9][10][59] 。 VxWORKS 包括以下部分: u2022 Wind 内核 Wind 内核包括基于优先级的抢占式多任务调度机制、任务间的同步和进程间的通讯机制以及中断处理、看门狗和内存管理机制。不仅提供多种信号量支持任务间同步和互斥的机制,而且提供消息队列、管道、套接字和信号等机制支持进程间通信。 u2022 I/O 系统 VxWORKS 提供了快速灵活的与 ANSI C 兼容的 I/O 系统,包括 UNIX 标准的缓冲 I/O 和 POSIX 标准的异步 I/O 。还包括多个驱动程序(包括网络驱动、管道驱动、 RAM 盘驱动、 SCSI 驱动、磁盘驱动、显示驱动、键盘驱动、并口驱动等)。 u2022 文件系统 VxWORKS 提供了快速文件系统适合于实时系统应用。它拥有多种支持使用块设备的本地文件系统。这些设备都使用一个标准接口,从而使得文件系统能够灵活地在设备驱动程序上移植。 u2022 板级支持包 BSP(Board Support Package) 板级支持包对各种板的硬件功能提供了统一的软件接口,它包括硬件初始化、中断的产生和处理、硬件时钟和计时器管理、局域和总线内存地址映射、内存分配等等。每个板级支持包括一个 ROM 启动( Root ROM )或其他启动机制。 u2022 网络设施与产品 u2022 虚拟内存与共享内存 VxWORKS 的 VxWMI 为带有 MMU ( Memory Mapping Unit )的目标板提供了虚拟内存机制。 VxMP 提供了共享信号量、消息队列和不同处理器之间的共享内存区域。 u2022 目标代理( Target Agent ) 目标代码遵循 WDB(Wind Debug) 协议,允许目标机与主机上的 Tornado 开发工具相连。如图 1.6 所示,目标代理是以 VxWORKS 的一个任务的形式运行。 Tornado 目标服务器向目标代理发送调试请求。调试请求通常决定目标代理对系统中其他任务的控制和处理。默认状态下,目标服务器与目标代理通过网络进行通信,用户也可以改变通信方式。VxWORKS 操作系统自 1996 年进入中国,广泛应用于通信、国防、工业控制、医疗设备等嵌入式实时应用领域。它是研究嵌入式实时操作系统的一个极好对象。2023-07-05 17:19:481
vxworks下怎么停止当前任务
操作步骤如下:1、首先在电脑上打开solidworks软件,发现右边窗口不见了。2、这时需要点击顶端的“工具”选项。3、然后在弹出的菜单中点击“自定义”选项。4、然后在弹出的对话框,勾选“任务窗格”前的方框,再点击右下角的“确定”。5、这时可见关闭任务窗口了。2023-07-05 17:20:061
怎么学习VxWorks系统?
VxWorks用的公司相对不是太多,并且如果学会Linux,再学VxWorks并不困难,反过来则有一定困难。VxWorks比Linux的优点是实时性好,在开发方面调试工具之类的比Linux好,但是国内你要找到一个很懂VxWorks的人不多,但懂Linux的就很多。入门的话,学好C语言,试着移植一些驱动到VxWorks里即可,VxWorks兼容POSIX规范,我想你开发的难度应该不是特别大。利益相关:用了5年的VxWorks,也开发了5年的VxWorks的代码(从6.7至今)。用VxWorks久的人都会感觉它太小了,但它开发实在是太方便了,有调试器,有完整开发套件。在有开发环境的地方,几分钟就能建立一个工程,编译一个image,甚至可以放到PC机上跑。不说实时性之类的技术问题,单说入门,就很快的,比重新编译Linux内核之类的容易的多,我自己实验过裁剪Linux内核,真是头大的事情。VxWorks跨平台做的很好,自带的BSP在发布的时候都经过比较严格的测试,比起Linux来说,各种莫名其妙的硬件错误很难遇到。有人讲到VxWorks像Unix,我觉得不像,至少从我看到的代码上看,几乎没有Unix的东西,只不过是兼容部分POSIX API而已。在VxWorks上做二次开发就需要了解它的具体技术细节了,相对而言,我觉得跟别的系统的驱动差不多,无非就是信号量、内存、进程这些东西。如果你喜欢,用标准C的库也可以实现大部分功能。VxWorks的缺点也很多:文档太少,做这个的人不多,授权太贵。网上能找到的盗版都是5.5的,但官方都出到6.9了,说实话我真不喜欢5.5的那一套东西,太过时了,但要真找一套6.9的又有困难,授权费太贵。而且5.5不稳定、功能少(版权问题,我不敢放6.9的截图,但就组件的个数方面就差别太大了)。对于Linux来说,通常是裁剪很费劲,编译一堆问题,但找相关的文档也容易,如果英文好,去混混社区,总能找到答案,前期入门很难,熟悉以后会容易。而用VxWorks,后期的开发遇到困难就很难找到能帮上的人。2023-07-05 17:20:143
vxworks 系统采用什么分区
VxWorks系统支持静态分配和动态分配相合的内存分 配。 低端内存区和VxWorks区采用静态分配,而保证 VxWorks的实时性和稳定性。 VxWorks的内存操作都是基于内存分区的,而不是 段页分区。 动态分配VxWorks中主要涉及的内存单元的概念有 ? 内存分区 :包含分区自身的描述信息(一个结构体 malloc分配)和一个或多个内存池,描述信息保存在系 统的内存分区中,而内存池就是该分区实际拥有的内 存空间。 内存池:内存池是一块连续的内存区域,包含一个或 多个内存块,通过memPartAlloc、memPartFree来申 请和释放。 内存块:每个内存块都有一个内存块头来描述自己 动态分配 内存分区在刚创建完毕时,只有一个内存池,用户程 序可在稍后往该分区中添加别的内存池,在一个内存 分区中,内存池之间的地址不一定是连续的。 VxWorks在启动过程中会创建一个包含系统内存池的 系统分区。操作系统和通常的大部分用户应用程序对 内存的操作,都发生在系统内存池中。 内存管理方式 要对空闲内存块进行合适的管理---自由链 ? 自由链是利用每个空闲内存块的开始几个单元存放本 空闲块的大小及下个空闲块的开始地址。 可以通过链首指针可以检索到所有的空闲块。 自由链没有大小的限制,容易添加和删除节 内存分配算法 VxWorks采用最先适应法来动态分配内存? ? 最先适应法要求可用表或自由链按起始地址递增的次 序排列。该算法最大特点是一旦找到大于或等于所要 求内存长度的内存块,则结束搜寻。然后,该算法从 所找到的内存块中划分出所要求大小的内存空间分配 给用户,并把余下的部分进行合并(如果相邻两块是空 闲的),合并后的内存块留在可用表或自由链中,并修 改其相应的表现。2023-07-05 17:20:411
VxWorks中的任务状态 “pend”和“suspend”有什么区别
1、意思不一pend:pend(阻塞),指任务释放。suspend:suspend(挂起),指任务不释放。2、用途不一pend:一般在等待某种资源或信号量的时候出现。suspend:一般挂起用于程序调试中的条件中断。3、运行不一pend:其他任务可以运行。suspend:任务优先级高就轮不到其他任务运行。4、表现方式不一pend:资源被其他任务抢占而处于休眠态。suspend:需要用挂起函数进行操作。5、类别不一pend:pend是一种被动行为。suspend:suspend是一种主动行为。2023-07-05 17:20:482
如何配置vxworks识别usb设备
引言VxWoAs是美国Wind River System(WRS)公司开发的嵌入式实时操作系统。VxWorks中的I/O子系统为应用程序提供了简单、统一、与设备无关的访问接口。I/O系统内部采用设备列表、驱动程序列表和文件描述符表来实现对不同设备的管理与访问,从而为开发通用外部设备驱动程序提供了便利。然而在一些专用系统上,为了缩短设备的响应时间,提高设备的读取速度,有必要将设备与I/O系统独立起来。由于VxWorks属于微内核,所有的程序均运行在同一线性地址空间,这也为设备与I/O系统的独立提供了条件。基于VxWorks的I/O子系统设备管理的思想,本文提出了一种在VxWorks下对多个同类USB设备进行管理的设计方案。该方案可使得对设备的访问独立于I/O子系统。1 VxW0rks的I/O子系统设备管理VxWorks I/O系统内部对设备的管理主要通过三张表来实现,即驱动程序列表、设备列表和文件描述符表。其中驱动程序列表用来管理已注册的设备驱动程序,它的大小是固定的,有NUM DRIVERS项,每一项对应驱动程序的入口点,当应用程序调用标准I/O接口函数时,I/O子系统便可通过驱动程序列表检索到设备的驱动程序,从而实现对指定设备的访问、发送、接收等操作。系统可利用iosDrvInstall()注册设备驱动程序,并将设备的人口函数加入到驱动程序列表。同时返回一个drvnum驱动程序号,并将其作为设备描述符的一部分,从而以此把设备与其驱动程序联系起来。I/O子系统采用链表对所有设备进行管理,该链表称之为设备列表。调用iosDevAdd ()可向系统添加设备,添加设备时,应指明设备名称及驱动程序索引号,该索引号就是iosDrvInstall ()返回的索引号。在VxWorks中,一个设备可以被多次打开,但对于每一次打开,系统将利用一个文件描述符来区分,本系统将会维持一张文件描述符表,该表的每一项记录了与设备对应的驱动程序号和设备ID,这样,就会文件描述符与驱动程序、以及设备之间建立一种联系。这样,在利用标准I/O函数进行读写时,就可以根据文件描述符从文件描述符表中找到对应的驱动程序的人口与设备ID。VxWorks中的这三张表的关系如图1所示。2 USB设备管理方案设计设计独立于I/O系统的USB设备驱动程序的设计思想主要基于两点,第一是用户自己管理设备。第二是通过驱动程序直接向应用程序提供可用于读写设备的接口函数。由于设备独立于I/O系统,用户需要自己设计一种设备管理方法,以便对多个接入的USB设备进行合理的管理。然而由于不存在设备驱动程序列表,故在设计时还需要有一种方法来解决设备的访问问题。2.1 USB设备描述符设备描述符实际上是一个数据结构,可在系统中作为一个逻辑结构体。它是一个具体设备的抽象。可与一个物理设备相对应,是参与设备管理、访问的主要结构体。鉴于I/O子系统对设备的管理,在对多个USB设备进行管理时,对于设备的存储,可采用双向链表来进行管理,称之为设备列表。链表对USB设备的管理主要通过设备头(USB_BEV_HDR)来实现。USB设备头是一个与具体设备无关的数据结构,它由一个链表节点和设备名称组成。节点中包含指向有前一个和下一个USB设备的设备头的链表节点。实际上,每一个USB设备都会有更多的数据存储在更大的数据结构中。这个结构就是设备描述符,而USB设备头只是做为USB设备描述符的起始部分。设备头的数据结构(USB_DEV_HDR)如下:其中,USB_DL_NODE是一个链表节点,它由两个链表节点指针域组成。分别指向前一个和下一个设备的链表节点。其数据结构如下:这样,就可以把USB设备的描述符划分为两部分,其中一部分与具体设备无关,称为设备头:另外一部分是与具体设备相关的设备特殊数据,设备相关部分包括USB设备的Node ID、USB管道句柄、端点地址、状态等信息。其结构如图2所示。设备无关部分主要用于设备管理,而设备相关部分则用于对设备的访问。2.2设备列表设计为了方便对设备的管理,USB设备列表可采用双向链表结构,其作用是将所有USB设备的有关信息组织起来,从而实现对多个设备的链式管理。前面提到的设备描述符就是一个存储了设备信息的数据结构。而所有USB设备描述符都是以设备头数据结构开始的,这样,就可以很方便地将设备描述符组成一个链表形式的设备列表。2023-07-05 17:21:021
Vxworks嵌入式操作系统的优缺点
Tornado集成开发环境为用户提供支持C、C++语言的交叉编译器和类库。编译器包括GNU的C/C++编译器和DiabC/C++编译器。图形化的工程管理工具非常方便有效,可以方便地对VxWorks操作系统、组件及工程编译参数进行配置。核心工具包括VxSim仿真器,WindView软件逻辑分析仪,WindShell命令行执行工具,CrossWind集成调试器,Browser系统对象检查工具。这些工具非常适用,方便开发调试。编辑器不受推崇,好在可以设置外部编辑器。VxWorks性能优越,开发调试便利,强大的技术支持,但是昂贵的价格让开发者望而却步。2023-07-05 17:21:112
如何在VxWorks中添加应用程序
如何在VxWorks中添加应用程序1、直接调用肯定是不行的,首先CPU架构就不是一类的,嵌入式的软件多使用ARM或PowerPC等RISC指令集的CPU,但是如果你有源代码的话,可以在vxworks的编译环境中重新编译一下就行了,一般使用两个重要参数CPU=你的CPU类型如PPC32,TOOS=gnu等。2、vxworks与无操作系统的单片机不同,首先你的程序能跑起来,说明vxworks操作系统已经正常运行并控制你的程序正常运行了;在这种情况下,如果你再下载一个程序进去,如果是相同的程序,有两种情况:一是你的程序是可重入的,可以运行;二是你的程序不可重入,不能正常运行。如果程序不同,应该可以正常运行。2023-07-05 17:21:181
如何搭建vxworks6.7开发环境
vxWorks开发环境构建步骤及开发资源 技创科技(Technique Innovator Inc.) www.techor.com 一、 Tornado集成开发环境构成 Tornado是集成开发环境的名称,主要由帮助及参考文档、操作系统vxWorks、开发工具(编译器、调试器、编辑器、target server等,据统计,挂接在Tornado下的可选工具和第三方有数百个)等三部分构成,分别对应三个目录: i. docs/ 所有文档都集中在该目录中, books.html是根索引,2023-07-05 17:21:271
linux和vxworks的区别
1.VxWorks 是美国 Wind River System 公司( 以下简称风河 公司 ,即 WRS 公司)推出的一个实时操作系统。Tornado 是WRS 公司推出的一套实时操作系统开发环境,类似Microsoft Visual C,但是提供了更丰富的调试、仿真环境和工具。嵌入式Vxworks系统的主要应用领域主要有以下几方面: 1.数据网络:如:以太网交换机、路由器、远程接入服务器等 2.远程通讯:如:电信用的专用分组交换机和自动呼叫分配器,蜂窝电话系统等 3.医疗设备:如:放射理疗设备 4.消费电子:如:个人数字助理等 5.交通运输:如:导航系统、高速火车控制系统等 6.工业:如:机器人 7.航空航天:如:卫星跟踪系统 8.多媒体:如:电视会议设备 9.计算机外围设备:如:X终端、I/O 系统等 总之,VxWorks的系统结构是一个相当小的微内核的层次结构。内核仅提供多任务环境、进程间通信和同步功能。这些功能模块足够支持VxWorks在较高层次所提供的丰富的性能的要求。2.Linux是一类Unix计算机操作系统的统称。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于计算机业余爱好者Linus Torvalds。Linux的应用 过去,Linux主要被用作服务器的操作系统,因为它的廉价、灵活性及Unix背景。传统上,以Linux为基础的“LAMP(Linux, Apache, MySQL, Perl/PHP/Python的组合)”技术,除了已在开发者群体中广泛流行,它亦是现时提供网站服务供应商最常使用的平台。 基于其低廉成本与高度可设置性,Linux常常被应用于嵌入式系统,例如机顶盒、移动电话及移动装置等。在移动电话上,Linux已经成为Symbian OS的主要竞争者;而在移动装置上,则成为Windows CE与Palm OS外之另一个选择。目前流行的TiVo数码摄影机使用了经过客制化后的Linux。此外,有不少硬件式的网络防火墙及路由器,例如部份LinkSys的产品,其内部都是使用Linux来驱动、并采用了操作系统提供的防火墙及路由功能。 采用Linux的超级电脑亦愈来愈多,根据2008年11月的TOP500超级电脑列表,现时世上最快速的超级电脑使用Linux作为其操作系统。而在表列的500套系统里,采用Linux为操作系统的,占了439组(即87.8%)。 2006年开始发售的SONY PlayStation 3亦可使用Linux的操作系统,它有一个能使其成为一个桌面系统的Yellow Dog Linux。之前,Sony亦曾为他们的PlayStation 2推出过一套名为PS2 Linux的DIY组件。Ubuntu自9.04版本,恢复了PPC支持(包括PlayStation 3)。 而随着OLPC的XO-1,华硕的Eee PC等低价电脑的推行,许多人乐观的认为在低端PC市场,linux的市场占有率正在快速的增长。但在Windows进入此一市场后,Linux的市占率快速下滑。现在Windows系统在所有的PC市场中,都占有绝对优势。2023-07-05 17:21:341
vxworks下如何获取网卡连接状态,即如何判断网线连接是否正常?
vxWorks下如果要获得网络的功能,需要在编译vsb project的时候打开IPv4或者IPv6的协议栈,然后编译;然后在vip project中加入网络的相关component,其中有IFCONFIG的component,然后build,启动之后的target,可以使用ifconfig或者“cmd ifconfig -a” 方式来查看vxWorks系统下网络的状态,当然也可以通过ifconfig命令来配置。2023-07-05 17:21:431
vxwork和linux的差别是什么,在应用编程方面区别大吗,请高手指教,谢谢了
嵌入式Vxworks系统的主要应用领域主要有以下几方面: 1.数据网络:如:以太网交换机、路由器、远程接入服务器等 2.远程通讯:如:电信用的专用分组交换机和自动呼叫分配器,蜂窝电话系统等 3.医疗设备:如:放射理疗设备 4.消费电子:如:个人数字助理等 5.交通运输:如:导航系统、高速火车控制系统等 6.工业:如:机器人 7.航空航天:如:卫星跟踪系统 8.多媒体:如:电视会议设备 9.计算机外围设备:如:X终端、I/O 系统等 总之,VxWorks的系统结构是一个相当小的微内核的层次结构。内核仅提供多任务环境、进程间通信和同步功能。这些功能模块足够支持VxWorks在较高层次所提供的丰富的性能的要求。2.Linux是一类Unix计算机操作系统的统称。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于计算机业余爱好者Linus Torvalds。2023-07-05 17:22:112
vxworks读空间出来为ff
vxworks读空间出来为ff是输入程序出错导致。vxworks读出是退出命令模式。i是显示任务基本信息,参数为0时显示全部任务。ti是显示任务的TCB信息。d是显示目标地址内存内容。devs是列出目标机系统上的全部设备。version是显示VxWorks版本号。2023-07-05 17:22:171
vxworks中如何创建一个文件,有没有例子
用普通的文件open()函数就可以了.#include <ioLib.h>open( )NAMEopen( ) - open a fileSYNOPSISint open ( const char * name, /* name of the file to open */ int flags, /* O_RDONLY, O_WRONLY, O_RDWR, or O_CREAT */ int mode /* mode of file to create (UNIX chmod style) */ )DESCRIPTIONThis routine opens a file for reading, writing, or updating, and returns a file descriptor for that file. The arguments to open( ) are the filename and the type of access: O_RDONLY (0) (or READ) - open for reading only. O_WRONLY (1) (or WRITE) - open for writing only. O_RDWR (2) (or UPDATE) - open for reading and writing. O_CREAT (0x0200) - create a file. In general, open( ) can only open pre-existing devices and files. However, for NFS network devices only, files can also be created with open( ) by performing a logical OR operation with O_CREAT and the flags argument. In this case, the file is created with a UNIX chmod-style file mode, as indicated with mode. For example: fd = open ("/usr/myFile", O_CREAT | O_RDWR, 0644);Only the NFS driver uses the mode argument. NOTEFor more information about situations when there are no file descriptors available, see the manual entry for iosInit( ). RETURNSA file descriptor number, or ERROR if a file name is not specified, the device does not exist, no file descriptors are available, or the driver returns ERROR. ERRNOELOOP SEE ALSOioLib, creat( ) VARARGS2 其中creat和open效果一样,他们最终调用同一个函数,最终文件保存在你设置里放vxworks的位置,比如我的就放在D:目录下了,试试看吧2023-07-05 17:22:262
vxworks信号量计数器值怎么获取
一.信号量的概念是实现任务互斥、同步操作的主要机制。VxWorks提供的信号量经过了高度优化,在所有任务间通信机制中,速度最快。二.信号量的分类Binary Semaphores(二进制):完成互斥、同步操作的最佳方式;速度最快,最常用。Mutual Exclusion Semaphores(互斥):一种特殊的二进制信号量,专门针对互斥操作进行了优化。Counting Semaphores(计数):类似于二进制信号量,可记录信号量释放的次数,可监视同一资源上的多个实例。三.Binary Semaphores(二进制信号量) Task经常会等待事件或需获取资源。查询(polling)在RealTime系统中原则上不允许,最好采用Pending,等待事件或资源。状态图:说明:1.为某个资源调用semBCreate()创建一个binary semaphore 并规定:SEM_Full (资源可用) SEM_Empty (资源不可用).2.资源不可用时Task调用semTake()进入Pending直到semaphore被Given相关函数:[c-sharp] view plaincopySEM_ID semBCreate ( int options, /* semaphore options */ SEM_B_STATE initialState /* initial semaphore state */ ) STATUS semTake ( SEM_ID semId, /* 需要获取的信号量ID */ int timeout /* 超时时间(tick)/no-wait/forever */ ) ISR(中断服务程序)不能调用semTake()操作![c-sharp] view plaincopySTATUS semGive ( SEM_ID semId /* 需要释放的信号量ID */ ) [c-sharp] view plaincopysemFlush() 应用方向:1.互斥操作:是指不同任务可以利用信号量互斥地访问临界资源。这种互斥的访问方式比中断禁止(interrupt disable) 与优先级锁定(preemptive locks)两种互斥方式具有更加精确的粒度。互斥操作时初始状态设为(SEM_FULL)可用。并在同一个Task中成对、顺序调用semTake()、semGive()。2.同步操作:是指一个任务可以利用信号量控制自己的执行进度,使自己同步于一组外部事件。同步操作时初始状态设为(SEM_EMPTY)不可用。在不同Task中分别单独调用semTake()、semGive()。四.Mutual Exclusion Semaphores(互斥信号量) 互斥信号量是一种特殊的二进制信号量,它是针对使用二进制信号量进行互斥操作时存在的一些问题设计的。互斥信号量主要增加了对优先级倒置、删除安全以及递归访问的处理。状态图:相关函数:[c-sharp] view plaincopySEM_ID semMCreate ( int options /* mutex semaphore options */ ) 区别:1.互斥信号量只能用于互斥操作。2.只能由已经获取了互斥信号量的任务去释放它。3.中断服务程序(ISR)不可以释放(semGive())互斥信号量。4.互斥信号量不支持semFlush()操作。应用方向:1.避免优先级倒置(Priority Inversion):在上图中,task2等待task1的资源,于是处于Pend状态,这时一个中等优先级的task进来,并抢占了task1的CPU,此时的表现是低优先级task在高优先级的task2前执行。这种现象就是先级倒置。使用semId = semMCreate(SEM_Q_PRIORITY | SEM_INVERSION_SAFE);就可以避免倒置。此时,task1的优先级提升与task2一样,至到task2执行完成。SEM_INVERSION_SAFE不能与SEM_Q_FIFO配对!2.Deletion Safety(安全删除)使用:semId = semMCreate(SEM_Q_FIFO | SEM_DELETE_SAFE);可以实现安全删除。其实质是:在Task对互斥信号量执行semTake()操作并成功占有该信号量之前,隐含执行了taskSafe()操作;在执行semGive()操作之后,隐含执行taskUnsafe()操作。如果一个任务task1试图删除一个已经被保护起来的任务task2,task1则将被阻塞起来,直到task2解除保护(释放掉具有删除保护的互斥信号量)才能完成删除工作。3.递归访问[c-sharp] view plaincopyInitFun() { sem_ID = semMCreate(…); } funB() { semTake(sem_ID, SEM_FOREVER); /*访问临界资源*/ semGive(sem_ID); } funA() { semTake(sem_ID, SEM_FOREVER); /*访问临界资源*/ funB(); //递归访问, 而不会死锁 semGive(sem_ID); } 五.Counting Semaphores(计数信号量)计数信号量与二进制信号量都可以用于任务之间的同步与互斥。其不同点在于,计数信号量可记录信号量释放的次数,可以用来监视某一资源的使用状况。2023-07-05 17:22:451
请教vxworks读写文件
用系统自带的ring buffer,把数据扔进去,等到必要的时候将数据读出来上传host2. 建立虚拟内存盘,绑接dos文件系统,直接用标准io接口读写文件,使用dos命令给传到host上3. 通过ftp网络直接读写host目录4. 通过tgtsvr file system读写host目录2023-07-05 17:22:521
如何区分路由器系统是VxWorks还是Linux
tplink的路由器,低端一般都是vxwork的系统,占用低,实时性高,优势主要是占用空间低,搭配的硬件成本就会下降;至于说那个好,如果比专用功能,当然是vxwork更强大,而linux的优势极大的扩展性和资源支持,市面上的一般中高端路由器都是linux为主。且不论系统,这个和用户也关系不大,tp-link家用路由器并没有很多的功能;wdr6500采用的芯片性能比wdr5660高一档次,无线性能强不少,供参考。长远考虑建议楼主看看wdr6500千兆版,千兆端口更适合目前100m及以上的宽带。2023-07-05 17:23:012
vxworks在boot下怎么启动
这是vxworks的引导程序,进入系统有两种方法。1,通过硬盘启或CF卡启或FLASH启动,在[vxworks boot]:后输入 o (是欧不是零)回车2,通过网络加载的话用 :@ 回车如果不行的话只能向中兴要密码了。2023-07-05 17:23:091
vxworks网关配置函数怎么用
按照我们的做法,我们会将VXWORKS的IP设置在BSP的引导线中,这就和BSP的设计相关了。但是最终是调用一个ifAddrSet()来实现ipaddress和interface的绑定,同时需要指定netmask通过调用ifMaskSet( ) 。在windows下是可以ping通vxworks的。需要注意的是,pc 和vxworks属于同一网段,如果不在同一网段,需要添加路由。2023-07-05 17:23:171
如何在VxWorks启动时自动运行自己的程序
在VxWorks启动时自动运行自己的程序方法: 方法一: 右击任务栏空白处-属性-自定义-勾选“启用拖放” ; 左键拖动程序执行文件(.exe,.bat...)的快捷方式,到左下角的开始,不要松鼠标;等菜单弹出,仍然不要松鼠标,移动鼠标到所有程序-启动-空内,松开鼠标 。就可以了。 方法二: 打开C:Documents and Settings你的用户名「开始」菜单程序启动,将可执行文件的快捷方式拷贝到这里就可以了。2023-07-05 17:23:241
vxworks上用logMsg打印出现task dead情况怎么解决
设置这个任务的输出端口到你的某个中断,比如到串口显示,但系统的bootrom中必须已经配置了串口2023-07-05 17:23:432
在VxWorks中怎样加载.out文件
TextField的支持flash CSS和一些HTML标签,这样你就可以通过设置可以在HTML显示可以实现相应的CSS闪存加载文本框HTML文件的内容。但文本字段不支持所有HTML标签,所以不支持的标签可能不会像表演的浏览器。 具体做法是创建一个文本框,设置它的CSS,HTML文件,然后再加载XML对象,最后将XML作为它的文本框的htmlText属性。2023-07-05 17:23:501
vxworks下怎么建立文件
用普通的文件open()函数就可以了.#include <ioLib.h>open( )NAMEopen( ) - open a fileSYNOPSISint open ( const char * name, /* name of the file to open */ int flags, /* O_RDONLY, O_WRONLY, O_RDWR, or O_CREAT */ int mode /* mode of file to create (UNIX chmod style) */ )DESCRIPTIONThis routine opens a file for reading, writing, or updating, and returns a file descriptor for that file. The arguments to open( ) are the filename and the type of access: O_RDONLY (0) (or READ) - open for reading only. O_WRONLY (1) (or WRITE) - open for writing only. O_RDWR (2) (or UPDATE) - open for reading and writing. O_CREAT (0x0200) - create a file. In general, open( ) can only open pre-existing devices and files. However, for NFS network devices only, files can also be created with open( ) by performing a logical OR operation with O_CREAT and the flags argument. In this case, the file is created with a UNIX chmod-style file mode, as indicated with mode. For example: fd = open ("/usr/myFile", O_CREAT | O_RDWR, 0644);Only the NFS driver uses the mode argument. NOTEFor more information about situations when there are no file descriptors available, see the manual entry for iosInit( ). RETURNSA file descriptor number, or ERROR if a file name is not specified, the device does not exist, no file descriptors are available, or the driver returns ERROR. ERRNOELOOP SEE ALSOioLib, creat( ) VARARGS2 其中creat和open效果一样,他们最终调用同一个函数,最终文件保存在你设置里放vxworks的位置,比如我的就放在D:目录下了,试试看吧2023-07-05 17:23:591
Linux,vxworks,wince嵌入式有什么区别和联系?
linux,vxworks,wince均是可以用于嵌入式领域的操作系统,其功能跟PC上的windowsxp之类的作用类似,均是为了方便管理硬件和软件而使用的。而ARM,是一家公司的名称,也是一大类型微控制器/微处理器的统称(均是以ARM公司提供的CPU核为基础开发)。在ARM之外,还有MIPS,PowerPC等几种类型的CPU用在嵌入式领域,你可以把它们看作是PC平台的CPU,只是它们的使用领域不是桌面电脑而已,并集成了很多功能模块。所以你的问题的回答:1,有脱离ARM的,比如说在MIPS上开发做产品,也是属于嵌入式,嵌入式LINUX可以移植到MIPS上;WINCE和VXWORKS也是一样。为什么我们听说ARM会比较多,那是因为它的推广工作做得好,价格功耗有优势,国际上的知名的半导体大厂都有使用了ARM内核的产品,所以可以说是百花齐放的一个程度。2,嵌入式开发基本上使用C,也可以用C++但很少用。在涉及到底层(硬件)部分,有需要用到少量的汇编(当然汇编格式与所使用的CPU类型有关).3,在这个问题里,ARM是一个CPU,一个产品除了CPU外,还有别的部件,比如说温度传感器,各种通讯接口,这些都是硬件的东西,是实实在在的芯片构成的。假如这个产品不复杂,但又用了ARM,一样可以不使用操作系统,直接用普通写法的程序去控制硬件(业内通俗说法叫:裸奔);但是当这个产品的功能很复杂,又用了以太网,又用了界面,又用了很多高级的硬件,比如说智能手机,那么它就需要一个嵌入式的操作系统去控制手机,这样对于手机来说,产品的开发速度会加快,而且维护也相对容易,改进时的修改工作量也较少。你在市面上见到的大部分智能手机都是基于WINDOWSMOBILE系统的,当然NOKIA的SYMBIAN也属于嵌入式操作系统,只是其是专用于手机,还有少部分的智能手机比如MOTO的部分智能手机就是用的嵌入式LINUX的系统。所以,对于一个较复杂的产品,工程师是各司其职,有专门负责硬件电路部分的,有专门去修改操作系统的驱动的,有专门去编写上层的应用软件的,这样就有了嵌入式硬件工程师,嵌入式软件工程师之分了,很多中小公司很多工作都是一人做完的,所以分类就不是那么细了。4,这个问题3中已经回答了一部分,跑上操作系统的,基本上都是你说的那样划分的,因为每一部分的工作都比较复杂,所以最好专人负责各自的部分,这样项目进度才能保证.其实你问的这些,书上网上都有的,搜一搜就有了~~~~2023-07-05 17:24:083
嵌入式操作系统学linux vxworks哪个好?
学习嵌入式操作系统,我个人建议还是linux入手比较好,我从事这个电子产品开发和推广领域已经8年了,每年我们公司去招聘会招聘新人的时候,前后左右的公司在嵌入式岗位的要求上9成以上是要求有linux基础,但是正如楼上的仁兄说的 C 是最基础的东西,我们公司的招聘考试题目80%是有关C的题目,呵呵说远了。linux的资料比较多,虽然学起来比较慢一些,但是懂的人也较多,资料也比较丰富,你可以得到的帮助也比较多。所以还是建议从linux开始吧。另外你说“听说,linux是免费的,vxworks 是收费的”这个概念是这样,linux的开源是指它的kernel是全开源,而vxworks的kernel是要求缴纳授权金的,公司使用vxworks开发产品是要交钱的,所以才有盗版的出现。但是目前国际经济不景气,非常多的软件公司开始查盗版,然后起诉使用盗版的公司用以获得高额罚金。非常不幸我的部门就被查了1起,刚交了35W,晕死~~2023-07-05 17:24:183
vxworks是开源的吗?
VxWorks不是开源的,其内核代码由风河公司自己维护。无法由用户自行更改。但是BSP,各种硬件驱动等都是开源的,可以通过购买获取。2023-07-05 17:24:262
如何与已装载vxworks的目标机建立连接
使用target server连接。前提:1.你的vxworks在编译前加载了wdb组件2.你的bsp设置了wdb 链接为串口或者网口3.你的host上有wdb工具,tornado和workbench都自带。2023-07-05 17:24:331
vxworks6.8如何卸载
正常情况下,通过控制面板或开始程序都是可以顺利完成卸载的。但如果个别软件在这里无法按成卸载,建议你可以试试下个腾讯电脑管家。该软件提供强力卸载及深度清理工具,可以帮你将软件和相关卸载残留进行卸载及清除。打开腾讯电脑管家~~~~工具箱~~~~软件卸载~~~~强力删除打开腾讯电脑管家~~~~工具箱~~~~清理垃圾/注册表垃圾2023-07-05 17:24:471
vxworks 符号表有大小限制吗
符号表是没有大小限制的。 符号表初始方式有build-in和downloaded两种方式,使用内建符号表时,符号时Vxworks程序映像的一部分;下载符号表则和VxWorks映像分离,由目标机单独下载Sym文件获得符号。若使用下载符号表,使用主机工具xsym,生成符号模块文件VxWorks.sym,该文件和普通目标模块一样,只是没有data和bss段,下载到目标机后,和普通目标模块一样动态加载,模块中的符号会添加到系统符号表。 目标机符号表时完成动态加载、连接,以及调试的辅助机制,映像有没有符号表都不影响程序正常运行,调试时,只要不从目标机上动态加载目标模块,程序映像符号都静态连接解析,目标机上也可以没有符号,主机开发工具都使用主机符号表tgtSymTbl来完成交叉调试。2023-07-05 17:25:001
什么是VxWorks
vxworksVxWorks 是美国 Wind River System 公司( 以下简称风河 公司 ,即 WRS 公司)推出的一个实时操作系统。Tornado 是WRS 公司推出的一套实时操作系统开发环境,类似Microsoft Visual C,但是提供了更丰富的调试、防真环境和工具。 VxWorks操作系统有以下部件组成: uf0d8 内核(wind): uf0d8 多任务调度(采用基于优先级抢占方式,同时支持同优先级任务间的分时间片调度) uf0d8 任务间的同步 uf0d8 进程间通信机制 uf0d8 中断处理 uf0d8 定时器和内存管理机制 uf0d8 I/O 系统 VxWorks 提供了一个快速灵活的与 ANSI C 兼容的 I/O 系统,包括 UNIX 标准的Basic I/O(creat(), remove(), open(),close(), read(), write(), and ioctl().),Buffer I/O (fopen(), fclose(), fread(), fwrite(), getc(), putc()) 以及POSIX 标准的异步 I/O。VxWorks 包括以下驱动程序:网络驱动、管道驱动、RAM盘驱动、SCSI驱动、键盘驱动、显示驱动、磁盘驱动、并口驱动等 uf0d8 文件系统 支持四种文件系统: dosFs,rt11Fs,rawFs 和 tapeFs 支持在一个单独的 VxWorks 系统上同时并存几个不同的文件系统。 uf0d8 板级支持包 BSP(Board Support Package) 板级支持包向VxWorks操作系统提供了对各种板子的硬件功能操作的统一的软件接口,它是保证VxWorks操作系统可移植性的关键,它包括硬件初始化、中断的产生和处理、硬件时钟和计时器管理、局域和总线内存地址映射、内存分配等等。 每个板级支持包括一个 ROM 启动(Boot ROM)或其它启动机制。 uf0d8 网络支持: 它提供了对其它VxWorks系统和TCP/IP 网络系统的"透明"访问,包括与BSD套接字兼容的编程接口,远程过程调用(RPC),SNMP(可选项),远程文件访问(包括客户端和服务端的NFS机制以及使用RSH,FTP 或 TFTP的非NFS机制)以及BOOTP 和代理ARP、DHCP、DNS、OSPF、RIP。无论是松耦合的串行线路、标准的以太网连接还是紧耦合的利用共享内存的背板总线,所有的 VxWorks 网络机制都遵循标准的 Internet 协议。 uf0d8 系列网络产品: uf0fc WindNet SNMP uf0fc WindNet STREAMS uf0fc WindNet 第三方产品,包括 OSI、SS7、ATM、Frame Relay、CORBA、ISDN、X.25、 uf0fc CMIP/GDMO、分布式网络管理等。 这些产品扩展了VxWorks的网络特性,并增强了嵌入式处理器的网络特性 uf0d8 虚拟内存( VxVMI)与共享内存(VxMP) VxVMI 为带有 MMU 的目标板提供了虚拟内存机制。 VxMP 提供了共享信号量,消息队列和在不同处理器之间的共享内存区域。 uf0d8 目标代理(Target Agent) 目标代理遵循 WBD(Wind Debug)协议,允许目标机与主机上的 Tornado 开发工具相连。在目标代理的缺省设置中,目标代理是以 VxWorks 的一个任务tWdbTask 的形式运行的。 Tornado 目标服务器(Target Server)向目标代理发送调试请求。调试请求通常决定目标代理对系统中其它任务的控制和处理。缺省状态下,目标服务器与目标代理通过网络进行通信,但是用户也可以改变通信方式。 uf0d8 实用库 VxWorks 提供了一个实用例程的扩展集,包括中断处理、看门狗定时器、消息登录、 内存分配、字符扫描、线缓冲和环缓冲管理、链表管理和 ANSI C 标准。 uf0d8 基于目标机的工具 在 Tornado 开发系统中,开发工具是驻留在主机上的。但是也可以根据需要将基于目标机的Shell 和装载卸载模块加入 VxWorks。 总之,VxWorks的系统结构是一个相当小的微内核的层次结构。内核仅提供多任务环境、进程间通信和同步功能。这些功能模块足够支持VxWorks在较高层次所提供的丰富的性能的要求。2023-07-05 17:25:192
Vxworks上编写的嵌入式应用程序可以调用Windows生成的lib或者dll吗
1、直接调用肯定是不行的,首先CPU架构就不是一类的,嵌入式的软件多使用ARM或PowerPC等RISC指令集的CPU,但是如果你有源代码的话,可以在vxworks的编译环境中重新编译一下就行了,一般使用两个重要参数CPU=你的CPU类型如PPC32,TOOS=gnu等。2、vxworks与无操作系统的单片机不同,首先你的程序能跑起来,说明vxworks操作系统已经正常运行并控制你的程序正常运行了;在这种情况下,如果你再下载一个程序进去,如果是相同的程序,有两种情况:一是你的程序是可重入的,可以运行;二是你的程序不可重入,不能正常运行。如果程序不同,应该可以正常运行。2023-07-05 17:25:281
vxworks 6.8/6.9怎么配置FTP Server
ftp服务器在vxworks6.8下面的配置1. 选择"Network Components"->"Network Applications"->"FTP components"->"FTP Server"组件。2. "FTP initial directory"项,必须设置为有效的文件目录,比如"/nand"。 在vxworks启动时,这个目录必须要在usrAppInit里面自动加载。3. 如果不需要密码认证,设置"Install FTP server callback routine"为TRUE,编写以下空函数: int ftps_auth_func(void *session, char *password) { return 0; } 并设置"Authentication callback routine"为ftps_auth_func。4. 如果需要密码认证,选择"Network Authentication Components"->"IPCOM authentication configurations"组件,并选择至少一组"Auth configuration"项。 "user name" 设置用户名,比如"ftp"。 "Password" 设置密码,比如"123456"。 注意,填写以上数值时,输入框里面的内容必须加双引号。 在这里设置的用户密码项,在其他需要认证的服务里也可以用,比如telnet server。2023-07-05 17:25:371
vxworks m命令使用方法
输入m命令选择对象,指定基点,鼠标往需要移动对象的方向移动一下,输入需要移动的距离就可以了。什么是命令? 命令就是必须强制执行。具体的内容和事项有命令下达者说明,也就是执行具体的事项,也叫做任务。2023-07-05 17:25:431
VxWorks在x86下开发环境的建立及启动
工具用tornado(vxworks5.5)或workbench(vxworks6.0)forX86版交叉开发环境工具会生成bootrom类似于windows"sbios和vxworks映像。bootrom放在nvrom里,vxworkimage放在flash,CFcard,or本机(通过网口下载)启动时,先运行,bootrom,再把vxworks加载进来就OK了。2023-07-05 17:25:501
VxWorks中的任务状态 “pend”和“suspend”有什么区别
操作系统中挂起和阻塞的区别如下:一:挂起是一种主动行为,因此恢复也应该要主动完成,而阻塞则是一种被动行为,是在等待事件或资源时任务的表现,你不知道他什么时候被阻塞(pend),也就不能确切的知道他什么时候恢复阻塞。而且挂起队列在操作系统里可以看成一个,而阻塞队列则是不同的事件或资源(如信号量)就有自己的队列;二:阻塞(pend)就是任务释放CPU,其他任务可以运行,一般在等待某种资源或信号量的时候出现。挂起(suspend)不释放CPU,如果任务优先级高就永远轮不到其他任务运行,一般挂起用于程序调试中的条件中断,当出现某个条件的情况下挂起,然后进行单步调试;三:pend是task主动去等一个事件,或消息.suspend是直接悬挂task,以后这个task和你没任何关系,任何task间的通信或者同步都和这个suspendedtask没任何关系了,除非你resumetask;四:任务调度是操作系统来实现的,任务调度时,直接忽略挂起状态的任务,但是会顾及处于pend下的任务,当pend下的任务等待的资源就绪后,就可以转为ready了。ready只需要等待CPU时间,当然,任务调度也占用开销,但是不大,可以忽略。可以这样理解,只要是挂起状态,操作系统就不在管理这个任务了;五:挂起是主动的,一般需要用挂起函数进行操作,若没有resume的动作,则此任务一直不会ready。而阻塞是因为资源被其他任务抢占而处于休眠态。两者的表现方式都是从就绪态里“清掉”,即对应标志位清零,只不过实现方式不一样。2023-07-05 17:25:561
vxworks 下怎样将网卡设置为混杂模式vxworks 下怎样将网卡设置为混杂模式? 我想利用vxworks编程实现将网卡
先根据接口名称获取接口End和pcookie;这步细节要看手册。然后:END_FLAGS_SET (gEnd, IFF_PROMISC);END_FLAGS_SET (gEnd, IFF_MULTICAST);muxIoctl (pcookie, EIOCSFLAGS, 0);2023-07-05 17:26:052
vxworks下如何检测是否网络连接
vxWorks下如果要获得网络的功能,需要在编译vsb project的时候打开IPv4或者IPv6的协议栈,然后编译;然后在vip project中加入网络的相关component,其中有IFCONFIG的component,然后build,启动之后的target,可以使用ifconfig或者“cmd ifconfig -a” 方式来查看vxWorks系统下网络的状态,当然也可以通过ifconfig命令来配置。2023-07-05 17:26:111
vxworks下怎么查看任务的内存使用
运行方式 1、rtpSp "/ata0a/RTPtest2.vxe"(shell或超级终端)或rtpSp"/ata0a/RTPtest2.vxe "100" "0x10000"" 2、应用程序(工程类型downloadable kernel project) const char * argv[] = {"/ata0a/RTPtest.vxe", NULL}; rtpSpawn (argv[0], argv, NULL, 100, 0x10000, 0, 0);2023-07-05 17:26:181
路由器系统vxworks和linux哪个好
tplink的路由器,低端一般都是vxwork的系统,占用低,实时性高,优势主要是占用空间低,搭配的硬件成本就会下降;至于说那个好,如果比专用功能,当然是vxwork更强大,而linux的优势极大的扩展性和资源支持,市面上的一般中高端路由器都是linux为主。且不论系统,这个和用户也关系不大,tp-link家用路由器并没有很多的功能;WDR6500采用的芯片性能比WDR5660高一档次,无线性能强不少,供参考。长远考虑建议楼主看看WDR6500千兆版,千兆端口更适合目前100M及以上的宽带。2023-07-05 17:26:262
vxworks文件系统中XBD和CBIO的区别
XBD是vxworks中新的块设备驱动支持库,用于替代旧的CBIO支持库如要兼容旧的CBIO,需要加上INCLUDE_XBD_BLK_DEV2023-07-05 17:26:471
如何配置vxworks内核的wdb
使用target server连接前提: 1.vxworks编译前加载wdb组件 2.bsp设置wdb 链接串口或者网口 3.hostwdb工具tornadoworkbench都自带 支持任务优先级间片轮询即任务按优先级类优先级高任务优先执行优先级相同候按照间片轮换执行CPU频率高于咱用户所...2023-07-05 17:26:541