Freescale MQX
TM
实时操作系统用户手册
文档编号: MQXUG
Rev.1.1
03/2010
苏州大学飞思卡尔嵌入式系统教学与应用培训中心 译
2010 年 7 月
Freescale MQX
TM
实时操作系统用户手册,Rev.1.1
Freescale半导体 I
目 录
第一章 前言 .................................................................................................... 1
1.1 关于 MQX .............................................................................................. 1
1.2 关于本手册 ............................................................................................ 1
1.3 3.0 和 2.50 版本的新特点 ...................................................................... 1
1.4 约定 ........................................................................................................ 4
1.4.1
提示
................................................................................................ 4
1.4.2
注释
................................................................................................ 4
1.4.3
注意
................................................................................................ 4
第二章 MQX 概述 .......................................................................................... 5
2.1 MQX 的组织结构 .................................................................................. 5
2.2 初始化 .................................................................................................... 6
2.3 任务管理 ................................................................................................ 7
2.4 调度 ........................................................................................................ 7
2.5 存储管理 ................................................................................................ 7
2.5.1
可变大小存储块管理
..................................................................... 7
2.5.2
固定大小存储块管理(区块)
..................................................... 7
2.5.3
高速缓存控制
................................................................................. 8
2.5.4
存储器管理单元(
MMU
)控制
................................................... 8
2.5.5
轻量级存储管理
............................................................................. 8
2.6 任务同步 ................................................................................................ 8
2.6.1
轻量级事件
..................................................................................... 8
2.6.2
事件
................................................................................................ 8
2.6.3
轻量级信号量
................................................................................. 9
2.6.4
信号量
............................................................................................. 9
2.6.5
互斥
................................................................................................ 9
2.6.6
消息
................................................................................................ 9
2.6.7
任务队列
......................................................................................... 9
2.7 处理器间通信 ...................................................................................... 10
2.8 定时 ...................................................................................................... 10
2.8.1
时间组件
....................................................................................... 10
2.8.2
轻量级定时器
............................................................................... 10
2.8.3
定时器
........................................................................................... 10
Freescale MQX
TM
实时操作系统用户手册,Rev.1.1
Freescale 半导体
II
2.8.4
看门狗
........................................................................................... 11
2.9 中断和异常处理 .................................................................................. 11
2.10 输入/输出(I/O)驱动 ...................................................................... 11
2.10.1
格式化输入
/
输出
....................................................................... 11
2.10.2
输入
/
输出子系统
....................................................................... 11
2.11 检测工具 ............................................................................................ 12
2.11.1
日志
............................................................................................. 12
2.11.2
轻量级日志
................................................................................. 12
2.11.3
内核日志
..................................................................................... 12
2.11.4
栈的运用
..................................................................................... 12
2.12 出错处理 ............................................................................................ 12
2.12.1
任务出错代码
............................................................................. 12
2.12.2
异常处理
..................................................................................... 12
2.12.3
实时测试
..................................................................................... 13
2.13 队列操纵 ............................................................................................ 13
2.14 命名组件 ............................................................................................ 13
2.15 嵌入式调试 ........................................................................................ 13
第三章 使用 MQX ........................................................................................ 14
3.1 前言 ...................................................................................................... 14
3.2 初始化并开始运行 MQX .................................................................... 14
3.2.1 MQX
初始化结构
.......................................................................... 14
3.2.2
任务模板列表
............................................................................... 15
3.3 使用 FREESCALE CODEWARRIOR DEVELOPMENT STUDIO ................... 18
3.4 管理任务 .............................................................................................. 19
3.4.1
创建任务
....................................................................................... 20
3.4.2
获取任务
IDs ................................................................................ 21
3.4.3
设置一个任务环境
....................................................................... 21
3.4.4
管理任务错误
............................................................................... 21
3.4.5
重启任务
....................................................................................... 22
3.4.6
终止任务
....................................................................................... 22
3.4.7
实例:创建任务
........................................................................... 23
3.5 调度任务 .............................................................................................. 25
3.5.1 FIFO
调度
..................................................................................... 25
3.5.2
轮询调度
....................................................................................... 25
3.6 内存管理 .............................................................................................. 27
Freescale MQX
TM
实时操作系统用户手册,Rev.1.1
Freescale半导体 III
3.6.1
可变大小内存块管理
.................................................................... 27
3.6.2
利用可变大小块管理轻量级内存
............................................... 28
3.6.3
固定大小块管理内存(区块)
................................................... 29
3.6.4
高速缓冲存储器控制
................................................................... 31
3.6.5
控制
MMU
(虚拟存储器)
........................................................ 32
3.7 任务同步 .............................................................................................. 35
3.7.1
事件
.............................................................................................. 36
3.7.2
轻量级事件
................................................................................... 41
3.7.3
关于信号量类型的对象
............................................................... 42
3.7.4
轻量级信号量
............................................................................... 45
3.7.5
信号量
........................................................................................... 49
3.7.6
互斥
.............................................................................................. 58
3.7.7
消息
.............................................................................................. 62
3.7.8
任务队列
....................................................................................... 70
3.8 处理器间的通信 .................................................................................. 73
3.8.1
发送消息到远程处理器
............................................................... 74
3.8.2
创建和结束远程处理器上的任务
............................................... 75
3.8.3
访问远程处理器上的事件组
....................................................... 75
3.8.4
创建和初始化
IPC ....................................................................... 75
3.8.5
消息头的端模式转换
................................................................... 84
3.9 定时 ...................................................................................................... 85
3.9.1 MQX
定时翻转法
.......................................................................... 85
3.9.2 MQX
定时精度
.............................................................................. 85
3.9.3
定时器组件
................................................................................... 85
3.9.4
定时器
........................................................................................... 89
3.9.5
轻量级定时器
............................................................................... 93
3.9.6
看门狗
........................................................................................... 94
3.10 中断和异常处理 ................................................................................ 97
3.10.1
中断处理初始化
......................................................................... 99
3.10.2
装载应用程序定义的
ISR .......................................................... 99
3.10.3
针对
ISR
的限制
......................................................................... 99
3.10.4
修改默认
ISR ............................................................................ 102
3.10.5
异常处理
................................................................................... 102
3.10.6 ISR
异常处理
............................................................................. 102
3.10.7
任务异常处理
........................................................................... 103
3.10.8
举例:装载
ISR ........................................................................ 103