打印
[技术问答]

如何让F4A0在uCOSIII的开启浮点运算单元

[复制链接]
12020|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yangbeioften|  楼主 | 2022-4-7 15:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在从uCOS官网上下载了uCOSIII V3.08.01的源码,移植之后,不开启FPU进行浮点运算没问题,但是开启FPU进行浮点运算就会HardFault,参考硬汉的教程,修改CPU_STK *OSTaskStkInit()和OS_CPU_PendSVHandler都不行,而且这个版本的OS_CPU_PendSVHandler中已经判断是否开启硬件FPU和入栈了。下面是没有任何修改开启FPU时出现的情况,提示总线错误:Bus fault is caused by instruction access violation。打印的寄存器值
  R0 : 00000000  R1 : 10000000  R2 : 1ffe0070  R3 : 0000001c
  R12: 00000000  LR : 00006be5  PC : 3df93dd8  PSR: 01000000


最后发现,是在文件 os_core.c第483行的语句  CPU_INT_EN();
这个展开如下:
CPU_SR_Restore
        CPSID   I                               ; Cortex-M7 errata notice. See Note #2
        MSR     BASEPRI, R0
        DSB
        ISB
        CPSIE   I
        BX      LR

现在不知道如何处理,希望华大的原厂帮忙解决一下




使用特权

评论回复
沙发
yangbeioften|  楼主 | 2022-4-7 16:57 | 只看该作者
解决了,换个版本就可以了,测试没问题了

使用特权

评论回复
板凳
chenjun89| | 2022-4-7 20:58 | 只看该作者
换的什么版本?

使用特权

评论回复
地板
chenqianqian| | 2022-4-8 07:41 | 只看该作者
换了库函数版本嘛?

使用特权

评论回复
5
yangbeioften|  楼主 | 2022-4-8 08:27 | 只看该作者

换的uCOSIII,换成了V3.08.00

使用特权

评论回复
6
yangbeioften|  楼主 | 2022-4-8 08:28 | 只看该作者
chenqianqian 发表于 2022-4-8 07:41
换了库函数版本嘛?

换的uCOSIII,换成了V3.08.00

使用特权

评论回复
7
foxsbig| | 2022-4-9 16:47 | 只看该作者
怎么会呢?

使用特权

评论回复
8
tpgf| | 2022-5-4 13:55 | 只看该作者
会不会很耗费资源呢

使用特权

评论回复
9
nawu| | 2022-5-4 14:07 | 只看该作者
直接算会不会慢

使用特权

评论回复
10
aoyi| | 2022-5-4 14:17 | 只看该作者
更新哪个版本了啊?

使用特权

评论回复
11
zljiu| | 2022-5-4 14:40 | 只看该作者
有巧妙的算法

使用特权

评论回复
12
gwsan| | 2022-5-4 14:48 | 只看该作者
可以降低版本吗

使用特权

评论回复
13
tfqi| | 2022-5-4 14:59 | 只看该作者
ucosII可以实现吗

使用特权

评论回复
14
caigang13| | 2022-5-5 08:01 | 只看该作者
表示还在用ucosii

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

45

帖子

2

粉丝