在Ubuntu下进行STC89C52RC单片机开发

Written by    00:03 August 26, 2014 

 

方法概述:

 

使用文本编辑器编写代码(比如VIM)——使用SDCC编译源代码——使用SDCC自带套件packihx将.ihx文件转换成.hex文件——使用hextobin将.hex转换成.bin文件——使用gSTC-ISP将文件烧录到单片机。

转换过程中也可以使用makebin命令直接将.ihx转换为.bin

开发环境构建:

 

安装SDCC

 

安装hextobin

下载hextobin
安装hextobin的依赖包

 

安装gSTC-ISP

下载gSTC-ISP
安装依赖包

这个时候系统应该会报错

然后再进入解压出来的gSTC-ISP文件夹里面的src文件,用文本编辑器修改里面的Makefile文件,将Makefile文件里面的第72行(开头是CFLAGS)替换为:

在这里我发现如果

过后直接更改src里面的Makefile然后再

话会出现Makefile被还原并且只可读,但是如果

失败一遍过后再去更改文件再去

就可以成功,具体原因还不知道。
最后安装

 

编写源代码:

 

SDCC的源代码和Keil C有所不同,需要做一点调整才能编译通过.SDCC比较多的使用像8051.h这样的头文件(include/mcs51目录下也有reg51.h这样的头文件).

对于一些非ANSI C的关键字,SDCC均采用双下滑线开头的方式定义,如__code,__idata,__sbit……对于单片机引脚的定义SDCC采用了__at关键字和十六进制地址如下:

更多的地址信息可以查看附录

 

编译——转换——烧录:

编译源代码:

转换文件格式:

将产生的.ihx文件转换成.hex文件

将.hex文件转换成.bin文件

或者:

 

烧录:

用root身份运行gSTC-ISP

选择 /dev/ttyUSB0(或者1)以及4800 bauds
选择好转换好的.bin文件,点击Download
如果看见程序提示:We are trying to connect your MCU
这个时候请给单片机断电,再上电即可完成程序烧录。

附录

Category : experience

Tags :