华信教育资源网
嵌入式实时操作系统的设计与开发
作   译   者:廖勇 出 版 日 期:2015-03-01
出   版   社:电子工业出版社 维   护   人:章海涛 
书   代   号:G0255230 I S B N:9787121255236

图书简介:

本书以电子科技大学自主设计的开源操作系统aCoral在ARM9 Mini2440嵌入式平台上的设计过程为思路,逐步介绍aCoral的实现,再延伸到它对多核嵌入式处理器的支持,在此过程中,介绍嵌入式实时操作系统的其他相关技术和理论,比如:实时调度机制与策略、多核计算等,让学生对其有更全面的认识。此外,全书综合应用了计算机组成原理、计算机操作系统、汇编语言、C程序设计、数据结构、嵌入式系统概论、ARM处理器及其应用等课程的知识点,力求理论与实践紧密结合,帮助读者融汇贯通上述课程的相关知识。本书中的相关代码请读者登录华信教育资源网(www.hxedu.com.cn)免费注册后下载使用。
您的专属联系人更多
配套资源 图书内容 样章/电子教材 图书评价
  • 配 套 资 源
    图书特别说明:

    本书资源

    本书暂无资源

    会员上传本书资源

  • 图 书 内 容

    内容简介

    本书以电子科技大学自主设计的开源操作系统aCoral在ARM9 Mini2440嵌入式平台上的设计过程为思路,逐步介绍aCoral的实现,再延伸到它对多核嵌入式处理器的支持,在此过程中,介绍嵌入式实时操作系统的其他相关技术和理论,比如:实时调度机制与策略、多核计算等,让学生对其有更全面的认识。此外,全书综合应用了计算机组成原理、计算机操作系统、汇编语言、C程序设计、数据结构、嵌入式系统概论、ARM处理器及其应用等课程的知识点,力求理论与实践紧密结合,帮助读者融汇贯通上述课程的相关知识。本书中的相关代码请读者登录华信教育资源网(www.hxedu.com.cn)免费注册后下载使用。

    图书详情

    ISBN:9787121255236
    开 本:16开
    页 数:292
    字 数:467

    本书目录

    目录
    第1章  概论	1
    1.1  轮询系统(Polling Systems)	2
    1.2  前后台系统(Foreground Background Systems)	2
    1.3  嵌入式操作系统	3
    1.3.1  简单内核	3
    1.3.2  RTOS结构	4
    1.3.3  多核RTOS	5
    1.4  从裸板开始啊啊	6
    1.5  aCoral	6
    1.6  本书结构	7
    习题	8
    第2章  轮询系统	9
    2.1  轮询系统概述	9
    2.1.1  程序框架	9
    2.1.2  调度	9
    2.1.3  典型系统	11
    2.2  搭建开发环境	11
    2.3 启动Mini2440	14
    2.3.1 为什么需要启动	14
    2.3.2 启动流程	15
    2.4  轮询的实现	29
    习题	30
    第3章  前后台系统	31
    3.1 前后台结构	31
    3.1.1 前后台系统的应用	31
    3.1.2  运行方式	32
    3.1.3  系统性能	32
    3.1.4  前后台交换	33
    3.1.5  典型系统	34
    3.2  中断和中断服务	34
    3.2.1  中断	34
    3.2.2 中断服务	35
    3.3  ARM的中断机制	35
    3.4 一个简单的S3C2440中断服务	35
    3.4.1  中断返回	36
    3.4.2  中断注册	37
    3.4.3  状态保存和现场恢复	39
    3.5  前后台的实现	40
    3.5.1  启动Mini2440	40
    3.5.2  后台主循环	40
    3.5.3 前台中断处理	43
    习题	44
    第4章  内核基础	46
    4.1 基本术语	46
    4.2 RTOS的特点	47
    习题	50
    第5章  搭建aCoral交叉开发环境	51
    5.1  安装Ubuntu	51
    5.2  安装交叉开发工具链	52
    5.2.1  使用制作好的工具链	52
    5.2.2  自己制作工具链	52
    5.3  构建aCoral项目文件	53
    习题	55
    第6章  编写内核	56
    6.1  aCoral线程	56
    6.1.1  描述线程	57
    6.1.2 线程优先级	65
    6.2  调度策略	67
    6.2.1  线程调度分层结构	67
    6.2.2  调度策略分类	67
    6.2.3  描述调度策略	68
    6.2.4  查找调度策略	69
    6.2.5  注册调度策略	70
    6.3  基本调度机制	72
    6.3.1  创建线程	72
    6.3.2  调度线程	85
    6.3.3  线程退出	96
    6.3.4  其他基本机制	99
    6.4  事务处理机制	106
    6.4.1  中断管理	106
    6.4.2  时钟管理	121
    6.5  内存管理机制	124
    6.5.1  主流内存管理机制	125
    6.5.2  嵌入式系统对内存管理的特殊要求	126
    6.5.3  aCoral的内存管理机制	127
    6.5.4  aCoral内存管理初始化	150
    6.6  线程交互机制	151
    6.6.1  互斥机制	152
    6.6.2 同步机制	166
    6.6.3 通信机制	168
    习题	179
    第7章  启动内核	181
    7.1  RTOS的引导模式	181
    7.1.1  需要Bootloader的引导模式	181
    7.1.2  不需要Bootloader的引导模式	182
    7.2  Bootloader	182
    7.3  aCoral环境下启动2440	185
    7.4  启动aCoral	191
    习题	199
    第8章  移植内核	200
    8.1  硬件抽象层移植	200
    8.1.1  启动接口	201
    8.1.2  中断接口	201
    8.1.3  线程相关接口	203
    8.1.4  时间相关接口	204
    8.1.5  内存相关接口	205
    8.1.6  开发板相关接口	205
    8.1.7  多核(CMP)相关接口	205
    8.1.8  移植文件规范	207
    8.1.9  移植实例	208
    8.2  项目移植	216
    8.2.1  生成对应开发板的项目	216
    8.2.2  添加到官网	220
    习题	221
    第9章  编译与运行内核	222
    9.1  编译aCoral	222
    9. 2  烧写aCoral到开发板ARM Mini2440	223
    9.2.1  安装串口工具	223
    9.2.2  安装烧写工具(DNW工具)	224
    9.2.3  烧写与运行aCoral	225
    习题	226
    第10章  实时调度策略	227
    10.1  任务调度策略基本概念	227
    10.2  任务调度策略	228
    10.2.1  典型实时调度策略	229
    10.2.2  基于公平策略的时间片轮转调度	230
    10.2.3  基于优先级的可抢占调度	230
    10.2.4  RM调度算法	232
    10.2.5  EDF调度算法	243
    10.3  优先级反转及解决办法	245
    10.3.1  优先级继承	246
    10.3.2  优先级天花板	248
    10.4  提高系统实时性的其他措施	251
    10.4.1  评价RTOS的性能指标	251
    10.4.2  提高实时任务响应性的措施	252
    10.5  多核/处理器调度	261
    10.5.1  多核/处理器技术	261
    10.5.2  多核/处理器调度策略	263
    习题	264
    第11章  支持多核	266
    11.1  ARM11 MPCore	266
    11.2  多核运行机制	267
    11.3  aCoral对多核机制的支持	269
    11.3.1  多核启动	269
    11.3.2  多核调度	276
    习题	281
    参考文献	282
    展开

    前     言

    前 言
    在后PC 时代的今天,嵌入式操作系统琳琅满目,在各行各业已有广泛应用,嵌入式
    Linux、VxWorks、INTEGRITY、Nuclear、DeltaOS、 pSOS+、VRTX、QNX、RTEMS、Cisco-IOS、
    ERISON-EPOC、uC/OS、uC/OSII、uC/OSIII、TinyOS、T-kernel、 Windows CE、Windows mobile、
    Symbian、Android、Apple-IOS在一些大学,本科生编写一个简易的操作系统内核也不是
    什么难事。此外,市面上也已出版了一些关于嵌入式操作系统(或者操作系统)设计和代码
    实现的书籍,比如,1999 年出版的《MicroC/OS-II:The Real-Time Kernel》,2005 年出版的《自
    己动手写操作系统完全版》,2011 年出版《一步步写嵌入式操作系统:ARM 编程的方法与实
    践》等。为什么还要撰写一本关于嵌入式操作系统设计的书呢?其目是从本科教学特点出发,
    顺应国内高校“工程教育”的发展趋势(比如:“卓越工程师计划”的实施),根据计算机专
    业及相关专业嵌入式方向系列教材建设的需要,将课程知识体系与操作系统设计实现过程有
    机结合,让学生更好地理解课程知识点,通过操作系统在具体嵌入式平台ARM9 Mini2440 的
    设计与实现,融会贯通相关核心知识点,进而激发读者自己设计操作系统的热情(写操作系
    统不是最终目的),其最终目的是通过写的过程来锻炼学生的系统设计能力、工程实现能力、
    分析与解决问题能力,充分体现教育家约翰.杜威先生“To learn by doing”的教学理念。
    本书以aCoral 的设计过程为线索,首先从ARM9 Mini2440 的裸板串口驱动开始,介绍如
    何用汇编语言实现一个轮询结构的简单嵌入式系统。然后,引入中断机制,介绍如何实现一
    个前后台系统,以满足用户更为复杂的应用要求。在前两步的基础上,一步一步叙述aCoral
    实现细节,比如:从任务定义开始,逐步启发读者思考如何用C 语言描述一个任务、创建任
    务,如何将任务挂载到就绪队列上、从就绪队列中找到最高优先级任务、在ARM9 Mini2440
    上实现任务切换、触发任务调度、协调任务执行、响应用户的外部请求、通过时钟推动操作
    系统运行、启动内核、移植内核、搭建aCoral 的交叉开发环境、编译与运行aCoral、支持多
    核(以ARM 公司ARM11MPCORE 的四核心嵌入式处理器为例)等等。全书将原理与代码紧
    密结合;从工程实践中发现问题,在理论上对其进行详细分析并最终指导操作系统设计与实
    现;此外,本书还对嵌入式实时操作系统编写过程中设计的相关知识进行了整合。
    贯穿本书的嵌入式实时操作系统源代码来自电子科技大学嵌入式实时计算实验室设计的
    aCoral,参考了三星公司ARM9 S3C2440A、S3C2410A 芯片手册、ARM11MPCORE 芯片手册、
    Linux 开源社区、实时系统及实时调度学术论文等资料。此外,还借鉴了邵贝贝教授翻译Jean
    J. Labrosse 先生的《MicroC/OS-II:The Real-Time Kernel》、C.M.Krishna 和KANG G. Shin 的
    《Real-Time Computing》、罗蕾教授的《嵌入式实时操作系统及应用开发(第4 版)》、桑楠教
    授的《嵌入式系统原理及应用开发技术(第2 版)》、李无言老师的《一步步写嵌入式操作系
    统:ARM 编程的方法与实践》,于渊老师写的《自己动手写操作系统完全版》等书籍。
    本书在撰写过程中得到了电子工业出版社“卓越工程师计划”系列教材建设项目的支持
    和电子科技大学教务处特色教材建设项目的支持,作者对此深表感谢。此外,本书的撰写得
    到了电子科技大学计算机学院熊光泽教授、罗克露教授、罗蕾教授,信息与软件学院桑楠教
    ·IV·
    授、雷航教授、蔡竟业教授、江维副教授、陈丽蓉副教授、李允副教授、徐旭如老师,厦门
    大学于杰老师,电子工业出版章海涛老师、裴杰老师的帮助,他们为本书的撰写提供了许多
    宝贵的意见和建议。
    感谢电子科技大学实时计算实验室的研究生杨茂林、蒋世勇、李恒瑞、刘黎民、张晋川、
    陈泽玮、罗超、Furkan Hassan Saleh Rabee 以及宾夕法尼亚大学研究生廖聪、南加州大学研究
    生李龙杰、国防科技大学研究生龚俊如、上海交通大学读研的罗赟、复旦大学研究生胡伟松、
    人民大学研究生范旭、清华大学研究生陆文详、核九院研究生张朝,电子科技大学实时计算
    实验室学习的本科生兰宇航、陈维伟、胡斌,华为成都研究所软件工程师徐新、华为深圳研
    究所软件工程师陈朱旭、百度软件研发工程师李天华、三星公司南京研究所软件研发工程席
    臣、微软苏州研究院林添、美团网研发工程师许斌、美国云控公司成都研发中心谢鑫、美国
    豪威公司上海研发中心周强等,他们在作者的引导下,从本科二年级开始学习嵌入式实时系
    统,并在本科期间围绕(ARM9 Mini2440 + C/OS-II + LWIP + GUI + aCoral + Linux)平台
    上做过系列实验、课程设计、毕业设计,还在此平台上实现了智能家居及安防系统、智慧交
    通流量信息采集与显示系统、学习型遥控器、网络收音机、智能小车防撞系统、四轴飞行器
    等本科创新/实践项目(其中智能家居及安防系统获得了2010 年电子科技大学“银杏黄”项
    目最佳奖,四轴飞行器获得全国一等奖),他们为aCoral 代码分析及验证做了许多细节工作。
    感谢在上海自主创业的申建晶先生,他与作者一起于2009 年创建了开源嵌入式实时多
    核操作系统项目aCoral(www.aCoral.org),并为该项目做出了巨大贡献,同时为本科教育和
    研究生教育中付出了许多宝贵的时间。感谢在成都自主创业的刘坚、朱葛、郑亚斌,感谢完
    美世界的高攀、兰王靖辉、建设银行四川分行闫志强、美国美满电子(Marvell)上海研究所
    的陈勇明及成都研究所的魏守峰、程潜、任艳伟、淘宝杭州研发中心的张林江等曾在电子科
    技大学实时计算实验室学习过的同志们,他们在校期间陆续加入项目组,与作者共同探讨嵌
    入式操作系统相关的技术、教学改革、本科生学习及就业等问题,这为本书结构的拟定、撰
    写方法等提供了思路和素材。
    特别感谢我的父母、妻子和儿子,他们在本书撰写过程中给予了极大鼓励和支持。
    由于作者知识和水平有限,书中不足之处在所难免,恳求各位专家及读者赐正。
    作 者
    展开

    作者简介

    本书暂无作者简介
  • 样 章 试 读
  • 图 书 评 价 我要评论
华信教育资源网