您的位置:首页 > 其它

ucos-II(2.86)移植到STM32F103VET6

2018-01-26 18:57 232 查看
2018年1月26日,下午五点四十六,还没有下班,搞了一个下午的移植,终于移植成功,特此记录,走过的坎,或许你们能找到答案。

移植的ucos-II的版本号为2.86,version能在ucos-II.h中找到。



先说一下移植的步骤吧:

1、准备源码(相信这个都不需要说明了吧,自行可以去网上或者micrium官网下载,但是去官网下载需要登录。)

2、建立stm32的工程:能想到玩操作系统的童鞋们肯定对建立工程很熟悉了,所以这两步都是废话。


//由于我建立工程用的是Cube,所以该Demo是用的hal库写的,用std库的一样的写法,就只是函数调用不一样了,和操作系统的调度没有关系。

3、开始移植:先看一下主函数,就这么多东西,能看出来操作系统的方便了吧,哈哈哈哈








需要的文件






其他的刚才操作的时候忘记了截图,就扔个链接上来吧,这个连接里边讲了一部分,但是还是没有讲到我踩过的坑,等下我会把我踩过的坑单独拿出来划重点。

链接:传送门


因为修改的时候能不动STM32的文件就不要动,所以我们在以下几个地方做出修改,也就是我的坑,但是刚才又看了一下那个兄弟发的教程,发现好像就理解了他的意思,算了,不说了,坑是要踩的,经验是要得来的!!

首先先把stm32f1xx_it.c中的void PendSV_Handler(void)函数注释掉:



在此处我用了条件编译,都是一样的。

然后修改systick中断服务函数,



在这里多提一句,用标准库的小同学们注意了,因为我是用的Cube生成的初始化代码,所以systick已经在时钟初始化函数中已经初始化过了,如果没有初始化的话,需要自行初始化,没了心跳很严重。

最后一个比较重要的地方就是os_cpu_a.asm文件中了,看图自行修改:






好了,到这里就结束了。其他的代码我来个百度云链接吧,可以参考一下,写的比较low。

百度云

现象就是两个灯在那里闪啊闪的!=-=
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ucos-ii