嵌入式实时作业系统μC/OS原理与实践


嵌入式实时作业系统μC/OS原理与实践

文章插图
嵌入式实时作业系统μC/OS原理与实践基本介绍书名:嵌入式实时作业系统μC/OS原理与实践
作者:卢有亮
ISBN:9787121154416, 7121154412 
页数:280
出版社:电子工业出版社
出版时间:2012年2月1日
装帧:平装
开本:16
内容简介《嵌入式实时作业系统μC/OS原理与实践》内容翔实,图文并茂,採用逐步深入、反覆印证的方法,从数据结构的设计入手,再到代码分析、示例验证的剖析方法,逐层深入讲解,给出在虚拟平台下的移植示例和针对各章内容示例,并给出了基于NIOS II的FPGA系统上移植的例子 。《嵌入式实时作业系统μC/OS原理与实践》适用于计算机、电子、通信、自动化及相关专业大学本科、研究生,也适用于广大嵌入式开发工程技术人员、电子技术研究人员、作业系统研究人员 。编辑推荐《嵌入式实时作业系统μC/OS原理与实践》μC/OS是高实时性、多任务的作业系统,也是原始码对非商业用途开放的作业系统,笔者结合自己的实际工作经验,通过本书详细阐释μC/OS的系统原理及实战技巧 。《嵌入式实时作业系统μC/OS原理与实践》对最新版本的μC/OSII-2.91进行深入剖析,从实时作业系统的原理开始,对重要的数据结构和代码结合相关实例进行详细解析,以便于读者掌握 。通过《嵌入式实时作业系统μC/OS原理与实践》的学习,能够帮助读者全面、深入地掌握嵌入式实时作业系统的基本原理,全方位接触μC/OS,对所学知识融会贯通,能够灵活套用到实际的项目当中 。目录Contents第1章 实时作业系统基础 11.1 作业系统概述 11.1.1 什幺是作业系统 21.1.2 作业系统基本功能 31.2 实时作业系统概述 41.2.1 什幺是实时作业系统 41.2.2 实时作业系统的基本特徵 41.3 任务 51.3.1 任务简介 51.3.2 多任务 51.3.3 任务状态 71.3.4 任务切换 81.3.5 可重入函式和不可重入函式 91.4 基于优先权的不可剥夺核心 111.4.1 核心 111.4.2 基于优先权的调度算法 111.4.3 不可剥夺型核心和可剥夺型核心 121.5 同步与通信 131.5.1 同步 131.5.2 互斥 141.5.3 临界区 141.5.4 任务事件 151.5.5 信号量 151.5.6 互斥信号量 161.5.7 事件标誌组 171.5.8 讯息信箱和讯息伫列 171.6 中断和时钟 181.7 记忆体管理 20习题 20第2章 任务管理 212.1 任务管理数据结构 222.1.1 任务控制块 222.1.2 空闲鍊表和就绪鍊表 272.1.3 任务优先权指针表 302.1.4 任务堆叠 302.1.5 任务就绪表和就绪组 322.2 任务控制块初始化 382.2.1 代码解析 382.2.2 流程分析 402.3 作业系统初始化 412.3.1 代码解析 422.3.2 流程分析 472.4 任务的创建 482.4.1 OSTaskCreate代码解析 482.4.2 OSTaskCreate流程分析 512.4.3 OSTaskCreateExt代码解析 522.4.4 OSTaskCreateExt流程分析 552.5 任务的删除 562.5.1 任务删除代码解析 572.5.2 任务删除流程分析 602.5.3 请求删除任务代码解析 622.5.4 请求删除任务流程 632.6 任务挂起和恢复 642.6.1 OSTaskSuspend代码解析 652.6.2 OSTaskSuspend流程分析 672.6.3 OSTaskResume代码解析 682.6.4 OSTaskResume流程分析 692.7 任务的调度和多任务的启动 702.7.1 任务调度器 712.7.2 任务切换函式 732.7.3 中断中的任务调度 782.7.4 多任务的启动 802.8 特殊任务 812.8.1 空闲任务OS_TaskIdle 812.8.2 统计任务OS_TaskStat 822.9 任务管理总结 84习题 85第3章 中断和时间管理 863.1 中断管理 863.1.1 中断管理核心思路 863.1.2 中断处理的流程 883.1.3 时钟中断服务 883.2 时间管理 903.2.1 时间管理主要数据结构 903.2.2 时间的获取和设定 903.2.3 任务延时函式OSTimeDly 913.2.4 任务按分秒延迟函式OSTimeDlyHMSM 923.2.5 延时恢複函数OSTimeDlyResume 94习题 97第4章 事件管理 984.1 事件管理的重要数据结构 984.1.1 事件控制块(ECB) 984.1.2 事件等待组和事件等待表 1004.1.3 事件控制块空闲鍊表 1014.2 事件管理程式 1024.2.1 事件控制块(ECB)初始化 1024.2.2 事件等待表初始化 1034.2.3 设定事件等待 1034.2.4 取消事件等待 1054.2.5 将等待事件的任务就绪 1064.3 信号量管理 1074.3.1 信号量的建立OSSemCreate 1084.3.2 信号量的删除OSSemDel 111 4.3.3 请求信号量OSSemPend 1144.3.4 提交信号量 1184.3.5 无等待请求信号量 1194.3.6 放弃等待信号量 1204.3.7 信号量值设定 1224.3.8 查询信号量状态 1234.3.9 信号量套用举例 1244.4 互斥信号量管理 1294.4.1 互斥信号量的建立 1314.4.2 请求互斥信号量 1334.4.3 互斥信号量的删除 1394.4.4 发互斥信号量 1424.4.5 无等待请求互斥信号量 1454.4.6 查询互斥信号量状态 1474.4.7 改变任务的优先权并重新就绪 1484.4.8 互斥信号量套用举例 1494.5 事件标誌组管理 1544.5.1 事件标誌组数据结构 1554.5.2 事件标誌组初始化 1574.5.3 创建事件标誌组 1594.5.4 事件标誌组阻塞函式 1604.5.5 请求事件标誌 1624.5.6 删除事件标誌组 1694.5.7 提交事件标誌组 1724.5.8 标誌节点任务就绪 1754.5.9 无等待的请求事件标誌 1764.5.10 事件标誌管理套用举例 179习题 184第5章 讯息管理 1865.1 讯息信箱 1865.1.1 建立讯息信箱 1875.1.2 等待讯息 1905.1.3 发讯息 1945.1.4 删除讯息信箱 1965.1.5 放弃等待信箱 1995.1.6 无等待请求讯息 2015.1.7 查询讯息信箱状态 2025.1.8 讯息信箱的例子 2035.2 讯息伫列 2065.2.1 讯息伫列数据结构 2075.2.2 初始化讯息伫列 2105.2.3 建立讯息伫列 2115.2.4 发讯息到讯息伫列 2135.2.5 等待讯息伫列中的讯息 2145.2.6 删除讯息伫列 2175.2.7 取得讯息伫列的状态 2205.2.8 讯息伫列套用举例 221习题 225第6章 记忆体管理 2266.1 记忆体管理数据结构 2276.1.1 记忆体控制块 2276.1.2 记忆体控制块实体 2276.1.3 空闲记忆体控制块鍊表 2276.1.4 记忆体分区 2286.2 记忆体控制块初始化 2286.3 创建记忆体分区 2306.4 记忆体分区获取 2336.5 记忆体分区释放 2346.6 查询记忆体分区的状态 2356.7 记忆体管理实例 236习题 239第7章 移 植 2407.1 移植说明 2407.1.1 μC/OS-II的代码结构 2407.1.2 作业系统中与CPU相关的代码解析 2447.1.3 μC/OS-II移植步骤 247 7.2 在VISUAL C++6.0上实现基于WINDOWS的虚拟ΜC/OS-II移植 2487.2.1 目录结构和工程的建立 2487.2.2 包含档案includes.h 2497.2.3 os_cpu.h中修改的代码 2507.2.4 os_cpu.c中修改的代码 2517.2.5 主程式代码实现 2567.2.6 移植测试 2577.3 在基于NIOS软核的FPGA嵌入式系统下的ΜC/OS-II移植 2577.3.1 系统结构 2577.3.2 NIOS-II暂存器 2607.3.3 os_cpu.h的移植代码 2627.3.4 os_cpu.c的移植代码 2637.3.5 os_cpu.s的移植代码 2667.3.6 工程的创建和移植测试 269习题 274