打印

我设计的单片机C语言编译器,大家看有用吗

[复制链接]
楼主: 0xCC
手机看帖
扫描二维码
随时随地手机跟帖
61
0xCC|  楼主 | 2010-1-28 15:57 | 只看该作者 回帖奖励 |倒序浏览
绝对不会. 我是说同一个程序既可以编译到MCS51上,也可以不做修改的编译到AVR和PIC上. 所以我这里设计的语法是和任何单片机无关的语法,然后编译器力争在每种单片机中都实现这些语法,这样就可以实现我的目标了.

使用特权

评论回复
62
huangqi412| | 2010-1-28 16:13 | 只看该作者
顶LZ

使用特权

评论回复
63
headwolf_83| | 2010-1-28 17:19 | 只看该作者
LZ是出于兴趣还是出于什么做这个编译器呢?
坦率得说,如果是PIC,除非能嵌到MPLAB IDE,否则是没几个人会去用的。MLAB IDE的接口文档,MCHP是不会随便开放的。
HI-TECH的IDE,中国大陆区根本没人用,悲剧啊,虽然C编译器实际用户很多。
在可以嵌入MPLAB IDE的前提下,C编译器要懂得在DEBUG的时候规避掉ICD模块占用的资源。麻烦事还是挺多的。

使用特权

评论回复
64
wwwq| | 2010-1-28 17:35 | 只看该作者
看了这么多,感觉lz对单片机编程不很熟悉,编译器要做到retargetable,是比较麻烦的,JAVA虚拟机的思路不适合嵌入式系统编译器

使用特权

评论回复
65
0xCC|  楼主 | 2010-1-28 17:58 | 只看该作者
看了这么多,感觉lz对单片机编程不很熟悉,编译器要做到retargetable,是比较麻烦的,JAVA虚拟机的思路不适合嵌入式系统编译器
wwwq 发表于 2010-1-28 17:35

不是啊, 我不可能在单片机上搞个虚拟机出来. 我的意思相当于让51系列的KEIL 和AVR的IAR 以及凌阳的SUNPLUSE IDE等有一个完全相同的语法,因为每个编译器都有点自己的扩展语法. 但这是不可能的,所以才尝试着做这个编译器, 我希望它能实现真正的高级语言,能屏蔽不同类型单片机之间的差异, 虽然目前没能实现. 但我正在努力的做.
MY QQ:910360201 不过经常不上线, 呵呵

使用特权

评论回复
66
huangqi412| | 2010-1-28 19:17 | 只看该作者
定LZ,,,   以前不是还有个哥们做了个海尔的C编译器么?后面怎么没消息了

使用特权

评论回复
67
lin2266286| | 2010-1-28 19:34 | 只看该作者
支持顶一下!

使用特权

评论回复
68
zxcbox| | 2010-1-28 20:33 | 只看该作者
牛人!顶一下!

使用特权

评论回复
69
niejinbo| | 2010-1-28 22:01 | 只看该作者
本帖最后由 niejinbo 于 2010-1-28 22:16 编辑

LZ牛人
我在一家IC公司做单片机编译器,LZ的想法固然好,也是广大单片机用户所希望的,但难度不小啊
51、PIC、AVR等单片机指令集都不一样,且硬件资源也不一样,Windows下编程我们很少关心CPU的硬件资源,但单片机就不一样了

使用特权

评论回复
70
wwwq| | 2010-1-28 22:10 | 只看该作者
niejinbo
这位是明白人,lz的勇气可嘉,但路线不清,不过能有做这个东西的勇气也比不少高校教授要强得多了,我曾经问过多个学校的计算机专业的老师,一个最深刻的是说:我们专业的都不搞,你们是无知者无畏。不过我们搞出来了。这里路太长,lz还是别搞了,学生的精力有限。

使用特权

评论回复
71
niejinbo| | 2010-1-28 22:20 | 只看该作者
LZ有空可研究下LCC,LCC可以针对不同的目标机器产生不同的代码,当然需要配置一下

使用特权

评论回复
72
xlfd1| | 2010-1-28 23:07 | 只看该作者
继续关注中

使用特权

评论回复
73
mentlely| | 2010-1-28 23:23 | 只看该作者
做个编译器不容易,做得通用和用户认可的更难!

使用特权

评论回复
74
谈的元| | 2010-1-29 00:32 | 只看该作者
顶起

使用特权

评论回复
75
xjavr| | 2010-1-29 15:58 | 只看该作者
不是啊, 我不可能在单片机上搞个虚拟机出来. 我的意思相当于让51系列的KEIL 和AVR的IAR 以及凌阳的SUNPLUSE IDE等有一个完全相同的语法,因为每个编译器都有点自己的扩展语法. 但这是不可能的,所以才尝试着做这个编 ...
0xCC 发表于 2010-1-28 17:58


那你不是做了一个扩展语法而已吗,和其他的编译器有何区别,比如IAR,不过是添加自己的扩展语法而已。人家还支持标准C,你倒来了完全自己的语法,连标准C都不完全支持了,呵呵~~

使用特权

评论回复
76
janly| | 2010-1-29 21:54 | 只看该作者
精神上支持;不过最好还是弄成与标准兼容的,方便移植;
楼主有这份精力,还不如把比较难的模块;做成自动生成代码的;这个可以参考飞思卡尔的processor expert;我觉得做得不错,但就是生成的注释太多了。文件本来可以整合成一个的它就要分两个;造成文件太多,找起来不易。
如果楼主能把AVR PIC 51 等芯片也做成与飞思卡尔的一样,相信比你这个仿keil的编译器会成功得多。

使用特权

评论回复
77
hnrain| | 2010-2-1 15:04 | 只看该作者
能写编译器,比较牛了

使用特权

评论回复
78
lvyunhua| | 2010-2-1 20:09 | 只看该作者
支持楼主,加油!

使用特权

评论回复
79
liwei1100| | 2010-2-1 23:16 | 只看该作者
不说好与坏,楼主钻研的精神就值得小弟学习了~~

使用特权

评论回复
80
sinanjj| | 2010-2-1 23:30 | 只看该作者
我在linux下,没装rar解压器,故对LZ的编程思路也不慎了解。

但是正统思路应该是 bison Yacc 之类,不要再自己做轮子了。

如果我记得没错,IBM上还有篇教你用yacc做简单编译器的小**。建议LZ看看。



估计LZ是自己写代码分析的,做这种事,应该先查查资料

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则