




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
mCOS-I在S3C44BOX处理器上的移植摘要介绍实时操作系统湖勺特点和内核结构,给出所在嵌入式3447微处理器上的移植的步骤及详细相关代码,同时阐述所在应用中应注意的问题。关键词佐344移植实时操作系统史能强大,支持56个用户任务,其内核为占先式,支持信号量、邮箱、消息队列等多种常用的进程间通信机制,现已成功应用到众多商业嵌入式系统中,是一个成熟稳定的实时内核。与大多商用不同的是,必开所有的源代码,90的代码使用标准的语言书写,程序可读性强、移植性好;同时它可免费获得,即使商业应用也只收取少量的许可费用。因此,对佐实时操作系统的学习研究、开发、应用具有重要意义。3440微处理器是三星公司专为手持设备和其它嵌入式应用提供的高性价比的微控制器解决方案。它使用公司的16位32位结构,内核是7,工作在66,片上集成了以下部件8、外部存储器控制器、控制器、4个通道、2个、1个多主2总线控制器、1个2总线控制器,以及5通道定时器和1个内部定时器、8通道12位等,能够与常用的外围设备实现无缝连接,功能强大。目前,国内应用较为广泛。范文先生网收集整理1伤实时操作系统结构图1说明了湖勺软硬件体系结构。应用程序处于整个系统的顶层,每个任务都可以认为自已独占了,因而可以设计成为一个无限循环。伤处理器无关的代码提供了湖勺系统服务,应用程序可以使用这些函数进行内存管理、任务间通信及创建、删除任务等。大部分的出代码是使用语言书写的,因此湖勺可移植性好,然而仍需要使用和汇编语言写一些处理器相关代码。湖勺移植需要满足以下要求①处理器的编译器可以产生可重入代码;②可以使用调用进入和退出临界区代码;③处理器必须支持硬件中断,并且需要一个定时中断源;④处理器需要能够容纳一定数据的硬件堆栈;⑤处理器需要有能够在寄存器与内核和堆栈交换数据的指令。3440处理器完全满足上述要求。2实时内核缶在3440上的移植我们使用编译器,移植佐主要包括以下几个步骤。1设置_中与处理器和编译器相关的代码数据类型*************************************************;8;*8位无符号整数*8;*8位有符号整数*16;*16位有符号整数*16;*16位无符号整数*32;*32位无符号整数*32;*32位有符号整数*32;律精度浮点数*64;敝精度浮点数*_;*堆栈入口宽度为16位*与处理器相关的代码#__*开启中断*#__1*堆栈由高地址向低地址增长*2用语言编写6个操作系统相关的函数
__*,*,*,16{*;因变量没有用到,防止编译器产生警告*=*;*装载堆栈指针**为新任务创建上下文**--=;***--=***--=0;*12**--=0;*11**--=0;*10**--=0;*9**--=0;*8**--=0;*7**--=0;*6**--=0;*5**--=0;*4**--=0;*3**--=0;*2**--=0;*1**--=;*0**--=32|00|;*,*--=32|00;关闭**;后5个函数是钩子函数,可以不加代码_*_*3用汇编语言编写4个与处理器相关的函数—;运行优先级最高的就绪任务4,_;得到当前任务的地址5,_;得到高优先级任务的地址5,_;得到高优先级任务的地址5,[5得到堆栈指针,[5]切换到新的堆栈5,[4设置新的当前任务的地址!,{4}_,4!,{0-;2开}始新的任务任务级的任务切换函数!,{保存指针!,{保存指针!,{0-12保存寄存器文件和返回地址4,!,{4呆;存当前4,!,{4};=4,_5,_6,[5;6得到当前任务的地址4,_5,[4],[保存栈指针在占先任务的上;取得高优先级任务的地址6,_6,[6],[得;到新任务的堆栈指针;=6,[4]得到当前新任务的地址!,{4}—,4!,{4}_,4!,{0|-断级的任务切换函数!,{-,},,#4,,#412,,,,#00,,#03_,;中断服务函数!,{0-11,}0,0,0,#设中断服务函数!,{0-11,}0,0,0,#设0置;中断禁止标志_,0中断结束0,_1,=_01,{0}0,=2,[0]2,#完成上述工作后,出就可以运行在处理器上了。3使用佑系统应注意的问题①〃-和等分时操作系统不同,不支持时间片轮转法。它是一个基于优先级的实时操作系统。每一个任务的优先级必须不同分析它的源码会发现,肩巴任务的优先级当作任务在标识来使用,如果优先级相同,任务将无法区分。进入就绪态的优先级最高的任务首先得到的使用权,只有等它交出的使用权后,其它任务才可以被执行。所以,它只能就是多任务,不能就是多进程,至少不是我们所熟悉的那种多进程。②〃列共享资源提供了保护的机制。佐是一个支持多任务的操作系统。我们可以把一个完整的程序划分成几个任务,不同的任务执行不同的功能。对于共享资源比如串口,佐也提供了很好的解决办法,一般情况下使用的是信号量方法。我们创建一个信号量并对它进行初始化,当一个任务需要使用一个共享资源时,它必须先申请得到这个信号量。在这个过程中即使有优先权更高的任务进入了就绪态,因为无法得到信号量,也不能使用该资源。在防中称为优先级反转。简单地说,就是高优先级任务必须等待低优先级任务的完成。在上述情况下,在两个任务之间发生优先级后转是无法避免的。所以不在使用砰寸,必须对所开发的系统了解清楚才能选择对于某种共享资源是否使用信号量。©M-内存管理不够完善。在分析许多湖勺应用实例中发现,任务栈空间和内存分区的创建采用了定义全局数组的方法,这样实现起来固然简单,但不够灵活有效。编译器会将全局数组作为末初始化的全局变量,放到应用程序映像的数据段。数组的大小是固定的,生成映像后不可能在使用中动态地改变。对于任务栈空间来说,数组定义大了会造成内存浪费;定义小了任务栈溢出,会造成系统崩溃。对于内存分区,在不知道系统初始化后给用户留下了多少自由内存空间的情况下,很难定义内存分区所使用数组的大小。此外,现在佑只支持固定大小的内存分区,容易造成内存浪费。G将来应该被改进以支持可变大小的内存分区。因此,系统初始化后能清楚地掌握自由内存空间的情况是很重要的。所以,应避免使用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 购房者与卖方定金协议
- 模具设计劳务合同协议
- 正规供货欠款合同协议
- 品牌复刻代理合同协议
- 和有机肥公司签合同协议
- 呼吸器采购合同协议
- 和诊所药店合作合同协议
- 快餐店加盟合同协议
- 恋爱关系终止协议书范本
- 商场租赁甲方合同协议
- 产程管理的核心步骤
- 中央空调安装装修施工工艺手册
- 血液溅入眼睛应急预案脚本
- 水浒一百单八将座次排位、梁山泊职位、诨号、星宿、武器、最终结局
- 半导体管特性图示仪校准规范
- 中国居民膳食营养素参考摄入量(DRIs)(2013-修订版)资料
- JCT239-2014 蒸压粉煤灰砖
- 培养思维是发展核心素养的关键讲座课件
- 站班会记录表
- 经典话剧剧本《雷雨》
- 2022年丹东市留置看护与公安技术服务中心招聘工作人员考试真题
评论
0/150
提交评论