久芯网

stm32cubeIDE移植的UCOSIII,stm32407芯片,定义float变量后进入...

avatar jinger0311 提问时间: 2023-09-27 20:37:47 / 未解决
如题:stm32cubeIDE移植的UCOSIII,STemwin,用的stm32407芯片,定义float变量后进入硬件错误
之前是Keil5移植的时候也遇到了这个问题,然后是在启动文件中加了一段代码解决了。
这次因为启动文件也不一样了,不知道改怎么修改。
8个回答
  • avatar lebment
    回答时间: 2023-09-27 21:08:11

    启动文件cubeide里面有和MDK内容有区别。

  • avatar yklstudent
    回答时间: 2023-09-27 21:27:02

    定义一个变量就会出错,有这么夸张吗?

  • avatar 废鱼
    回答时间: 2023-09-27 21:54:41

    有这么夸张,楼主需要修改一下.s文件,增加对硬件浮点计算的处理,错误中断是由于硬件浮点使用后,不能正确跳转回ucos系统导致。下面代码加到对应的startup_stm32f40xx.c中。位置就是上下;后面指定的位置。 ; Reset handler Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT SystemInit IMPORT __main LDR R0, =SystemInit BLX R0 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 LDR R0, =__main BX R0 ENDP ; Dummy Exception Handlers (infinite loops which can be modified)

  • avatar yklstudent
    回答时间: 2023-09-27 22:24:54
    安 发表于 2020-7-6 18:19
    有这么夸张,楼主需要修改一下.s文件,增加对硬件浮点计算的处理,错误中断是由于硬件浮点使用后,不能正确 ...

    使用的uCOSI-II和uCOS-III版本,最新版本都已经没有这个问题了

  • avatar 废鱼
    回答时间: 2023-09-27 22:42:17
    yklstudent-1794 发表于 2020-7-7 09:11
    使用的uCOSI-II和uCOS-III版本,最新版本都已经没有这个问题了

    我也是在测试ucos II的系统是发生的类似问题,具体最新版本的ucos我没有测试过。怀疑还是硬件浮点运算的问题。

  • avatar yklstudent
    回答时间: 2023-09-27 23:12:41
    安 发表于 2020-7-7 09:48
    我也是在测试ucos II的系统是发生的类似问题,具体最新版本的ucos我没有测试过。怀疑还是硬件浮点运算的 ...

    那你可以试试最新版本的 uCOS-II V2.93.00 uCOS-III V3.08.00 测试是否还有你说的问题

  • avatar 废鱼
    回答时间: 2023-09-27 23:31:43
    yklstudent-1794 发表于 2020-7-7 13:48
    那你可以试试最新版本的 uCOS-II V2.93.00 uCOS-III V3.08.00

    我测试的是2.92,有这个问题。方便把这两个版本传上来试试。

  • avatar yklstudent
    回答时间: 2023-09-28 00:04:52
    安 发表于 2020-7-7 17:10
    我测试的是2.92,有这个问题。方便把这两个版本传上来试试。

    http://github.com/SiliconLabs micrium的最新源码包可以免费下载使用

会员中心 微信客服
客服
回到顶部