freescale+mqx实时操作系统用户手册(中文)

上传人:第*** 文档编号:61714470 上传时间:2018-12-10 格式:PDF 页数:157 大小:1.72MB
返回 下载 相关 举报
freescale+mqx实时操作系统用户手册(中文)_第1页
第1页 / 共157页
freescale+mqx实时操作系统用户手册(中文)_第2页
第2页 / 共157页
freescale+mqx实时操作系统用户手册(中文)_第3页
第3页 / 共157页
freescale+mqx实时操作系统用户手册(中文)_第4页
第4页 / 共157页
freescale+mqx实时操作系统用户手册(中文)_第5页
第5页 / 共157页
点击查看更多>>
资源描述

《freescale+mqx实时操作系统用户手册(中文)》由会员分享,可在线阅读,更多相关《freescale+mqx实时操作系统用户手册(中文)(157页珍藏版)》请在金锄头文库上搜索。

1、 Freescale MQX 实时操作系统用户手册 译自: Freescale MQX TM Real-Time Operating System Users Guide Document Number:MQXUG Rev. 0(04/2009) 苏州大学飞思卡尔嵌入式系统教学与应用培训中心 译 2010 年 3 月 I 目 录 第一章第一章 前言前言 1 1.1 关于 MQX 1 1.2 关于本手册 1 1.3 3.0 和 2.50 版本的新特点 2 1.4 约定 4 1.4.1 提示 4 1.4.2 注释 4 1.4.3 注意事项. 4 第二章第二章 MQX 概述概述 5 2.1 MQX

2、的组织结构 5 2.2 初始化 6 2.3 任务管理 6 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 轻量级信号量 . 8 2.6.4 信号量. 9 2.6.5 互斥 9 2.6.6 消息 9 2.6.7 任务队列. 9 2.7 处理器间通信 9 2.8 定时 10 2.8.1 时间组件. 10 2.8.2

3、 轻量级定时器 . 10 2.8.3 定时器. 10 II 2.8.4 看门狗. 10 2.9 中断和异常处理 10 2.10 I/O 驱动 11 2.10.1 格式化 I/O . 11 2.10.2 I/O 子系统 . 11 2.11 检测工具 11 2.11.1 日志 . 11 2.11.2 轻量级日志 . 11 2.11.3 内核日志 . 12 2.11.4 栈的运用 . 12 2.12 出错处理 12 2.12.1 任务出错代码 . 12 2.12.2 异常处理. 12 2.12.3 实时测试. 12 2.13 队列操纵 13 2.14 命名组件 13 2.15 嵌入式调试 13 第三

4、章第三章 使用使用 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 管理任务 20 3.4.1 创建任务. 21 3.4.2 获取任务 IDs 21 3.4.3 获取和设置一个任务环境 . 21 3.4.4 管理任务错误 . 22 3.4.5 重启任务. 22 3.4.6 终止任务. 22 3.4.7 实例:创建任务 . 23 3.5 调度任务 25 3.5.1 FIFO 调度

5、25 3.5.2 轮循调度. 26 3.6 内存管理 27 III 3.6.1 使用可变块管理内存 . 27 3.6.2 利用可变大小块管理轻量级内存 . 29 3.6.3 使用固定大小块管理内存(区块) . 30 3.6.4 操纵缓冲寄存器 . 32 3.6.5 控制 MMU(虚拟存储器) 33 3.7 任务同步 36 3.7.1 事件 36 3.7.2 轻量级事件 . 42 3.7.3 关于信号量类型的对象 . 43 3.7.4 轻量级信号量 . 46 3.7.5 信号量. 51 3.7.6 互斥 59 3.7.7 消息 64 3.7.8 任务队列. 73 3.8 处理器间的通信 76 3

6、.8.1 发送消息到远程处理器 . 76 3.8.2 创建和结束远程处理器上的任务 . 77 3.8.3 访问远程处理器上的事件组 . 77 3.8.4 创建和初始化 IPC . 78 3.8.5 消息头的端模式转换 . 87 3.9 定时 87 3.9.1 MQX 定时翻转法 . 87 3.9.2 MQX 定时精度 . 87 3.9.3 定时器组件 . 87 3.9.4 定时器. 92 3.9.5 轻量级定时器 . 96 3.9.6 看门狗. 96 3.10 中断和异常处理 100 3.10.1 中断处理初始化 . 101 3.10.2 装载应用程序定义的 ISR . 102 3.10.3

7、针对 ISR 的限制 102 3.10.4 修改默认 ISR . 104 3.10.5 异常处理 . 104 3.10.6 ISR 异常处理 . 105 3.10.7 任务异常处理 . 105 3.10.8 举例:装载 ISR . 105 IV 3.11 工具 108 3.11.1 日志 . 108 3.11.2 轻量级日志 . 112 3.11.3 内核日志 . 115 3.11.4 堆栈使用工具 119 3.12 工具 119 3.12.1 队列 . 119 3.12.2 命名组件. 120 3.12.3 运行时测试 . 121 3.12.4 其它工具. 126 3.13 嵌入式调试 12

8、7 3.14 实时编译配置 MQX 127 3.14.1 MQX 编译时配置选项 . 128 3.14.2 推荐设置. 131 第四章第四章 重建重建 MQX 133 4.1 为什么要重建 MQX? 133 4.2 开始之前 133 4.3 FREESCALEMQX 的目录结构 134 4.3.1 MQX RTOS 目录结构 134 4.3.2 PSP 子目录 135 4.3.3 BSP 子目录 . 135 4.3.4 I/O 子目录 . 136 4.3.5 其它源子目录 . 136 4.4 FREESCALEMQX 构建工程 136 4.4.1 PSP 构建工程 136 4.4.2 BSP

9、构建工程 . 136 4.4.3 构建后处理 . 137 4.4.4 构建方式. 137 4.5 重建 FREESCALE MQX RTOS 137 4.6 创建常用 MQX 配置并构建工程 . 137 4.6.1 为什么创建一个新的配置? . 137 4.6.2 克隆现有配置 . 138 第第五章五章 开发一个新的开发一个新的 BSP 140 5.1 什么是 BSP? 140 V 5.2 开发一个新的 BSP 140 5.3 选择一个基准 BSP 并入门 . 140 5.4 和目标板通信 141 5.5 修改 BSP 特定的包含文件 . 141 5.5.1 bsp_prv.h 141 5.5

10、.2 bsp.h . 141 5.5.3 target.h . 141 5.6 修改启动代码 142 5.6.1 comp.c 142 5.6.2 p. 142 5.7 修改源代码 142 5.7.1 init_bsp.c 143 5.7.2 get_usec.c . 143 5.7.3 get_nsec.c . 143 5.7.4 mqx_init.c 144 5.8 为 I/O 驱动程序创建默认的初始化文件 . 144 5.8.1 initdev.c 144 5.9 支持编译器的文件 144 5.10 构建新的 BSP 144 第六章第六章 FAQS 146 6.1 概述 146 6.2

11、事件 146 6.3 全局构造 146 6.4 空闲任务 146 6.5 中断 147 6.6 内存 147 6.7 信息传递 148 6.8 互斥 148 6.9 信号量 149 6.10 任务退出处理与任务异常处理 149 6.11 任务队列 149 6.12 任务 149 6.13 时间片 150 6.14 定时器 150 1 第一章第一章 前言前言 1.1 关于MQX MQX 实时操作系统设计用于单一处理器、多处理器和分布式处理器等形 式的嵌入式实时系统。 Freescale 半导体公司成功地搭载 MQX 操作系统软件平台用于 ColdFire 和 PowerPC 系列微处理器。相比于

12、最初的 MQX 发布方式,当下的 Freescale MQX 发布方式更易于配置和使用。现在一个单一的发布版本就包含了 MQX 操作系统外加其它所有软件组件来支持特定的微处理器。有关 Freescale MQX 的发布版本的详细说明如下。 Freescale MQX 本文档将以“Freescale MQX”作为本软件的标识。 MQX 是一个运行时函数库,程序用它来实现实时多任务应用。其主要特 征为:大小可裁剪、面向组件的架构和便于使用。 MQX 支持多处理器应用, 并且可用于灵活配置嵌入式输入/输出产品, 如 网络、数据通讯和文档管理等。 本手册通篇都使用 MQX 作为 MQX 操作系统的缩写

13、。 1.2 关于本手册 使用本手册时需要参照: MQX参考手册包含MQX简单和复杂的数据类型,按字母顺序排列的 MQX函数原型。 Freescale MQX Freescale MQX的发布版本还包含其它基于MQX 操作系统的软件产品。 见RTCS TCP/IP栈、 USB主机开 发套件、USB设备开发套件、MFS文件系统等用户指 南和参考手册。 2 1.3 3.0和2.50版本的新特点 Freescale MQX 为了延续原始 MQX 的发布版本编号方式,第一版 Freescale MQX 发布版本编号为 3.0。 尽管主版本编号改变, 但 并没有主要特性改变 MQX,故其与 2.50 版本

14、相兼容。 关于 Freescale MQX RTOS 的新特性的最新信息,请参见 发布版本的注释文档。 作为 Freescale 发布 MQX RTOS 的新版本,MQX3.0 相比于 2.50 版本具 有如下改进: 其它的关键性 MQX 组件,如与 Freescale MQX RTOS 一起发布的 MFS、RTCS 或 USB 等。 在编写本文档时,Freescale MQX RTOS 与其它 MQX 组件的默认开 发环境是 CodeWarrior Development Studio。新版本还将支持其它开 发环境。 现在所有关键 Freescale MQX RTOS 组件(PSP、BSP、

15、RTCS、MFS、 USB、.)的实时编译配置都由编辑 user_config.h 文件完成,存放于 顶层配置文件夹(config)下的板级相关路径。而在以前的版本中, 用户配置的宏通过命令行下的makefile或者CodeWarrior下的预处理 文件传入整个编译过程。 PSP 组件针对特定的板子配置和编译。原来,PSP 组件对于某个特定 设备编译一次。尽管 PSP 代码仍然保持独立于特定的板子,但这一 特性能够对一个特定的板子进行更好的内核裁剪。 MQX 现在支持类型存储(typed memory) ,即允许一些附加信息能在 任务调试插件(task-aware debugger plugi

16、n)中显示出来。 MQX2.50 向后兼容 2.40 版本,并且具有如下改进: 减少了对 32 位类型的依赖类型由处理器本身的数据宽度决定。 例如一个 16 位的处理器,其一般数据类型大小是 16 位。对于小规 模架构的处理器降低了其对于代码和数据宽度的需求。 时间由一个时钟滴答(tick)来度量为允许更高分辨率的延迟、 定时和时间测量,MQX 用时钟滴答取代秒和毫秒来衡量时间。延迟 一段特定的时间或者直到一个特定的时间为止成为可能。这一改进 适用于所有使用超时功能的组件。这一内在的改变对于用户来讲是 透明的。另外,MQX 加入了一个扩展的日期结构来表示超过 24 世 纪的年历日期,精度可以达到皮秒。 3 存储管理单元(MMU)的支持包含在 PSP 中MMU 支持任务间 的存储保护。每个任务能建立它自己的被保护数据区域。 多个内存池应用程序可以从一个应用自身定义的全局存储区分 配内存块,正如之前应用从默认的内存池分配内存块一样。内存池 和 MQX 版本 2.40 的区块(partition)类似,但允许用

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号