完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
准备学习UCOS,大致了解了下UCOSIII,相比起UCOSII,UCOSIII增添了时间轮转调度任务的优势,目前对这个操作系统还是小白一个,打算接下来参照野火的UCOSIII学习应用指南对UCOSIII做一个初步的学习,每次学习完就编辑一篇博客做个学习记录吧。
今天首先尝试了将UCOSIII移植到手上的开发板STM32F103RC,下面对移植过程做一个简单的记录和总结: 1、从UCOS官网上下载UCOSIII源码以及移植到STM32F107的例程代码 2、新建一个103的库函数版本的空工程做移植用 3、在工程的文件夹下新建以下文件夹 4、从UCOSIII源码中拷贝上述文件夹对应的文件到工程的文件夹中,uC_CPU等文件夹也一样 5、用MDK5打开工程 ,新建对应的Group并将相应的文件添加进去 6、点击魔术棒,将各个头文件所在的路径都添加进去 7、将原有的main.c文件删除,因为app.c文件中已经有一个main函数了 8、 编译工程,会发现有错误,原因是源码中使用的头文件是#include 《stm32f10x_lib.h》,将其改成我们使用的库函数头文件#include 《stm32f10x.h》 9、将bsp.c中的BSP_Init函数的内容删掉(因为我并没有使用BSP部分函数),在里面添加自己写的外设初始化函数,如LED_Init,将该文件中没有用到的函数都删掉 10、找到启动文件startup_stm32f10x_hd.s,找到PendSV_Handler和SYSTick_Handler分贝修改成OS_CPU_PendSVHandler和OS_CPU_SysTickHandler 10、编译后没有错误基本就移植成功了 对于UCOSIII操作系统来说,时钟节拍是整个系统的心脏,任务的调度切换等等都依赖于这个心脏,因此操作系统的时基很重要,系统根据时钟节拍以固定的频率产生中断,在中断中处理与时间相关的事件。在STM32中通常使用SysTick时钟产生操作系统的时钟节拍。 操作系统的时钟节拍频率在“os_cfg_app.h”中设置“OS_CFG_TICK_RATE_HZ”,频率越高,则任务的实时性也越强。STM32F103 的库函数中有提供支持UCOS的操作,查看delay.c文件可以发现是否支持UCOS由一个宏变量SYSTEM_SUPPORT_OS决定,这个变量在sys.h中定义,如果为1则表示支持,0表示不支持。当定义为1时,delay.c中也会支持对应的与OS有关的操作函数delay_osschedlock、delay_osschedunlock、delay_ostimedly、SysTick_Handler等。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1763 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1617 浏览 1 评论
1059 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
723 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1670 浏览 2 评论
1933浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
726浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
566浏览 3评论
592浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
550浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 06:44 , Processed in 1.185327 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号