林光光1号 发表于 2016-10-27 01:06:47

UCOSII在STM32上的移植--详解

本帖最后由 林光光1号 于 2016-11-23 09:24 编辑

最近学习了UCOSSII,并在STM32上移植成功,所以想跟大家分享一下,互相学习,如果有哪些错误,希望大家指出。
本文所用到的资料及例程,这次的移植主要参照《ucosii在stm32 上的移植详解 .PDF》上的文章,其中PDF文件也上传了。这里我所移植的例程是按照我自己的编程习惯,如果大家看不懂可以参考PDF上的例程。着PDF,边看边操作会更好理解。

首先按照PDF手册上的步骤来,我这里的算是简化了,挑主要的步骤说一下。先建立一个文件夹,并在里面建立一些子文件夹。

建立工程并保存在文件夹下,由于我已经建立了工程,所以图片上看到的文件多了Listings与Objects。并在文件下面添加以下文件。
这个是STM32的一下硬件驱动库文件。文件我已经提前从其他地方复制过来了。
这个是STM32初始化文件。文件我已经提前从其他地方复制过来了。


这个是启动文件及一些配置文件,文件我已经提前从其他地方复制过来了。

这个是用来测试的LED文件,大家可以根据实际的硬件接口修改里面的IO配置,文件我已经提前从其他地方复制过来了。
这个是包含的.H文件,整个工程要用到的
最后的ucossii文件里的源码我是从百度上下载来的版本也是2.86,不过里面有些文件夹的名字有点不一样,但是内容是一样的,不影响,文件我已经提前从其他地方复制过来了。

ucossii里建立了两个子文件夹
这个里面放的ucossii的借口文件,要修改的
这个里面的ucosii文件不用修改的

最后整个工程建立完成,如图所示。
接下来就开始讲一下怎么去修改移植过来的ucossii文件,在scr里的是不用修改的,我们主要对port文件夹里面的进行修改。
首先是os_cup.h文件,它里面什么都不用改,吧最后三个函数注释掉就行了至于为什么,大家可以看PDF,里面又详细说明

然后是os_cpu_c.c文件

它里面的钩子文件已经是写好的了只要把前面的一些定义注释掉已经最后两个函数注释掉就行了,至于为什么,大家可以看PDF,里面又详细说明

最后是os_cpu_a.asm ,这个是汇编文件,里面有两个地方需要修改的



基本要修改的都已经完成了,但是还有一些地方注意

最后的app_cfg.h 文件,是没有的,新建一个,然后保存在include文件夹中,里面的代码是定义任务函数的优先级和任务的STK大小,os_cfg.h 是用来配置 ucosii 系统的。拷贝Micrium\Software\EvalBoards\ST\STM3210B-EVAL\RVMDK\OS-Probe\os_cfg.h 里面的,并按照PDF做一些修改,


在这里说明一下,可能有一些人用的启动文件不一样,但是按照PDF里面所说的去修改就可以了,,最后记得在stm32f10x_it.c 中 加上
void SysTick_Handler(void) 函数。如果有什么不理解的可以多看几遍PDF文档,里面一下重要的细节我已经标出,也可以提出来互相学习。

bigfanofloT 发表于 2016-10-27 12:21:07

good啊,mark了

林光光1号 发表于 2016-10-28 00:22:03

bigfanofloT 发表于 2016-10-27 12:21
good啊,mark了

多看文档吧,昨晚写着写着就差点睡着了,做的不好,多多包涵
页: [1]
查看完整版本: UCOSII在STM32上的移植--详解