`
爱迪生的小屋
  • 浏览: 35496 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Eclipse Keil C51插件

阅读更多

 

    做了一个光立光,用的是8051架构的芯片,程序开发需要用的Keil C51编译器,感觉Keil的编辑器用得不如Eclipse方便,遂决定做一个Eclipse插件,将Keil的命令行编译器集成进去,顺便也学习一下Eclipse插件开发。



 

    Keil C51的命令行工具比较简单,三步:

    1. C51编译.c文件到.OBJ,一次处理一个.c文件
      C51 main.c LARGE OPTIMIZE (8,SPEED) WARNINGLEVEL (2)
    2. BL51连接所有的.OBJ文件
      BL51 main.OBJ TO main.BIN
    3. OH51转换二进制文件到.HEX流
      OH51 main.BIN

  *生成的main.hex文件可以通过专用工具烧录到芯片中,我用的是STC芯片,工具是STC ISP。

 

 
  

工具使用说明:

  1. 安装msys:http://www.mingw.org/wiki/MSYS/
  2. 安装Keil C51,随便百度一个
  3. 将msys和Keil C51的bin路径加到path中:(KEIL)/C51/BIN,(MinGW)\msys\1.0\bin
  4. 将压缩包中的两个脚本 _C51和_BLOH51放到KEIL的BIN目录中(KEIL)/C51/BIN
  5. 安装Eclipse+CDT,可以直接装Eclipse for C++ Developor版,或者是普通的Eclipse加上CDT插件:
    http://www.eclipse.org/downloads/http://eclipse.org/cdt/downloads.php
  6. 安装eclipsekeil插件,eclipse插件安装方法有好几种,个人喜欢把插件放到独立目录,再在Eclipse/links目录中建一个link文件指向它
  7. 启动Eclipse,新建C Project,下面可以看到一个MSC51 Family (Keil),就是这个了。
  8. 在项目的属性中设置C/C++ Build->Settings可以设置编译的参数,记得把(Keil)/C51/INC目录加到Compiler的Directoies中。

  * 本插件参考了eclipse-sdcc的配置,劣显笨拙,很多C51的参数还没加上去,待续,管用就好。

 

 附件里的插件包含了源码,和class文件共同打在了jar包用,欢迎使用。

 

插件更新

    2013.7.28 命令行脚本更新,支持多OBJ编译和子目录文件编译

  • 大小: 147.6 KB
  • 大小: 75.3 KB
2
0
分享到:
评论
8 楼 devcang 2013-08-13  
爱迪生的小屋 写道
devcang 写道
又碰到一个情况,较大文件,编译加参数,不会加。


应该就是在BL51后面加 RAMSIZE(256)参数



再完善一下,就很不错了  
7 楼 爱迪生的小屋 2013-08-02  
devcang 写道
又碰到一个情况,较大文件,编译加参数,不会加。


应该就是在BL51后面加 RAMSIZE(256)参数
6 楼 devcang 2013-08-02  
又碰到一个情况,较大文件,编译加参数,不会加。

5 楼 爱迪生的小屋 2013-08-01  
devcang 写道
很开心,试验好了。
最关键的是_C51和_BLOH51 两个文件,和Eclipse的插件



第3、8,两个步骤,我作了修改,不依赖系统、新建项目也不用修改配置,都修改成Eclipse里面的配置。

在Eclipse、Windows菜单、Preferences、C/C++、Build、Environment,添加环境变量
C51INC
C51LIB
PATH
这些值,应该不用说都能明白吧。其实,C51INC和C51LIB 这两个环境变量,可以根据不同的MCU,进行修改,就可以适合不同的MCU。
例如,89C52RC,用KEIL的INC就够
C51INC=D:\keil\C51\INC

而15F204EA,侧可能是不同的.h目录,于是添加
C51INC=D:\keil\C51\INC;D:\keil\C51\15F204EA\inc



有一个缺点,就是eclipse不支持sbit的类型,会红色——但编译是没有问题的。

谢谢


    C51INC和C51LIB两个环境变量我希望设计成外部导入和工程自定义两个合并的模式,因为可能有一些工程需要依赖其它的非KEIL原生提供的库文件,所以Windows环境变量可以设置,Eclipse的Build Environment里可以设置,项目的Include选项也可以设置。
    Eclipse语言解析只针对标准C的,除了sbit, sfr不支持外,还有code, interrupter, data, xdata这些统统都不支持,因为不影响编译,所以我也懒得改了,这个要改工程量会很大
    接下来我比较感兴趣的是两件事情:一是编译出错时的错误定位,双击后直接跳到所在文件的行;二是编译命令的参数,还有很多没有集成到界面上,比如RAMSIZE(256)。这两个做好了会更加方便的。
    欢迎使用,你是我博客第一个评论的,感动啊!!!
4 楼 爱迪生的小屋 2013-08-01  
devcang 写道
devcang 写道
        支持

抽空试试



有一个疑问,为何_C51里面写的像是LINUX的命令行的呢,不是在windows下的吗


因为Eclipse Makefile编译是基于Linux下面的make的,会调用msys里面sh来执行脚本,所以脚本就是Linux格式的了,msys是一套在windows环境下的Linux命令行工具,通过它就可以在windows里执行Linux脚本了
3 楼 devcang 2013-08-01  
很开心,试验好了。
最关键的是_C51和_BLOH51 两个文件,和Eclipse的插件



第3、8,两个步骤,我作了修改,不依赖系统、新建项目也不用修改配置,都修改成Eclipse里面的配置。

在Eclipse、Windows菜单、Preferences、C/C++、Build、Environment,添加环境变量
C51INC
C51LIB
PATH
这些值,应该不用说都能明白吧。其实,C51INC和C51LIB 这两个环境变量,可以根据不同的MCU,进行修改,就可以适合不同的MCU。
例如,89C52RC,用KEIL的INC就够
C51INC=D:\keil\C51\INC

而15F204EA,侧可能是不同的.h目录,于是添加
C51INC=D:\keil\C51\INC;D:\keil\C51\15F204EA\inc



有一个缺点,就是eclipse不支持sbit的类型,会红色——但编译是没有问题的。

谢谢
2 楼 devcang 2013-08-01  
devcang 写道
        支持

抽空试试



有一个疑问,为何_C51里面写的像是LINUX的命令行的呢,不是在windows下的吗
1 楼 devcang 2013-08-01  
        支持

抽空试试

相关推荐

Global site tag (gtag.js) - Google Analytics