OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8980|回复: 8

F407运行UCOSIII系统,关闭FPU之后,产生报错。

[复制链接]

1

主题

4

帖子

0

精华

新手入门

积分
24
金钱
24
注册时间
2016-4-15
在线时间
6 小时
发表于 2016-5-24 20:38:22 | 显示全部楼层 |阅读模式
2金钱
用stm32f407板子跑UCOS-III的程序,想对比一下使用FPU和不使用FPU的区别,结果在Target选项中选择not used FPU之后,产生如下报错。
..\UCOSIII\uCOS-III\Ports\ARM-Cortex-M4\Generic\RealView\os_cpu_a.asm(178): error: A1854E: Unknown opcode 'VSTMDBEQ', maybe wrong target CPU?
..\UCOSIII\uCOS-III\Ports\ARM-Cortex-M4\Generic\RealView\os_cpu_a.asm(180): error: A1619E: Specified condition is not consistent with previous IT
..\UCOSIII\uCOS-III\Ports\ARM-Cortex-M4\Generic\RealView\os_cpu_a.asm(211): error: A1854E: Unknown opcode 'VLDMIAEQ', maybe wrong target CPU?
..\UCOSIII\uCOS-III\Ports\ARM-Cortex-M4\Generic\RealView\os_cpu_a.asm(213): error: A1619E: Specified condition is not consistent with previous IT
请教各位高手,这是什么问题。

最佳答案

查看完整内容[请看2#楼]

V指令是FPU专用指令,你关闭FPU后如果使用它,在运行时内核会异常,UCOS在编译前就把这个错误报告给你了,
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2016-5-24 20:38:23 | 显示全部楼层
V指令是FPU专用指令,你关闭FPU后如果使用它,在运行时内核会异常,UCOS在编译前就把这个错误报告给你了,
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
24
金钱
24
注册时间
2016-4-15
在线时间
6 小时
 楼主| 发表于 2016-5-24 20:39:35 | 显示全部楼层
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
24
金钱
24
注册时间
2016-4-15
在线时间
6 小时
 楼主| 发表于 2016-5-24 20:48:51 | 显示全部楼层
xkwy 发表于 2016-5-24 20:42
V指令是FPU专用指令,你关闭FPU后如果使用它,在运行时内核会异常,UCOS在编译前就把这个错误报告给你了,

这个问题有解决的方法吗?V指令我没有了解过
回复

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2016-5-24 21:03:55 | 显示全部楼层
李开源 发表于 2016-5-24 20:48
这个问题有解决的方法吗?V指令我没有了解过

这就不是个问题,你为什么要禁止FPU?

解决办法的话就是重新移植UCOS,把os_cpu_a.asm中的所有V指令剔除(当然不能影响功能)
坚决不用寄存器,拒绝重复造轮子。
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
24
金钱
24
注册时间
2016-4-15
在线时间
6 小时
 楼主| 发表于 2016-5-29 15:16:56 | 显示全部楼层
xkwy 发表于 2016-5-24 21:03
这就不是个问题,你为什么要禁止FPU?

解决办法的话就是重新移植UCOS,把os_cpu_a.asm中的所有V指令剔 ...

禁用FPU是为了和使用FPU的情况做比较,计算FPU到底能把运算时间提升多少。
回复

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2016-5-30 09:08:12 | 显示全部楼层
李开源 发表于 2016-5-29 15:16
禁用FPU是为了和使用FPU的情况做比较,计算FPU到底能把运算时间提升多少。

那就别运行系统
坚决不用寄存器,拒绝重复造轮子。
回复

使用道具 举报

9

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2016-6-5
在线时间
27 小时
发表于 2016-6-5 16:15:32 | 显示全部楼层
这两条是os_cpu.asm里面的东西,如果不用FPU,就该把VSTMDBEQ R0!, {S16-S31} 和VLDMIAEQ R0!, {S16-S31}去掉
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2020-8-5
在线时间
11 小时
发表于 2021-9-22 18:06:02 | 显示全部楼层
你好,请问解决了吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-5 22:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表