




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1/10基于C/OS的嵌入式系统应用开发研究摘要本文介绍了嵌入式系统的概念,分析了C/OS的内核结构,并详细介绍了在具有ARM体系结构的S3C44B0微处理器上进行C/OS操作系统的移植和应用程序及驱动程序的开发。关键词嵌入式系统C/OS微处理器ABSTRACTTHEPAPERBRINGFORWARDTHECONCEPTIONOFEMBEDDEDSYSTEM,ANALYSETHECOREKEREOFC/OS,MOREOVERDETAILEDLYINTRODUCEGRAFTINGTHEC/OSSOPERATINGSYSTEMONTHEARMSARCHITECTURALSTRUCTUREOFS3C44B0SMICROPROCESSORANDEMPOLDERONAPPLICATIONANDDRIVERPROGRAM。KEYWORDSEMBEDDEDSYSTEMC/OSMICROPROCESSOR一、嵌入式系统概述嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物,目前嵌入式系统已经渗透到日常生活的各个方面,其在工业、服务业、消费电子等领域的应用范围都不断扩大,嵌入式计算机系统的正式定义为以应用为中心,以计算机技术为2/10基础,软件硬件可裁减,符合应用系统对功能、可靠性、成本、体积、功耗的严格要求的专用计算机系统。嵌入式系统的主要特征有系统内核小;专用性强;系统精简;嵌入式软件要求高实时性的操作系统软件;软件要求高质量和高可靠性;嵌入式系统开发需要专门的开发工具和环境。嵌入式系统由硬件和软件两大部分组成,在本开发应用中,选择ARM7TDMI内核结构的SAMSUNG公司的S3C44B0作为微处理器芯片,该芯片具有主频高、运算速度快,超低功耗、价格低廉、结构简单等特点,在该内核基础上扩展了一系列完整的通用外围器件,主要有片内8KB高速缓存、带有1个专用DMA通道的LCD控制器、2个通用DMA通道、1个多主机I2C总线控制器、5个PWM定时器及1个内部定时器、71个通用I/O口、8个外部中断源、8个10位ADC等资源,主频为66MHZ,系统支持大小端模式,共256MB的地址空间,支持8/16/32位数据总线编程。开发平台外配与用户交互接口有RS232串口电路、外扩FLASH、SDRAM,USB控制电路、以太网电路、键盘,JTAG接口电路部分。实时嵌入式操作系统的种类繁多,大体上可以分为两种商用型和免费型,前者系统功能稳定、可靠,并有完善的技术支持和售后服务,建立应用开发较为容易,但价格昂3/10贵,代表性的有美国WINDRIVER公司的VXWORKS操作系统、MICROSOFT公司的WINCE操作系统;免费型可以节约成本,且源码公开,便于开发,代表性的有嵌入式LINUX系统、C/OS系统。二、嵌入式C/OS的体系结构介绍由于C/OS结构简单,编程工具绝大部分是C语言编程,可以在大多数界面友好的编译器中编译生成目标代码,如BORLANDC、KEIL等工具,且其内核最小可以到几十K,可以在多种体系结构的微处理器上移植,用户的工作较小,源代码开放,便于学习。C/OSII的几大组成部分有核心部分是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分。任务处理部分完成任务的操作;包括任务的建立、删除、挂起、恢复等等。时钟部分主要完成任务延时等操作。任务同步和通信部分为事件处理部分,包括信号量、邮箱、邮箱队列、事件标志等部分;C/OSII的软件体系结构如图1所示。从图1中可以看到,如果要使用C/OSII,必须为其编写OS_、OS_CPU_、OS_CPU_三个文4/10件。三、C/OS在ARM微处理器上的移植C/OSII的全部源代码量大约是60007000行,一共有15个文件。将C/OSII移植到ARM处理器上,需要完成的工作也非常简单,只需要修改三个和ARM体系结构相关的文件,代码量大约是500行。以下分别介绍这三个文件的移植工作OS_文件数据类型定义,这部分的修改是与所用的编译器相关的,不同的编译器会使用不同的字节长度来表示同一数据类型,这里采用的编译器为集成可视化开发环境ARM,相关的数据类型的定义如下DEFINEBYTEINT8S/DEFINEDATATYPESFORBACKWARDCOMPATIBILITY/DEFINEUBYTEINT8U/TOUC/OSNOTACTUALLYNEEDEDFOR/DEFINEWORDINT16S/UC/OSII/DEFINEUWORDINT16UDEFINELONGINT32S5/10DEFINEULONGINT32U堆栈单位因为处理器现场的寄存器在任务切换时都将会保存在当前运行任务的堆栈中,所以OS_STK数据类型应该是和处理器的寄存器长度一致的。TYPEDEFUNSIGNEDINTOS_STK/EACHSTACKENTRYIS16BITWIDE/堆栈增长方向该设置由编译器选项决定,在本开发中设定堆栈由高地址向低地址增长。DEFINEOS_STK_GROWTH1/DEFINETHESTACKTOGROWFROMHIGHTOLOW、OS_CPU_文件任务堆栈初始化这里涉及到任务初始化时的一个堆栈设计,也就是在堆栈增长方向上如何定义每个需要保存的寄存器位置,在ARM体系结构下,任务堆栈空间由高至低依次将保存着PC、LR、R12、R11、R10、R1、R0、CPSR、SPSR。VOIDOSTASKSTKINITVOIDTASKVOIDPD,VOIDPDATA,VOIDPTOS,INT16UOPTUNSIGNEDINTSTK6/10OPTOPT/OPTISNOTUSED,PREVENTWARNING/STKUNSIGNEDINTPTOS/LOADSTACKPOINTER/STKUNSIGNEDINTTASK/LR/R12R0/STKARM_MODE_SYS/SYSTEMMODE/STKARM_MODE_SYS/SYSTEMMODE/RETURNVOIDSTK当前任务堆栈初始化完成后,OSTASKSTKINIT返回新的堆栈指针STK,在OSTASKCREATE执行时将会调用OSTASKSTKINIT的初始化过程,然后通过OSTCBINIT函数调用将返回的SP指针保存到该任务的TCB块中。OSSTARTHIGHRDY该函数是在主程序OSSTART多任务启动后执行,负责从最高优先级任务的TCB控制块中获得该任务的堆栈指针SP,通过SP依次将CPU现场恢复,这时系统就将控制权交给用户创建的该任务进程,仅执行一次,7/10此后多任务优先级调度由下面函数执行。转贴于论文联盟HTTP/OSCTXSW任务级的上下文切换,它是当任务因为被阻塞而主动请求CPU调度时被执行,由于此时的任务切换都是在非异常模式下进行的,它的工作是先将当前任务的CPU现场保存到该任务堆栈中,然后获得最高优先级任务的堆栈指针,从该堆栈中恢复此任务的CPU现场,使之继续执行。OSINTCTXSW中断级的任务切换,它是在时钟中断ISR中发现有高优先级任务等待的时钟信号到来,则在中断退出后直接调度就绪的高优先级任务执行。OSTICKISR时钟中断处理函数,它的主要任务是负责处理时钟中断,调用系统实现的OSTIMETICK函数,如果有等待时钟信号的高优先级任务,则需要在中断级别上调度其执行。其他相关的两个函数是OSINTENTER和OSINTEXIT,都需要在ISR中执行。移植完以上程序后,用户就可以结合自己的项目要求来编写自己的应用程序了,用户可以添加如打印、空等待等任务,以下给出了一个例程,通过调用OSTASKCREATE函数注册了三个任务,由系统根据最优调度原理进行调度。VOIDMAINVOID8/10INITIALIZE/PROCESSORSPECIFICINITIALIZATION/OSINITBUFFERSEMAPHOREOSSEMCREATEBUFFER_LENGTH1TERMINALSEMAPHOREOSSEMCREATE1OSTASKCREATETASK1,VOIDSTRING1,VOIDOSTASKCREATETASK2,VOIDSTRING2,VOIDOSTASKCREATETASK3,VOIDSTRING3,VOIDOSSTART/START/四、驱动程序的添加由于UC/OS提供的仅仅是一个任务调度的内核,通过以上移植,要想得到一个相对完整、实时的嵌入式多任9/10务操作系统,还必须进行相当多的扩展工作。主要有建立文件系统、通过开发如LCD液晶显示、USB通信、键盘、串口等驱动程序从而提供应用程序调用的API函数,还有创建图形用户接口函数等,下面主要介绍一下串口驱动程序的开发。VOIDUART_INITINTMCLK,INTBAUD该函数主要是初始化串口,设置波特率,其中MCLK是系统主时钟频率,BAND参数传递串口通信波特率。VOIDUART_SELECTINTCH该函数进行串口选择,CH传递串口号。CHARUART_GETCHVOID该函数从串口读取字符,存放在一数组内。VOIDUART_GETSTRINGCHARSTRING该函数读取要发送的字符串,并一个一个字符地从串口发送。VOIDUART_SENDBYTEINTDATA该函数通过串口发送数据,DATA是需要发送的字符。VOIDUART_SENDSTRINGCHARPT该函数通过串口发送字符串,PT是字符串首地址的指针。通过以上接口函数,系统向用户提供了屏蔽底层硬10/10件的API函数,用户可以通过调用以上函数,方便地对串口进行操作。五、结束语目前市场上基于C/OS嵌入式操作系统的产品比较多,应用领域包括工业控制、信息家电、网络设备等方面,而且基于C/OS的应用正
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年长城钻探工程公司春季招聘(20人)模拟试卷及答案详解(名校卷)
- 2025年中国联轴器行业市场运行态势、进出口贸易及发展趋势预测报告
- 2025年如何识破高考真题及答案
- 2025安徽马鞍山市当涂县引进中小学教师考前自测高频考点模拟试题及一套完整答案详解
- 2025福建农信春季招聘194人报考须知模拟试卷及答案详解1套
- 绿色农业套袋技术执行标准
- 硬笔行书书写要领
- 申请专利课件
- 2025广东依顿电子科技股份有限公司招聘PQA工程师岗等人员考前自测高频考点模拟试题及答案详解(有一套)
- 硬笔书法课件制作
- 母婴产褥期护理服务流程标准
- 人工智能应用基础(高职)全套教学课件
- 幼儿园防欺凌治理委员会
- 三上第五单元教材解读
- 北师大版小学数学五年级上册专项训练(知识梳理+典例精讲+专项训练)【应用题专项】第四单元 多边形的面积(讲义)(含答案)
- 硅灰石市场需求分析报告
- 学习中心教学论
- 2-绵阳一诊地理评讲(2021级2024届)
- 易制爆化学品防盗抢应急预案
- 医学图像存储和传输系统课件
- 酒店客房价格折扣规定
评论
0/150
提交评论