《VxWorks学习笔记》——实时系统

本文深入探讨了实时系统及其硬件、实时操作系统、实时多任务设计的关键概念,同时对比了操作系统内核的三种主要结构类型:整体式内核、层次式内核和微内核,以及它们在地址空间管理上的差异,以VxWorks的Wind微内核为例,展示了单一实地址空间模式的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、   实时系统

1.1、  实时硬件系统:同时响应外部事件数量,硬件反应时间,内存大小,处理器计算能力,总线能力等。

1.2、  实时操作系统:可抢占的内核,可抢占的优先级调度,中断优先级,中断可嵌套,系统服务的优先级由请求该服务的任务的优先级确定,优先级翻转保护,前述实时操作系统性能指标具有固定上界。

1.3、  实时多任务设计

1.3.1、     多任务划分:如何将整个系统功能设计为多个任务来实现,任务之间采用怎样的耦合关系,划分的粒度问题等。

1.3.2、     多任务分配:在分布式或网络环境下,决定任务放在哪个处理器上完成。

1.3.3、     多任务调度:目标是让关键任务得到实时响应,同时整体上所有任务都在允许的时间内完成。包括调度策略的选择,任务优先级的确定,以及任务间竞争合作的设计。

2、   操作系统内核结构

2.1、  整体式内核:操作系统功能由一系列模块堆叠而成,模块间可任意调用。不进行数据封装和隐藏,效率高但难以扩展和升级。(如:CP/M,MS-DOS)

2.2、  层次式内核:将模块功能划分为不同层次,下层模块封装内部细节,上层模块调用下层模块提供的接口。结构简单,易于调试和扩展。(如:Unix,Linux,VAX/VMS,MULTICS等)。整体式和层次式结构的内核都包含了许多将其用于各种可能领域时的功能,统称为宏内核。以至可以认为内核本身就是完整的操作系统。

2.3、  微内核:将很多通用操作的功能从内核中分离出来,内核非常小但效率很高,常用于嵌入式操作系统。

3、   操作系统内核地址空间

3.1、  受保护的虚地址空间:任务独立运行,不收其它任务错误影响,系统可靠性高。

3.2、  无保护的单一实地址空间:任务切换时不需要进行虚拟地址空间转换,任务间可以直接共享数据结构。

VxWorks操作系统的wind微内核采用单一实地址空间模式,所有任务在同一地址空间运行,不区分核心态和用户态。

个人前几年学习Vxworks时,整理的笔记,总给大家了。 1 基于硬盘启动的Vxworks环境搭建 3 2 Vxworks引导盘制作 6 2.1 通过DOS加载VxWorks方法 6 2.2 Bootrom三种类型 7 2.3 VxWorks映象 7 2.4 Bootrom.sys最快制作方法 8 2.5 从网络引导 8 2.6 从本地硬盘引导 9 2.7 制作bootrom文件 9 2.8 Bootrom编译步骤 11 2.9 用BSP生成Bootable工程(即我们的程序文件) 12 2.10 FTP Server下载VxWorks 14 3 Tornado调试环境的建立 17 3.1.1 配置文件config.h 17 3.1.2 网络连接 18 6 从主机搭接(attach)到目标机 21 7.1.3 串口连接 21 4 4.Config.h文件注释说明 22 4.1 启动行说明 #define DEFAULT_BOOT_LINE \: 22 4.2 Config.h 文件说明 23 4.3 启动参数结构体 BOOT_PARAMS 35 4.4 booting过程介绍,比较详细 38 5 sysClkRateGet();返回系统时钟每秒的tick数量, tick详解 43 6 中断应用设计要点 44 7 驱动程序设计 49 8 缩短vxworks的启动时间 51 9 调试篇 54 10 驱动编程步骤 54 10.1 将驱动程序增加到“系统驱动程序列表”中 54 10.2 将设备增加到“系统设备列表”中 55 10.3 打开设备,得到文件描述符 55 10.4 SELECT机制的使用 55 10.4.1 select( )函数翻译 57 11 VxWorks系统的网络驱动(END) 60 12 VXworks操作系统中信号量用于多任务同步与互斥的讨论 62 12.1 二进制信号量实现互斥和同步 64 12.1.1 互斥的实现: 64 12.1.2 同步的实现: 65 12.2 互斥信号量 67 13 Tornado的文件目说明录 68 14 Shell 内置命令说明 72 14.1 任务管理 72 14.2 任务状态信息 72 14.3 系统修改和调试 73 14.4 对象命令( WindSh Commands for Object Display ) 73 14.5 WindShell and Browser, Shell 命令 74 15 驱动篇 81 16 中断篇 83 16.1 中断服务程序ISR编写注意事项 83 16.2 中断号与中断向量的转换 83 16.3 安装中断服务程序 intConnect() 83 16.4 调试中断服务程序方法 84 17 mkboot批处理命令详细解释 84 18 MakeFile 说明 85 19 VxWorks5.4中的输入输出重定向 89 19.1 vxworks屏幕输出, 一般来说用printf都是串口/shell输出,串口输出就可以到屏幕上了? 89 19.2 20.2 VxWorks中针对X86开发时标准输入输出的重定向? 90 20 怎样加入外部.o文件? 92 21 如何在Vxworks中使用 cd ,pwd , ls 命令:启用File System and Disk Utilities组件(INCLUDE_DISK_UTIL),可在shell下用pwd/cd/ls等命令 93 22 Error: image is larger than 524288 bytes 94 23 proxyArpDefaultOn()未定义解决方法? 94 24 如何将VxWorks的系统定时间隔或系统Ticks设置为1ms????? 95 25 read/write、fread/fwrite、fopen/open有什么区别 96 26 快速启动??????????????? 100 27 启动时报ATA0a和硬盘启动相关问题 100 28 如何安装USB2.2新版本及编译USB驱动? 101 29 WindML、图形界面相关问题 102 29.1 WindML,ugldemo出错? 102 29.2 5101 VxWorks黑屏问题? 102 29.3 添加ugldemo.c后,编译报undefined reference to “ugltextdraw” 错误一大堆? 102 29.4 WindML 中文字库显示? 103 30 VxWork6.8相关问题 105 30.1 ELF和bin文件的区别? 105 30.2 diab和GNU的区别? 106 31 No such file or directory错误? 107
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值