系统环境:linux mint 18.3 xfce 64bit(基于ubuntu16.04.01)
需要软件及环境:
(1)codeblocks
(2)SDCC编译器
(3)python-serial
(4)stcflash(
https://github.com/laborer/stcflash)
前面我有博客介绍了linux下stm32开发环境的配置,链接如下:
linux配置stm32开发环境概述
在linux下开发51单片机也非常简单,以前介绍过使用codeblocks配合SDCC编译器进行开发51单片机的博文
Codeblocks配置SDCC实现51单片机定时器功能(proteus仿真)
在linux系统下也是同样基于codeblocks和SDCC,使用codeblocks可以自动生成hex文件,而不用再安装其他软件来转换格式,烧写程序到51单片机使用stcflash,使用python,需要安装serial串口模块。
关于USB转串口驱动问题 ,在linux下已经集成好了CH340和PL2302的驱动(linux mint(ubuntu16.04)是这样,其他发行版不清楚),一连接电脑在/dev/下面就会自动有/dev/ttyUSB0,表示有一个串口设备连接了电脑,在linux下的串口助手可以参考另一篇博文
Linux系统下串口调试助手putty,cutecom,xgcom
(1)codeblocks
https://apt.jenslody.de/ 这个网站里有codeblocks的deb源,其他linux发行版也是能在官网找到安装包的,具体安装就不赘述了,相信在linux玩51的已经有这些基础的了。
(2)SDCC
下载地址
http://sdcc.sourceforge.net/snap.php#Linux
下载snapshot版本,下载之后解压,解压后在
share/sdcc/doc/INSTALL.txt
里有安装指导,其实就是把解压后的文件(包含bin和share两个文件夹)复制到
/usr/local
目录下,正确安装后
sdcc二进制文件到:
/usr/local/bin/
header files 到:
/usr/local/share/sdcc/include/
non-free header files 到:
/usr/local/share/sdcc/non-free/include/
library files 到:
/usr/local/share/sdcc/lib/
non-free library files 到:
/usr/local/share/sdcc/non-free/lib/
并且 documentation 到:
/usr/local/share/sdcc/doc/
也可以运行
/usr/local/bin/sdcc -v
查看sdcc是否正确安装,正确安装执行上述代码会返回版本号
(3)stcflash
下载地址
https://github.com/laborer/stcflash
使用的时候要把
stcflash.py
这个文件复制到hex文件同目录下,假设需要烧写的文件是
test.hex
,那么在终端进入到
test.hex
目录下,执行下面语句
python stcflash.py test.hex
以我自己的一个工程为例,需要烧写的文件为
sonar.hex
,此时会有如下图所示
此时要关闭51单片机电源然后重启,就像在win系统下一样,然后会看到以下情况:
有晶振频率,芯片型号,ROM大小等信息。
关于codeblocks建立MCS51工程的教程建议参考篇首提供的链接,这里就不再叙述了。