实测CH32X035性能只有CH32V305的三分之一

都在48M主频下跑同一个dhrystone测试,CH32V305运行事件17ms,CH32X035运行时间51ms,差了三倍。请问是否正常?

都使用GCC12编译,-Os优化,开启-flto,V4C和V4F差别这么大吗?

在X035的测试程序上把Dhrystone测试函数全部加Highcode(在RAM中运行)看下,理论上会提高一倍性能左右(Coremark测试结果)。因为V305是有零等待闪存区的,不必用Highcode,而X035系列没有,X035系列的FLASH在48M下有2个等待。如果把测试代码全部移动到RAM中运行,闪存速度带来的影响会减小很多。

X035加Highcode可以参考例程里的RunInRam,主要是要替换启动汇编和链接脚本,然后给需要在内存中运行的加

__attribute__((section(".highcode")))

属性即可。


将dhrystone代码放到.highcode以后,执行时间从51ms增加到了56ms,更慢了。


理论上不应该会更慢,等官方人员解答一下吧


您好,在48MHz主频下,CH32X035会有一个2等待的延迟,你可以都设置成8M的主频试一下,8M主频下,注意CH32X035的FLASH设置成零等待,这种情况下,测试结果应该是差不多的,若结果差异较大,可测试代码发我(lzs@wch.cn)具体看一下


@TECH62,代码在SRAM中运行也会有2等待延迟吗?


您好,程序放在SRAM里,取指令和访问数据,里面总线也会有冲突,都在同一个RAM,无法做到0等待,你可以按照我前面回复说的都在8M主频试一下


应用本身对性能有一些要求,48M主频降到8M主频是无法接受的


前天试了X033,flash延迟比较大,12M主频和V303基本一样,24M略低,48M相对24M提升不大。


只有登录才能回复,可以选择微信账号登录