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

安装程序及测试用例

在Window/Linux跨平台开源环境开发8051应用相关推荐

  1. Windows 10 下基于WSL的开源飞控开发环境配置(Ardupilot/PX4)

    目录 0 环境 1 环境概述 2 配置 WSL 2.1 安装 WSL2 2.2 安装工具链 3 配置VS Code 0 环境 Windows 10 build version >= 18917 ...

  2. 【Linux Mint 深度学习开发环境搭建】开发软件安装

    系列文章目录 第一章 Linux mint 深度学习开发环境搭建之Nvidia显卡相关软件安装 第二章 Linux mint 深度学习开发环境搭建之开发软件安装 第三章 Linux mint 深度学习 ...

  3. Windows官方Linux子系统C/C++开发环境搭建

    关于利用 Windows 10 适用于 Linux 的 Windows 子系统 (WSL) 安装 Linux 在 Windows 平台直接运行而不依赖虚拟机并通过 Visual Studio Code ...

  4. Linux下配置Golang开发环境

    前几天无意间看到了微信推送的golang开发的消息,看到golang那么牛逼,突然心血来潮想学习一下go.工欲善其事必先利其器,想做go开发,必须先配置好go的开发环境(就像开发Java先安装配置jd ...

  5. 一个快速实现彩屏应用的跨平台快速原型开发工具平台,最重要的是还免费!8ms.xyz平台原以为是单片机版墨刀,今天上去玩了才知道平台厉害的很,基于WEB端免搭建开发环境,跑的还是C代码编译出来的程序!

    哈哈哈哈,最近发现一个好用的在线编译.下载.烧录的跨平台快速原型开发工具平台,名字好记–8ms,单看名字是真的不知道干嘛的,不知道为啥叫这个?不多想了,好用就得分享给大家,独乐乐不如众乐乐呀-- 好用 ...

  6. Linux 内核实验室 —— 基于 Docker/Qemu 的极速 Linux 内核学习、开发和测试环境

    介绍: 项目简介 本项目致力于创建一个基于 Docker + QEMU 的 Linux 实验环境,方便大家学习.开发和测试 Linux 内核. Linux Lab 是一个开源软件,不提供任何保证,请自 ...

  7. golang语言的入门基础,及window和linux系统上环境的搭配及运行

    golang语言的入门基础,及window和linux系统上环境的搭配及运行 简介: Go语言是谷歌推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性.Go语言专门针对多处理器 ...

  8. Linux高并发服务器开发---笔记1(环境搭建、系统编程、多进程)

    0613 第4章 项目制作与技能提升 4.0 视频课链接 4.1 项目介绍与环境搭建 4.1.1 项目介绍 4.1.2 开发环境搭建 ①安装Linux系统.XSHELL.XFTP.Visual Stu ...

  9. 用QEMU模拟ARM开发板,搭建Linux kernel运行环境

    前言 有的时候我们想调试linux kernel或者linux应用程序,但是又没有硬件环境,这个时候可以选择用模拟器的方法,模拟出一个硬件环境. Android emulator Android系统的 ...

最新文章

  1. 什么人适合学习web前端?怎样学好web前端开发?
  2. Java各种数据类型详细介绍及其区别
  3. DNS(3)- 详解DNS的资源记录
  4. linux打包运行python文件_Linux下安装pyinstaller用于将py文件打包生成一个可执行文件...
  5. 如何管理和组织一个智库?参考西交利物浦大学智库治理结构和我的偶像们的成长路径!
  6. VTK:可视化算法之BandedPolyDataContourFilter
  7. 之全能忙内_全能水适能指导员流行到山西,你是否跟上?
  8. 操作系统【八】文件管理
  9. 图像增强_Keras 常用的图像增强方式
  10. python 文件管理_python 文件操作
  11. logback之使用demo
  12. 微积分 --- 以e为底的指数函数(个人学习笔记)
  13. 美团java面试题_美团java面试题分享,一面
  14. RMAN delete noprompt obsolete参数研究
  15. 免费简单的为域名申请SSL证书
  16. Grunt的安装与使用 (以Windows 64位为例)
  17. 动态创建style标签样式
  18. 搭建无广告免费小说网站------简述(一)
  19. uniapp和vue的区别
  20. 人类与计算机之间的围棋,棋圣怒吼:别忽悠我 电脑不可能战胜人类

热门文章

  1. Android 百度地图开发--- 导航功能输入起始地址实现导航,地址解析与反解析的使用
  2. 2013江苏省计算机二级c语言上机,2011年春江苏省计算机二级考试c语言上机试题...
  3. iOS 获取AppStore 中应用的下载地址
  4. 互联网公司背后的安防逻辑
  5. 人工智能培训老师讲师叶梓:计算机视觉领域的自监督学习模型——MAE-2
  6. 保险业务与系统——LOMA 290 保险公司运营——第六讲——产品开发
  7. 如何开始使用“针式PKM”软件
  8. SSM毕设项目在信用贷款风险管理系统894ad(java+VUE+Mybatis+Maven+Mysql)
  9. MEMS加速度计核心简介
  10. 手机号码段:中国工信.三大运营商号段-update2019-09