版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于μCOS的嵌入式系统应用开发研究
Abstract:ThepaperbringforwardtheconceptionofEmbeddedSystem,Analysethecorekereofμc/os,moreoverdetailedlyintroducegraftingtheμC/OS'soperatingsystemontheARM'sarchitecturalstructureofS3C44B0'smicroprocessorandempolderonapplicationanddriverprogram。Keywords:EmbeddedSystem
μc/osMicroProcessor一、嵌入式系统概述嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物,目前嵌入式系统已经渗透到日常生活的各个方面,其在工业、服务业、消费电子等领域的应用范围都不断扩大,嵌入式计算机系统的正式定义为:以应用为中心,以计算机技术为基础,软件硬件可裁减,符合应用系统对功能、可靠性、成本、体积、功耗的严格要求的专用计算机系统。嵌入式系统的主要特征有:系统内核小;专用性强;系统精简;嵌入式软件要求高实时性的操作系统软件;软件要求高质量和高可靠性;嵌入式系统开发需要专门的开发工具和环境。二、嵌入式μC/OS的体系结构介绍由于μC/OS结构简单,编程工具绝大部分是C语言编程,可以在大多数界面友好的编译器中编译生成目标代码,如BorlandC、Keil等工具,且其内核最小可以到几十K,可以在多种体系结构的微处理器上移植,用户的工作较小,源代码开放,便于学习。μC/OS-II的几大组成部分有:核心部分(OSCore.c)是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分。任务处理部分(OSTask.c)完成任务的操作;包括任务的建立、删除、挂起、恢复等等。时钟部分(OSTime.c)主要完成任务延时等操作。
任务同步和通信部分为事件处理部分,包括信号量、邮箱、邮箱队列、事件标志等部分;
μC/OS-II的软件体系结构如图1所示。从图1中可以看到,如果要使用μC/OS-II,必须为其编写OS_CPU.H、OS_CPU_C.C、OS_CPU_A.ASM三个文件。三、μC/OS在ARM微处理器上的移植μC/OS-II的全部源代码量大约是6000-7000行,一共有15个文件。将μC/OS-II移植到ARM处理器上,需要完成的工作也非常简单,只需要修改三个和ARM体系结构相关的文件,代码量大约是500行。以下分别介绍这三个文件的移植工作:OS_CPU.H文件数据类型定义,这部分的修改是与所用的编译器相关的,不同的编译器会使用不同的字节长度来表示同一数据类型,这里采用的编译器为集成可视化开发环境ARMSDT2.5,相关的数据类型的定义如下:typedefunsignedintOS_STK;
/*Eachstackentryis16-bitwide
*/2、OS_CPU_C.C文件void*OSTaskStkInit(void(*task)(void*pd),void*pdata,void*ptos,INT16Uopt){unsignedint*stk;opt
=opt;
/*'opt'isnotused,preventwarning*/stk
=(unsignedint*)ptos;
/*
Loadstackpointer*/*--stk=(unsignedint)task;/*
lr
*/……;/*
r12—r0
*/*--stk=ARM_MODE_SYS;
/*systemmode*/*--stk=ARM_MODE_SYS;
/*systemmode*/return((void*)stk);}当前任务堆栈初始化完成后,OSTaskStkInit返回新的堆栈指针stk,在OSTaskCreate()执行时将会调用OSTaskStkInit的初始化过程,然后通过OSTCBInit()函数调用将返回的sp指针保存到该任务的TCB块中。移植完以上程序后,用户就可以结合自己的项目要求来编写自己的应用程序了,用户可以添加如打印、空等待等任务,以下给出了一个例程,通过调用OSTaskCreate()函数注册了三个任务,由系统根据最优调度原理进行调度。voidmain(void){Initialize();
/*Processorspecificinitialization*/OSInit();bufferSemaphore=OSSemCreate(BUFFER_LENGTH-1);terminalSemaphore=OSSemCreate(1);OSTaskCreate(Task1,(void*)string1,(void*)&stacks[0][TASK_STK_SIZE-1],0);OSTaskCreate(Task2,(void*)string2,(void*)&stacks[1][TASK_STK_SIZE-1],1);OSTaskCreate(Task3,(void*)string3,(void*)&stacks[2][TASK_STK_SIZE-1],2);OSStart();/*
Start
*/}四、驱动程序的添加由于UC/OS提供的仅仅是一个任务调度的内核,通过以上移植,要想得到一个相对完整、实时的嵌入式多任务操作系统,还必须进行相当多的扩展工作。主要有:建立文件系统、通过开发如LCD液晶显示、USB通信、键盘、串口等驱动程序从而提供应用程序调用的API函数,还有创建图形用户接口(GUI)函数等,下面主要介绍一下串口驱动程序的开发。voidUart_Init(intmclk,intbaud)
{}该函数主要是初始化串口,设置波特率,其中mclk是系统主时钟频率,band参数传递串口通信波特率。voidUart_Select(intch){
}该函数进行串口选择,ch传递串口号。charUart_Getch(void)
{}该函数从串口读取字符,存放在一数组内。voidUart_GetString(char*string){
}该函数读取要发送的字符串,并一个一个字符地从串口发送。voidUart_SendByte(intdata)
{
}该函数通过串口发送数据,data是需要发送的字符。voidUart_SendString(char*pt)
{
}该函数通过串口发送字符串,pt是字符串首地址的指针。通过以上接口函数,系统向用户提供了屏蔽底层硬件的API函数,用户可以通过调用以上函数,方便地对串口进行操作。五、结束语目前市场上基于μc/os嵌入式操作系统的产品比较多,应用领域包括工业控制、信息家电、网络设备等方面,而且基于μc/os的应用正潮起云涌,蓬勃发展。随着后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 贵州大学《舞台实践与服务》2023-2024学年第一学期期末试卷
- 贵州财经职业学院《固态照明与显示技术》2023-2024学年第一学期期末试卷
- 2025年黑龙江省安全员B证考试题库附答案
- 2025山东省建筑安全员B证考试题库
- 贵阳信息科技学院《中小学生心理辅导》2023-2024学年第一学期期末试卷
- 硅湖职业技术学院《幼儿科学教育与活动指导》2023-2024学年第一学期期末试卷
- 广州幼儿师范高等专科学校《外国文学史1》2023-2024学年第一学期期末试卷
- 2025湖北省安全员知识题库
- 2025福建省安全员B证考试题库及答案
- 2025江西省建筑安全员-B证考试题库附答案
- 2024年度技术咨询合同:某科技公司与某政府机构关于技术咨询服务的协议(2024版)2篇
- 老年缓和医疗
- 医疗科研配色
- 2024年保安员资格考试题目及答案(共60题)
- 期末复习基础卷(试题)-2024-2025学年一年级上册数学人教版
- 急性胰腺炎的急救处理与家庭护理要点课件
- 糖尿病伴消化系统疾病饮食
- 2024年放射科应急预案演练(大全)
- 胡颓子育苗技术规程-地方标准修订说明
- 2023年机械员之机械员专业管理实务题库及参考答案(a卷)
- 班组安全培训试题含完整答案(各地真题)
评论
0/150
提交评论