UCOSII移植STM32笔记

UCOSII移植STM32笔记

ID:37728834

大小:612.82 KB

页数:14页

时间:2019-05-29

UCOSII移植STM32笔记_第1页
UCOSII移植STM32笔记_第2页
UCOSII移植STM32笔记_第3页
UCOSII移植STM32笔记_第4页
UCOSII移植STM32笔记_第5页
资源描述:

《UCOSII移植STM32笔记》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、UCOSII移植STM32笔记用到的资源是:A、ucosii_V2.92B、ST公司提供:STM32F10x开发标准库V3.5版本C、编译器:MDK3.80D、编辑器:SourceInsight_V3.5E、实验平台:原子哥的战舰开发板V2.1F、实验现象设计:红灯亮灭各800ms,绿色灯亮灭各300ms一、获取ucos源码这个嘛百度上面也是大把的,或者上其官网下载也是可以的http://www.micrium.com。移植的ucosii版本为V2.92的版本,至于其他的版本就大伙们自己动手了。版本号在“ucos_ii.h”文件开头处

2、二、获取ucos文件解压ucos压缩包,得到下图的东西看到这样一个文件夹结构,红色框框里面就有ucosii的源码了,双击进去,看到这样的结构双击红色框框的UCOS-II文件夹进去,会看到里面的内容,看到这里是不是有点小兴奋呢?没错,这里面就是ucos的源码所在地了。A、在《Ports》文件夹里面的就是ucos与CPU打交道的代码了“看文件夹英文名字就知道了”B、在《Source》文件夹里面的就是ucos的核心代码了,C、至于os_cfg.h这个文件是干啥的,双击打开一看开头的说明,哦。。。原来是裁剪用的,呵呵,比如打开什么功能,关闭什

3、么功能用的等等,具体请看后面的注释三、新建测试工程这里新建立一个工程,比如ucosii什么的(自己建立好就行),我就在工程里面建立了三个文件夹来存放ucosii的代码根据自己的喜好建立就好,呵呵1、将上面提到的《Source》文件夹里面的文件拷贝到《CORE》文件夹里面,这里面的文件是ucos的核心代码,不用修改。2、将上面提到的《Ports》文件夹里面的文件拷贝到《PORTS》文件夹里面,这里就是移植的核心部分了3、返回上一级文件夹,将“os_cfg.h”这个文件拷贝到《CONFIG》这个文件夹里面,这里还要添加一个文件,这个文件不

4、在《uCOS-II》这个文件夹里面,具体在哪里呢???在这里“...ucosApp”这个路径下,看到没“includes.h”这个文件,拷贝到《CONFIG》这个文件夹里面。4、在MDK(当然喜欢用其他编辑器的同志也是可以的)添加文件,如下图所示,具体视个人喜好建立目录结构了,我建立了《UCOSII_CORE》、《UCOSII_PORTS》、《UCOSII_CONFIG》这三个文件夹存放ucos的相关代码。哈哈。。。接下来就是爽歪歪的环节了。。。四、修改代码1、地球人都知道的,人有心跳,操作系统也不例外,双击打开“os_cfg.

5、h”这个文件,找到“OS_TICKS_PER_SEC”这个宏定义,原文的是1000即1秒钟了(看后面的注释),这里我将它改为200也就是5ms的节拍,至于这个5ms怎么得来的,根据代码算一下就出来了2、找到“OS_MAX_TASKS”这个宏定义,看这个名字就知道干啥的吧,没错,就是最大的任务数,这里我定义为5即最多5个任务,具体数量自己掂量3、这里我们关闭一部分ucos的功能,例如OS_DEBUG_EN、OS_EVENT_MULTI_EN、OS_EVENT_NAME_EN等等,具体的功能请看定义后面的注释或者本工程代码。4、前面说到了

6、操作系统的心跳,这里可以用多种方式提供,在CM3里面有个嘀嗒定时器,这个家伙就可以提供了,所以这里我们用它来做操作系统的心跳。修改本工程sys.h中的宏定义_SYSTEM_SUPPORT_ROTS将它的值改为1【如果用到原子哥的SYSTEM文件夹的话,直接将SYSTEM_SUPPORT_UCOS宏定义修改为1即可】。5、打开“os_cpu_a.asm”文件,修改相关的汇编A、首先看到的是前面的函数入口代码修改成上图样子B、接着伪定义寄存器和相关的数值具体寄存器地址和相关的数值可以参考《Cortex-M3权威指南(中文).pdf》第28

7、4~286页之间的内容C、接着下面的改成下图样子D、将文件拖到最后,那里的程序标好字符就要参考文件开头的定义进行改变了,具体参考代码6、打开“os_cpu.h”文件,这里主要就是修改相关的数据类型的,视不同平台而修改,详细文件内容见工程。7、打开“includes.h”这个文件,这里主要就是集合了需要的头文件,删除或者注释一些没用到的,增加里面没有但是需要用到的。详细见工程文件。A、找到下图处,将其全部注释掉,或者删掉也行,因为这些库这里没用到,但是你的工程有用到的话就保留吧,V2.86之前的版本好像定义了这些文件B、找到这里,将这个

8、库头文件修改一下五、main函数编写1、在main函数中增加以下内容,注意了,优先级的数值越大就越低,0是最高的优先级,就这样/*起始任务相关设置*///任务优先级#defineStart_Task_PRIO10//优先

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。