分别在对应的官网下载源码:Micrium_STM32F103ZE-SK_uCOS-II.rar FreeRTOSV8.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]
这样也就直接可以使用了,下面是移植好的工程:
我要赚赏金
