- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
移植详解1和2中主要讲了移植需要用到的基础知识,本文则对具体的移植过程进行介绍。??? 首先从micrium网站上下载官方移植版本(编译器使用ARM/Keil的,V2.86版本,V2.85有问题)。??? 下载地址:/page/downloads/ports/st/stm32??? 解压缩后得到如下文件夹和文件:??? Micrium\?????? AppNotes?????? Licensing?????? Software?????? ReadMe.pdf
??? AppNotes包含 osii移植说明文件。这两个文件中我们仅需关心Micrium\AppNotes\AN1xxx-RTOS\AN1018- OS-II-Cortex-M3\AN-1018.pdf。因为这个文件对 osii在CM3内核移植过程中需要修改的代码进行了说明。?? Licensing包含 osii使用许可证。?? Software下有好几个文件夹,在本文的移植中仅需关心 OS-II即可。?????? CPU: stm32标准外设库?????? EvalBoards: micrium官方评估板相关代码?????? -CPU: 基于micrium官方评估板的 osii移植代码?????? -LCD:micrium官方评估板LCD驱动代码?????? -LIB: micrium官方的一个库代码?????? OS-II: osii源代码?????? -Probe: 和 -Probe相关代码?? ReadMe.pdf就不说了。
??? 好了,官方的东西介绍完了,该我们自己建立工程着手移植了。关于建立工程,并使用stm32标准外设库在我之前的文章《stm32标准外设库使用详解》已有介绍,这里请大家下载其中模板代码(/source/3448543),本文的移植是基于这个工程的。??? 建立文件夹template\src\ osii, template\src\ osii\src, template\src\ osii\port;??? 把Micrium\Software\ OS-II\Source下的文件拷贝至template\src\ osii\src;??? 把Micrium\Software\ OS-II\Ports\ARM-Cortex-M3\Generic\RealView下的文件拷贝至
template\src\ osii\port;?? osii\src下的代码是 osii中无需修改部分, osii\port下的代码是移植时需要修改的。为防止对源码的误改动造成移植失败,可以把 osii\src下的代码文件设为只读。?? 这里根据AN-1018.pdf和移植详解1、2中介绍的移植基础知识,对 osii\port下的代码解释一下。
os_cpu.h
#ifdef?? OS_CPU_GLOBALS#define? OS_CPU_EXT#else#define? OS_CPU_EXT? extern#endif
typedef unsigned char BOOLEAN;typedef unsigned char INT8U;typedef signed char INT8S;typedef unsigned short INT16U;typedef signed short INT16S;typedef unsigned int INT32U;typedef signed int INT32S;typedef float FP32;typedef double FP64;就不解释了。
typedef unsigned int OS_STK;?typedef unsigned int OS_CPU_SR;
?? 因为CM3是32位宽的,所以OS_STK(堆栈的数据类型)被类型重定义为unsigned int。?? 因为CM3的状态寄存器(xPSR)是32位宽的,因此OS_CPU_SR被类型重定义为unsigned int。OS_CPU_SR是在OS_CRITICAL_METHOD方法3中保存cpu状态寄存器用的。在CM3中,移植OS_ENTER_CRITICAL(),OS_EXIT_CRITICAL()选方法3是最合适的。
#define? OS_CRITICAL_METHOD?? 3
#if OS_CRITICAL_METHOD == 3#define? OS_ENTER_CRITICAL()? {cpu_sr = OS_CPU_SR_Save();}#define? OS_EXIT_CRITICAL()?? {OS_CPU_SR_Restore(cpu_sr);}#endif
您可能关注的文档
最近下载
- 肩关节磁共振诊断.ppt VIP
- 2024年7月6日江苏省泰州市(姜堰区、高港区)、兴化市、泰兴市事业单位考试《综合能力素质》笔试试题(含答案).pdf VIP
- 《“核心素养”视域下小学语文习作单元主题教学策略的研究》课题研究方案.doc
- 北碚区及15个街镇土地利用总体规划(2006-2020年)调整方案.doc
- 【语文】人教部编版语文八年级上册:古诗文理解性默写(完整版).pdf VIP
- 煤化工工艺学完整版电子教案全套教学课件汇总.pptx
- 磁共振成像原理及功能磁共振演示文稿.ppt VIP
- 中职《幼儿心理学》课程教学课件-项目二任务3 感知觉规律的运用.pptx VIP
- Hasselblad哈苏H6中文说明书.pdf
- (人教2024版)一年级数学上册《数学游戏》单元复习讲义.docx
文档评论(0)