史上最详细UCOS-II移植教程,基于Gokit STM32F103C8T6
硬件准备:机智云Gokit V2.1 板卡,基于STM32F103C8T6 软件准备:STM32CubeMXIAR for ARM Step1:在UCOS官网下载源码,这里选择Micrium_uC-Eval-STM32F107_uCOS-II,版本是V2.92.07Step2:使用STM32CubeMX快速配置1个LED闪烁的例程,板卡有4个LED,系统时钟配置为72MHz,Systick我们用作UCOS的心跳,另外开启一个定时器作为HAL库的时基。详细配置过程查看附件里面的文档;
Step3:生成IAR工程,在其根目录创建文件夹UCOSII,在里面再创建3个文件夹:CONFIG、CORE、PORT,如下所示:Step4:拷贝UCOS-II源码到工程文件夹,分为三步:
Step5:在IAR里面添加文件分组并添加编译路径;
Step6:修改os_cpu_a.asm文件,如下:
Step7:修改includes.h,把不需要的头文件注释掉,如下:
Step8:修改stm32f1xx_it.c文件,注释掉void PendSV_Handler(void)函数,在voidSysTick_Handler(void)函数里面调用OSTimeTick();
至此UCOS-II移植完毕,接下来编写4个LED Blinking任务测试:
Step1:在main.h添加LED控制宏:
包含OS相关头文件:
Step2:定义任务堆栈和优先级:
Step3:编写LED任务,LED1每100ms翻转1次,LED2每200ms翻转1次,LED3每300ms翻转1次,LED4每500ms翻转1次:
Step4:初始化OS,创建任务,启动调度器:
Step5:编译,无错误和警告后,烧录调试:
现象如下:
附件:移植好的工程源码:**** Hidden Message *****UCOS官方源码:**** Hidden Message *****
Seasonic 发表于 2017-3-31 21:35
楼主这么详细的移植教程,网上并不多见,这不单单是技术问题,是你至公无私的情怀。 ...
:handshake:handshake 谢谢分享,支持楼主,正好学习 ,先 下载1来
坚果 发表于 2017-3-28 22:32
额,IAR的啊......,我没这IDE
Keil 一样,看到那个PORT文件夹没,里面有RealView文件夹,这个就是适用于keil的接口文件,使用keil添加这里的文件到分组即可
下载下来,学习 坚果 发表于 2017-3-28 22:30
下载下来,学习
额,IAR的啊......,我没这IDE 好文章,必须顶:lol 好东西啊 手动点赞,下次继续发好的教程,谢谢 不错,很牛逼 感谢分享! 不错哦 学习了 看看学习学习 UCOS-II正是我需要实时操作系统 楼主这么详细的移植教程,网上并不多见,这不单单是技术问题,是你至公无私的情怀。 参考参考 kkkkkkkkkkkkkkkkk KKKKKKKKKKKKKKKKKKKK ucos配置变得好简单呀。。 学习 学习~~~~~~~~~~~ ZJSYD 发表于 2017-3-29 08:14
好文章,必须顶
:handshake:handshake bboy格宇 发表于 2017-3-29 09:22
手动点赞,下次继续发好的教程,谢谢
:handshake:handshake