WHX
发表于 2024-3-21 08:36:48
来膜拜各路大神{:5_332:}
LAOXU
发表于 2024-3-21 13:38:27
BeHappy 发表于 2024-3-21 08:22
来都来了,凑个热闹再走 :-)
想问下,8位 mcu编程,有一个 2 字节组成的数字,想拆分出个、十、百、千、万 ...
8 位 HEX 是 4字节 (LONG) , 你这个算法速度太慢了, 例举的2字节已慢, 4字节要循环多少次啊?不合适
zxcv1973
发表于 2024-3-21 14:29:17
楼主可以把dhrystone程序在STC32G上优化一下,没优化的dhrystone程序远远达不到官方公布的0.655DMIPS/MHz指标
LAOXU
发表于 2024-3-22 03:01:49
zxcv1973 发表于 2024-3-21 14:29
楼主可以把dhrystone程序在STC32G上优化一下,没优化的dhrystone程序远远达不到官方公布的0.655DMIPS/MHz指 ...
标准dhrystone程序 是不能优化的, 无论对错, 都是一个参考基准.
只是计算对比 不同 cpu 的 DMIPS/MHz指标值
社区闲人
发表于 2024-3-22 08:53:58
标准dhrystone程序的算法不能优化,但可以对实现算法所用到的代码进行优化。
LAOXU
发表于 2024-3-22 10:01:09
社区闲人 发表于 2024-3-22 08:53
标准dhrystone程序的算法不能优化,但可以对实现算法所用到的代码进行优化。 ...
所有运算库, 都属于最底层函数, 只能用汇编编写(包括 SDCC).
几乎很少有优化的空间.
乐此不疲
发表于 2024-3-22 10:04:08
一个回复把楼主的主题带飞了,看来一时半会儿是无法复位了。话说,我虽然不是职业电工但我却是楼主所说的20%中的一员,玩单片机十多年啥也没做只是作为娱乐工具而已,记得当年做第一个数码时钟时也只是为了调试数码管的驱动代码,并没有做时钟的想法,时钟代码调试好了后就一直在工作台上运行,后来有了其他的玩法就拆了扔一边去了,而后家里人就问:“你桌子上的表哪去了?”于是就做成了玩单片机的第一个作品。
LAOXU
发表于 2024-3-22 10:04:39
等 STC 的 MDU32C , TFPU IP核 , 正式加入 STC32G, 那时候可以优化一下 运算库.
zxcv1973
发表于 2024-3-22 11:53:01
LAOXU 发表于 2024-3-22 03:01
标准dhrystone程序 是不能优化的, 无论对错, 都是一个参考基准.
只是计算对比 不同 cpu 的 DMIPS/MHz指 ...
dhrystone源程序不能优化,但底层所用到的库是可以优化的,事实上ARM的dhrystone跑分高就是建立在优化的基础上,0级优化和3级优化dhrystone成绩相差巨大,并且ARM的C编译器本身优化率就相当高
zxcv1973
发表于 2024-3-22 11:58:29
LAOXU 发表于 2024-3-22 10:01
所有运算库, 都属于最底层函数, 只能用汇编编写(包括 SDCC).
几乎很少有优化的空间. ...
你研究一下dhrystone程序就能发现,最底层函数有很大的优化空间,就像你那浮点除法,用不同的实现方式速度相差巨大