H743XI上,同样的代码,使用MDK和CubeIDE编译生成的可执行程序,执行效率不同 代码由cubeMX生成,仅初始化了MPU及Icache、Dcache,HAL库版本1.9.1 补充:相同的编译器、相同的的优化等级之下,cubeIDE产生的目标程序比MDK产生的目标程序,运行效果慢了一百倍。 cubeIDE使用gcc编译器的情况下,相同的优化等级,运行效率大概会低五倍。 用于测试运行效率的代码如下: 因为贴代码段出现问题,此处贴图片 |
ECC功能开启后,如何验证这个功能是否正常开启呢?
STM32H7系列芯片下的ECC功能如何测试?
H7系列无法配置MPU
STM32H745I-DISCO 下载TouchGFX报找到不FLASH下载算法文件
STM32H7打开DCache后,串口1DMA接受数据位空
No source available for "uwTickPrio0 at 0x20000004
STM32H743或者是STM32F767读取NAND时候直接将数据存放到SDRAM中会出错,但是将读取的数据存入到内部IRAM中不会,请问是什么原因导致的。
stm32cubeIDE取消usb_hid.c文件了吗?
为什么ETH配置中没有Advanced Parameters?
STM32H7,使用LWIP通信,数据量过大会卡死。
不同的编译器,编译方式,优化规则,链接方式等也会不同的。没有一致的前提条件,不好比较哦。一般来说,有哪个编译器资源就用哪个,达到设计目标就行。 区别肯定是有的哈~~
这2个是不同编译器,可能优化等级效果不一样
而且你不同的优化策略,生成的代码大小跟执行效率都不一样
编译器是不一样,在cubeIDE里面调整了编译器。相同的优化等级之下,cubeIDE产生的目标程序运行效率还是比MDK的目标程序效率低了一百倍。
编译器是不一样,在cubeIDE里面调整了编译器。相同的优化等级之下,cubeIDE产生的目标程序运行效率还是比MDK的目标程序效率低了一百倍。
[md]现在是想通过cubeIDE来是搭建工程,但是cubeIDE生成的目标代码云心效率太低了。想找找看能不能有提升效率的方式。
代码容量、执行效率会基于不同的应用而有不同的取舍或偏好。这个话题有点大,总之,存在执行效率的差异是正常的。
之前看过一个编译器coremark的比较,在极限性能优化
AC6 -Omax+lto
GCC -Ofast+lto
AC6的跑分差不多是GCC的1.6倍 甚至ROM占用还要更小点
建议开发arm的要不然使用AC6要不然使用IAR,其他环境还是洗洗睡了
感觉差异有点大,差个一两倍还是能接受的,但是差个五倍,导致一个功能无法正常工作,这个有点难以接受了。
现在用的AC5,AC6同事们不让用,说是有bug。。。 能接受编译之后代码由差异,但是同样的工程在MDK和cubeIDE上,五倍的运行效率,这个有点离谱了。
5倍有点离谱了,你用的啥优化等级
AC6现在已经进入稳定版了,最近几次Keil的更新AC6编译器版本已经稳定了
STM32CubeIDE上使用GCC,与MDK用AC5对比,确实是5倍。现在已经弃坑STM32CubeIDE了,但我觉得,应该还是要切回到STM32CubeIDE的,毕竟MDK收费。看看有没有办法优化一下吧。