STM32
直播中

张燕

7年用户 1300经验值
私信 关注
[问答]

UCOS III是怎样移植到STM32F407上去的

UCOS III是怎样移植到STM32F407上去的?移植步骤有哪些呢?

回帖(1)

李涛

2021-10-20 11:43:45
  UCOS III移植步骤
  第一步:
  首先打开找到Mirium的官网,找到下载区域,按照MCU制造商来查找(看图)来下载对应的UCOS III系统,由于官方并没有直接对stm32f407系列的移植,所以我们就在官网上找到和stm32f407相近的芯片stm32f429(直接ctrl+F查找429即可)
  
  
  
  tips:需要注册登录才可以下载,由于不可描述的原因,下载比较慢,这里我把下载好的文件放一份链接在这里
  第二步:
  添加一个已经配置好时钟的工程(LED)到复制到你创建好的一个工程文件夹(STMUCOSIII移植),然后将下载的UCOS III系统也解压到这个文件夹
  
  第三步:
  把工程文件夹重命名为STM32F407UCOSIII,然后进入文件夹STM32F407UCOSIII,创建新的文件夹UCOSIII,在UCOSIII文件夹下面分别创建这几个文件夹
  
  第四步:
  参考下图的路径,把这几个文件复制到刚刚创建的APP目录下
  
  
  第五步:
  同上,步骤类似具体看图
  
  
  第六步:
  复制下图路径三个文件夹到UCOSIII目录下
  
  
  第七步:
  因为main.c当中已经有了一个main()函数,本着主函数有且只能有一个的原则,我们要把这个main.c删除,同时工程里面对应的main.c也需要删除
  
  
  添加APP组对应的代码文件
  
  
  添加BSP组和APP组的过程一样,不再重复
  添加剩余三个组的文件
  tips:
  这里三个组和其他两个组不太一样,他们还需要添加对应目录下的一个 RealView 的 文件夹里面的所有文件
  
  添加完成后该有的文件
  
  
  
  添加对应的头文件路径
  
  修改启动文件 startup_stm32f40_41xxx.s
  ctrl+F查找 “ PendSV_Handler ” 修改为 OS_CPU_PendSVHandler 千万要注意需要删除那个横线
  如下图
  ctrl+F查找 “ SysTick_Handler ” 修改位 OS_CPU_SysTickHandler 千万要注意需要删除那个横线
  
  
  13. 添加浮点型支持代码到startup_stm32f40_41xxx.s
  浮点型代码在这个目录下的这个文件里
  
  //浮点型支持代码
  IF {FPU} != “SoftVFP”
  ; Enable Floating Point Support at reset for FPU
  LDR.W R0, =0xE000ED88 ; Load address of CPACR register
  LDR R1, [R0] ; Read value at CPACR
  ORR R1, R1, #(0xF 《《20) ; Set bits 20-23 to enable CP10 and CP11 coprocessors
  ; Write back the modified CPACR value
  STR R1, [R0] ; Wait for store to complete
  DSB
  ; Disable automatic FP register content
  ; Disable lazy context switch
  LDR.W R0, =0xE000EF34 ; Load address to FPCCR register
  LDR R1, [R0]
  AND R1, R1, #(0x3FFFFFFF) ; Clear the LSPEN and ASPEN bits
  STR R1, [R0]
  ISB ; Reset pipeline now the FPU is enabled
  ENDIF
  添加完成的样子
  
  修改板卡驱动的bsp.h和bsp.c文件
  
  
  
  
  然后删除剩下的BSP开头的函数
  在 app_cfg.h 文件删除堆栈限制函数
  
  修改 app.c 相关文件
  
  删除不必要的函数
  
  
  删除后续的无关代码
  完成!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分