杨为民 发表于 2024-8-15 08:53:49

AI8051U单片机,从入门到精通(4):长缨-II号C351编译器与AI8051U单片机的32BIT模式

本帖最后由 杨为民 于 2024-8-15 10:42 编辑

本文将介绍长缨-II编译器的特点和用它对AI8051U单片机32BIT模式进行加速和不加速的综合速度指标测量的结果。本文的测试程序与本系列第一篇文章相同。(1)AI8051U系列单片机是深圳国芯人工智能有限公司最新推出的单片机系列。AI8051U系列是32位的8051:它在8051指令集的多个32位寄存器上实现了32位的整数和32位的单精度浮点数的加减乘除等运算;AI8051U系列也是优秀的16位单片机:它在80251指令集的多个16位寄存器是实现了完整的整数运算;AI8051U系列更是兼容8位机的最强悍的1位机:它在00:0020H~00:00FFH的地址空间的每个字节都实现了位寻找,相当于可以支持1792个1位的变量和端口,这对于现在的PLC和未来的DCS(分布式控制系统)设备都是一个很大的支持。(2)AI8051U单片机有两种工作模式:8BIT模式和32BIT模式,其中8BIT模式是指其运行的是8051指令集的机器代码,32BIT模式是指其运行的是80251指令集的机器代码。它不论工作在哪一种模式,都可以实现32位的整数和32位的单精度浮点数的加减乘除等运算,都是标准的32位单片机。(3)本系列前面的文章介绍了AI8051U单片机对传统8051单片机的跨越式的继承性,意思是即使软硬件都不变,比如用AI8051U单片机代替STC89C单片机,其运行速度也将大大提高。这个运行速度提高有两方面的原因:一是采用1T指令周期和高主频的AI8051U单片机的运行速度比采用12T指令周期和低主频的89C52RC单片机的大约提高了(12×主频倍数-1)那么多倍。二是AI8051U单片机具有的MDU32和TFPU运算加速单元对32位整数和单精度浮点数的加速,以AI8051U单片机的8BIT模式为例,经用C51编译器(不加速)和长缨-I号C351编译器(加速)进行单片机运算速度的综合指标结果如下:1)整数运算综合速度指标:不加速为54.17us,加速为13.75us。2)浮点数运算综合速度指标。不加速为49.08us,加速为13.17us。3)三角函数运算综合速度指标。不加速为360.08us,加速为25.58us。4)反三角函数运算综合速度指标。不加速为507.9us,加速为48.83us。5)指数函数运算综合速度指标。不加速为646.67us,加速为244.50us。(4)长缨-II号C351编译器是专门为AI8051U单片机研制的C语言编译器。对于AI8051U单片机的两种工作模式,如果在C语言主函数文件里定义了:
见其中第15行的单片机类型模式定义,长缨-II号C351编译器就会根据它产生使用8051指令集的机器代码的HEX烧录文件。
如果在C语言主函数文件里定义了:
见其中第15行的单片机类型模式定义,长缨-II号C351编译器就会根据它产生使用80251指令集的机器代码的HEX烧录文件。值得说明的是长缨-II号C351编译器产生哪种指令集的机器代码的HEX烧录文件在程序中只取决于第15行的这个宏定义,使用时需要双击“长缨_II_MakeFile.bat”批处理文件进行编译,与使用的Keil的集成环境中设置和其编译结果无关,这就为长缨-II号C351编译器采用其他第三方集成开发环境提供了可能。(5)使用C251编译器(不加速)和长缨-II号C351编译器(加速)对AI8051U的32BIT模式进行单片机运算速度的综合指标结果如下:1)整数运算综合速度指标:不加速为15.538us,加速为7.416us。2)浮点数运算综合速度指标。不加速为25.667us,加速为8.75us。3)三角函数运算综合速度指标。不加速为199.33us,加速为22.67us。4)反三角函数运算综合速度指标。不加速为266.83us,加速为47.33us。5)指数函数运算综合速度指标。不加速为360.83us,加速为286.167us。(6)对比前面AI8051U的8BIT模式与这里32BIT模式的测量结果,可以看到:1)对于整数运算和浮点数运算速度,加速和不加速都提升了1倍左右,这主要是同样对于XDATA区域的变量存取,80251指令集的存储指令要比8051指令集的存储指令要执行得快。2)对于三角函数和反三角函数的运算速度,由于加速单元TFPU的主频和工作单元都是独立的,所以对于采用加速单元,8BIT的工作模式与32BIT的工作模式的运算速度是一样的。对于不加速的情况,采用80251的32位寄存器的运算比采用8051的纯8位寄存器的运算要快一倍左右。3)对于指数类函数运算,主要由单精度浮点数的加减乘除运算实现,对于32BIT模式,长缨-II号的加速效果不明显,甚至还低于8BIT模式的速度,产生的原因是在80251指令集的Source模式下,许多8051指令的执行时间要比纯8051指令集的执行时间要多一个时钟周期。(7)根据前面的测量结果,用户如果追求运行速度,应该尽量采用32BIT模式。由于现实环境中关于8051的资料非常多,如果速度满足要求,可以采用8BIT模式。
(8)另外由于8BIT模式的二进制代码与8H8K64U等8051指令集单片机的相同,32BIT模式的二进制代码与32G/32F等80251指令集单片机的相同,因此如果用户项目含有OBJ等二进制代码模块,用户必须选择与其相同的AI8051U工作模式。同一个芯片支持两种二进制兼容模式,无疑是对用户过去程序资源的最大保护。
附件:长缨-II号编译器与测试程序


_奶咖君_ 发表于 2024-8-15 09:14:50

32BIT模式的是不是应该是用C251 和长缨II的 比较呢?也是用的C51编译器么?

soma 发表于 2024-8-15 10:19:35

长缨现在支持c251了

杨为民 发表于 2024-8-15 10:39:22

_奶咖君_ 发表于 2024-8-15 09:14
32BIT模式的是不是应该是用C251 和长缨II的 比较呢?也是用的C51编译器么?

使用AI8051U的32BIT模式,C251编译器+STC32官方驱动程序 比 长缨-II号还要快(见官方芯片手册),本文是不加STC32官方驱动程序的C251编译器与长缨-II号编译器的比较

哈哈哈哈 发表于 2024-8-17 09:29:25

学习了

lijn 发表于 2024-8-24 16:51:59

请教杨老师,新型编译器支持汇编程序编译吗?谢谢!

杨为民 发表于 2024-8-24 18:45:06

lijn 发表于 2024-8-24 16:51
请教杨老师,新型编译器支持汇编程序编译吗?谢谢!

支持,使用A351汇编语言。A351支持8051、80251和80351指令集的汇编语言编程,只是语法格式与A51和A251有些细节不同。

shuangwei 发表于 2024-11-20 19:36:50

有学习群吗?论坛交流太慢了

dory 发表于 2024-12-29 21:09:49

<p>学习了,谢谢!</p>
页: [1]
查看完整版本: AI8051U单片机,从入门到精通(4):长缨-II号C351编译器与AI8051U单片机的32BIT模式