[开源分享] c11编译stc51单片机
填个坑, 之前更新编译器时遇到了一些问题,在做后端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
```
支持所有51吗 soma 发表于 2026-7-17 13:21
支持所有51吗
keil支持得都支持, 只是语言改成c11语法了 peitianyu 发表于 2026-7-17 13:23
keil支持得都支持, 只是语言改成c11语法了
之后有时间补全一下c251得支持, 或者添加其他语言得支持比如go, c++等 peitianyu 发表于 2026-7-17 13:26
之后有时间补全一下c251得支持, 或者添加其他语言得支持比如go, c++等
Python也有在单片机上用的 内置工具链不能编译大于2k的目标代码 21cnsound 发表于 2026-7-17 15:38
内置工具链不能编译大于2k的目标代码
我晚上测试看一下呢 21cnsound 发表于 2026-7-17 15:38
内置工具链不能编译大于2k的目标代码
我测试了, 确实如此, 不过如果keil已经升级(pojie)了, 是可以直接用的, 没有限制 21cnsound 发表于 2026-7-17 15:38
内置工具链不能编译大于2k的目标代码
我看了一下好像可以避开, 但是似乎有风险就算了{:hanxiao:}
页:
[1]