为了L452RE测试1MHz LowPower模式下的功耗,可以直接用CUBEMX方便的生成项目,先在PINOUT页中清除所有的PINOUT,再在时钟配置页面直接选择MSI 1MHz时钟作为主时钟即可,这里为了减少GPIO带来的电源损耗影响功耗测试,选择所有free的GPIO都置于模拟状态,如下图:
CUBEMX自动生成项目之后,需要再添加几行代码,因为只用MSI时钟,所以可以把HSI / HSI48 / LSI 这几个闲置的时钟都关闭,减少消耗,然后配置MCU进入LOW POWER RUN模式,再把PWR时钟关闭即可,代码入下图:
实测 1MHZ LP RUN 模式电流约139.5uA左右。
COREMARK V1.0的移植参考了ST官方的移植资料
如何将coremark程序移植到STM32上.pdf
(1.12 MB, 下载次数: 23)
因为习惯用MDK,所以我用的是MDK V5.23的版本,MDK默认启用的MICROLIB微库,因此性能上势必要打折,无论怎么配置编译优化最高得分只有208左右。如果取消microlib微库,采用标准库则程序无法进入MAIN函数,后来又尝试采用SEMI HOSTING选项加入retarget.c文件,修改之后不采用微库也能跑,但是跑分也只有208分左右,跟采用微库一样,得分都明显偏低,不正常,一直没琢磨明白,估计是MDK对coremark的支持优化非常不好吧,网上找了很久都没有找到MDK跑分能正常的资料,并且COREMARK网站上提供的ST MCU所有的跑分都是用IAR来跑的,好吧,这不是逼我装IAR嘛。
移植的COREMARK V1.0 MDK工程
CoreMark_MDK_test1.rar
(4.57 MB, 下载次数: 394)
IAR找到了最新的8.11.2版本,官网直接提供下载,暂时评估用一下。IAR的就完全按照上面官方的移植说明来做了
CoreMark_IAR_test1.rar
(4.6 MB, 下载次数: 48)
实测出来是266左右,跟官方给出的跑分成绩273分接近。因为编译器采用的版本不同,成绩有些出入也是正常。
此内容由EEWORLD论坛网友jackfrost原创,如需转载或用于商业用途需征得作者同意并注明出处