没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
吴少风 1 / 7
使用 keilMDK 为 ARM9 移植 uCOSII
作者:吴少风
声明:文中内容仅为个人观点,欢迎讨论。
1. 前言
ARM9 是 ARM 推出较早的经典处理器,已经积累了大量的应用。uCOS 是流行
的开源的实时操作系统(RTOS),可以从 uCOS 官网获取源码。KeilMDK 是 ARM
官方的集成开发环境(IDE),用以支持 ARM 内核的不同制造商的芯片,其界面简
单,功能强大,使用方便,而且持续更新,文档详尽。
ARM9 可以运行 linux 操作系统,但开发相对复杂,且实时性较低。为 ARM9
移植 uCOS 操作系统,提供了 一种简单的 、 实 时的操作 系 统方案 。 目 前 , 在
keilMDK 下,已经有大量 ARM Cortex-M 核心的 uCOS 移植案例。而 ARM9 的嵌入
式开发,包括 bootloader 和系统移植等,还有很多使用 ADS 开发环境。但 ADS 支
持和更新落后,使用相当不方便。本文使用 keilMDK 替换落后的 ADS,为项目带来
了方便。对业内更多其它的 ARM9 开发项目,也多一条方法借鉴。
uCOS 的参考资料,是邵贝贝翻译的《嵌入式实时操作系统 uC_OS-II》,以及
uCOS 官方文档号为 AN1014 的应用笔记。因为要和 CPU 寄存器组打交道,移植前
还需要找到:S3C2440 芯片用户手册,ARM 构架参考手册。编译器所需帮助,可以
在其帮助菜单中查看超文本文档,方便且详尽。
本文侧重于移植工作,读者在移植之前,应该已经熟悉 keilMDK 环境,这在网
上有一大堆资料。而且使用 keilMDK 在实际硬件上做过 GPIO、中断、定时器的实
验,因为移植时也需要做这些工作。这些都很简单,建立一个工程,不用修改提示
拷贝过来的对应汇编启动文件就可完成。同时手头还有一些辅助调试的手段,比如
串口工具、开发板上的屏幕显示,这些可以确保遇到问题有更多的调试手段。移植
uCOS 的代码调试,只使用 IDE 的模拟器(project option->debug->using simulator)
也可以完成调试。
2. 设计方案
OS 的主要任务是调度 CPU 及其它系统资源,很多访问往往需要特权,因此操
作系统工作在特权模式。操作系统所提供的功能,要在特权模式下运行,包括临界
段保护、任务切换等。用户模式不能随便访问受保护的资源,因此用户程序工作在
受限制的模式。而由受限模式切换到特权模式,通常也是受保护的,这种改变需要
巧妙的设计。
一般情况下,一个 CPU,一套 CPU 寄存器组。进入中断时,先使用栈做现场
保护。任务切换的情形类似于中断,也要先用栈做现场保护。对于有软中断的
CPU,还可以利用软中断做任务切换,从而带来一些方便。
对于 ARM9 处理器,一般工作在 SYS/USR 模式,USR 模式受限,不能改变状
资源评论
吴少风
- 粉丝: 102
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功