AI8051U单片机,从入门到精通(6):WD-C351语言与金水151-C351编译器简介
本帖最后由 杨为民 于 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;ADDSEAX,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检查源程序语法错误时,忽略这些出错信息就行了。
能支持C99标准吗? 社区闲人 发表于 2024-8-25 06:16
能支持C99标准吗?
不支持。C351的语法只是C51/C251的一个子集。
WD-C351的语法标准的下限是参考国家C语言等级考试的水平和参考谭浩强教材的教学范围。
WD-C351的语法标准的上限是支持实现一个51单片机的RTOS。
这编译器能充分发挥MCU的性能吧 本帖最后由 杨为民 于 2024-8-25 18:11 编辑
soma 发表于 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更能发挥它的性能。
请问,是否说有个keil C51和WD-351就可以编译现在的stc所有单片机? 不是说8051U双核吗?也能支持8位程序,也支持32位程序 mengjun 发表于 2024-8-25 22:14
不是说8051U双核吗?也能支持8位程序,也支持32位程序
是的,笔者的长缨-I号和金水151编译器支持8位程序,笔者的长缨-II号编译器支持32位程序。 jwd 发表于 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]
2