- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[信息与通信]移植
UC/OS-II的启动过程和在ARM7上的移植 主讲:王华斌 一、UC/OS-II的启动过程 典型启动过程如下: 1、程序进入main函数以后,首先执行 OSInit()函数,来初始化OS所有的变量 和数据结构。同时OSInit还创建空闲任 务和统计任务。 2、在初始化之后,用户至少要创建 一个任务,来保证多任务系统的正确 启动,另外,用户还可以在此创建其 他系统资源,如信号量、邮箱等,或 者可能用户还需要在此完成UC运行环 境的一些初始化工作,如系统时间的 设置、处理器的设置、外围器件的设置等。 3、在上述工作完成之后,程序调用OSStart函数来启动多任务操作系统,此函数将启动已经创建的任务中的处于就绪态的优先级最高的任务。 在该任务中,用户 需要启动时钟节拍、可以 初始化统计任务、创建其 他任务、信号量、邮箱等 然后进入无线循环的函数 主体。 程序范例: OS_STK Task1Stk[1024]; OS_STK Task2Stk[1024]; Void main() { OSInit(); //初始化UC/OS-II OSTaskCreate(Task1, (void *)0, Task1Stk[1023], 0); //创建任务1 OSTimeSet(0); //设置系统时间 OSStart(); //启动 } Static void Task1(void *p_arg) { INT8U err; (void) p_arg; //去除编译器报警错误 System_Init(); //硬件系统设置 TickTimerStart(); //启动Tick OSTaskCreate(Task2, (void *)0, Task2Stk[1023], 10); //创建任务1 OSStatInit() // 初始化统计任务 for( ; ; ) //进入无限循环 { …… }; } 二、UC/OS-II的移植 1、UC/OS-II的体系结构 a、处理器无关的代码 提供了OS大部分的资源,实现了任务管理、时 间管理等功能; b、处理器相关的代码 移植的重点,它提供了OS和硬件平台的接口, 操作系统运行过程中需要的一些操作,如任务切换时 的堆栈操作等,都在这部分代码中实现; c、系统配置代码 定义了一些配置UC的选项。 2、移植条件 UC/OS-II并不是能移植到所有处理器上,它要求目标处理器必须满足一定的条件: (1)处理器的C编译器能产生可重入代码 (2)支持使用C语言来打开和禁止中断 (3)处理器支持中断,并且能产生定时中断 (4)支持能够容纳一定数量的硬件堆栈 (5)处理器有将堆栈指针和其它CPU寄存器读出并存储到堆栈或内存中的指令。 尽管目前大部分处理器都满足以上5个条件,但是在移植之前,用户有必要进行仔细确认。 3、移植内容 涉及3个文件 (1)OS_CPU.H 处理器相关数据类型的定义,3个宏定义(中断开关、堆栈属性和任务切换) (2)OS_CPU_C.C 主要是任务堆栈初始化和OS功能扩展等函数。 (3)OS_CPU_A.ASM 编写4个汇编程序,完成任务执行、任务切换、Tick时钟、ISR的相关处理。 (1)OS_CPU.H 编译器相关的数据类型定义 为了移植方便,UC/OS-II没有直接采样编译器相关的数据类型定义,如short\int\long等,而是通过typedef定义了统一的数据类型,如INT16U数据类型总是代表16位的无符号整数。 typedef unsigned char BOOLEAN; typedef unsigned char INT8U; /* 无符号8位数*/ typedef signed char INT8S; /* 带符号8位数 */ typedef unsigned short INT16U; /* 无符号16位数 */ typedef signed short INT16S; /* 带符号16位数 */ typedef unsigned int INT32U;
您可能关注的文档
- [互联网]安全基础知识一.ppt
- [互联网]智慧企业与云技术.ppt
- [互联网]机房背景与机房过热方案.ppt
- [互联网]淘宝网店图片处理.ppt
- [互联网]淘宝网开放平台简介forTP.ppt
- [互联网]用户图形界面设计.ppt
- [互联网]电力系统分析稳态部分第十一章_电力系统潮流计算.ppt
- [互联网]电子商务7.ppt
- [互联网]第12章 SSH.ppt
- [互联网]第3章网站建设.ppt
- 艺术疗法行业商业机会挖掘与战略布局策略研究报告.docx
- 智能家庭娱乐系统行业商业机会挖掘与战略布局策略研究报告.docx
- 医疗纠纷预防和处理条例与医疗事故处理条例的思考分享PPT课件.pptx
- 新冀教版(2025)七年级数学下册《6.1 二元一次方程组》习题课件.pptx
- 新冀教版(2025)七年级数学下册精品课件:6.2.3 二元一次方程组的解法代入、加减消元法的综合应用.pptx
- 导演节目行业市场发展趋势及投资咨询报告.docx
- 制作和服培训行业风险投资态势及投融资策略指引报告.docx
- 医疗转诊的行政服务行业消费市场分析.docx
- 文件装订行业市场发展趋势及投资咨询报告.docx
- 在线语言艺术教育行业分析及未来五至十年行业发展报告.docx
文档评论(0)