基于uCOS-II的嵌入式应用程序开发



《基于uCOS-II的嵌入式应用程序开发》由会员分享,可在线阅读,更多相关《基于uCOS-II的嵌入式应用程序开发(44页珍藏版)》请在装配图网上搜索。
1、,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,Click to edit Master title style,XUPT,嵌入式系统,原理与应用,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Click to edit Master title style,Click to edit Master text styles,Second level,Th
2、ird level,Fourth level,Fifth level,Click to edit Master title style,*,第八章,基于,C/OS-II,的嵌入式应用程序开发,目 录,8.1,嵌入式应用程序开发的特点,8.2 C/OS-II,应用程序结构分析,8.3 C/OS-II,程序设计技术,8.4 C/OS-II,在,ARM,微处理器上的移植,8.5,应用程序设计及实例,2,8.1,嵌入式应用程序开发的特点,8.1.1,开发调试环境的建立,在嵌入式系统开发中,典型的调试环境一般通常由三部分构成:一是通用计算机(用来运行调试软件,称为调试主机);二是协议转换器(连接调试主机
3、发出的高级命令与微处理器,JTAG,接口的低级命令之间的接口);三是调试目标。硬件调试环境如下图:,3,8.1,嵌入式应用程序开发的特点,8.1.2,基于嵌入式处理器的直接编程技术,如果针对硬件电路直接设计应用程序,那么应用程序的代码必须包括以下几个部分:,启动部分:硬件加电后首先运行(硬件检测和资源分配),处理器管理部分:实现处理器状态转换和寄存器使用等,外围设备访问部分:外围设备(如串口)的初始化等,程序功能部分:实现程序所要完成的具体功能,这样设计程序对设计人员的能力要求是很高的。,4,8.1,嵌入式应用程序开发的特点,8.1.3,基于嵌入式操作系统的编程技术,随着嵌入式微处理器和程序设
4、计技术的发展,人们把一个大的程序从功能上可划分为三个部分:,板级支持包(,BSP,):其目的是屏蔽下层硬件,主要由,Boot Loader,和,Drivers,两部分构成。,嵌入式实时操作系统(,RTOS,)。,应用程序:基于相应操作系统、在相应开发环境下设计的并最终运行在相应目标机上的程序。,这里,可由掌握不同技术的人去设计不同的部分,并在三部分之间设计相应的接口以供三部分之间相互调用。,5,8.2 C/OS-II,应用程序结构分析,下面以一个简单实例来说明基于,C/OS-II,操作系统设计的嵌入式应用程序的结构。,程序清单,8.1,两个,LED,交替闪烁,#include“config.h
5、”(1),#define LED1 (118)/,定义,LED1,,,P1.18,控制,LED1(2),#define LED2 (119)/,定义,LED2,,,P1.19,控制,LED2(3),#define TASK_STACK_SIZE 128 /,定义用户任务的堆栈长度,(4),OS_STK task1StkTASK_STACK_SIZE;/,定义任务,LED1,的堆栈,(5),OS_STK task2StkTASK_STACK_SIZE;/,定义任务,LED2,的堆栈,(6),void task1(void*pdata);/LED1,任务函数声明,(7),void task2(vo
6、id*pdata);/LED2,任务函数声明,(8),6,8.2 C/OS-II,应用程序结构分析,7,int main(void)/,主函数,(9),OSInit();/,初始化,C/OS-II(10),OSTaskCreate(task1,(void*)0,/,创建,LED1,任务,/,优先级为,4 (11),OSTaskCreate(task2,(void*)0,/,创建,LED2,任务,/,优先级为,5 (12),OSStart();/,启动,C/OS-II,任务开始执行,(13),return(0);(14),/main,函数中所调用的,OSInit,、,OSTaskCreate,和
7、,OSStart,,,是,/C/OS-II,操作系统提供的,API,函数。,/main,函数并没有直接调用,task1,和,task2,,只是在,main,中调用,/OSTaskCreate,创建两个任务时分别把,task1,和,task2,作为参数。,8.2 C/OS-II,应用程序结构分析,8,void task1(void*pdata)/,任务,LED1,函数定义,(15),pdata=pdata;/,防止出现编译警告,(16),TargetInit();/,目标板初始化,包括初始化中断系统,(17),PINSEL2&=,0 x08;/,选择管脚,P1.18,25,为,GPIO(18),
8、IO1DIR|=0 x0318;/,设置,LED(P1.18,、,P1.19),为输出,(19),IO1SET=0 x03=0 x1fc,INFO 1,nThe data at 0 x000001fc must be 0 x87654321.nPlease delete some source before this line.,ENDIF,CrpData,WHILE.0 x1fc,NOP ;,循环用,NOP,填充,直到,0 x1fc,WEND,CrpData1,DCD 0 x87654321 ;,当此数为,0 x87654321,时,用户程序被保护,ENDIF,40,8.5,应用程序设计及实
9、例,;,各模式堆栈空间分配,AREA MyStacks,DATA,NOINIT,ALIGN=2;,通过分散加载文件定位,SvcStackSpace SPACE SVC_STACK_LEGTH*4 ;,管理模式堆栈空间,IrqStackSpace SPACE IRQ_STACK_LEGTH*4 ;,中断模式堆栈空间,FiqStackSpace SPACE FIQ_STACK_LEGTH*4 ;,快速中断模式堆栈空间,AbtStackSpace SPACE ABT_STACK_LEGTH*4 ;,中止模式堆栈空间,UndtStackSpace SPACE UND_STACK_LEGTH*4 ;,未
10、定义模式堆栈空间,AREA Heap,DATA,NOINIT ;Heap,通过分散加载文件定位,bottom_of_heap SPACE 1,AREA Stacks,DATA,NOINIT ;Stacks,通过分散加载文件定位,StackUsr,END,41,8.5,应用程序设计及实例,从前面知道,,ARM,芯片复位后,系统进入管理模式、,ARM,状态,此时,PC,寄存器的值为,0 x00000000,系统就从,0 x00000000,处开始执行程序。而,0 x00000000,处放置着异常向量表,程序将根据异常向量表进行跳转。其执行过程如下:,芯片根据异常处理程序地址表,得到复位处理程序(,
11、ResetInit,)的地址,并跳转到复位处理程序(,ResetInit,)处去执行。,调用,InitStack(),函数,初始化,ARM,处理器各工作模式的堆栈。,调用目标板初始化函数(在,TARGET.C,中定义),初始化目标板。,跳转到用户,C,程序入口,main(),处,执行用户程序。,在芯片启动过程中,在堆栈初始化(,InitStack(),函数)的末尾,处理器切换到系统模式,因而用户程序是在系统模式下运行的。,42,8.5,应用程序设计及实例,目标板初始化(,TARGET.C,),目标板初始化代码文件是用,C,语言编写的,其内容主要包括:启动代码调用的初始化函数、用户调用的初始化函
12、数、一些异常处理函数以及一些系统库函数的实现等。,有关的头文件(*,.H,),要设计一个系统,为了进行必要类型定义、常量与变量声明以及函数声明等,会有各种各样的头文件。如下:,用户配置文件(,config.h,):包含一些类型定义和系统时钟定义。,target.h,文件:包含一些特殊定义和开,/,关,IRQ,中断、,FIQ,中断的函数声明。根据所用的目标板和编译器的要求来修改该文件。,LPC2294.h,文件:包含,LPC2000,系列芯片的特殊寄存器定义文件,其中包含特殊寄存器的定义及固件程序函数的声明。,43,8.5,应用程序设计及实例,44,分散加载文件(*,.scf,),有时候希望把不同的代码放在不同的存储空间上,也就是生成的映像文件需要包含多个域,每个域在加载和运行时可以有不同的地址。要生成这样的映像文件,必须通过某种方式告诉连接器相关的地址映射关系。在,ADS,中,可以通过分散加载机制实现。,8.5.2,应用程序设计,(参考书中相关实例),(完),
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专题党课讲稿:以高质量党建保障国有企业高质量发展
- 廉政党课讲稿材料:坚决打好反腐败斗争攻坚战持久战总体战涵养风清气正的政治生态
- 在新录用选调生公务员座谈会上和基层单位调研座谈会上的发言材料
- 总工会关于2025年维护劳动领域政治安全的工作汇报材料
- 基层党建工作交流研讨会上的讲话发言材料
- 粮食和物资储备学习教育工作部署会上的讲话发言材料
- 市工业园区、市直机关单位、市纪委监委2025年工作计划
- 检察院政治部关于2025年工作计划
- 办公室主任2025年现实表现材料
- 2025年~村农村保洁员规范管理工作方案
- 在深入贯彻中央8项规定精神学习教育工作部署会议上的讲话发言材料4篇
- 开展深入贯彻规定精神学习教育动员部署会上的讲话发言材料3篇
- 在司法党组中心学习组学习会上的发言材料
- 国企党委关于推动基层党建与生产经营深度融合工作情况的报告材料
- 副书记在2025年工作务虚会上的发言材料2篇