UCOS III移植到STM32F407过程

UCOS III移植步骤

  1. 第一步:
    首先打开找到Mirium的官网,找到下载区域,按照MCU制造商来查找(看图)来下载对应的UCOS III系统,由于官方并没有直接对stm32f407系列的移植,所以我们就在官网上找到和stm32f407相近的芯片stm32f429(直接ctrl+F查找429即可)
    下载
    找到对应的系列
    下载

tips:需要注册登录才可以下载,由于不可描述的原因,下载比较慢,这里我把下载好的文件放一份链接在这里
http://t.cn/AikpPdht

  1. 第二步:
    添加一个已经配置好时钟的工程(LED)到复制到你创建好的一个工程文件夹(STMUCOSIII移植),然后将下载的UCOS III系统也解压到这个文件夹
    解压
  2. 第三步:
    把工程文件夹重命名为STM32F407UCOSIII,然后进入文件夹STM32F407UCOSIII,创建新的文件夹UCOSIII,在UCOSIII文件夹下面分别创建这几个文件夹
    在这里插入图片描述
  3. 第四步:
    参考下图的路径,把这几个文件复制到刚刚创建的APP目录下
    在这里插入图片描述
    在这里插入图片描述
  4. 第五步:
    同上,步骤类似具体看图
    在这里插入图片描述
    在这里插入图片描述
  5. 第六步:
    复制下图路径三个文件夹到UCOSIII目录下
    在这里插入图片描述
    在这里插入图片描述
  6. 第七步:
    因为main.c当中已经有了一个main()函数,本着主函数有且只能有一个的原则,我们要把这个main.c删除,同时工程里面对应的main.c也需要删除
    在这里插入图片描述
    在这里插入图片描述
  7. 添加APP组对应的代码文件
    在这里插入图片描述
    在这里插入图片描述
  8. 添加BSP组和APP组的过程一样,不再重复
  9. 添加剩余三个组的文件
    tips:
    这里三个组和其他两个组不太一样,他们还需要添加对应目录下的一个 RealView 的 文件夹里面的所有文件
    在这里插入图片描述
    添加完成后该有的文件
    uC-CPU
    uC-LIB
    uCOS-III
  10. 添加对应的头文件路径
    在这里插入图片描述
  11. 修改启动文件 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

添加完成的样子
在这里插入图片描述

  1. 修改板卡驱动的bsp.h和bsp.c文件
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    然后删除剩下的BSP开头的函数

  2. 在 app_cfg.h 文件删除堆栈限制函数
    在这里插入图片描述

  3. 修改 app.c 相关文件在这里插入图片描述
    删除不必要的函数
    在这里插入图片描述
    在这里插入图片描述
    删除后续的无关代码
    完成!

  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值