描述
开 本: 16开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787121240379丛书名: 嵌入式技术与应用丛书
内容简介
MQX是一款免费、开源、有技术支持,面向工业控制、医疗电子、家用电器等领域的嵌入式实时操作系统(RTOS)。本书以飞思卡尔(Freescale)的MQX4.1.0为蓝本,以ARM Cortex-M微处理器为实例,详细阐述RTOS的基本概念、原理与应用方法。全书共分11章,从实际应用角度阐述MQX应用程序的设计方法。第1~7章囊括了MQX工程框架、任务基本设计方法与规则、启动流程、中断执行过程、延时函数、任务的创建、调度方法、事件、信号量、内存管理、日志等基本知识要素,同时也给出了MQX基本原理,主要包括内核数据区、MQX启动过程、中断、时间管理、任务管理、调度等机制剖析,第8章给出MQX基本知识要素的综合实例;第9章给出库文件、MQX移植、轻量级MQX、看门狗等MQX程序设计以及任务设计方法的讨论;第10~11章分别给出USB组件及RTCS组件的使用方法。
目 录
第1章 概述
1.1 关于RTOS的几个基本问题
1.1.1 什么是实时操作系统
1.1.2 使用RTOS的场合与RTOS的选择
1.1.3 RTOS的发展历程及几种流行的RTOS简介
1.2 RTOS的相关术语
1.2.1 内核类相关术语
1.2.2 任务类相关术语
1.3 MQX的主要特点及版本历史
1.3.1 MQX的主要特点
1.3.2 MQX的版本升级
1.4 MQX的资料简介
第2章 MQX系统的工程构架及第一个样例工程
2.1 软硬件开发环境
2.1.1 软件开发平台――CW简介
2.1.2 SD-FSL-K60-C硬件系统
2.2 Freescale提供的MQX资源简介
2.3 初识MQX――内核、PSP及BSP
2.3.1 MQX的内核
2.3.2 处理器支持包PSP
2.3.3 板级支持包BSP
2.4 MQX工程框架――AMQXFW
2.4.1 MQX工程框架AMQXFW的目录结构
2.4.2 <MQX>的下级文件夹组成
2.4.3 <MQX>的下级文件夹解析
2.5 MQX第一个样例工程
2.5.1 样例工程的功能
2.5.2 样例工程任务设计
2.5.3 样例工程的运行测试
2.5.4 样例工程构建过程
2.5.5 上电复位到main函数之前的执行过程
2.6 MQX操作系统的启动流程剖析
2.6.1 内存的分配和部署
2.6.2 内核数据区剖析
2.6.3 MQX初始化结构体常数MQX_init_struct
2.6.4 MQX任务模板文件(task_templates.c)解析
2.6.5 MQX系统启动过程:_mqx函数剖析
第3章 MQX中断机制与时间管理
3.1 中断处理的通用基础知识概要
3.1.1 中断的基本概念
3.1.2 中断处理的基本过程
3.2 MQX中断处理过程及用户ISR安装方法
3.2.1 MQX中断处理函数简介
3.2.2 MQX中断处理过程
3.2.3 MQX中断编程的编译条件设定
3.2.4 MQX用户ISR安装方法
3.3 MQX中断管理与运行机制剖析
3.3.1 MQX中断系统涉及的数据结构
3.3.2 MQX中断系统初始化过程剖析
3.3.3 基于ARM Cortex-M4的MQX内核ISR源码剖析
3.3.4 理解MQX中断机制需要掌握的几个知识点
3.4 MQX时间管理函数及用法
3.4.1 _time_delay函数的使用方法及注意点
3.4.2 绝对时间的来源与用法举例
3.5 MQX时间管理实现方法及机制剖析
3.5.1 ARM Cortex-M的SysTick的硬件系统
3.5.2 hwtimer_systick_init()函数回调分析
3.5.3 SysTick嘀嗒定时器的初始化配置和启动
3.5.4 SysTick中断服务例程
3.5.5 延时函数_time_delay及相关源代码剖析
第4章 MQX常用IO驱动使用方法简介
4.1 MQX驱动分类及其简介
4.2 MQX工程常用I/O驱动的添加过程
4.3.1 设备标识符及命名方法
4.3.2 MQX标准设备驱动管理的三层模型
4.3.3 MQX I/O设备驱动管理队列
4.4 安装类IO设备驱动应用实例
4.4.1 K60-Flash模块概述
4.4.2 编写Flash任务以及工程的测试
4.5 非安装类I/O设备驱动应用实例
4.5.1 K60 RTC模块概述
4.5.2 RTC驱动文件及添加
4.5.3 编写RTC工程的测试
4.6 MQX设备三层管理下底层驱动设计方法
4.6.1 底层设备驱动三层体系结构管理模式分析
4.6.2 底层设备驱动初始化参数的组织和分解
4.6.3 MQX设备三层管理底层驱动设计的步骤
4.7 MQX设备四层管理的驱动设计、移植和复用
4.7.1 MQX设备驱动四层管理模型的提出
4.7.2 底层驱动构件的获取与设计
4.7.3 接口驱动构件的设计
4.8 底层设备程序移植和复用设计实例
第5章 任务管理与调度
5.1 任务管理的基础知识
5.1.1 任务的三要素
5.1.2 任务的四种状态:终止态、阻塞态、就绪态和激活态
5.1.3 任务的基本形式
5.2 MQX任务管理函数
5.3 MQX任务管理机制剖析
5.3.1 MQX任务队列剖析
5.3.2 MQX任务管理函数剖析
5.4 MQX的FIFO及RR调度策略
5.5 MQX调度机制剖析
5.5.1 ARM Cortex-M4的SVC及PendSV中断的调度作用
5.5.2 系统调用服务例程的执行流程
5.5.3 系统调用服务例程源码剖析
第6章 任务间的同步与通信
6.1 轻量级事件与事件
6.1.1 事件的含义及应用场合
6.1.2 轻量级事件的常用函数与编程步骤
6.1.3 事件的常用函数与编程步骤
6.1.4 事件的组织结构与函数代码剖析
6.2 轻量级信号量、信号量与互斥量
6.2.1 信号量的含义及应用场合
6.2.2 轻量级信号量的常用函数与编程步骤
6.2.3 信号量的常用函数与编程步骤
6.2.4 互斥量的常用函数与编程步骤
6.2.5 信号量的组织结构与函数代码剖析
6.3 轻量级信号量的常用函数与编程步骤
6.3.1 优先级反转问题的含义
6.3.2 优先级反转问题的解决方法
6.4 轻量级消息队列与消息
6.4.1 消息的含义及应用场合
6.4.2 轻量级消息队列的常用函数与编程步骤
6.4.3 消息的常用函数与编程步骤
6.4.4 消息的组织结构与函数代码剖析
第7章 内存管理与日志
7.1 内存管理及模式选择
7.1.1 内存管理的区域范围
7.1.2 内存管理的两种方式
7.1.3 内存管理的相关函数
7.2 可变大小内存管理
7.2.1 可变大小内存块管理方式
7.2.2 可变大小内存块管理的机制剖析
7.2.3 内存管理使用实例
7.3 固定大小内存管理
7.3.1 固定大小区块的管理机制
7.3.2 固定大小区块池的创建
7.3.3 固定大小区块的申请分配和释放
7.3.4 动态区块的删除
7.3.5 固定大小区块的使用和管理接口函数
7.4 日志的应用
7.4.1 轻量级日志
7.4.2 内核日志
7.4.3 日志
第8章 MQX基本要素综合实例
8.1 需求分析与硬件说明
8.1.1 需求分析
8.1.2 硬件说明
8.2 中断服务例程ISR与任务功能设计
8.2.1 中断服务例程ISR功能设计
8.2.2 任务功能设计
8.3 PC与MCU通信帧协议的设计
8.3.1 帧格式
8.3.2 帧命令
8.4 MCU主要代码实现
8.5 PC界面
第9章 MQX程序设计相关问题的讨论
9.1 库文件用法
9.1.1 库文件的基本概念
9.1.2 MQX库文件(.a)的生成
9.1.3 库文件的使用方法
9.2 BSP和PSP的移植方法简介
9.2.1 BSP的移植
9.2.2 PSP的移植
9.3 轻量级
9.3.1 轻量级MQX特点
9.3.2 轻量级MQX工程
9.4 ISR设计、任务划分及优先级安排问题
9.4.1 ISR设计的基本问题
9.4.2 任务划分的简明方法
9.4.3 任务优先级安排问题
9.5 程序设计中其他若干问题的讨论
9.5.1 如何避免死锁
9.5.2 临界区的处理
9.5.3 看门狗的应用
9.5.4 ISR参数与任务参数的作用及用法USB组件的应用
10.1 USB基础知识
10.1.1 USB发展历史
10.1.2 USB基本概念
10.2 USB设备协议栈
10.2.1 USB设备架构
10.2.2 USB设备初始化
10.2.3 USB设备协议栈常用函数
10.2.4 USB设备编程举例
10.2.5 USB设备虚拟串口编程举例
10.3 USB主机协议栈
10.3.1 USB主机协议栈框架介绍
10.3.2 USB主机应用层函数
10.3.3 USB主机应用程序示例
10.3.4 USB主机工作流程剖析
第11章 RTCS组件的应用
11.1 以太网基础知识
11.1.1 以太网物理设备
11.1.2 相关名词解释
11.2 RTCS文件组织结构
11.3 ICMP协议
11.3.1 使用ICMP设置步骤
11.3.2 ICMP测试方法
11.4 UDP协议
11.4.1 使用UDP设置步骤
11.4.2 UDP测试方法
11.5 TCP协议
11.5.1 使用TCP设置步骤
11.5.2 TCP测试方法
11.6 协议
11.6.1 使用的PC方软件设置步骤
11.6.2 使用的MCU方设置步骤
11.6.3 测试方法
附录A 硬件评估板SD-FSL-K60-C
附录B 问与答
参考文献
1.1 关于RTOS的几个基本问题
1.1.1 什么是实时操作系统
1.1.2 使用RTOS的场合与RTOS的选择
1.1.3 RTOS的发展历程及几种流行的RTOS简介
1.2 RTOS的相关术语
1.2.1 内核类相关术语
1.2.2 任务类相关术语
1.3 MQX的主要特点及版本历史
1.3.1 MQX的主要特点
1.3.2 MQX的版本升级
1.4 MQX的资料简介
第2章 MQX系统的工程构架及第一个样例工程
2.1 软硬件开发环境
2.1.1 软件开发平台――CW简介
2.1.2 SD-FSL-K60-C硬件系统
2.2 Freescale提供的MQX资源简介
2.3 初识MQX――内核、PSP及BSP
2.3.1 MQX的内核
2.3.2 处理器支持包PSP
2.3.3 板级支持包BSP
2.4 MQX工程框架――AMQXFW
2.4.1 MQX工程框架AMQXFW的目录结构
2.4.2 <MQX>的下级文件夹组成
2.4.3 <MQX>的下级文件夹解析
2.5 MQX第一个样例工程
2.5.1 样例工程的功能
2.5.2 样例工程任务设计
2.5.3 样例工程的运行测试
2.5.4 样例工程构建过程
2.5.5 上电复位到main函数之前的执行过程
2.6 MQX操作系统的启动流程剖析
2.6.1 内存的分配和部署
2.6.2 内核数据区剖析
2.6.3 MQX初始化结构体常数MQX_init_struct
2.6.4 MQX任务模板文件(task_templates.c)解析
2.6.5 MQX系统启动过程:_mqx函数剖析
第3章 MQX中断机制与时间管理
3.1 中断处理的通用基础知识概要
3.1.1 中断的基本概念
3.1.2 中断处理的基本过程
3.2 MQX中断处理过程及用户ISR安装方法
3.2.1 MQX中断处理函数简介
3.2.2 MQX中断处理过程
3.2.3 MQX中断编程的编译条件设定
3.2.4 MQX用户ISR安装方法
3.3 MQX中断管理与运行机制剖析
3.3.1 MQX中断系统涉及的数据结构
3.3.2 MQX中断系统初始化过程剖析
3.3.3 基于ARM Cortex-M4的MQX内核ISR源码剖析
3.3.4 理解MQX中断机制需要掌握的几个知识点
3.4 MQX时间管理函数及用法
3.4.1 _time_delay函数的使用方法及注意点
3.4.2 绝对时间的来源与用法举例
3.5 MQX时间管理实现方法及机制剖析
3.5.1 ARM Cortex-M的SysTick的硬件系统
3.5.2 hwtimer_systick_init()函数回调分析
3.5.3 SysTick嘀嗒定时器的初始化配置和启动
3.5.4 SysTick中断服务例程
3.5.5 延时函数_time_delay及相关源代码剖析
第4章 MQX常用IO驱动使用方法简介
4.1 MQX驱动分类及其简介
4.2 MQX工程常用I/O驱动的添加过程
4.3.1 设备标识符及命名方法
4.3.2 MQX标准设备驱动管理的三层模型
4.3.3 MQX I/O设备驱动管理队列
4.4 安装类IO设备驱动应用实例
4.4.1 K60-Flash模块概述
4.4.2 编写Flash任务以及工程的测试
4.5 非安装类I/O设备驱动应用实例
4.5.1 K60 RTC模块概述
4.5.2 RTC驱动文件及添加
4.5.3 编写RTC工程的测试
4.6 MQX设备三层管理下底层驱动设计方法
4.6.1 底层设备驱动三层体系结构管理模式分析
4.6.2 底层设备驱动初始化参数的组织和分解
4.6.3 MQX设备三层管理底层驱动设计的步骤
4.7 MQX设备四层管理的驱动设计、移植和复用
4.7.1 MQX设备驱动四层管理模型的提出
4.7.2 底层驱动构件的获取与设计
4.7.3 接口驱动构件的设计
4.8 底层设备程序移植和复用设计实例
第5章 任务管理与调度
5.1 任务管理的基础知识
5.1.1 任务的三要素
5.1.2 任务的四种状态:终止态、阻塞态、就绪态和激活态
5.1.3 任务的基本形式
5.2 MQX任务管理函数
5.3 MQX任务管理机制剖析
5.3.1 MQX任务队列剖析
5.3.2 MQX任务管理函数剖析
5.4 MQX的FIFO及RR调度策略
5.5 MQX调度机制剖析
5.5.1 ARM Cortex-M4的SVC及PendSV中断的调度作用
5.5.2 系统调用服务例程的执行流程
5.5.3 系统调用服务例程源码剖析
第6章 任务间的同步与通信
6.1 轻量级事件与事件
6.1.1 事件的含义及应用场合
6.1.2 轻量级事件的常用函数与编程步骤
6.1.3 事件的常用函数与编程步骤
6.1.4 事件的组织结构与函数代码剖析
6.2 轻量级信号量、信号量与互斥量
6.2.1 信号量的含义及应用场合
6.2.2 轻量级信号量的常用函数与编程步骤
6.2.3 信号量的常用函数与编程步骤
6.2.4 互斥量的常用函数与编程步骤
6.2.5 信号量的组织结构与函数代码剖析
6.3 轻量级信号量的常用函数与编程步骤
6.3.1 优先级反转问题的含义
6.3.2 优先级反转问题的解决方法
6.4 轻量级消息队列与消息
6.4.1 消息的含义及应用场合
6.4.2 轻量级消息队列的常用函数与编程步骤
6.4.3 消息的常用函数与编程步骤
6.4.4 消息的组织结构与函数代码剖析
第7章 内存管理与日志
7.1 内存管理及模式选择
7.1.1 内存管理的区域范围
7.1.2 内存管理的两种方式
7.1.3 内存管理的相关函数
7.2 可变大小内存管理
7.2.1 可变大小内存块管理方式
7.2.2 可变大小内存块管理的机制剖析
7.2.3 内存管理使用实例
7.3 固定大小内存管理
7.3.1 固定大小区块的管理机制
7.3.2 固定大小区块池的创建
7.3.3 固定大小区块的申请分配和释放
7.3.4 动态区块的删除
7.3.5 固定大小区块的使用和管理接口函数
7.4 日志的应用
7.4.1 轻量级日志
7.4.2 内核日志
7.4.3 日志
第8章 MQX基本要素综合实例
8.1 需求分析与硬件说明
8.1.1 需求分析
8.1.2 硬件说明
8.2 中断服务例程ISR与任务功能设计
8.2.1 中断服务例程ISR功能设计
8.2.2 任务功能设计
8.3 PC与MCU通信帧协议的设计
8.3.1 帧格式
8.3.2 帧命令
8.4 MCU主要代码实现
8.5 PC界面
第9章 MQX程序设计相关问题的讨论
9.1 库文件用法
9.1.1 库文件的基本概念
9.1.2 MQX库文件(.a)的生成
9.1.3 库文件的使用方法
9.2 BSP和PSP的移植方法简介
9.2.1 BSP的移植
9.2.2 PSP的移植
9.3 轻量级
9.3.1 轻量级MQX特点
9.3.2 轻量级MQX工程
9.4 ISR设计、任务划分及优先级安排问题
9.4.1 ISR设计的基本问题
9.4.2 任务划分的简明方法
9.4.3 任务优先级安排问题
9.5 程序设计中其他若干问题的讨论
9.5.1 如何避免死锁
9.5.2 临界区的处理
9.5.3 看门狗的应用
9.5.4 ISR参数与任务参数的作用及用法USB组件的应用
10.1 USB基础知识
10.1.1 USB发展历史
10.1.2 USB基本概念
10.2 USB设备协议栈
10.2.1 USB设备架构
10.2.2 USB设备初始化
10.2.3 USB设备协议栈常用函数
10.2.4 USB设备编程举例
10.2.5 USB设备虚拟串口编程举例
10.3 USB主机协议栈
10.3.1 USB主机协议栈框架介绍
10.3.2 USB主机应用层函数
10.3.3 USB主机应用程序示例
10.3.4 USB主机工作流程剖析
第11章 RTCS组件的应用
11.1 以太网基础知识
11.1.1 以太网物理设备
11.1.2 相关名词解释
11.2 RTCS文件组织结构
11.3 ICMP协议
11.3.1 使用ICMP设置步骤
11.3.2 ICMP测试方法
11.4 UDP协议
11.4.1 使用UDP设置步骤
11.4.2 UDP测试方法
11.5 TCP协议
11.5.1 使用TCP设置步骤
11.5.2 TCP测试方法
11.6 协议
11.6.1 使用的PC方软件设置步骤
11.6.2 使用的MCU方设置步骤
11.6.3 测试方法
附录A 硬件评估板SD-FSL-K60-C
附录B 问与答
参考文献
评论
还没有评论。