找回密码
 立即注册
楼主: 王昱顺

自研C语言编译器发布,STC IDE —— 面向STC32系列及AI8051U的C语言编译器,11/7更新

 火.. [复制链接]
已绑定手机

13

主题

115

回帖

418

积分

中级会员

积分
418
发表于 2026-8-19 13:01:53 | 显示全部楼层
王*** 发表于 2026-8-19 11:38
因为是一个简单的自动补全,有些还没有完善,后续会补齐的,目前只针对了头文件和关键词这种 ...

把预处理给加上先吧

点评

新版本已经加入,已经完成推送更新,刷新即可  发表于 2026-8-19 15:46
只要不死学,就往学里死
回复

使用道具 举报 送花

已绑定手机
已实名认证

148

主题

4104

回帖

1万

积分

超级版主

积分
11138
 楼主| 发表于 2026-8-19 15:47:11 | 显示全部楼层

新版通过AOT编译已经解决此问题,360等其他杀软不再报毒
回复

使用道具 举报 送花

已绑定手机
已实名认证

148

主题

4104

回帖

1万

积分

超级版主

积分
11138
 楼主| 发表于 2026-8-19 16:02:42 | 显示全部楼层
2026年8月19日 IDE更新:
优化了报错提示,报错跳转,以及连锁报错折叠,改进报错提示为更人性化的方式
增强了自动补全系统,使其可以支持宏定义部分
回复

使用道具 举报 送花

已绑定手机
已实名认证

148

主题

4104

回帖

1万

积分

超级版主

积分
11138
 楼主| 发表于 2026-8-19 16:20:53 | 显示全部楼层
针对代码优化方面,与Keil比较下

编译同样的程序(跑马灯程序)
STC IDE编译结果为:162B   Keil C251编译结果为169B 基本持平
编译带有中断的程序时,STC IDE会产生大概500B(根据最大中断号的不同,有所变动)的中断保护区域
用于防止使能中断但是未定义中断函数时候的错误执行其他中断函数和跑飞到代码起始区域执行的问题
截图202608191617499171.jpg
如果不计入这部分NOP的影响(因为仅仅是保护作用),那么在普通程序上和Keil基本持平,部分场景下优于Keil的优化
例如同样编译PWM呼吸灯例程,STCIDE编译大小为1160B ,Keil编译大小为691B
如果减去实际中断内容(8B),则NOP保护区域大小为523B,实际有内容的区域为1160-523=637B,优于Keil
截图202608191637074894.jpg
截图202608191637109324.jpg
(例如,连续赋值场景会默认折叠为一句赋值,同样的代码,Keil需要40B,STC-IDE只需要4B)
截图202608191635046912.jpg


对于较大的程序来讲,目前和Keil相比还有差距,还在进行优化







回复

使用道具 举报 送花

已绑定手机

86

主题

230

回帖

418

积分

中级会员

积分
418
发表于 2026-8-19 17:21:07 | 显示全部楼层
我编译ai8051u程序时显示“宏展开迭代超限 (max 256)”,我已经导入相关头文件了

点评

能否提供对应的程序压缩包用于测试?  详情 回复 发表于 2026-8-19 17:26
回复

使用道具 举报 送花

已绑定手机
已实名认证

148

主题

4104

回帖

1万

积分

超级版主

积分
11138
 楼主| 发表于 2026-8-19 17:26:02 | 显示全部楼层
向*** 发表于 2026-8-19 17:21
我编译ai8051u程序时显示“宏展开迭代超限 (max 256)”,我已经导入相关头文件了 ...

能否提供对应的程序压缩包用于测试?
回复

使用道具 举报 送花

已绑定手机

86

主题

230

回帖

418

积分

中级会员

积分
418
发表于 2026-8-19 17:30:26 | 显示全部楼层
王*** 发表于 2026-8-19 17:26
能否提供对应的程序压缩包用于测试?

请问怎么发给你

点评

回帖内点击高级模式就可以发文件了  发表于 2026-8-19 17:49
回复

使用道具 举报 送花

已绑定手机

872

主题

1万

回帖

2万

积分

管理员

积分
25454
发表于 2026-8-19 17:43:12 | 显示全部楼层
直接跟帖上传

截图202608191743356124.jpg

点击 回形针图标
回复

使用道具 举报 送花

已绑定手机

1

主题

150

回帖

895

积分

高级会员

积分
895
发表于 2026-8-19 19:38:44 | 显示全部楼层
拭目以待
回复

使用道具 举报 送花

已绑定手机

0

主题

4

回帖

32

积分

新手上路

积分
32
发表于 2026-8-19 20:40:26 | 显示全部楼层
我也是遇到这个问题了,stc头文件可以编译,ai的就不行
截图202608192039044165.jpg
截图202608192039255986.jpg
截图202608192039583016.jpg

点评

[attachimg]147692[/attachimg] 经过测试,导入AI8051U后,可以正确使用QSPI_CR1(AI8051U独有寄存器,QSPI相关) 且汇编正确,说明导入没问题  详情 回复 发表于 2026-8-19 20:54
[attachimg]147690[/attachimg] 测试了一下,给这个删掉就行了 这个是用于补充Keil编译器的Bug的,这边没有这种Bug,当然是不需要这种奇怪的定义了  详情 回复 发表于 2026-8-19 20:46
OK,我测试一下,实际上我并未测试过除了STC32G之外的芯片,因为暂时还没有精力去适配 我先解决一下这个问题  详情 回复 发表于 2026-8-19 20:43
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-11-14 09:48 , Processed in 0.079015 second(s), 86 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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