
H743XI上,同样的代码,使用MDK和CubeIDE编译生成的可执行程序,执行效率不同 代码由cubeMX生成,仅初始化了MPU及Icache、Dcache,HAL库版本1.9.1 补充:相同的编译器、相同的的优化等级之下,cubeIDE产生的目标程序比MDK产生的目标程序,运行效果慢了一百倍。 cubeIDE使用gcc编译器的情况下,相同的优化等级,运行效率大概会低五倍。 用于测试运行效率的代码如下:
因为贴代码段出现问题,此处贴图片
|
CUEBIDE生成的APP程序,在写入FLASH之后无法正常跳转。
有关Cubeide IAP 问题
正点原子阿波罗H743使用DMA2D后普通刷出现问题
Cubeide1.18.1在线调试改变"现场表达式"中的值提示找不到地址
STM32CubeMX在配置DCMI的腳位時,在Mode的選項中, 只有8bits, 10bits與12bits, 為何沒有14bits?
STM32H7双核调试问题:CM7能成功调试但CM4始终报"Failed to read ROM table via AP 3"错误
MC SDK为什么不支持H743,看样子只支持H745H755
stm32cubeide中如何查看版本日志?
最新版STM32CubeIDE无法安装
STM32CubeIDE能直接在软件中升级吗?
不同的编译器,编译方式,优化规则,链接方式等也会不同的。没有一致的前提条件,不好比较哦。一般来说,有哪个编译器资源就用哪个,达到设计目标就行。 区别肯定是有的哈~~
这2个是不同编译器,可能优化等级效果不一样
而且你不同的优化策略,生成的代码大小跟执行效率都不一样
编译器是不一样,在cubeIDE里面调整了编译器。相同的优化等级之下,cubeIDE产生的目标程序运行效率还是比MDK的目标程序效率低了一百倍。
编译器是不一样,在cubeIDE里面调整了编译器。相同的优化等级之下,cubeIDE产生的目标程序运行效率还是比MDK的目标程序效率低了一百倍。
[md]现在是想通过cubeIDE来是搭建工程,但是cubeIDE生成的目标代码云心效率太低了。想找找看能不能有提升效率的方式。
代码容量、执行效率会基于不同的应用而有不同的取舍或偏好。这个话题有点大,总之,存在执行效率的差异是正常的。
之前看过一个编译器coremark的比较,在极限性能优化
AC6 -Omax+lto
GCC -Ofast+lto
AC6的跑分差不多是GCC的1.6倍
建议开发arm的要不然使用AC6要不然使用IAR,其他环境还是洗洗睡了
感觉差异有点大,差个一两倍还是能接受的,但是差个五倍,导致一个功能无法正常工作,这个有点难以接受了。
现在用的AC5,AC6同事们不让用,说是有bug。。。 能接受编译之后代码由差异,但是同样的工程在MDK和cubeIDE上,五倍的运行效率,这个有点离谱了。
5倍有点离谱了,你用的啥优化等级
AC6现在已经进入稳定版了,最近几次Keil的更新AC6编译器版本已经稳定了
STM32CubeIDE上使用GCC,与MDK用AC5对比,确实是5倍。现在已经弃坑STM32CubeIDE了,但我觉得,应该还是要切回到STM32CubeIDE的,毕竟MDK收费。看看有没有办法优化一下吧。