ucos-II(2.86)移植到STM32F103VET6

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。

百度云


现象就是两个灯在那里闪啊闪的!=-=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值