[N32G43x] N32G43X和N32G430性能差异太大,怎么排查原因?

[复制链接]
 楼主| 心向朝阳 发表于 2022-12-5 16:10 | 显示全部楼层 |阅读模式
之前有小伙伴反馈:一开始用的N32G435,后面发现N32G430这款芯片性价比更高,于是换成N32G430使用,但是代码移植完成后,发现N32G430的代码执行效率比N32G435要慢很多,这是什么原因呢?要怎么排查这个问题?下面和小编一起来看看吧!
 楼主| 心向朝阳 发表于 2022-12-5 16:12 | 显示全部楼层
本帖最后由 心向朝阳 于 2022-12-5 16:18 编辑

N32G430主频为128M,N32G435主频为108M
 楼主| 心向朝阳 发表于 2022-12-5 16:18 | 显示全部楼层
理论上处在相同配置及环境下N32G430代码执行速度会略快
 楼主| 心向朝阳 发表于 2022-12-5 16:19 | 显示全部楼层
如果出现相反的结果,可从以下几点排查分析
 楼主| 心向朝阳 发表于 2022-12-5 16:20 | 显示全部楼层
本帖最后由 心向朝阳 于 2022-12-5 16:21 编辑

1.  G435和G430都有提高代码在FLASH中执行效率的功能:(1)FLASH中的预取指令;(2)icache
首先要确认G430和G435在system.c文件中对两种功能的配置是否一致,G430默认是打开icache并关闭预取。

111.png
 楼主| 心向朝阳 发表于 2022-12-5 16:22 | 显示全部楼层
2. 确认G430和G435的Keil工程配置是否一致,比如编译器类型和优化等级


222.png
333.png
 楼主| 心向朝阳 发表于 2022-12-5 16:23 | 显示全部楼层
3. 应用层代码检查:执行的代码,是否运行逻辑都一致,比如用SPI读写数据,两边的SPI配置是否一致,SPI速率是否一致,需要读写的数据量是否一致等

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

本版积分规则

9

主题

60

帖子

2

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