- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1516.基于AT91的μCOS Ⅱ移植推荐
基于AT91的μC/ OS Ⅱ移植
摘要:本文以At91M42800A处理器为移植目标, 讨论实时操作系统μC/OS_II 的移植技巧。在移植过程中,基于ARM7 体系结构特点进行编写说明, 具有通用性, 适合大部分ATA91系列芯片的移植。
关键词:嵌入式操作系统;μC/OS_II;AT91;移植
1 引言
目前,嵌入式操作系统在许多领域得到广泛应用。μC/ OS Ⅱ便是一种源代码公开的可移植、可裁剪的多任务嵌入式操作系统,其功能完备、性能可靠,与其它嵌入式操作系统相比,更适用于硬件资源有限的单片微机系统。基于ARM7 的AT91系列处理器则是低功耗的32 位RISC处理器, 它广泛应用于低功耗,低成本要求的消费产品中。本文主要讨论将μC/OS_II 移植到AT91M42800A上的方法。
2 At91M42800A的特点和总体结构
At91M42800A为ATMEL公司基于ARM7TDMI核的AT91 16/32 位微处理器家族的成员,其处理器核为高性能的32位RISC体系结构,并具有高密度的16位指令集和极低的功耗。其特点主要如下:
集成了ARM7TDMI ARM Thumb处理器内核;
完全可编程的外部总线接口;
8通道外围数据控制器;
8优先级、可单独屏蔽的向量中断器;
5个可编程I/O口线;
6通道16位定时器/计数器;
2个主/从SP接口;
3个系统定时器;
该处理器有两条主要总线:先进系统总线ASB和先进外围总线APB。ARM7TDMI通过ASB接口实现与片内32位寄存器、外部总线接口EBI以及AMBA桥的互连。AMBA桥用来驱动APB;APB用来访问片内外围,优化系统功耗。
3 μC/ OS Ⅱ工作原理
3.1 μC/ OS Ⅱ的任务调度机制
调度是指任务间的转换,即保存一个任务的执行环境并恢复另一个任务的执行环境,也称任务上下文的切换,其本质是任务堆栈与工作堆栈的相互复制。工作堆栈则是正在占用CPU 的任务所使用的堆栈,也称硬件堆栈或系统堆栈。每台机器或者说每个系统只有一个工作堆栈,CPU 通过堆栈指针操作工作堆栈的内容。每一次任务的调度都要进行任务上下文的保存和切换工作,即将当前工作堆栈的内容复制到旧任务的任务堆栈中,同时也把新任务的任务堆栈内容装入工作堆栈中去。
3.2 仿真系统中μC/ OS Ⅱ的移植条件
对μC/ OS Ⅱ进行移植时,必须满足5个条件:
(1)处理器C编译器支持可重入代码的生成;
(2)用C语言可以打开和关闭中断;
(3)处理器支持中断,并能产生定时中断;
(4)处理器支持足够的R A M 空间;
(5)处理器有相应的指令;
3.3 μC/ OS Ⅱ的移植过程
μC/OS_II 移植主要集中在三个文件中: OS_CPU.H、OS_CPU_A.ASM、OS_CUP_C.C、OS_CPU.H 包括了用#define 语句定义的处理器相关的常数、宏以及类型。OS_CPU_A.ASM包括用户编写的汇编语言函数。OS_CUP_C.C 包括用户编写的C语言函数。移植中需要修改的部分如表1。
名称 类型 所在文件 语言 不依赖编译的数据类型 数据类型 OS_CPU.H C语言 堆栈方向 宏定义 OS_CPU.H C语言 人物堆栈初始化 函数 OS_CPU_C.C C语言 时钟节拍中断服务 函数 OS_CPU_A.ASM 汇编 开、关中断的方式 宏定义 OS_CPU.H C语言 开、关中断 宏 OS_CPU.H C语言 任务级的切换 函数 OS_CPU_A.ASM 汇编 中断中的任务切换 函数 OS_CPU_A.ASM 汇编 启动最高优先级任务 函数 OS_CPU_A.ASM 汇编 任务级的切换 函数 OS_CPU_C.C C语言
表一
3.3.1 堆栈方向
μC/OS_II 使用结构常量OS_STK_GROWTH 来指定堆栈的生长方式:置OS_STK_GROWTH为0,表示堆栈从下(低地址)往上(高地址) 增长。置OS_STK_GROWTH为1,表示堆栈从上(高地址) 往下(低地址)增长。ARM处理器对两种方式均支持,但在本文中OS_STK_GROWTH 的值定义为1,它在OS_CUP.H 中定义。#define OS_STK_GROWTH 1。
3.3.2 系统时钟节拍中断服务程序OSTickISR()
时钟节拍中断是一个周期性中断,为实时内核提供时钟拍。频率越高,系统负荷越重。其周期的大小决定了内核所能应用系统提供的最小时间间隔服务。一般的设计中使用定器,由用户自己建立中断来解决。OSTickISR()系统时钟节拍断服务函数,需要用汇编在进入中断服务程序时保存寄存器出时恢复。下面给出汇编的伪指令,移植时用汇编语言做相的代换就行了。汇编程序伪代码如下:
您可能关注的文档
- (人教版)新课程文言文总复习改编推荐.doc
- (答案)苏教版八年级下周末家作3推荐.doc
- (工商局长)在私营企业家联谊会上的讲话推荐.doc
- (C++)基于WebCam的人脸检测技术 答辩演示文稿new推荐.ppt
- -信息技术课堂教学收尾艺术的探索推荐.doc
- (人教版)高二议论文:要有条有理推荐.ppt
- .5.31世界无烟日活动总结推荐.doc
- 00后给闺蜜的道歉信推荐.doc
- 004方针目标推荐.doc
- 01前台年终工作总结范文推荐.doc
- 1519.在计算机教学中如何把握学生学习的主体性推荐.doc
- 1520.绘画疗法及其在学校心理咨询的适用性推荐.doc
- 1521.化学教育与人文价值推荐.doc
- 1511.基于CS1180压力传感器检测系统的软件设计--毕业论文推荐.doc
- 1529.国际贸易法教学情境创设的策略推荐.doc
- 1523.B过程控制实用开发实验软件--答辩稿推荐.ppt
- 1524.国有商业银行竞争力影响因素分析-基于和外资银行在服务质量和金融创新方面的较量----毕业设计推荐.doc
- 1530.规范 精细 个性 有效——“校本教研”的实践与思考推荐.doc
- 1523.A过程控制实用开发实验软件 毕业设计推荐.doc
- 1535.关于在农村居民中开展个人理财的研究-----毕业设计推荐.doc
最近下载
- 《爆炸和火灾危险场所防雷装置检测技术规范GB/T 32937-2016》知识培训.pptx VIP
- 3.1 波的形成 课件-高二上学期物理人教版(2019)选择性必修第一册.pptx VIP
- 《应用密码学》配套教学课件.ppt VIP
- 演讲台风训练.ppt VIP
- 演讲比赛培训方案.pptx VIP
- 演讲台风适用于演讲训练培训.ppt VIP
- 运输企业安全教育培训制度.docx VIP
- JC-T 2027-2010 高纯石英中杂质含量的测定方法—电感耦合等离子体原子发射光谱法.pdf VIP
- 注册安全工程师考试《管理笔记》.docx VIP
- 宁夏平罗县几种典型土壤修正系数的确定.pdf VIP
文档评论(0)