嵌入式操作系统上的移植与应用.pdf
《嵌入式操作系统上的移植与应用.pdf》由会员分享,可在线阅读,更多相关《嵌入式操作系统上的移植与应用.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式操作系统!#$%&在()*上的移植与应用赵宁+陈明+何鹏举,西北工业大学自动化学院+陕西 西安-./-0 1摘要2以34 56 7公司的38 9.:;?#A BC C移植到3;D微处理器上的主要过程+并实现了一个嵌入式C E 4 6 F E 6 4的多任务系统G实践证明+该系统具有成本低H便于移植和扩展性强等特点+有良好的应用前景G关键词2嵌入式操作系统I?#A B C C I 3;DI移植I嵌入式C E 4 6 F E 6 4中图分类号2 8 J 0-K文献标识码2 L文章偏号2./0 B=/=.,0/1/B/0 9 B/?#A B C C4 f3;D r F f i 6 l l f
2、Fa lt 6 l i F a s 6 t u3E6 v h 5r 7 6f g 6 5s 6 t t 6 ta E 4 6 F E 6 4 5e 7 4 a B 4 h l w lF e El m l 4 6 5 a lb a o 6 E uC 4l j f k l5h E mh t o h E 4 h b 6 ll e i jh l7 f ki f l 4+r f F 4 h s a 7 a 4 mh E t6 v r h E l a s a 7 a 4 m+h E ta 4 i h Es 6k a t 6 7 me l 6 t ux yz V N W Q 2 6 5s 6 t t 6 t
3、 A I?#A B C C I3;DI4 F h E l r 7 h E 4 h 4 a f E I6 5s 6 t t 6 ta E 4 6 F E 6 4收稿日期2 0/B/0 B 0?#A B C C移植到34 56 7公司的处理器389.:;?#A B C C和8?J#C J协议栈三者的结合+应用到了嵌入式C E 4 6 F BE 6 4系统中G!#$%&的概述目前市场上的商用嵌入式操作系统产品很多+如v kf F w l H J A A H e i 7 6 e l和!a E?c等+它们已经十分成熟+为研究和开发提供了有力的开发和调试工具+但开发成本昂贵+并不适用于一些小型系统的开发G
4、而?#A B C C是一个免费的H源码公开的H基于优先级的H占先式的H可裁剪的多任务实时内核G其绝大部分源码是用3A C?编写的+代码可读性强+可移植性好+对处理器及资源要求不高G目前+它支持v =H 3;DHJ f k6 F J?H DC J A等众多体系结构+并有很多商业应用实例G?#A B C C是优秀的轻量级实时操作系统+适用于本文嵌入式系统G?#A B C C的主要特点如下2是优先级可剥夺的实时多任务操作系统G可处理和调度#=个用户任务+任务的优先级可以动态调整G提供任务间通信H同步使用的信号量H邮箱和消息队列G具有良好的可裁剪性+可尽量减小系统的;D和;3D大小G?#A B C C
5、的软件体系结构如图.所示+它包括应90航 空 计 测 技 术计算机技术与应用万方数据用程序软件!与应用相关的代码!与处理器无关的代码和与处理器相关的代码应用程序软件是用户根据需求来编写的代码本文的嵌入式#$%&$&%设计就是编写这部分代码用户根据自己的应用系统通过编写与应用相关的代码来定制合适的内核服务功能(通过这部分代码可以实现对)*+,-.#的裁剪与处理器无关的代码就是通常所说的操作系统的内核()*+,-.#所有系统服务均由内核提供这部分代码是完全公开的(这里采用的是)*+,-.#/0 1 2 3 1 4版本内核将应用系统和底层硬件有机的结合成一个实时系统要使同一个内核能适用于不同硬件体系
6、(就需要在内核和硬件之间有一个中间层(这就是与处理器相关的代码处理器不同(这部分代码也不同这部分代码可以由用户来编写(也可以直接使用已经成功移植的范例所谓移植(就是编写与处理器相关的代码图5)*+,-.#软件体系结构6 7 8+9:;?上的移植A B是目前嵌入式领域应用最广泛的A#-*微处理器结构(以其低成本!低功耗!高性能等优点占据了嵌入式系统应用领域的领先地位A B系列的处理 器 当 前 有A BC(A BD(A BD E(A B5 F(A B5 5等 多 个 产 品(所 有 的A B处 理 器 都 共 享A B通用的基础体系结构本文采用的是大容量G H I J K型LD 5系列微处理器M
7、M LD 5 G A N F 5 O 1(它是%P&H公司最新推出的基于A BC L Q B#核的微控制器这种微控制器的特点是高性能R 1位A#-*体系结构!高密度5 O位指令集!低功耗以及实时性(扩充的G H I J K存储器还增加了开发者使用的灵活性一般来说(能移植)*+,-.#的*S T必须满足以下条件U V处理器的*编译器能产生可重入代码W X用*语言就可以打开和关闭中断W Y处理器支持中断(并且能产生定时中断W Z处理器支持能够容纳一定量数据的硬件堆栈W 处理器有将堆栈指针和其他*S T寄存器读出和存储到堆栈或内存中的指令 5 对于LD 5 G A N F 5 O 1来说(上面的这些
8、条件都是可以满足的开发工具采用的是0 5 2 1的Q-/A BQ&0&H _&-a%&4(可以生成可重入代码W开关中断可以通过设置相应寄存器来实现W)*+,-.#通过处理器产 生 的 定 时 器 中 断 来 实 现 多 任 务 之 间 的 调 度W在A BC L Q B#的处理器上可以产生定时器中断另外(A BC L Q B#核的处理器具有硬件堆栈和有关的堆栈指令实际上()*+,-.#可以简单地看作是一个多任务调度器(在这个任务调度器上添加了与多任务操作系统相关的一些系统服务(如信号量!邮箱等其D F b的代码是用*语言写的(可以直接移植到有*语言编译器的处理器上移植工作主要集中在多任务切换的
9、实现上(因为这部分代码用来保存和恢复*S T现场/即写+读相关寄存器4(所以不能用*语言实现(只能用汇编语言完成 N)*+,-.#/0 1 2 3 1 4的全部源代码量大约是O F F F cC F F F行(共5 O个文件(将)*+,-.#移植到A B处理器上(需要修改R个与A B体系结构相关的文件U,-*S T2 d(,-*S T2-B(,-*S T*2*代码量大约是3 F F行以下分别介绍这R个文件的移植工作6 2 e 9:8 f g2 h包括数据类型定义!堆栈单位定义!堆栈增长方向定义!关中断和开中断的宏定义以及进行任务切换的宏定义等其中堆栈的单位与*S T的寄存器长度一致(堆栈是由高
10、地址向低地址增长6 2 6 9:8 f g=2=:?这部分需要对处理器的寄存器进行操作(所以必须用汇编语言来编写(包括N个子函数U,-%I%da i K.A j k/4(,-*%l-m/4(,-#$%*%J-m/4(,-L a n o.#-A/4,-%I%da i K A j k/4在多任务系统启动函数,-.-%I%/4中调用完成的功能是U设置系统运行标志位,-A$a$i pL A TE(将就绪表中最高优先级任务的栈指针装载到-S中(并强制中断返回这样就绪的最高优先级任务就如同从中断返回到运行态一样(使得整个系统得以运转,-*%l-m/4在任务级任务切换函数中调用任务级切换是通过-q#或者L
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 操作系统 移植 应用
限制150内