找回密码
 立即注册
查看: 1301|回复: 10

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

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-04-30 08:41:32

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-8-15 08:53:49 | 显示全部楼层 |阅读模式
本帖最后由 杨为民 于 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语言主函数文件里定义了:
Fig_01_8BIT.jpg
见其中第15行的单片机类型模式定义,长缨-II号C351编译器就会根据它产生使用8051指令集的机器代码的HEX烧录文件。

如果在C语言主函数文件里定义了:
Fig_02_32BIT.jpg
见其中第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号编译器与测试程序
04_长缨-II_C351编译器_STC8051U_32BIT模式测试_240815.rar (754.99 KB, 下载次数: 131)


2 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-8-15 09:14:50 | 显示全部楼层
32BIT模式的是不是应该是用C251 和长缨II的 比较呢?也是用的C51编译器么?

点评

谢谢指出,是笔误了,已改正  发表于 2024-8-15 10:43
使用AI8051U的32BIT模式,C251编译器+STC32官方驱动程序 比 长缨-II号还要快(见官方芯片手册),本文是不加STC32官方驱动程序的C251编译器与长缨-II号编译器的比较  详情 回复 发表于 2024-8-15 10:39
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:422
  • 最近打卡:2025-05-01 09:54:52
已绑定手机

19

主题

3190

回帖

4866

积分

论坛元老

积分
4866
发表于 2024-8-15 10:19:35 来自手机 | 显示全部楼层
长缨现在支持c251了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-04-30 08:41:32

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-8-15 10:39:22 | 显示全部楼层
_奶*** 发表于 2024-8-15 09:14
32BIT模式的是不是应该是用C251 和长缨II的 比较呢?也是用的C51编译器么?

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

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-05-01 11:24:23

13

主题

95

回帖

294

积分

中级会员

积分
294
发表于 2024-8-17 09:29:25 | 显示全部楼层
学习了
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:519
  • 最近打卡:2025-05-01 05:25:20

9

主题

102

回帖

2098

积分

金牌会员

积分
2098
发表于 2024-8-24 16:51:59 | 显示全部楼层
请教杨老师,新型编译器支持汇编程序编译吗?谢谢!

点评

支持,使用A351汇编语言。A351支持8051、80251和80351指令集的汇编语言编程,只是语法格式与A51和A251有些细节不同。  详情 回复 发表于 2024-8-24 18:45
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-04-30 08:41:32

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-8-24 18:45:06 | 显示全部楼层
li*** 发表于 2024-8-24 16:51
请教杨老师,新型编译器支持汇编程序编译吗?谢谢!

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

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:65
  • 最近打卡:2025-04-30 09:46:51

0

主题

23

回帖

248

积分

中级会员

积分
248
发表于 2024-11-20 19:36:50 | 显示全部楼层
有学习群吗?论坛交流太慢了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-02-24 10:35:47
已绑定手机

0

主题

6

回帖

54

积分

注册会员

积分
54
发表于 2024-12-29 21:09:49 | 显示全部楼层

学习了,谢谢!

回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-1 17:31 , Processed in 0.121343 second(s), 119 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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