社区
单片机/工控
帖子详情
stm32cubeIDE移植的UCOSIII,STemwin,stm32407芯片,定义float变量后进入硬件错误
憨厚的豌豆荚
2020-07-06 01:08:23
如题:stm32cubeIDE移植的UCOSIII,STemwin,用的stm32407芯片,定义float变量后进入硬件错误
之前是Keil5移植的时候也遇到了这个问题,然后是在启动文件中加了一段代码解决了。
这次因为启动文件也不一样了,不知道改怎么修改
...全文
5818
5
打赏
收藏
stm32cubeIDE移植的UCOSIII,STemwin,stm32407芯片,定义float变量后进入硬件错误
如题:stm32cubeIDE移植的UCOSIII,STemwin,用的stm32407芯片,定义float变量后进入硬件错误 之前是Keil5移植的时候也遇到了这个问题,然后是在启动文件中加了一段代码解决了。 这次因为启动文件也不一样了,不知道改怎么修改
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
GreenDreamer
2020-10-15
打赏
举报
回复
f4系列很多都有FPU核心,需要重点关注是否开启,开启的情况下,RTOS会自动保护现场。否则就会有一定的几率在操作浮点数时出现异常的调用(寄存器级别)导致错误。所以需要关注两点: 1. 单片机的FPU是否开启。 2. RTOS对于FPU的要求如何,是否需要更换?
憨厚的豌豆荚
2020-07-08
打赏
举报
回复
引用 3 楼 Jacky_Lu 的回复:
是不是 这个 cpu 带有 浮点 寄存器,在移植的时候 也要 放到任务栈里面的 跟 R0-R3 一样
我重新调试了一下,因为我一直了UCOS_III和STemwin,后来发现是只要加上触摸就不能用float,还没有找到原因
Jacky_Lu
2020-07-08
打赏
举报
回复
是不是 这个 cpu 带有 浮点 寄存器,在移植的时候 也要 放到任务栈里面的 跟 R0-R3 一样
水滴重甲
2020-07-06
打赏
举报
回复
感觉像是精度问题,你在定义float变量的时候加个f;
如 float a = 0.5f;
forget345
2020-07-06
打赏
举报
回复
看看具体是 什么 硬件错误,然后试着分析
STM32
CUBE
MX开发GD32
STM32
CUBE
MX开发兆易创新GD32F303,并且通过实际演示进行查看。由于
STM32
芯片
的费用不断的上升,很多小伙伴都开始做找替代
芯片
。我们采用兆易创新的GD32F303,记录整个从
硬件
到软件设计,大家可以持续关注学习。学会使用
STM32
CUBE
MX进行开发,使用环境为Keil。使用
芯片
为GD32F303,是
STM32
F103的升级版。学完可以对
STM32
F103切换为GD32F303。学会切换为J-LINK进行调试。
STM32
Cube
IDE
的一点使用技巧
STM32
Cube
IDE
的一点使用技巧:快捷键、更好的SWV调试支持、两种编译配置、全局宏
定义
&添加引用新文件、启用assert_param函数、字体相关、自动补全等
stm32
407
定义
浮点数后
进入
硬件
错误
用的
stm32
f
407
芯片
,
定义
了一个
float
型
变量
,总是
进入
硬件
中断,按照正点原子的
移植
方法,修改函数也不行,从网上参考了许多方法,说是
UC
OS-
II
I不支持FPU,按照说明修改了函数都不行,不经不行,而且程序完全不能运行了。 后来看到有人说要在启动文件中开启FPU,按照方法修改了启动文件的Reset_Handler函数后,可以正常运行了。可能是
UC
OS-
II
I的版本不一样,其他地方都不用改,...
STM32
Cube
IDE
之SHT3X温湿度传感器
移植
HAL库
有了前面的OLED的学习,这个学习起来也很快。 分以下几步走 1.你要有个温度传感器,SHT3X这个型号的,因为我要讲这个 2.你要有个
STM32
开发板(我用的是
STM32
L431RCT) 3.顺便找台电脑下载一个
STM32
Cube
IDE
4.简单的找一个SHT3X的驱动,我是去某宝嫖的,一般卖这个的都有,这个驱动分两个文件,是.c和.h的,我直接把这两个放在下边 读了我上一篇的人,看这个应该很熟悉吧,一样的套路,学习方法是一样的,你就照搬就行 下面是sht3x.c的原文档,里面有个CRC..
uC
OS-
II
I下
定义
浮点型
变量
进入
硬
错误
现象:在
定义
float
类型
变量
后,哪怕不对该
变量
进行操作,程序也会
进入
HardFault_Handler。MCU使用的是
STM32
L431,包含浮点运算单元。 最后发现是在
移植
uC
OS-
ii
i时官方的
移植
版本不支持FPU浮点运算,如果需要使用浮点类型数据,需要对startup_
stm32
l431xx.s文件中的Reset_Handler进行修改 不需要浮点运算: Reset_Handler PROC EXPORT Reset_Handler
单片机/工控
27,382
社区成员
28,770
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章