UCOSⅢ移植

UCOSⅢ移植:
移植注意步骤:
1.在template下新建ucosiii文件夹,在该文件夹下新建ucos_config ucos_bsp子文件夹

2.把UCOSIII 3.04\Micrium\Software下的uC-CPU uC-LIB uCOS-III三个文件夹拷贝到新建出来的template\ucosiii

3.拷贝 UCOSIII移植\UCOSIII移植好的代码\UCOSIII\UCOS_BSP的bsp.c bsp.h到新建的template\ucosiii\ucos_bsp

4.拷贝 UCOSIII移植\UCOSIII 3.04\Micrium\Software\EvalBoards\ST\STM32F429II-SK\uCOS-III下的8个文件
到template\ucosiii\ucos_config
8个文件参考PDF截图

5.拷贝 UCOSIII移植\UCOSIII移植好的代码\UCOSIII\uCOS-III\Ports\ARM-Cortex-M4\Generic\RealView下的
os_cpu_a.asm os_cpu_c.c
到template\ucosiii\uCOS-III\Ports\ARM-Cortex-M4\Generic\RealView,覆盖掉原来的

6.拷贝 UCOSIII移植\UCOSIII移植好的代码\UCOSIII\uCOS_CONFIG下的os_cfg_app.h
到template\ucosiii\ucos_config
覆盖原来的

7.删掉工程中main.c所有内容,待重新编写

注意:
main.c删空后,之前用systick的中断实现的毫秒延时,编译如果出现如下错误:

..\obj\SPI.axf: Error: L6218E: Undefined symbol mtime (referred from stm32f4xx_it.o).



注释掉stm32f4xx_it.c

	//extern unsigned int mtime;

142行 //void SysTick_Handler(void)
//{
//TimingDelay_Decrement();
// if(mtime > 0)
// mtime–;

//}


..\obj\SPI.axf: Error: L6200E: Symbol PendSV_Handler multiply defined (by os_cpu_a.o and stm32f4xx_it.o).

注释掉stm32f4xx_it.c

133行 //void PendSV_Handler(void)
//{
//}

===========================================

注意:
ucos 用systick定时的周期性中断(5ms中断一次),作为系统的节拍,所以重新实现了systick.c
又因为节拍率为200HZ(5ms中断一次),所以UCOS所能分辨的最小时间刻度是5ms,小于5ms的时间无法分辨,也无法延时
在systick.c自己实现了延时微秒和毫秒的函数 delay_us delay_ms

操作系统运行后,所有外设部件的中断处理程序模板


void xxx_handler(void)
{
	OSIntEnter();	
	
	//具体的处理代码
	
	
	OSIntExit(); 



}

我们要用串口,所以重新实现了uart.c
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值