stm32cubeIDE移植的UCOSIII,STemwin,stm32407芯片,定义float变量后进入硬件错误

憨厚的豌豆荚 2020-07-06 01:08:23
如题:stm32cubeIDE移植的UCOSIII,STemwin,用的stm32407芯片,定义float变量后进入硬件错误
之前是Keil5移植的时候也遇到了这个问题,然后是在启动文件中加了一段代码解决了。
这次因为启动文件也不一样了,不知道改怎么修改
...全文
5816 5 打赏 收藏 转发到动态 举报
写回复
用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
  • 打赏
  • 举报
回复
看看具体是 什么 硬件错误,然后试着分析

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧