1. 程式人生 > >UCOSIII系統移植到STM32F7中

UCOSIII系統移植到STM32F7中

1.準備好UCOSIII的原始碼,可從官網下載。

2.在工程裡建立資料夾UCOSIII等資料夾,並新增檔案。

3.在MDK中建立路徑並新增檔案。

4.修改相關檔案

a.

bsp.c和bsp.h:這兩個為系統外設的初始化檔案,其實可以不用。

b.

os_cpu_a.asm彙編檔案:

函式型別  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();
}