- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式操作系统实验
— μC/OS-II 的移植
2009年12 日
主要内容
μC/OS-II移植概述
μC/OS-II移植过程
μC/OS-II应用
一、μC/OS-II移植概述
所谓“移植”,就是使一个实时内核能在其它的
微处理器或微控制器上运行。
尽管大部分μC/OS-II的代码是用C语言编写
的,但是在编写与处理器硬件相关的代码时还是不
得不使用汇编语言。
移植的主要工作就是编写这些与处理器硬件相
关的代码。
在移植前针对所使用的微处理器
进行规划,主要有以下几个方面的
考虑:
编译器的选择
任务模式的选择
支持的指令集
编译器的选择
针对ARM 处理器核的C语言编译器有很多,如SDT 、
ADS 、MDK和GCC等
目前在国内最流行的是ADS 、MDK和GCC
这里我们使用MDK编译程序和调试
ARM的工作模式
ARM处理器有7种操作模式:
用户模式(usr)
- 正常的程序执行模式
快速中断模式(fiq)
- 支持高速数据传输或通道处理
中断模式(irq)
- 用于通用中断处理
管理员模式(svc)
- 操作系统的保护模式.
中止模式(abt)
- 支持虚拟内存和/或内存保护等异常
系统模式(sys)
- 支持操作系统的特殊用户模式(运行操作系统任务)
未定义模式(und)
- 支持硬件协处理器的软件仿真
除了用户模式外,其他模式均可视为特权模式
任务模式的取舍
ARM7 处理器核具有上述七种模式,其中除用户
模式外其它均为特权模式。其中管理、中止、未定义、
中断和快中断模式与相应异常相联系,任务使用这些
模式不太适合。
系统模式除了是特权模式外,其它与用户模式一
样,因而可选为任务使用的模式只有用户模式和系统
模式。
为了尽量减少任务代码错误对整个程序的影响,缺
省的任务模式定为用户模式,可选为系统模式,同时
提供接口使任务可以在这两种模式间切换。
支持的指令集
带T 变量的ARM7 处理器核具有两个指令集:
标准32位ARM 指令集
16位Thumb指令集
两种指令集有不同的应用范围。
为了最大限度地支持芯片的特性,任务应当可以使
用任意一个指令集并可以自由切换,而且不同的任务
应当可以使用不同的指令集
二、μC/OS-II移植过程
要移植一个操作系统到一个特定的CPU体系
结构并不是一件很容易的事情,它对移植者有以
下要求:
1 . 对目标体系结构要有很深了解;
2 . 对OS原理要有较深入的了解;
3 . 对所使用的编译器要有较深入的了解;
4 . 对需要移植的操作系统要有相当的了解;
5 . 对具体使用的芯片也要一定的了解
μC/OS-II的文件结构
μC/OS-II移植 —— μC/OS-II硬件软件体系结构
应用程序
(用户代码)
μC/OS-II
μC/OS-II配置
(与处理器无关代码)
(与应用相关)
OS_CORE.c
OS_CFG.H
OS_FLAG.c
INCLUDES.H
...
μC/OS-II移植 移植时需要
文档评论(0)