论坛» 嵌入式开发» STM32

分享STM32F103上移植UCOSII和FreeRTOS

高工
2016-01-31 11:42 1楼

分别在对应的官网下载源码:Micrium_STM32F103ZE-SK_uCOS-II.rarFreeRTOSV8.2.3.rar


1、 移植UCOS建立工程,将下图中对应的文件加入到工程中:

2、下载下来的是IAR的DEMO程序,需要修改os_cpu_a.asm中下图所示地方:


3、 注释掉Systick相关部分,换作自己的代码实现:

修改stm32f10x_it.c里关于systick中断服务函数的代码:

/** * @brief This function handles SysTick Handler. * @param None * @retval None */ void SysTick_Handler(void) { OS_CPU_SR cpu_sr; OS_ENTER_CRITICAL(); /* Tell uC/OS-II that we are starting an ISR */ OSIntNesting++; OS_EXIT_CRITICAL(); OSTimeTick(); /* Call uC/OS-II's OSTimeTick() */ OSIntExit(); /* Tell uC/OS-II that we are leaving the ISR */ }


4、修改启动文件中OS_CPU_PendSVHandler 替换 PendSV_Handler

5、根据自己的需求配置os.cfg.h文件。

完成,可以使用了。


FreeTROS移植:

1、添加如下图所示文件到工程:

2、根据自己的需求配置FreeTROSConfig.h

3、修改启动文件中几个中断向量:

DCD vPortSVCHandler ; SVCall Handler DCD DebugMon_Handler ; Debug Monitor Handler DCD 0 ; Reserved DCD xPortPendSVHandler ; PendSV Handler DCD xPortSysTickHandler ; SysTick Handler

vPortSVCHandler PROC EXPORT vPortSVCHandler [WEAK] B . ENDP DebugMon_Handler\ PROC EXPORT DebugMon_Handler [WEAK] B . ENDP xPortPendSVHandler PROC EXPORT xPortPendSVHandler [WEAK] B . ENDP xPortSysTickHandler PROC EXPORT xPortSysTickHandler [WEAK]


这样也就直接可以使用了,下面是移植好的工程:

STM32_RTOS.rar

院士
2016-01-31 20:12 2楼

这个真心不错。

我在工作之前,使用ucosii在做科研,

而工作之后,只能使用freeRTOS来做项目

高工
2016-01-31 21:38 3楼
楼主厉害
高工
2016-01-31 21:39 4楼
真心不错,支持一个
院士
2016-02-01 09:21 5楼
用来freeRTOS才知道uCOS的强大啊
助工
2016-02-01 10:56 6楼
楼主厉害,点个赞~
助工
2016-02-03 11:48 7楼
感谢分享!!
菜鸟
2020-07-10 13:24 8楼

谢谢分享

菜鸟
2020-07-10 16:45 9楼

感谢分享

工程师
2020-07-10 19:20 10楼

感谢分享

共11条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]