|
源码开放的嵌入式实时操作系统T-Kernel

(点击图片可放大) |
源码开放的嵌入式实时操作系统T-Kernel
作者:[日] 坂村健 等著 周立功 等译
定价:45元
书号:7-81077-734-3
配盘:光盘
出版日期:200510
开本:787×1092 1/16开
字数:498千字
购买联系: 北航出版社 网上购书 |
| 内容简介 |
T-Kernel是源码开放的嵌入式实时操作系统内核,占据了全球嵌入式微处理器操作系统市场约60%的份额。本书从T-Kernel、T-Engine和ITRON关系及结构入手,详细介绍了T-Kernel规范、通用T-Kernel规范、T-Kernel/OS函数、T-Kernel/SM函数、T-Kernel/DS函数和TMonitor规范等内容,特别是对T-Kernel函数和使用规范进行了细致、全面的介绍。全书共分5大部分:
第1部分概要介绍了T-Engine起源以及T-Kernel、T-Engine和ITRON关系及结构;第2部分详细介绍了T-Kernel规范、通用T-Kernel规范、T-Kernel/OS函数、T-Kernel/SM函数和T-Kernel/DS函数;第3部分详细介绍了TMonitor规范和使用到的函数;第4部分为T-Engine大事记和参考文献;第5部分为T-Kernel相关函数和错误代码列表。5大部分合为一体,全面、系统地说明了T-Kernel的标准规范。
本书是学习和使用T-Kernel者的必备手册,可作为从事嵌入式系统应用开发的工程技术人员以及高等院校相关专业师生的参考用书。 |
| 前 言 |
|
迎接嵌入式系统的新时代
泛在计算技术可以把计算机芯片嵌入到人们身边的所有物品中,通过网络化连接,实时掌握这些物品的信息,从而最大程度的减轻人类的操作负荷,实现优化控制。目前,这一设想正在逐步变成现实。其实,这一概念,早在20多年前,我着手TRON工程时就曾考虑过,而今天我们所说的泛在计算,在当时则被称为“无所不在的计算机”。
这一设想的具体实现,需要我们大量开发具有高性能、高质量的嵌入式计算机产品。基于小型紧凑型嵌入式控制、实时OS标准,开发出的ITRON则成为实现这一设想的关键所在。事实上,这种ITRON技术已广泛应用于汽车引擎控制、手机、数字家电等各种设备中,为泛网时代的先锋——嵌入式系统的发展起到了巨大的推动作用。现有的嵌入式设备,在其功能朝着高性能化、复杂化和大型化方向稳步迈进的同时,也对ITRON提出了更高的发展要求。可以预见,作为嵌入式系统进化形态的泛网社会即将到来。为了进一步提高主体硬件及其所连接的外部设备的性能,为了能够充分利用这些硬件设备的处理能力提供高水平的服务,并针对不同的服务生产出个性化商品,需要我们动用互联网、GUI、多媒体、安全体系等新的要素,它们都成为这一网络体系得以实现的必要条件。
如此一来,执行这些处理的软件开发工作量也随之激增,仅软件本身的开发就需要数十人之多。另外,由于产品个性化的实现也越来越依赖于软件,而在以市场为主导的今天,新产品既要具有更加强大的功能,又要具有可以更快地投入市场的特点。而且,一旦发现产品有BUG,要进行产品回收,随之而来的则是损失数十亿资金的巨大风险。如此看来,所有嵌入式设备的软件都在本公司内部自行开发是不现实的。现在,越来越多的开发企业都在购买其他公司开发的通用软件,即中间件,并将其嵌入到本公司产品中使用。
在这种情况下,中间件的通用性就显得极为重要。以往的嵌入式设备的开发都必须使用以中间件和设备驱动程序为核心的其他公司的软件,但软件的移植费时、费力。无论是从花费的时间上来看,还是产生BUG的几率来看,结果都不甚理想。而理想的中间件最好不依存于CPU就能进行源代码互换,通过简单的重新编译就能够使用。
因此,不仅仅是ITRON已经实现的那种实时OS内核的标准化,Kernel所处的执行环境整体的标准化都十分重要。这也就是随着嵌入式设备性能的提高,必然要使用下一代ITRON——T-Kernel的原因所在。具体来说,不仅OS的功能和调用方法(API:
Application Programmers Interface)要具有兼容性,而且与设备驱动程序的I/F、开发环境等相关的功能、可使用程序库的功能等、执行对象程序所处环境的很多组成部分都必须具有通用性和兼容性。另外,全局名和编号的分配方法、程序的动态加载、MMU(Memory
Management Unit)的充分利用等,也必须制定可以同时协调执行多个独立开发程序应用的规则,并具有支持它的OS端功能。
从这个角度来看,与ITRON相比,通过大幅度扩大并深化T-Engine工程标准化的范围,还包含执行环境的硬件基本结构也要实现标准化,从而大幅度提高中间件的重复利用性和通用性。
为了不致引起误解,在这里必须强调一下,为提高中间件的通用性而对作为开发平台的T-Engine进行的“强”标准化,只限在开发阶段。在实际的产品制作中,无论是硬件产品还是软件产品,都是以基于其基本构造,删除不必要的部分,或增加所需模块,自由进行优化配置为其前提条件的。在最终产品中,只要对该设备提供充分必要的软件功能和硬件资源即可,并不需要中间件具备通用性。因此,也没有必要完全遵守T-Engine标准规范。为了与之明确区别,我们把面向最终用户开发的最终产品称为“基于T-Engine的产品”。
与之相对应,把具有开发资格的用户在开发阶段所使用的通用中间件和开发插件板等称为“T-Engine”,这一名称代表着一种基于T-Engine论坛管理规范的标准化体制。由于“基于T-Engine的产品”和“T-Engine”经常被人混淆、误解,所以在这里着重强调一下。
本书是对T-Engine标准实时核心的“T-Kernel”API进行说明的规范书。T-Kernel规范以ITRON为基础,凝聚了嵌入式应用的实时、多任务OS领域中具有20多年历史的TRON工程的成果、业绩和经验技术。实时Kernel的基本规范,是10多年前就已成熟完善的技术,没有多少修改的余地,有变动的部分基本上都是上面所提到的确保中间件通用性能的部分。
ITRON因T-Engine的发展而发生的改变,重要的不是Kernel本身的规范,而是其周边环境和执行环境的完备程度。也就是指中间件、设备驱动程序和开发环境等的标准化,只要具备这些条件即可马上使用。对于T-Engine来说,从硬件到设备驱动程序、包括中间件在内的系统整体结构都进行了标准化,在此基础上还提供了参考捆装方案。同时,T-Kernel具备同时协调执行由各个供应商独立开发的中间件和设备驱动程序等的机制。具体来说,内核部分具备目标ID编号的自动分配功能,以及实现子系统定义、资源管理、设备管理、动态加载等功能,这些功能的实现促进了中间件和设备驱动程序的通用以及交互应用的发展。需要注意的是,对于T-Engine来说,T-Kernel并不是单独存在的,而是作为总系统的一部分而存在的。T-Kernel在T-Engine工程中的定位,并不仅是单纯的实时OS内核,而且是用于为众多供应商检证开发的中间件和设备驱动程序具有兼容性和通用性而提供的一种基础核心平台。
本书是一本关于T-Kernel的规范书,虽然不是概要说明书或者入门手册,但在编辑本次修订版时,为了方便读者阅读,特别增加了对T-Engine工程进行简单介绍的“第1部分T-Engine工程和T-Kernel”和“第4部分T-Engine相关参考文献目录”。T-Engine工程涉及的范围极广,本书所介绍的内容只不过是T-Engine技术资料中微不足道的一小部分。对于T-Engine中的程序开发方法、T-Engine所用中间件等具体内容及T-Engine工程的意义和应用实例等,如果需要更加深入的了解,请阅读参考文献(http://www.T-Engine.org/_)。
希望本书能够对所有开创泛网技术新时代的技术人员有所帮助。
坂村 健
TRON工程项目负责人
T-Engine论坛会长
2005年5月
|
| 目 录 |
第1部分
T-Engine工程和T-Kernel
1 何谓T-Engine3
2 单一源化的T-Kernel和TLicense6
3 T-Engine开发组件7
4 T-Engine的系统构成9
4.1 标准开发平台T-Engine9
4.2 T-Engine的软件构成11
4.3 T-Kernel概要13
4.4 T-Kernel的核心对象14
4.5 T-Kernel的动态资源管理15
4.6 T-Kernel的内存管理16
4.7 T-Kernel的标准化18
第2部分 T-Kernel规范
1 T-Kernel概述21
1.1 T-Kernel定位21
1.2 可裁剪性22
2 T-Kernel规范的基本概念24
2.1 基本术语24
2.2 任务状态和调度规则25
2.2.1 任务状态25
2.2.2 任务调度规则28
2.3 中断处理31
2.4 任务异常处理31
2.5 系统状态31
2.5.1 非任务部分执行时的系统状态31
2.5.2 任务无关部分(运行状态)与准任务部分(运行状态)32
2.6 对象34
2.7 内存35
2.7.1 地址空间35
2.7.2 非驻留内存35
2.7.3 保护级别36
3 通用T-Kernel规范37
3.1 数据类型37
3.1.1 普通数据类型37
3.1.2 其他定义的数据类型39
3.2 系统调用(函数)40
3.2.1 系统调用(函数)格式40
3.2.2 在任务无关部分(状态)中可用的系统调用(函数)40
3.2.3 限制系统调用函数的调用41
3.2.4 参数数据包的修改41
3.2.5 函数代码42
3.2.6 错误代码42
3.2.7 时限43
3.2.8 相对时间和系统时间44
3.3 高级语言支持程序45
4 T-Kernel/OS函数46
4.1 任务管理函数46
4.2 任务相关的同步函数69
4.3 任务异常处理函数82
4.4 同步和通信函数89
4.4.1 信号量89
4.4.2 事件标志95
4.4.3 邮箱103
4.5 扩展同步和通信函数110
4.5.1 互斥体110
4.5.2 消息缓冲区118
4.5.3 集合点端口126
4.6 内存池管理函数143
4.6.1 固定大小的内存池143
4.6.2 大小可变的内存池149
4.7 时间管理函数156
4.7.1 系统时间管理函数156
4.7.2 周期性处理程序158
4.7.3 报警处理程序164
4.8 中断管理函数170
4.9 系统管理函数175
4.10 子系统管理函数(功能)184
|
5 T-Kernel/SM函数197
5.1 系统内存管理函数198
5.1.1 系统内存分配198
5.1.2 内存分配库199
5.2 地址空间管理函数199
5.2.1 地址空间配置200
5.2.2 地址空间检查200
5.2.3 锁定地址空间201
5.2.4 获取物理地址202
5.2.5 映射内存202
5.3 设备管理函数203
5.3.1 基本概念203
5.3.2 应用程序接口206
5.3.3 设备注册216
5.3.4 设备驱动程序接口218
5.3.5 属性数据224
5.3.6 设备事件通知226
5.3.7 设备挂起/恢复处理227
5.3.8 磁盘驱动程序的特殊作用228
5.4 中断管理函数229
5.4.1 CPU中断控制229
5.4.2 中断控制器的控制230
5.5 I/O端口访问支持函数231
5.5.1 I/O端口访问232
5.5.2 Micro等待232
5.6 电源管理函数233
5.7 系统配置信息管理函数233
5.7.1 获得系统配置信息234
5.7.2 标准系统配置信息235
5.8 子系统和设备驱动程序启动236
6 T-Kernel/DS函数239
6.1 内核内部状态查询函数240
6.2 执行跟踪函数255
第3部分 T-Monitor规范
1 T-Monitor规范概述263
2 系统函数264
2.1 硬件初始化264
2.2 系统启动264
2.3 异常/中断/陷阱处理函数265
3 调试函数266
3.1 控制台连接266
3.2 命令格式266
3.3 命令列表268
4 程序支持函数286
5 引导处理的细节293
5.1 引导处理概述293
5.2 搜索可引导的设备293
5.3 装载和启动主引导程序294
第4部分 T-Engine相关参考文献目录
1 T-Engine的相关专刊297
2 T-Engine的相关大事记总索引(2002年1月~2005年4月)298
3 你该如何使用T-Kernel306
4 T-License\[T-Kernel的源代码许可协议\]308
第5部分参考
1 C语言接口的列表315
2 错误代码列表324
3 修订记录327
|
|
| |
|