在Window/Linux跨平台开源环境开发8051应用

Window/Linux跨平台开源环境开发8051应用

Dr.Prof. Li, China Telecom, Oct 22, 2022

日常工作中,我涉及8051单片机(简称51)开发的时候,主要用汇编语言/C语言在Linux上开发。编辑工具是vim,编译工具是sdcc,烧录工具是stcgal,调式工具是sdcc自带的s51。整个环境是开源的,不需要任何版权的购买费用。

近期发现许多年轻学生不习惯Linux这种纯字符界面,似乎更习惯在Windows10上进行单片机开发。但Windows上的常用8051开发工具的正常使用是需要购买版权的。因此撰写这个简单的文章说明如何把上述环境在windows或Linux(以CentOS8举例,下同)上部署。我提供一个MCS51Inst.zip,包含了本文用到的全部需要下载的软件。里面Linux子目录下的install.sh包括了Linux下安装的全部命令,Windows子目录的install.bat包括了Windows下安装的全部命令。

1、准备工作

【Windows】

编辑工具:在windows,任何文本编辑器,如notepad、vscode等都可以,不用特别准备。

【Linux】

在Linux通常使用vim。

Linux下安装sdcc需要预先安装boost、gputils:

yum -y install boost boost-devel

从以下网址下载gputils:

Download gputils from SourceForge.net

执行以下命令安装:

tar -jxvf gputils-1.5.2.tar.bz2

cd gputils-1.5.2

./configure

make

make install

cd ..

2、安装编译工具sdcc

【Windows】

Small Device C Compiler download | SourceForge.net

在windows访问上述网址会下载:sdcc-4.2.0-x64-setup.exe

也可以直接从下面网址下载:

https://udomain.dl.sourceforge.net/project/sdcc/sdcc-win64/4.2.0/sdcc-4.2.0-x64-setup.exe

然后双击执行安装。

【Linux】

Small Device C Compiler download | SourceForge.net

在Linux访问上述网址会下载:sdcc-src-4.2.0.tar.bz2

执行以下命令安装:

tar -jxvf sdcc-src-4.2.0.tar.bz2

cd sdcc-4.2.0

./configure

make

make install

cd ..

3、安装烧录软件stcgal

这个一个python程序,需要python3。若没有安装Python3,请从下面链接下载后安装:

Download Python | Python.org

【Windows】

从以下网址下载stcgal:

GitHub - grigorig/stcgal: Open Source STC MCU ISP flash tool

在命令窗口转到stcgal子目录,执行以下命令安装:

python setup.py install

【Linux】

pip3 install --timeout 1000 stcgal

4、测试

我的Test子目录下有一个已经编辑好的Test.c,可用于测试。该程序不断改变P1端口的值,使得连接在P1端口的8个LED轮流点亮。通常市面上的开发板(如亚博智能BST-M51、科睿的KR-51),都是有8个LED连在8051的P1。现在把开发板插入计算机,并确保开发板电源处于关闭状态。

【Windows】

在命令窗口输入:compmgmt.msc

可以看到通过CH340用USB模拟出来的COM口,我的计算机上是COM3。若果看不到,需要安装Ch340的驱动,不过新版本的Windows10是自带这个驱动。安装可参考:2.1 安装CH340驱动

CH340/CH341 Windows串口驱动安装 - 南京沁恒微电子股份有限公司

在命令窗口转到Test子目录。

编译:sdcc Test.c

烧录:stcgal -p COM3 -P stc89a Test.ihx

当看到:Waiting for MCU, please cycle power,打开开发板的电源。

其中COM3要根据你计算机的具体情况修改。

【Linux】

在终端窗口输入:ls /dev/ttyUSB*,可以看到插入了开发板后模拟出来的COM口,通常是ttyUSB0。

编译:sdcc Test.c

烧录:stcgal -p /dev/ttyUSB0 Test.ihx

当看到:Waiting for MCU, please cycle power,打开开发板的电源。

其中/dev/ttyUSB0要根据你计算机的具体情况修改。也可以通过我写的脚本C51来代替上面两行的执行。

附录:

1. sdcc的使用说明可见:

https://sdcc.sourceforge.net/

2. ASxxxx Assemblers 和ASlink Relocating Linker的说明文件可见:

https://shop-pdp.net/ashtml/asxdoc.htm

3. AS8051 Assembler:

https://shop-pdp.net/ashtml/as8051.htm



安装程序及测试用例

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值