找回密码
 立即注册
查看: 301|回复: 8

[开源分享] c11编译stc51单片机

[复制链接]

21

主题

89

回帖

549

积分

高级会员

积分
549
发表于 2026-7-17 12:27:16 | 显示全部楼层 |阅读模式
填个坑, 之前更新编译器时遇到了一些问题,
在做后端ssa优化完之后转c51汇编时,

1. 指令选择存在问题

2. 对于寄存器分配上还是不够灵活, 然后前段时间又比较忙,
    就没有重新整理做这件事情.

最近重新整理了一下思路发现,

我实际上不需要跟后端硬刚, 直接让c51作为后端就行,
类似于python得思路, 我只需要在前端做c11->c89得解释工作就行,
于是就有了这个项目, 欢迎大家测试~
大家在玩得时候顺手给个star, 谢谢

peitianyu/c51_compiloer



完整可以关注github的更新, 此处固件更新可能不及时
1. c11大部分语法都支持, 具体可以看一下readme
2. 支持中文变量名与中文函数名
3. 默认会使用嵌入的编译链, 若大于2K, 会去C:\Keil_v5\C51\BIN找编译链接器
4. 暂时测试了
    a. gpio/led/delay等简单编译

    b. loli3遥控器固件代码编译
    c. 中文变量名函数名编译
5. 支持类似于tcc的 @list.txt编译, 例如: .\ttcc.exe --% @demo\list.txt
```
# list.txt 编译配置
--target mcs51
--model small
-Idemo
-IINC
-o demo.HEX
main.c timer.c uart.c gpio.c

```




ttcc.exe

706.86 KB, 下载次数: 121

demo.zip

6.11 KB, 下载次数: 108

INC.zip

10.88 KB, 下载次数: 121

回复

使用道具 举报 送花

已绑定手机

19

主题

3564

回帖

7698

积分

论坛元老

积分
7698
发表于 2026-7-17 13:21:30 来自手机 | 显示全部楼层
支持所有51吗
回复

使用道具 举报 送花

21

主题

89

回帖

549

积分

高级会员

积分
549
 楼主| 发表于 2026-7-17 13:23:52 | 显示全部楼层

keil支持得都支持, 只是语言改成c11语法了
回复

使用道具 举报 送花

21

主题

89

回帖

549

积分

高级会员

积分
549
 楼主| 发表于 2026-7-17 13:26:04 | 显示全部楼层
peiti*** 发表于 2026-7-17 13:23
keil支持得都支持, 只是语言改成c11语法了

之后有时间补全一下c251得支持, 或者添加其他语言得支持比如go, c++等
回复

使用道具 举报 送花

已绑定手机

74

主题

1019

回帖

3777

积分

论坛元老

初出茅庐&无甚本事

积分
3777
发表于 2026-7-17 15:29:33 | 显示全部楼层
peiti*** 发表于 2026-7-17 13:26
之后有时间补全一下c251得支持, 或者添加其他语言得支持比如go, c++等

Python也有在单片机上用的
偶尔看看玩玩
回复

使用道具 举报 送花

已绑定手机

20

主题

1456

回帖

4428

积分

论坛元老

积分
4428
发表于 2026-7-17 15:38:29 | 显示全部楼层
内置工具链不能编译大于2k的目标代码
回复

使用道具 举报 送花

21

主题

89

回帖

549

积分

高级会员

积分
549
 楼主| 发表于 2026-7-17 15:53:27 | 显示全部楼层
21cns*** 发表于 2026-7-17 15:38
内置工具链不能编译大于2k的目标代码

我晚上测试看一下呢
回复

使用道具 举报 送花

21

主题

89

回帖

549

积分

高级会员

积分
549
 楼主| 发表于 2026-7-17 17:26:40 | 显示全部楼层
21cns*** 发表于 2026-7-17 15:38
内置工具链不能编译大于2k的目标代码

我测试了, 确实如此, 不过如果keil已经升级(pojie)了, 是可以直接用的, 没有限制
回复

使用道具 举报 送花

21

主题

89

回帖

549

积分

高级会员

积分
549
 楼主| 发表于 2026-7-17 17:42:12 | 显示全部楼层
21cns*** 发表于 2026-7-17 15:38
内置工具链不能编译大于2k的目标代码

我看了一下好像可以避开, 但是似乎有风险就算了
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-11-8 01:19 , Processed in 0.074315 second(s), 80 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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