在Linux下进行C51开发
2014-01-18 14:29
525 查看
半年前折腾过一次Ubuntu,但是因为锐捷的校园网封锁了Mentohus之类的第三方客户端,所以放弃了Linux。之后一些Linux下的用户向网络管理员反映,终于开放了第三方客户端。这也使我重拾勇气,得以在Linux中畅游。正巧这段时间在学习C51,因此必须在Linux这个平台上找到合适的替代品,花了一天的时间,总算完成了基本的配置。好的,进入正题。
1.基本环境
操作系统:Ubuntu_12.04_LTS
文本编辑器:Vim_7.3
编译器:SDCC_2.9
烧录工具:kSTCISP
C51芯片:STC89C52
2.编辑器
为了强迫自己在键盘上操作,我选择了被不少人称之为“神器”的Vim。
Debian/Ubuntu安装:
如果不喜欢在终端里写代码,可以使用gVim。
IDE的话,强烈推荐MCU8051,功能极其丰富,并且有友好的中文界面。类似Windows下的Keil。
在Ubuntu_Software_Center中可直接安装。
3.编译
SDCC全称“Smell Devic C Compiler”。
安装:
在终端下使用它编译C文件很简单:
而MCU8051中自带的编译器就是SDCC,因此直接按F11就可以编译。
这里要注意的是,SDCC和Keil的源代码有些不同,
这篇文章中说得比较详细,我也正是通过它才顺利通过编译。
还有一点,SDCC使用的C标准是C99,因此不可出现
这样的申明,否则会报错:
应该如此申明:
因为在8051.h头文件中,
具体可参看《C C++全局变量初始化 initializer element is not constant 错误 c++中为什么不能对全局变量在函数外赋值》
4.烧录
SDCC编译后的文件为.hex,但是烧录时需要用.bin文件,因此在终端中cd进编译后的文件目录,输入:
如果使用USB转r232的话,不用担心驱动问题,Ubuntu中集成了pl2303的驱动,只要在终端中输入:
就可以查看自己板子所接的端口名:
接下来开始烧录:
STC官方只有Windows下的烧录软件(而且还不好用),这边我发现一个很棒的STC89C52烧录软件,叫kSTCISP,作者是个高中生。
下载地址:http://rgwan.byethost10.com/archives/1196
下载过程也很简单,选择端口、.bin文件,先按下载,再给板子上电。大功告成!
第一次写博客,如有错误,还望指正。
1.基本环境
操作系统:Ubuntu_12.04_LTS
文本编辑器:Vim_7.3
编译器:SDCC_2.9
烧录工具:kSTCISP
C51芯片:STC89C52
2.编辑器
为了强迫自己在键盘上操作,我选择了被不少人称之为“神器”的Vim。
Debian/Ubuntu安装:
sudo apt-get install vim
如果不喜欢在终端里写代码,可以使用gVim。
sudo apt-get install vim-gnome
IDE的话,强烈推荐MCU8051,功能极其丰富,并且有友好的中文界面。类似Windows下的Keil。
在Ubuntu_Software_Center中可直接安装。
3.编译
SDCC全称“Smell Devic C Compiler”。
安装:
sudo apt-get sdcc sdcc-doc
在终端下使用它编译C文件很简单:
sdcc file.c
而MCU8051中自带的编译器就是SDCC,因此直接按F11就可以编译。
这里要注意的是,SDCC和Keil的源代码有些不同,
“非ANSI C的关键字,SDCC均采用双下滑线开头的方式定义,如__code,__idata,__sbit”——引用自《SDCC编译器简明使用教程》
这篇文章中说得比较详细,我也正是通过它才顺利通过编译。
还有一点,SDCC使用的C标准是C99,因此不可出现
__sbit __at P1_0 A
这样的申明,否则会报错:
Initializer element is not constant
应该如此申明:
__sbit __at (0x90) A
因为在8051.h头文件中,
__sbit __at (0x90) P1_0
具体可参看《C C++全局变量初始化 initializer element is not constant 错误 c++中为什么不能对全局变量在函数外赋值》
4.烧录
SDCC编译后的文件为.hex,但是烧录时需要用.bin文件,因此在终端中cd进编译后的文件目录,输入:
objcopy -I ihex -O binary file.hex file.bin
如果使用USB转r232的话,不用担心驱动问题,Ubuntu中集成了pl2303的驱动,只要在终端中输入:
dmesg | tail
就可以查看自己板子所接的端口名:
接下来开始烧录:
STC官方只有Windows下的烧录软件(而且还不好用),这边我发现一个很棒的STC89C52烧录软件,叫kSTCISP,作者是个高中生。
下载地址:http://rgwan.byethost10.com/archives/1196
下载过程也很简单,选择端口、.bin文件,先按下载,再给板子上电。大功告成!
第一次写博客,如有错误,还望指正。
相关文章推荐
- 如何使用eclipse进行嵌入式Linux的开发
- [linux]挂载硬盘安装mysql和mono进行.net开发
- Linux上使用Qt Creator进行C/C++开发
- 用Vs2013+VELT进行Linux开发:Hello World
- linux下进行c/c++开发
- 在Linux下进行C开发时要注意的事项
- Linux 环境下如何使用NDK进行Android开发
- linux下用live555进行二次开发指南
- 嵌入式 linux 开发,Ubuntu OS 进行 NFS 服务器端与客户端的安装
- 用Vs2013+VELT进行Hi3516开发:编译Linux内核
- 用VS2013+VELT-0.1.3进行Linux开发:Hello World
- 在Linux下进行C开发时要注意的事项
- 如何在linux环境下进行单片机开发学习!
- 用Vs2013+VELT进行Linux开发:动态库
- 在linux使用openldap-library进行二次开发
- linux下使用Qt库进行开发心得
- Linux上使用Qt Creator进行C/C++开发
- Linux下使用GDAL进行开发(automake使用)
- 在Linux下安装android开发环境并以USB调试方式链接手机进行开发
- hadoop的windows远程linux服务进行本地开发环境搭建