你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

F767板子使用UCOSIII+FPU出现浮点运算错误的问题

[复制链接]
大树树 提问时间:2018-8-23 19:14 /
阅读主题, 点击返回1楼
收藏 评论23 发布时间:2018-8-23 19:14
23个回答
wangweili1978 回答时间:2018-8-28 11:43:55
根据你所说的错误描述,很可能是任务切换时浮点寄存器数据破坏了。
看下汇编代码,有没有使用S16-s31以上的寄存器。如果有的话,有可能就是s16-s31这几个寄存器没有入栈。

评分

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

查看全部评分

大树树 回答时间:2018-8-30 07:58:48
党国特派员 发表于 2018-8-27 10:39
在任务初始化(OSTaskStkInit)的时候,跟一下。看浮点寄存器有没有入栈。

查看是否入栈是要看汇编执行的情况吗?
大树树 回答时间:2018-8-30 08:00:11
wangweili1978 发表于 2018-8-28 11:43
根据你所说的错误描述,很可能是任务切换时浮点寄存器数据破坏了。
看下汇编代码,有没有使用S16-s31以上 ...

不太会这些操作,有没有相关的资料教程之类的,求大侠分享
zhwd102198 回答时间:2018-9-14 11:38:42
你好,问题解决了吗?我得也有这问题, ucos iii 浮点出现问题,底层计算没什么问题,我在显示时偶尔会出错,此时底层变量没有问题,显示形参传给函数后 有时会出错,数据变了,想不通问题
小黑111 回答时间:2018-9-14 23:14:17
这个问题我在半年前遇到过,我的临时解决方法是所有的浮点数全部替换成整型处理了。
我认为这个问题的根本原因OS_CPU_A.ASM这个文件的问题,现在网上所有的这个文件都是用的cortex-m4的,
这个文件包含多个函数用于任务切换,其中包括多个与浮点数寄存器堆栈有关的函数,它只支持single precision,显然stm32f767(cortex-m4)的double precision是不兼容的。

这个文件本应该是官方发布(可惜一直没发),由于本人水平有限,不懂汇编,还请高人参照数据手册实现函数,为民造福

评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

大树树 回答时间:2018-9-19 10:37:19
小黑111 发表于 2018-9-14 23:14
这个问题我在半年前遇到过,我的临时解决方法是所有的浮点数全部替换成整型处理了。
我认为这 ...

那个帖子其实就是我发的
yefengisyefeng 回答时间:2020-10-19 08:48:49
我也遇到这个问题,你是否在中断里还计算了浮点数
12

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版