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

现在总算想明白了, 周公为什么弄不出C51编译器, 杂议C51编...

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2023-1-12 12:13:25 | 显示全部楼层 |阅读模式
现在总算想明白了, 周公为什么弄不出C51编译器, 杂议C51编译器开发



这几天等 STC32开发板, 淘宝买的一个星期了, 还在石家庄转圈, 官方送的, 也不知在哪个地方转圈(快递半个月收不到, 已成常态).

网上有人提起用 mcu8051ide开发51, 正好有点空, 上网下载了 mcu8051ide源码, 粗看了一下, 功能还行, 51汇编功能比轻强大,

反汇编功能比轻弱, 还有硬件扩展连接方面写的比较详细, 有利于外挂下载器、仿真器,没有C编译器,需用户外挂,免费的其推荐 SDCC,

IDE界面类拟于早期的 Keil IDE,毕竟 mcu8051ide开发的早,已有 6年未更新了。


回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2023-1-12 12:13:52 | 显示全部楼层
又从网下载了 SDCC源码, 粗看了一遍源码, C编译器的基本常用函数库都有,51的单精度浮点数函数库未看到,重点看了C代码优化,

感觉功能太弱, 仅有底层最简单的从上级输出到下级输入类的基本优化,功能强大一些的C

例如上下两级输出、输入为 BYTE类型,且 R7作为函数传输中转变量

从上级输出到下级输入程序代码例子如下:
上级输出代码:        。。。
                        MOV        R7,A
                        MOV        VAR1,R7        ;输出到变量 VAR1
下级输入代码:                MOV        R7,VAR1        ;读入变量 VAR1
                        。。。

优化后,变量 VAR1 写入与读出,去除了。这种优化,相当于 Keil 1~2级优化,缩短程序代码长度,作用有限。
  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2023-1-12 12:14:16 | 显示全部楼层
周公手下的软件开发部,先搞了个 IDE(外挂IAR c51编译器),后面又开发了ASM51汇编,就是没有推出C51编译器。

现在总算想明白了, 周公搞出的C51编译器, 优化层度不够,要深层次的优化,不是单靠几个C编程老司机,就能做到的!

没有优秀的优化方案优化算法支持,花再大的努力也是没用的。
  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2023-1-12 12:20:24 | 显示全部楼层
没有对比就没有伤害,上有 Keil,IAR 优秀软件压着,并且国内用的大多数是 D版(不花钱),如果周公搞的C51编译器,

代码优化层度不够,比 Keil,IAR 软件编译后的代码长度长许多,其最终结果可想而之了。

0

主题

5

回帖

20

积分

新手上路

积分
20
发表于 2023-1-13 08:35:18 | 显示全部楼层
国内的编译期确实还有这些问题,不过总要自己搞的。
  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2023-1-13 12:15:32 | 显示全部楼层
dayu*** 发表于 2023-1-13 08:35
国内的编译期确实还有这些问题,不过总要自己搞的。

我试过两家 仿 PIC的, 一家小单位, C编译器 编译出来的 结果, 我要 骂X ,一点基本的优化都没有, 这能用 ?

还有一家 海尔的, C编译器 编译出来的 结果 还行, 就是功能弱了点.

重点是都是独家垄断的 自成体系芯片, 没有其他相关的 C编译器作对比, 就没有伤害.
  • 打卡等级:偶尔看看III
  • 打卡总天数:37
  • 最近打卡:2025-05-01 08:57:59

19

主题

137

回帖

485

积分

中级会员

积分
485
发表于 2023-3-18 11:37:09 | 显示全部楼层
现在编译器主流只有IAR和KEIL了,现在的IAR在51应用上也有没落的迹象了
  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2023-3-18 12:19:28 | 显示全部楼层
xhbw*** 发表于 2023-3-18 11:37
现在编译器主流只有IAR和KEIL了,现在的IAR在51应用上也有没落的迹象了

主要是D版横行, 成本几乎为 0,  KEIL 的 D版比 IAR 更容易获得, 所以  KEIL 在大陆胜出.

在国外, 程序员大多使用 Linux,使用 WINDOWS 要花钱的,

而国内, 程序员开发, 基本使用 D版的 WINDOWS .

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

24

主题

515

回帖

986

积分

荣誉版主

积分
986
发表于 2023-3-18 13:29:16 | 显示全部楼层
周立功老先生的功力还是很深厚的,至今仍在coding....,
  • 打卡等级:以坛为家II
  • 打卡总天数:513
  • 最近打卡:2025-05-01 04:31:49

24

主题

515

回帖

986

积分

荣誉版主

积分
986
发表于 2023-3-18 13:32:41 | 显示全部楼层
本帖最后由 社区闲人 于 2023-3-19 08:33 编辑
LAO*** 发表于 2023-1-12 12:13
又从网下载了 SDCC源码, 粗看了一遍源码, C编译器的基本常用函数库都有,51的单精度浮点数函数库未看到,重 ...

SDCC源码能放出来吗?我在网上找不到。
已找到。多谢。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-5-2 02:35 , Processed in 0.144337 second(s), 105 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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