打印
[技术问答]

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

[复制链接]
12672|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 | 显示全部楼层
解决了,换个版本就可以了,测试没问题了

使用特权

评论回复
板凳
yangbeioften|  楼主 | 2022-4-8 08:27 | 显示全部楼层

换的uCOSIII,换成了V3.08.00

使用特权

评论回复
地板
yangbeioften|  楼主 | 2022-4-8 08:28 | 显示全部楼层
chenqianqian 发表于 2022-4-8 07:41
换了库函数版本嘛?

换的uCOSIII,换成了V3.08.00

使用特权

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

本版积分规则

3

主题

49

帖子

2

粉丝