您尚未登录。

楼主 # 2022-03-14 18:14:27

echo
会员
注册时间: 2020-04-16
已发帖子: 358
积分: 363.5

STC32G12K128的Dhrystone性能测试

这款号称32位的8051,实际上就是Intel的C251架构,向下兼容8051,地址空间扩展到了24位,堆栈空间扩展到了16位共64kB,扩大了内部SARM(edata)数据复制速度也有了很大提高,解决了8051架构的一些弊端。
STC花了很大力气宣传,芯片刚刚到手不久,板子打好测一下性能,看看是不是和他们宣传的一样好。
_20220314174345.jpg
软件还是使用Dhrystone,编译器C251.exe 版本v5.60.0.0,速度优化,使用标准库。
第一次测试结果376ms,奇怪,怎么比8位的8051还慢?查了好久,原来WTST寄存器搞的鬼,复位值是最大值7,加了7个等待,手册建议35M主频以下改为0,修改为0重新测试,速度果然快了很多,结果如下。
2022-03-14_174424.jpg
结论就是大约0.38DMIPS/MHz,这个结果和ARM在 https://www.keil.com/benchmarks/c251_bmark.asp 这个文章中的测试结果是一致的。这就是C251架构的性能了,比8051提高很多,然而在现代一众32位MCU中显然不算入流。
2022-03-14_174522.jpg
其实我对这个来自古代的C251核心一点兴趣都没有,现代的Cortex-M和RISC-V比它要好得多,买这个芯片主要是想看看它的USB和两个CAN表现如何,尤其是两个CAN,从寄存器接口来看,就是内置了两片SJA1000控制器,光这两个CAN都值回票价了,具体如何,有待以后分解。
最后再吐槽下这个C251编译器,不知道是因为用户太少还是什么原因,真的是不太好用,很多标准C库函数没有实现,比如strstr,strtok,strtoul,都要自己实现。
一个结构体中定义的一个函数指针,指向实际的函数,它也分析不出来,然后报L57警告,实际呢又能运行,也就是函数并没有被优化掉,让人困惑。
*** WARNING L57: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS

离线

楼主 #2 2022-03-15 13:35:07

echo
会员
注册时间: 2020-04-16
已发帖子: 358
积分: 363.5

Re: STC32G12K128的Dhrystone性能测试

Gentlepig 说:

膜拜。
另,问下价格如何?也是用MDK编译吗?

STC官网价格5元,量少可能加一点,开发用Keil,装个C251编译器即可,基本和51开发一样。

离线

楼主 #4 2022-03-17 09:42:10

echo
会员
注册时间: 2020-04-16
已发帖子: 358
积分: 363.5

Re: STC32G12K128的Dhrystone性能测试

STC32G性能提升主要是内存架构优化带来的,在同样的22.1184M主频和速度优化时:
STC8G用时235ms,成绩0.109DMIPS/MHz
STC32G用时67ms,成绩0.384DMIPS/MHz,相对提升0.384/0.109=3.523倍
STC32G内存模型切换为Large后用时189ms,成绩0.136DMIPS/MHz,相对提升0.136/0.109=1.248倍
https://zhuanlan.zhihu.com/p/482337395

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn