发新帖我要提问
12
返回列表
打印
[STC单片机]

一种全新的单片机编译器

[复制链接]
楼主: lyzjb
手机看帖
扫描二维码
随时随地手机跟帖
21
lyzjb|  楼主 | 2018-11-5 09:40 | 只看该作者 回帖奖励 |倒序浏览
xcvista 发表于 2018-11-5 01:52
请求 LZ 提供源代码,并授权我对你的程序大改:
  • 改写成跨平台的 C 语言代码。目的:其一是支持跨平台, ...

  • 感谢您对ZJB的信任,由于ZJB属新开发的编译器,虽然作者使用她从初级版本至目前的8.0开发过不少产品,但还不能保证ZJB绝对的缜密,如果您喜欢此编译格式,请大家帮助进行严格测试,并和目前主流的编译器进行对比,找出ZJB的不足才能让她更快发展。另外,ZJB属于独立完成编译的内核,所以她并不借用任何连接器和定位器,也不生成.OBJ中间文件,作者欢迎您和致力于此的同仁共同探讨,让国人使用上可用母语编程的编译器。

    使用特权

    评论回复
    22
    xcvista| | 2018-11-5 10:54 | 只看该作者
    lyzjb 发表于 2018-11-5 09:40
    感谢您对ZJB的信任,由于ZJB属新开发的编译器,虽然作者使用她从初级版本至目前的8.0开发过不少产品,但 ...

    我的根本想法其实是保留 ZJB 语言,但把编译器的结构还原到传统的编译-汇编-链接三段结构。三段法结构其优势在于每一段独立定义,独立维护,且方便跨平台。

    zjbc file.zjb -S -o file.S
    sdas8051 file.S -o file.o
    sdld file.hex file.o


    我现在的计划中汇编、链接两段直接借用 SDCC 的,因此要删去 ZJB 中的内置汇编、链接器。而且对于我做跨平台改编来说,删去这两段可以显著减少需要改写的代码量。另外,这样的结构还可以兼容 LLVM/clang 的后台,方便改造成 ARM 和 x86 的版本。

    使用特权

    评论回复
    23
    oufuqiang| | 2018-11-5 13:58 | 只看该作者
    看得我一愣一愣的

    使用特权

    评论回复
    24
    jazzyfox| | 2018-11-5 14:05 | 只看该作者
    我用一台新机器安装出错了

    使用特权

    评论回复
    25
    linqing171| | 2018-11-5 14:24 | 只看该作者
    xcvista 发表于 2018-11-5 10:54
    我的根本想法其实是保留 ZJB 语言,但把编译器的结构还原到传统的编译-汇编-链接三段结构。三段法结构其 ...

    2005年左右,我做了个汉化的csharp,把.net framework都给汉化了,500M的access数据库。
    可惜后来代码不知道扔哪里了。
    纯粹编译器的话,和英文比没有增值的地方。毕竟现在小学生都会那几个单词了。我觉得还是要增加功能。

    我现在反倒感觉开发一个有bug的c语言编译器,不以公司化来运营,有bug的东西你敢用在产品上么?
    反倒是不如做个语法翻译的工具。
    但是只做个语法翻译的工具,又有多少意义呢?

    之前我用的中天ck802等一些国产内核的,都是eclipse+gcc。但是最近有个小工具,用了一下llvm,踩了一路的坑,感觉还不错。

    使用特权

    评论回复
    26
    linqing171| | 2018-11-5 14:31 | 只看该作者
    对于keil这个IDE,其实看他不爽的人多了,比如2002年左右用过  南京伟福 开发过一堆项目;再比如后来还有zlg;比如silabs也做过,不过大概从千年开始也改为eclipse了。不维护的不维护了,改方案的改方案了。
    http://www.wave-cn.com/download/index.htm  下载最下面的那个。

    使用特权

    评论回复
    27
    吾要单片机| | 2018-11-5 15:14 | 只看该作者
    lyzjb 发表于 2018-11-4 15:25
    有中国脊梁的气魄,这样的人多了,中国就不会被动。编写编译器需了解详细构架和操作代码明细,除了这些还 ...

    楼主,经过检查,《酷能指令集V1.5》中有4处需要更正:1、第8页的“PSR---程序状态寄存器,里面有程序状态标志位以及系统状态和控制信息。复位时PSR=0x80100000。

    2、第15页的“指令SWI  #uimm8用于产生软件中断,......。其操作有:PC=0x80000400(软件中断入口), PUSH  LRPUSH  PSRLR <= next_PC (保下一条指令的PC值),PSR.INT =#uimm8PSR.T = 1(进入特权级模式)。
    3、第21页的“指令SWI   #uimm8用于产生软件中断,......。其操作有:PC=0x80000400(软件中断入口), PUSH  LRPUSH  PSRLR <= next_PC (保下一条指令的PC值),PSR.INT =#uimm8PSR.T = 1(进入特权级模式)。
    4、第25页的“硬件中断及向量表”中的第13类型号是调试断点。
    以上疏漏是因为该文件没有及时更新。
    这是我更新后的文件:
    《酷能指令集V1.5》.pdf (824.55 KB)

    大家看见之后有问题的可以说出来,我会详细解答,另外我正在写另一篇**《酷能指令集详解》,里面主要讲述各条指令的操作码、操作数的编码和使用情况,这要花不少时间的,请耐心等待。


    使用特权

    评论回复
    28
    笨笨兔| | 2018-11-5 15:21 | 只看该作者
    赞一个! 赞成支持 汉字变量。
    但如果要开发成商用的,竞争难度太大了。

    先找到足够的爱好者来测试,那么对于C语法的变动就不能太大,我粗略看了一下,觉得有几个地方很别扭:
    1. 函数调用,建议维持 C 的格式,也即能看出函数名称和参数: *设置列位置 显示列   ---〉设置列位置(显示列);
    2. 注释:单行的还是维持  // , 思维中是在写 C 代码,末尾准备用; , 但是这里却变成是汇编的 ; 注释,
    3. GUI 不是关键,赞成先推出命令行,这样可以方便使用顺手的编辑器来编辑,一键编译+下载。

    使用特权

    评论回复
    29
    小小电子爱好者| | 2018-11-6 08:42 | 只看该作者
    优势多一点可能会更多人用

    使用特权

    评论回复
    30
    eydj2008| | 2018-11-7 08:12 | 只看该作者
    51编译器?   STC的    [图片]

    使用特权

    评论回复
    31
    3htech| | 2018-11-7 09:54 | 只看该作者
    能搞出编译器,很厉害了。繁琐复杂的细节处理,容易让人抓狂。楼主能搞出,真不容易,感谢!

    使用特权

    评论回复
    32
    lyzjb|  楼主 | 2018-11-7 10:08 | 只看该作者
    eydj2008 发表于 2018-11-7 08:12
    51编译器?   STC的    [图片]

    抱歉,由于测试版未随VBVC运行库,所以造成以上错误,安装VBVC运行库后即可正常,另外,测试版并不支持XP系统,随后作者会单独发布一款xp系统的编译器,并附上安装程序。

    使用特权

    评论回复
    评论
    eydj2008 2018-11-7 11:33 回复TA
    我的是WIN10 64BIT 
    33
    Vansm| | 2018-11-7 10:15 | 只看该作者
    来看看

    使用特权

    评论回复
    34
    lyzjb|  楼主 | 2018-11-7 10:23 | 只看该作者
    此安装包适应W7和XP,可避免无运行库发生错误。

    ZJB测试版安装包.part1.rar

    1.8 MB

    ZJB测试版安装包.part2.rar

    1.8 MB

    ZJB测试版安装包.part3.rar

    1.8 MB

    ZJB测试版安装包.part4.rar

    1.59 MB

    使用特权

    评论回复
    35
    随和的雏菊| | 2018-11-12 09:52 | 只看该作者
    已经下载了,希望对我有帮助,谢谢了

    使用特权

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

    本版积分规则