Freescale_MQX实时操作系统用户手册

上传人:QQ15****706 文档编号:107067108 上传时间:2019-10-17 格式:PDF 页数:138 大小:1.94MB
返回 下载 相关 举报
Freescale_MQX实时操作系统用户手册_第1页
第1页 / 共138页
Freescale_MQX实时操作系统用户手册_第2页
第2页 / 共138页
Freescale_MQX实时操作系统用户手册_第3页
第3页 / 共138页
Freescale_MQX实时操作系统用户手册_第4页
第4页 / 共138页
Freescale_MQX实时操作系统用户手册_第5页
第5页 / 共138页
点击查看更多>>
资源描述

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

1、飞思卡尔半导体 Freescale MQX 实时操作系统用户手册 MC9RS08KA1 数据手册:技术数据 MC9RS08KA2 MC9RS08KA1 数据手册 MQXUGZHS 第 0 版 2010 年 7 月 目 录 目 录 第一章第一章 前言前言 6 1.1 关于MQX . 6 1.2 关于本手册 2 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的组织结构 . 5 2.2 初始化 6 2.3 任务管理 6 2.4 调度 7 2.5 存储管理 7 2

2、.5.1 可变大小存储块管理 . 7 2.5.2 固定大小存储块管理(区块) . 7 2.5.3 高速缓存控制 . 7 2.5.4 存储器管理单元(MMU)控制 . 7 2.5.5 轻量级存储管理 . 7 2.6 任务同步 8 2.6.1 轻量级事件 . 8 2.6.2 事件 8 2.6.3 轻量级信号量 . 8 2.6.4 信号量. 8 2.6.5 互斥 8 2.6.6 消息 8 2.6.7 任务队列 . 9 2.7 处理器间通信 9 2.8 定时 9 2.8.1 时间组件 . 9 2.8.2 轻量级定时器 . 9 2.8.3 定时器. 9 2.8.4 看门狗. 10 2.9 中断和异常处理

3、 10 2.10 输入/输出(I/O)驱动 10 2.10.1 格式化输入/输出 . 10 II 2.10.2 输入/输出子系统 . 10 2.11 检测工具 10 2.11.1 日志 . 10 2.11.2 轻量级日志 . 10 2.11.3 内核日志 . 11 2.11.4 栈的运用 . 11 2.12 出错处理 11 2.12.1 任务出错代码 . 11 2.12.2 异常处理 . 11 2.12.3 实时测试 . 11 2.13 队列操纵 12 2.14 命名组件 12 2.15 嵌入式调试 12 第三章第三章 使用使用MQX . 13 3.1 前言 13 3.2 初始化并开始运行MQ

4、X . 13 3.2.1 MQX初始化结构 . 13 3.2.2 任务模板列表 . 14 3.3 使用FREESCALE CODEWARRIOR DEVELOPMENT STUDIO 16 3.4 管理任务 18 3.4.1 创建任务 . 19 3.4.2 获取任务IDs . 19 3.4.3 获取和设置一个任务环境 . 19 3.4.4 管理任务错误 . 20 3.4.5 重启任务 . 20 3.4.6 终止任务 . 20 3.4.7 实例:创建任务 . 21 3.5 调度任务 23 3.5.1 FIFO调度 23 3.5.2 轮循调度 . 23 3.6 内存管理 24 3.6.1 使用可变

5、块管理内存 . 24 3.6.2 利用可变大小块管理轻量级内存 . 25 3.6.3 使用固定大小块管理内存(区块) . 26 3.6.4 操纵缓冲寄存器 . 28 3.6.5 控制MMU(虚拟存储器) . 29 3.7 任务同步 32 3.7.1 事件 32 3.7.2 轻量级事件 . 37 III 3.7.3 关于信号量类型的对象 . 38 3.7.4 轻量级信号量 . 40 3.7.5 信号量. 45 3.7.6 互斥 52 3.7.7 消息 57 3.7.8 任务队列 . 64 3.8 处理器间的通信 67 3.8.1 发送消息到远程处理器 . 67 3.8.2 创建和结束远程处理器上

6、的任务 . 68 3.8.3 访问远程处理器上的事件组 . 68 3.8.4 创建和初始化IPC 68 3.8.5 消息头的端模式转换 . 76 3.9 定时 76 3.9.1 MQX定时翻转法 . 76 3.9.2 MQX定时精度 . 77 3.9.3 定时器组件 . 77 3.9.4 定时器. 80 3.9.5 轻量级定时器 . 84 3.9.6 看门狗. 85 3.10 中断和异常处理 88 3.10.1 中断处理初始化 . 89 3.10.2 装载应用程序定义的ISR . 89 3.10.3 针对ISR的限制 . 90 3.10.4 修改默认ISR . 92 3.10.5 异常处理 .

7、 92 3.10.6 ISR异常处理 . 92 3.10.7 任务异常处理 . 93 3.10.8 举例:装载ISR . 93 3.11 工具 95 3.11.1 日志 . 95 3.11.2 轻量级日志 . 99 3.11.3 内核日志 . 102 3.11.4堆栈使用工具 105 3.12 工具 105 3.12.1队列 . 105 3.12.2 命名组件 . 106 3.12.3 实时测试 . 107 3.12.4 其它工具 111 3.13 嵌入式调试 112 IV 3.14 实时编译配置MQX . 112 3.14.1 MQX编译时配置选项 . 113 3.14.2 推荐设置 . 1

8、15 第四章第四章 重建重建MQX . 117 4.1 为什么要重建MQX? . 117 4.2 开始之前 117 4.3 FREESCALEMQX的目录结构 . 117 4.3.1 MQX RTOS目录结构 118 4.3.2 PSP子目录 . 119 4.3.3 BSP子目录 . 119 4.3.4 输入/输出(I/O)子目录 120 4.3.5 其它源子目录 . 120 4.4 FREESCALEMQX构建工程 . 120 4.4.1 PSP构建工程 . 120 4.4.2 BSP构建工程 . 120 4.4.3 构建后处理 . 120 4.4.4 构建目标 . 121 4.5 重建FR

9、EESCALE MQX RTOS . 121 4.6 创建客户MQX配置并构建工程 . 121 4.6.1 为什么创建一个新的配置? . 121 4.6.2 克隆现有配置 . 121 第五章第五章 开发一个新的开发一个新的BSP . 123 5.1 什么是BSP? . 123 5.2 开发一个新的BSP . 123 5.3 选择一个基准BSP然后开始工作 . 123 5.4 和目标板通信 123 5.5 修改BSP特定的包含文件 . 123 5.5.1 bsp_prv.h 124 5.5.2 bsp.h . 124 5.5.3 target.h . 124 5.6 修改启动代码 124 5.6

10、.1 comp.c 124 5.6.2 p . 125 5.7 修改源代码 125 5.7.1 init_bsp.c 125 5.7.2 get_usec.c . 126 5.7.3 get_nsec.c . 126 5.7.4 mqx_init.c . 126 V VI 5.8 为I/O驱动程序创建默认的初始化文件 . 126 5.8.1 initdev.c 126 5.9 支持编译器的文件 126 5.10 构建新的BSP . 127 第六章第六章 FAQS 128 6.1 概述 128 6.2 事件 128 6.3 全局构造 128 6.4 空闲任务 128 6.5 中断 128 6.6

11、 内存 129 6.7 信息传递 129 6.8 互斥 130 6.9 信号量 130 6.10 任务退出处理与任务异常处理 130 6.11 任务队列 130 6.12 任务 131 6.13 时间片 131 6.14 定时器 131 第一章第一章 前言前言 1.1 关于MQX MQX 实时操作系统设计用于单一处理器、 多处理器和分布式处理器等形式的嵌入式实时系统。 Freescale 半导体公司成功地搭载 MQX 操作系统软件平台用于 ColdFire 和 PowerPC 系列微处 理器。相比于最初发布的 MQX 软件,Freescale MQX 软件更易于配置和使用。现在单一发布版本 就

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

13、MQX函数原型。 Freescale MQX Freescale MQX发布版本还包含其它基于MQX操 作系统的软件产品。 参见RTCS TCP/IP栈、 USB主机开 发套件、USB设备开发套件、MFS文件系统等用户指 南和参考手册。 1.3 版本3.0和2.50的新特点 Freescale MQX 为了延续最初 MQX 发布版本的编号方式, Freescale MQX 发布版本第一版编号为 3.0。 尽管主版本编号改变, MQX 并没有主要特性改变,与 2.50 版本兼容。 关于 Freescale MQX RTOS 新特性的最新信息,请参见相 关版本的发布文档。 Freescale MQ

14、X RTOS 版本 3.0 相比 MQX 版本 2.50 具有如下改进: ? Freescale MQX RTOS 版本包含 MFS、RTCS、USB 等 MQX 关键组件。 ? Freescale MQX RTOS 与其它 MQX 组件的默认开发环境是 CodeWarrior Development Studio。新版本还将支持其它开发环境。 ? 现在所有关键 Freescale MQX RTOS 组件(PSP、BSP、RTCS、MFS、USB、.)的实时 编译配置都由编辑 user_config.h 文件完成,存放于顶层配置文件夹(config)下的板级相 关路径。而在以前的版本中,用户配

15、置的宏通过命令行下的 makefile 或者 CodeWarrior 下的预处理文件传入整个编译过程。 ? PSP 组件是可裁剪的,基于特定的硬件平台。PSP 组件针对特定处理器设备。PSP 代码 仍然保持相对的独立性,而且能够对特定的硬件平台进行更好的内核裁剪。 ? MQX 现在支持类型存储(typed memory) ,即允许一些附加信息能在任务调试插件 (taskaware debugger plugin)中显示出来。 MQX2.50 向下兼容 2.40 版本,并且具有如下改进: ? 减少对32位类型的依赖类型由处理器本身数据位数决定。 例如一个16位的处理器, 其一般数据类型大小是 1

16、6 位。对于小规模架构的处理器降低了相应代码和数据的大小。 ? 时间由一个时钟滴答(tick)来度量为允许更高分辨率的延迟、定时和时间测量, MQX 用时钟滴答取代秒和毫秒来衡量时间。 延迟一段特定的时间或者直到一个特定的时 间为止成为可能。这一改进适用于所有使用超时功能的组件。这一内在的改变对于用户 来讲是透明的。 另外, MQX 加入了一个扩展的日期结构来表示超过 24 世纪的年历日期, 精度可以达到皮秒。 2 ? 支持存储管理单元(MMU)MMU 支持任务间的存储保护。每个任务能建立它自己 的被保护数据区域。 ? 多个内存池应用程序可以从一个应用自身定义的全局存储区分配内存块,正如之前 应用从默认的内存池分配内存块一样。 内存池和 MQX 版本 2.40 的区块 (partition) 类似, 但允许用户分配可变大小的存储块。 ? 轻量级的存储模块与存储组件类似, 作为轻量级的组件, MQX 在分配存储块时做较 少的检查,且代码和数据量较小。在分配和释放存储空间时,轻量级存储组件更快,但 当一个任务结束时回收存储区域速度较慢。 ? 能创建处于阻塞

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

当前位置:首页 > 办公文档 > 总结/报告

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