找回密码
 立即注册
查看: 1532|回复: 11

AI8051U单片机,从入门到精通(6):WD-C351语言与金水151-C351编译器简介

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

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-8-24 21:16:32 | 显示全部楼层 |阅读模式
本帖最后由 杨为民 于 2024-8-24 21:19 编辑

(1)WD-C351(读做“我的C351”)语言的全称是“WD-C351单片机C语言”,是笔者“我的计算机语言”系列之一,是为各种80x51单片机设计的C语言。
(2)作为长期从事单片机研究和教学的一线教师,笔者深感用专业Keil的C51软件作为初学者的单片机启蒙教育软件过于复杂了,为此需要一个简化的单片机C语言标准。
WD-C351的语法标准是参考国家C语言等级考试的水平和参考谭浩强教材的教学范围。
(3)10多年前以STC15系列单片机和C8051F系列单片机为代表的新一代51单片机问世。新一代的51单片机不但增加了各种AD和工业总线接口控制器,而且对32位的整数和和浮点数的运算要求也大大提高了。而用8位的8051指令集的指令来处理32位数据的程序涉及了大量的非51单片机本身的知识。
当时流行的是51单片机原理教学是从8051指令集开始,用A51汇编语言来讲解51单片机的端口、定时器等片上单元的原理。在实际教学中8051指令集的各种寻址模式和16位、32位数据的处理方法花费了大量的教学时间同时也没有达到掌握51单片机基本知识的目标。
因此笔者设计了金水明80151和金水明80351指令集,在这两个指令集中,一是对XDATA空间数据的存取也支持直接寻址模式,二是对16位和32位的数据处理都采用了单指令形式。
比如对于位于XDATA空间的32位整数变量的C语言语句“Z=X+Y”,可以用以下最简单的(没有之一)4行A351汇编语言实现:
LDX   EAX,X;
LDX   EBX,Y;
ADDS  EAX,EBX;
STX   Z,EAX;
(4)笔者首先设计和实现了WD-A351汇编语言编译器然后再设计和实现WD-C351C语言编译器。WD-C351编译器先将C351语言编译为A351汇编语言,然后再由WD-A351编译器转换为8051机器代码HEX文件。
WD-A351汇编语言编译器同时支持对8051、80151、80251和80351指令集的支持。
(5)金水151-C351编译器是一款针对Y2C-80151虚拟32位单片机开发的WD-C351 C语言编译器。
(6)金水151-C351编译器软件是一个免安装的EXE可执行文件,不依赖于其他软件,可以直接建立“MakeFile.bat”批处理文件来对WD-C351项目进行编译,直接生成HEX格式的烧录文件。
(7)通常一个使用WD-C351语言的单片机程序项目不但可能包括C语言、汇编语言和头文件这些源程序文本文件,也可能包含OBJ和LIB等模块与函数库二进制文件,因此需要一个项目管理器来管理这些文件和进行源程序编辑。
考虑到Keil的C51仍然是51单片机的主流集成开发环境,因此笔者建议开发WD-C351项目使用Keil的C51集成环境和“MakeFile”编译模式。
由于最终产生实际烧录HEX文件的是金水151编译器,因此只需安装使用Keil的C51的学习版就行了 ,不需要对其进行注册,也不需要打中断号超过31的补丁和汉字0xFD的补丁。在用C51检查源程序语法错误时,忽略这些出错信息就行了。

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:513
  • 最近打卡:2025-05-01 04:31:49

24

主题

515

回帖

986

积分

荣誉版主

积分
986
发表于 2024-8-25 06:16:31 | 显示全部楼层
能支持C99标准吗?

点评

不支持。C351的语法只是C51/C251的一个子集。 WD-C351的语法标准的下限是参考国家C语言等级考试的水平和参考谭浩强教材的教学范围。 WD-C351的语法标准的上限是支持实现一个51单片机的RTOS。  详情 回复 发表于 2024-8-25 06:40
回复 支持 反对

使用道具 举报 送花

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

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-8-25 06:40:29 | 显示全部楼层
社区*** 发表于 2024-8-25 06:16
能支持C99标准吗?

不支持。C351的语法只是C51/C251的一个子集

WD-C351的语法标准的下限是参考国家C语言等级考试的水平和参考谭浩强教材的教学范围。

WD-C351的语法标准的上限是支持实现一个51单片机的RTOS。

回复 支持 反对

使用道具 举报 送花

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

19

主题

3190

回帖

4866

积分

论坛元老

积分
4866
发表于 2024-8-25 15:47:19 来自手机 | 显示全部楼层
这编译器能充分发挥MCU的性能吧

点评

(1)所有的51单片机的操作都依靠MCU的8051内核执行8051指令集的指令来实现。金水151编译器支持完整的8051指令集和8051汇编语言,因此金水151编译器可以完整充分发挥51单片机的性能。 (2)AI8051U单片机对32位的运  详情 回复 发表于 2024-8-25 18:10
回复 支持 反对

使用道具 举报 送花

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

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-8-25 18:10:41 | 显示全部楼层
本帖最后由 杨为民 于 2024-8-25 18:11 编辑
so*** 发表于 2024-8-25 15:47
这编译器能充分发挥MCU的性能吧

(1)所有的51单片机的操作都依靠MCU的8051内核执行8051指令集的指令来实现。金水151编译器支持完整的8051指令集和8051汇编语言,因此金水151编译器可以完整充分发挥51单片机的性能。

(2)AI8051U单片机对32位的运算提供了MDU32和TFPU32硬件加速器,在金水151编译器中直接以指令的方式对这些32位整数乘除运算、32位单精度浮点数加减乘除运算和三角函数、反三角函数等功能提供了支持
(3)随着后续AICx51单片机提供越来越多的DSP硬件加速功能,金水151编译器也将会跟随这些发展,在后续的版本中对这些新特性进行支持,充分发挥执行新单片机的性能。
(4)对于AI8051U单片机8BIT模式下的新的超越传统8051的32位运算和函数运算功能C51和SDCC需要附加对应的函数库才能支持。
目前在本论坛笔者尚未发现C51和SDCC有对应的支持函数库,因此对于AI8051U-8BIT模式,金水151编译器目前比C51和SDCC更能发挥它的性能。
回复 支持 反对

使用道具 举报 送花

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

46

主题

1694

回帖

2540

积分

金牌会员

积分
2540
发表于 2024-8-25 20:48:05 | 显示全部楼层
请问,是否说有个keil C51和WD-351就可以编译现在的stc所有单片机?

点评

(1)WD-C351是一种C语言,具体实现编译的要靠编译器。 (2)对于STC的基于8051内核的编译器有C51、SDCC、IAR三种主流编译器和笔者的长缨-I号、金水151编译器。 (3)对于STC的基于80251内核的编译器有C251主流编译  详情 回复 发表于 2024-8-26 02:54
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:174
  • 最近打卡:2025-03-18 07:53:51

1

主题

53

回帖

809

积分

高级会员

积分
809
发表于 2024-8-25 22:14:54 | 显示全部楼层
不是说8051U双核吗?也能支持8位程序,也支持32位程序

点评

是的,笔者的长缨-I号和金水151编译器支持8位程序,笔者的长缨-II号编译器支持32位程序。  详情 回复 发表于 2024-8-26 02:48
回复 支持 反对

使用道具 举报 送花

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

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-8-26 02:48:29 | 显示全部楼层
meng*** 发表于 2024-8-25 22:14
不是说8051U双核吗?也能支持8位程序,也支持32位程序

是的,笔者的长缨-I号和金水151编译器支持8位程序,笔者的长缨-II号编译器支持32位程序。
回复 支持 反对

使用道具 举报 送花

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

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-8-26 02:54:52 | 显示全部楼层
jw*** 发表于 2024-8-25 20:48
请问,是否说有个keil C51和WD-351就可以编译现在的stc所有单片机?

(1)WD-C351是一种C语言,具体实现编译的要靠编译器。
(2)对于STC的基于8051内核的编译器有C51、SDCC、IAR三种主流编译器和笔者的长缨-I号、金水151编译器。
(3)对于STC的基于80251内核的编译器有C251主流编译器和笔者的长缨-II号编译器。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-04-26 09:10:22
已绑定手机

0

主题

6

回帖

20

积分

新手上路

积分
20
发表于 2024-11-3 06:37:43 | 显示全部楼层
下载链接在哪?免费么?

点评

免费,见: Ai8051U单片机,从入门到精通(10):虚拟开发板、虚拟单片机和实时任务独立编程 https://www.stcaimcu.com/forum.php?mod=viewthread&tid=10813 (出处: 国芯技术交流网站)  详情 回复 发表于 2024-11-3 20:22
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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