请选择 进入手机版 | 继续访问电脑版
搜索
查看: 1470|回复: 9

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

[复制链接]

该用户从未签到

3

主题

5

帖子

0

蝴蝶豆

初级会员

最后登录
2020-12-14
发表于 2020-7-6 13:04:37 | 显示全部楼层 |阅读模式
如题:stm32cubeIDE移植的UCOSIII,STemwin,用的stm32407芯片,定义float变量后进入硬件错误
之前是Keil5移植的时候也遇到了这个问题,然后是在启动文件中加了一段代码解决了。
这次因为启动文件也不一样了,不知道改怎么修改。
回复

使用道具 举报

该用户从未签到

38

主题

252

帖子

61

蝴蝶豆

金牌会员

最后登录
2021-4-16
发表于 2020-7-6 15:49:01 | 显示全部楼层
启动文件cubeide里面有和MDK内容有区别。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

6

主题

547

帖子

62

蝴蝶豆

金牌会员

最后登录
2021-12-18
发表于 2020-7-6 16:09:06 | 显示全部楼层
定义一个变量就会出错,有这么夸张吗?
回复 支持 反对

使用道具 举报

该用户从未签到

133

主题

4688

帖子

239

蝴蝶豆

版主

最后登录
2021-4-10
发表于 2020-7-6 18:19:25 | 显示全部楼层
有这么夸张,楼主需要修改一下.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)

点评

安 sir,对头  发表于 2020-7-6 21:16

评分

参与人数 1蝴蝶豆 +5 收起 理由
STMCU + 5

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

6

主题

547

帖子

62

蝴蝶豆

金牌会员

最后登录
2021-12-18
发表于 2020-7-7 09:11:21 | 显示全部楼层
安 发表于 2020-7-6 18:19
有这么夸张,楼主需要修改一下.s文件,增加对硬件浮点计算的处理,错误中断是由于硬件浮点使用后,不能正确 ...

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

使用道具 举报

该用户从未签到

133

主题

4688

帖子

239

蝴蝶豆

版主

最后登录
2021-4-10
发表于 2020-7-7 09:48:02 | 显示全部楼层
yklstudent-1794 发表于 2020-7-7 09:11
使用的uCOSI-II和uCOS-III版本,最新版本都已经没有这个问题了

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

使用道具 举报

该用户从未签到

6

主题

547

帖子

62

蝴蝶豆

金牌会员

最后登录
2021-12-18
发表于 2020-7-7 13:48:28 | 显示全部楼层
安 发表于 2020-7-7 09:48
我也是在测试ucos II的系统是发生的类似问题,具体最新版本的ucos我没有测试过。怀疑还是硬件浮点运算的 ...

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

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

133

主题

4688

帖子

239

蝴蝶豆

版主

最后登录
2021-4-10
发表于 2020-7-7 17:10:39 | 显示全部楼层
yklstudent-1794 发表于 2020-7-7 13:48
那你可以试试最新版本的
uCOS-II V2.93.00
uCOS-III V3.08.00

我测试的是2.92,有这个问题。方便把这两个版本传上来试试。
回复 支持 反对

使用道具 举报

该用户从未签到

6

主题

547

帖子

62

蝴蝶豆

金牌会员

最后登录
2021-12-18
发表于 2020-7-8 09:01:03 | 显示全部楼层
安 发表于 2020-7-7 17:10
我测试的是2.92,有这个问题。方便把这两个版本传上来试试。

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

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-16 15:04 , Processed in 1.198040 second(s), 45 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表