📄 csdn技术中心 vxworks编程指导-3.txt
字号:
下面的共享内存对象(可选组件VxMP提供)是用来在不同处理器上的任务间进行通信和同步用的。
l 共享信号量是用来同步不同处理器上任务的,同时也可以用作它们对共享数据结构的互斥访问。
l 共享消息对列是用来在不同处理器上任务之间传递消息。
l 共享内存管理是用来为不同处理器上的任务分配公共的内存空间。
1.6. 运行在目标机上的工具程序
在Tornado开发系统中,在主机上安装和执行整套的开发工具,详情参见Tornado用户指导。并且目标机上运行的外壳程序,符号表,模块上下载工具也可被配置入VxWorks系统中,例如创建动态配置的VxWorks运行系统。
1.7. C++开发支持
VxWorks支持C++开发,Tornado随带GNU的C++编译器。Tornado编译器提供可重入的异常处理。Tornado包含一新版的iostream库和SGI实现的标准模板库。Tornado的交互式开发工具调试器,外壳,和渐增模块加载工具都包含了对C++的支持。
而且你可以选购组件WIND基础类。WIND基础类包含下面的C++库。
VxWorks包装类
Rogue Wave的Tool.h++库
1.8. 工具库
VxWorks为应用开发者提供了常用用途的子函数。这些函数被组织为如下所描述的子函数库。我们希望你在开发过程中尽可能利用这些子函数。利用这些函数库既可以减少开发时间又可以减少应用的内存需求。
1.9. 中断处理支持
VxWorks提供处理硬件中断和软件陷阱的函数,不一定需要求助于汇编语言。VxWorks里有连接C函数到硬件中断向量和操纵处理器中断级别的函数。
1.10. 看门狗定时器
定时器可以让用户在指定时间间隔后重复执行自定义的C函数。当指定时间间隔过去后,超时函数在系统时钟的中断级被调用直到定时器被取消。定时器机制完全不同于内核的时延机制。
1.11. 消息LOG
VxWorks提供了简单消息LOG机制,可以让应用发送错误和状态消息到一专门LOG的任务,这一任务将该消息格式化并输出到系统里的LOG设备(譬如向系统控制台,磁盘,内存)。消息LOG机制可以在任务级或中断级使用。
1.12. 内存分配
VxWorks提供内存管理机制。内存动态分配,释放,在内存池重新分配一块内存。内存管理方案是一十分通用的方案,允许VxWorks管理多个独立的内存池。
1.13. 字符串格式化和扫描
VxWorks包含完整的字符串格式化和扫描的ANSI-C函数集。实现prinf()/scanf()基于格式化的编解码以及相关联的函数。
1.14. 线性和环形缓冲操作
bLib库包含象拷贝,填充,比较等的缓冲操作函数,这些函数在执行速度上都得到了优化。ringLib库包含常用的管理先进先出环形缓冲的函数,而且可以让一个读内存的任务和一个写内存的任务“同时”访问内存而不需要互锁内存访问权限。
1.15. 链表操作
lstLib库包含创建和所有操作双链表的函数。
1.16. ANSI C库
VxWorks提供ANSI X3.159-1989标准规定的所有C库。ANSI C定义了如下的库:assert, ctype,
errno, float, limits, locale, math, setjmp, signal, stdarg, stdio,
stddef, stdlib, string, 和 time.
头文件float.h, limits.h, errno.h, 和 stddef.h给出了ANSI
C规定的申明和定义。下面列出了常用的库:
ansiCtype 字符操作的函数库。
ansiMath 三角函数,指数函数,对数函数。
ansiSetjmp 实现远程转移的函数库。
ansiStdarg 遍历不定长参数列表。
ansiStdio 输入输出流操作函数。
ansiStdlib 包括很多类型的函数,象类型转换,内存分配,和随机数产生函数。
sigLib 信号操作函数。
1.17. 性能估计
对VxWorks或应用的函数进行计时对了解和优化实时系统的性能是非常有用的。VxWorks提供了很多计时机制来帮助估计实时系统的性能。
VxWorks计时器可以对任何函数获一组函数的执行进行计时。因为系统时钟中断太缓慢而不能为快速执行的函数提供必须的时间精度。可以对一组函数进行多次重复计时直到一次的执行时间在合理的精度范围内。关于执行计时,详情参见timexLib.
VxWorks提供了spy工具。Spy工具可以提供每个任务的CPU使用时间,在中断级的CPU使用时间,空闲时间。时间以百分比或以毫秒显示出来。关于spy工具详情参见spyLib.
监测VxWorks系统功能更强大的工具是WindView,详情参见WindView用户指导。
1.18. 目标机代理
目标机代理遵照WDB协议,允许Tornado开发工具和VxWorks目标机连接。目标机代理是以tWdbTask任务的形式运行。Tornado目标机服务器发送调试请求到目标机代理。目标机代理根据调试请求信息控制和操纵VxWorks系统中的其它任务。
默认情况下,目标机代理和服务器通过网络通信。然而,你可以利用其它的可供选择的通信路径。关于默认配置和可选择的配置详情参见Tornado用户指导。
1.19. 板支持包
sysLib和sysALib是和目标机相关的库。这些库是VxWorks可移植的关键。他们为所有板的硬件功能提供了一致的软件接口。主要包括硬件初始化,中断处理和触发,硬件时钟管理,本地内存空间和总线内存空间的映射,内存排列等。
板支持包(BSP)包含启动ROM和其它启动方式。大部分都是从开发主机上导入运行映像。
1.20. VxWorks模拟器
VxWorks模拟器,VxSim,是一个模拟VxWorks目标机的程序,用作原型和测试环境。集成的VxSim允许运行一个模拟器。选购的VxSim加入了网络支持,允许模拟器利用网络工具通过Internet地址和主机通信(网络上的其它结点)。
VxSim是VxWorks的一个很重要的解决方案,在很多情况下,VxSim与运行在远端目标机上的真正的VxWorks系统具有一致的功能。你可以链入应用,重编VxWorks核,就象在其它的VxWorks跨平台开发环境中一样。所有的Tornado开发工具对VxSim同样适用。
VxSim与运行在目标机上的VxWorks的不同之处是:运行在主机上的VxSim是作为主机的一个进程。因为代码是在主机自己的CPU体系结构中,所以VxSim不能仿真指令。因为不能与目标机的硬件交互,所以VxSim不适合模拟开发设备驱动程序。然而VxWorks的任务调度在VxSim进程中实现了,是真正的基于优先级的抢占式任务调度。这意味着以可移植方式写的VxWorks应用,如果与硬件不关联或很少关联,可以在VxSim和VxWorks目标机上的方便的移植。
1.21. 客户服务
(略)
2. OS基础
2.1. 简介
现代实时操作系统都是基于多任务和任务间通信的概念。多任务允许实时应用被设计成多个相互独立的任务,每个任务有自己的执行线索和系统资源集;任务间通信允许任务通过同步和通信来协调他们的动作。在VxWorks,任务间通信机制有快速的信号量机制,消息和管道,以及网络透明传输Socket。
实时系统里的另一重要机制是中断处理。因为中断是通知系统外部事件的常用机制,为了快速响应中断,VxWorks的中断服务程序在特殊的运行环境中运行,不同于任务的运行环境。
本章主要讨论多任务内核,任务机制,任务间通信,中断处理机制,这些VxWorks运行环境的核心所在。
2.2. WIND特性和POSIX特性
POSIX标准扩展为实时内核定义了一套接口。为了增加应用的可移植性,VxWorks内核,包括了POSIX接口和VxWorks特定接口。
本手册用Wind限定符来标识为VxWorks内核Wind设计的特有功能。例如,在相应的章节里有Wind信号量和POSIX信号量。
2.3. 任务
将应用设计成多个独立的,但是相互合作的程序是很有必要的。每个执行的程序称为任务。在VxWorks,任务对大部分系统资源有直接的,共享的存取权限。同时又维护一个足够控制任务执行线索的独立的运行环境。
作者Blog:http://blog.csdn.net/wenyong/
相关文章
SOLARIS上syslog的使用
在VxWorks平台如何计算cpu的利用率
VxWorks编程指导-3
VxWorks编程指导-2
VxWorks编程指导
对该文的评论
98440622 ( 2003-12-16)
有人知道怎么在vxworks下进行串行通信的吗?
xLoneStar ( 2002-08-27)
???
zhaoyao73 ( 2002-02-27)
Hello, do u use VxWorks? and Tornado ?
gammergr ( 2002-02-26)
望多发表此方面的文章
【评论】 【关闭】
网站简介 - 广告服务 - 网站地图 - 帮助信息 - 联系方式 - English
北京百联美达美数码科技有限公司 版权所有 京ICP证020026号
Copyright © CSDN.NET, Inc. All Rights Reserved
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -