找回密码
 立即注册
查看: 306|回复: 12

这片土地有套自个运行的规则,不是以纯技术为考核的

[复制链接]
  • 打卡等级:偶尔看看II
  • 打卡总天数:28
  • 最近打卡:2026-03-30 14:47:39
已绑定手机

15

主题

15

回帖

2671

积分

金牌会员

积分
2671
发表于 2026-2-4 09:33:14 | 显示全部楼层 |阅读模式
前几天我发了个贴子,感谢几位的回复,问STC公司是否需要我来开发STC的编译以及模拟器。首先我说的是实情,并非自荐。一个STC的编译模拟器还不值得我下那么大的功夫。今年我正在用我自个开发的语言(Yxra语言,下面会介始一下这个开发语言)对接STC单片机(应一位大学教授要求),打算先从STC开始替换C,纯国产开发。在对接中STC官网提从的是Keil uVision5+C251,我按文档要求逐一安装开发。我用的是STC32G12K128单片机,为什么用这个单片机。因为Yxra语言是面向对象,不能象C一样做语法映射,需要创建一套对象机制,以实现抽象继承等特性。两个指标需要重要考虑:一是运行内存,一是寻址能力。纯8位寻址的单片机最多做汇编映射,无法做到面向对象,小内存完全无法容纳对象结构。

现在我简单介绍一下Yxra语言,这个开发语言我以2022年开始开发,最初是在x86上开发,现在基本成熟(没有多核,缺少这方面的开发资料)。目的是真正实现我们的国产化。现在有不少大公司,超大公司屏蔽技术细节,大吹特吹国产。在没有面向硬件的开发语言,又没有纯国产的操作系统前提下。这点让我特反感,才下决心做这事。2025年年底有幸让大学教授看到我的开发语言,他很有热情,打先对接STC单片机,这是与他相关的课程相关(应该是这样),于是才有上面的事情。
下面摘自《Yxra语言设计》,有需要的可以留下联系方式。
本书全面、系统地介绍Yxra开发语言的特点及应用技术,内容以Yxra的基础程序设计、面向对象程序设计两条主线,利用浅显易懂的语言、丰富简单的实例,完整地介绍了Yxra面向对象程序设计的重点和难点。例题均通过实际测试,书中截图来自于Bochs真实的运行结果。本书共分为三部分第一部分为程序设计基础;第二部分为面向对象程序设计;第三部分为线程开发以及文件系统等功能介绍。”
Yxra语言为开发国产化操作系统而诞生,但它又不仅仅是为了开发操作系统。自从国家层面提出要国产化以后,各大软件厂商主要以修改开源软件实现国产化。然而开源软件受开放协议限制,且开源软件使用并非完全可控,可能依然存在一些隐藏的风险。所以弈柯研发团队排除万难,决定从零开始,研发完全国产的开发语言和操作系统,Yxra开发语言自此诞生。YxraOS则由Yxra语言开发。
Yxra语言是一种开发简单、面向对象、分布式、高性能、多线程、动态性等特点的开发语言。下面介绍Yxra语言的几个重要特性。
1.简单易学
Yxra是一种完全面向对象的编程语言。出于安全性和稳定性的考虑,Yxra语言去掉了C/C++语言支持的个不易理解和掌握的数据类型:指针(pointer)、联合体(unions)和结构体(structs)。而C/C++语言中联合体和结构体的功能,完全可以在Yxra语言中用类及类的属性等面向对象的方法来实现,这不但更加合理规范,而且还降低了学习难度。
2.面向对象
Yxra语言最吸引人之处,就在于它是一种以对象为中心、以消息为驱动的面向对象的编程语言。面向对象的语言都支持封装、继承和多态三个概念,Yxra语言也是如此。
3.可靠性
Yxra语言具有很高的可靠性。Yxra运行时实施检查,可以发现数组和字符串访问的越界;另外,Yxra语言提供了异常处理机制,比如除数为零,空指针等
4.支持多线程
Yxra语言在两方面支持多线程:一方面,Yxra运行环境本身就是多线程的,若干系统线程运行,负责系统维护等系统级操作;另一方面,Yxra语言内置多线程机制,可以大大简化多线程应用程序开发。
5.支持网络编程
Yxra语言通过它所提供的类库可以处理TCP/IP,用户可以通过URL地址在网络上很方便地访问其他对象。
2 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:650
  • 最近打卡:2026-03-31 17:02:51

33

主题

2925

回帖

6591

积分

论坛元老

积分
6591
发表于 2026-2-4 10:51:07 | 显示全部楼层
看了看,,还是没有撼动 Keil C51 .。。叹口气,走了。

大佬加油啊
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:850
  • 最近打卡:2026-04-01 07:49:25
已绑定手机

58

主题

2015

回帖

3645

积分

论坛元老

积分
3645
发表于 2026-2-4 11:07:46 | 显示全部楼层
楼主加油!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:679
  • 最近打卡:2026-03-31 11:21:11

9

主题

622

回帖

4322

积分

论坛元老

积分
4322
发表于 2026-2-4 15:25:10 | 显示全部楼层
俺们做小板子,不需要高级编程特性,俺们只要简单易用的有持续维护支持的C编译器,牛上天的技术塞不进小芯片有啥子用.

点评

此话实在,解吾之困!不同的芯片,不同场景,不同的应用,自然应该有不同层次的工具,天道亦如此。 打破封锁,可从小事做起,我将继续前行! STCIDE + 金水151 + AIapp-ISP:全国产纯绿色的80x51单片机软件开发工  详情 回复 发表于 2026-2-4 19:25
1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:789
  • 最近打卡:2026-03-31 11:20:41

3

主题

104

回帖

2773

积分

金牌会员

积分
2773
发表于 2026-2-4 17:09:15 | 显示全部楼层
没有指针像少了灵魂,回头一看,是面向对象啊,那没事了
回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:63
  • 最近打卡:2026-03-27 10:14:13

142

主题

1295

回帖

1万

积分

荣誉版主

积分
10481
发表于 2026-2-4 19:25:11 | 显示全部楼层
网*** 发表于 2026-2-4 15:25
俺们做小板子,不需要高级编程特性,俺们只要简单易用的有持续维护支持的C编译器,牛上天的技术塞不进小芯片有 ...

此话实在,解吾之困!不同的芯片,不同场景,不同的应用,自然应该有不同层次的工具,天道亦如此。
打破封锁,可从小事做起,我将继续前行!



STCIDE + 金水151 + AIapp-ISP:全国产纯绿色的80x51单片机软件开发工具链
https://www.stcaimcu.com/thread-10532-1-1.html
(出处: 国芯人工智能技术交流网站)


Ai8051U单片机,从入门到精通(9):金山151-RTOS单片机实时多任务操作系统
https://www.stcaimcu.com/thread-10771-1-1.html
(出处: 国芯人工智能技术交流网站)




回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:63
  • 最近打卡:2026-03-27 10:14:13

142

主题

1295

回帖

1万

积分

荣誉版主

积分
10481
发表于 2026-2-4 19:48:35 | 显示全部楼层
期待新语言。这次STC32G144K芯片不仅存储空间扩大了很多,而且加入了DSP单元,运算能力极大提高,这个系列的芯片未来加入AI边缘计算是完全可行的。由于其性能发挥受制于C251编译器,为STC32位的单片机开发国产的编译器,实现多种语言编程,这还是科学研究的一块处女地。愿君多努力,更上一层楼
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:28
  • 最近打卡:2026-03-30 14:47:39
已绑定手机

15

主题

15

回帖

2671

积分

金牌会员

积分
2671
发表于 2026-2-5 14:46:22 | 显示全部楼层
_奶*** 发表于 2026-2-4 10:51
看了看,,还是没有撼动 Keil C51 .。。叹口气,走了。

大佬加油啊

啥叫撼动Keil,我直接把C+Keil干翻了。下面是Pn口程序,不管写什么程序,眼界非常重要。
package yxra.device.inner;

/**
*        GPIO
*                Pn:不同STC单片机P口数量以及管脚不同
*/
public class GPIO{
        //P口索引
        //   索引:0-7,根据芯片确认
        private int portIndex;
       
        //P口模式
        //   模式:0-准双向口;1-推挽输出;2-高阻输入;3-开漏输出;
        private int portMode;
       
        public GPIO(int portIndex,int portMode){
                this.portIndex=portIndex;
                this.portMode=portMode;
                setGPIOMode(portIndex,portMode);
        }
}
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:28
  • 最近打卡:2026-03-30 14:47:39
已绑定手机

15

主题

15

回帖

2671

积分

金牌会员

积分
2671
发表于 2026-2-5 14:48:10 | 显示全部楼层
网*** 发表于 2026-2-4 15:25
俺们做小板子,不需要高级编程特性,俺们只要简单易用的有持续维护支持的C编译器,牛上天的技术塞不进小芯片有 ...

唉,不知道说啥好。我不正在把面向对象塞入小芯片嘛。64K+4K够了。
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:28
  • 最近打卡:2026-03-30 14:47:39
已绑定手机

15

主题

15

回帖

2671

积分

金牌会员

积分
2671
发表于 2026-2-5 14:49:29 | 显示全部楼层
杨*** 发表于 2026-2-4 19:48
期待新语言。这次STC32G144K芯片不仅存储空间扩大了很多,而且加入了DSP单元,运算能力极大提高,这个系列 ...

多谢。Yxra语言开发的并非面向STC,是面向所有的硬件,可以相互移植。比如你在STC上设个计数器,这个代码可以直接移植到ARM上,因为硬件差异在Yxra面向对象时屏蔽了。

点评

(1)Yxra语言已经在哪些平台上上实现了? (2)我现在在ARM(主要是STM32F1xx单片机)上已经写了很多类似计数器这样的已经封装好的模块,将来可以移植到STC上来吗?  详情 回复 发表于 2026-2-5 18:28
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-4-1 08:57 , Processed in 0.117753 second(s), 99 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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