UCOSIII系统移植到STM32F7中

1.准备好UCOSIII的源码,可从官网下载。

2.在工程里创建文件夹UCOSIII等文件夹,并添加文件。

3.在MDK中创建路径并添加文件。

4.修改相关文件

a.

bsp.c和bsp.h:这两个为系统外设的初始化文件,其实可以不用。

b.

os_cpu_a.asm汇编文件:

扫描二维码关注公众号,回复: 3530705 查看本文章

函数类型  PUBLIC改为  EXPORT

PUBLIC  OS_CPU_FP_Reg_Push 和 PUBLIC  OS_CPU_FP_Reg_Pop两个函数可以不用,可以注释掉。

代码导引区中的

RSEG CODE:CODE:NOROOT(2)
   ;THUMB

修改为

   AREA |.text|, CODE, READONLY, ALIGN=2
    THUMB
    REQUIRE8
    PRESERVE8

这个格式跟下面的汇编语言格式相对应,并且函数名后面的冒号要去掉。

c.

lib_mem_a.asm汇编文件:

和上面一样

d.

cpu.h:

注释掉不存在的头文件;修改

#define  CPU_INT_DIS()         do { cpu_sr =CPU_SR_Save(); } while (0)
#define  CPU_INT_EN()          do { CPU_SR_Restore(cpu_sr);  } while (0) 

以及

#define  CPU_MB()       _dsb(0xF)//__DSB()
#define  CPU_RMB()      _dsb(0xF)//__DSB()
#define  CPU_WMB()      _dsb(0xF)//__DSB()

e.

cpu_cfg.h:

#if 1                                                        
#define  CPU_CFG_INT_DIS_MEAS_EN                     改为 #if 0
#endif

f.

os_cpu.h:修改

#define OS_TASK_SW_SYNC()         __isb(0xF)

os_cfg.h:可以根据需要进行相应使能

g.在 上他们27xx_it.c文件中,进行滴答定时器中中断函数的配置,并保证工程中OS_CPU_PendSVHandler 和OS_CPU_SysTickHandler各处名称的一致。

void SysTick_Handler(void)
{
	CPU_SR_ALLOC();
	CPU_CRITICAL_ENTER();
	OSIntNestingCtr++;
	CPU_CRITICAL_EXIT();
	OSTimeTick();
  HAL_IncTick();
  OSIntExit();
}

猜你喜欢

转载自blog.csdn.net/weixin_42480952/article/details/82901137
今日推荐