Linux环境下开发51单片机
Linux系统下51单片机开发环境配置
因为现在使用linux的桌面系统进行办公,用虚拟机或者装双系统切换着实不方便。
文章目录
- 需要的工具
- 头文件位置
- c文件编写
- 编译
- 烧录
- 配置中可能会出现的挫折
- 1.ch340驱动问题
- 2.stcgal问题
需要的工具
sdcc
#51mcu等各种较老式的mcu的c语言编译器#我使用的是deepin linux
sudo apt install sdcc #可能版本不是最新的但是对市面上的51系列单片机够用#还可以自己下载编译,但是不推荐,总会有点解决不了的小问题
http://sdcc.sourceforge.net/snap.php#Linux
stcgal
#一个python编写的程序烧写器#最好在root中安装这个包
sudo pip3 install stcgal#这个工具有点小问题,待会再说
头文件位置
#如果用apt 下载的sdcc
#头文件在
/usr/share/sdcc/mcs51
使用的时候调自己手里51单片机的型号就行,不知道就用<mcs51/8052.h>这个通用兼容的头文件就行
c文件编写
#include<mcs51/8052.h>void main(){//寄存器位的赋值还有中断函数与keil不太一样,但是差别不大,编写的时候查百度就行P2_0 = 0;while(1);}
编译
sdcc main.c#产生的烧录文件
main.ihx
烧录
sudo python3 -m stcgal -P stc89 /home/username/main.ihx [-b 115200] 传输波特率可选设置默认 19200
#有些51单片机到这会出问题
配置中可能会出现的挫折
1.ch340驱动问题
检查你的系统ch340驱动是否没问题(之前确保你的数据线没问题)
ls /dev/tty* | grep USB0
#出现 ttyUSB0 说明驱动好使
#啥都没有说明驱动有问题
有些版本的linux中,没有ch340的驱动,系统无法识别你开发板usb接口
下载驱动包
https://www.wch.cn/download/CH341SER_LINUX_ZIP.html
先不要着急编译,这里的c文件只支持到3.几的版本,其实我们只需要的是其中的makefile文件
再到
https://elixir.bootlin.com/linux/v5.10.113/source/drivers/usb/serial/ch341.c
中找到你系统内核版本的ch341.c文件
uname -r 可以查到内核版本
将找到的ch341.c内容 复制到驱动包中 改名为ch34x.c 将原来的ch34x.c替换。
到驱动包中,编译并加载内核
sudo makesudo make load
查看内核是否加载成功
lsmod | grep ch
#出现 ch34x 的字样就是成功了
再查看驱动是否安装成功
ls /dev/tty* | grep USB0
ttyUSB0
2.stcgal问题
当你进行烧录的时候
sudo python3 -m stcgal -P stc89 /home/username/main.ihx
一直在等待上电重启
Waiting for MCU, please cycle power:
或使用默认类型时
sudo python3 -m stcgal /home/username/main.ihx
出现
Waiting for MCU, please cycle power: done
Protocol detected: stc89
Protocol error: packet checksum mismatch
Disconnected!
不要怕,这不是你差步骤或者别的问题,是stcgal的问题
查了很多是 BSL version的问题,虽然我也不知道这个是个什么东西但是只有下一个有stc89a类型的stcgal就解决了
git clone https://github.com/nrife/stcgal.git
再用这个 git下来的包中的stcgal.py来指定stc89a这个类型
sudo python3 stcgal.py -P stc89a /home/username/main.ihx
你的第一linux下写的51程序就烧好了!!!
Linux环境下开发51单片机相关推荐
- 在桌面Linux环境下开发图形界面程序的方案对比
在Linux下开发GUI程序的方法有很多,比如Gnome桌面使用GTK+作为默认的图形界面库,KDE桌面使用Qt作为默认的图形界面库,wxWidgets则是另一个使用广泛的图形库,此外使用Java中的 ...
- Linux环境下开发板Tiny4412应用,实现交叉编译及minicom的调配,将代码编译后下载到开发板并运行
一.实验目的 1.熟悉Linux环境,学习使用命令行操控计算机系统,学会基础的ubuntu机器操作. 2.初步学习使用开发板Tiny4412,查看实验说明以及开发板说明书,学习基本使用步骤. 3.安装 ...
- 嵌入式LINUX环境下视频采集知识
Video for Linux two(Video4Linux2)简称V4L2,是V4L的改进版.V4L2是linux操作系统下用于采集图片.视频和音频数据的API接口,配合适当的视频采集设备和相应的 ...
- linux如何运行java程序,Linux环境下运行简单java程序
一.安装java 1.下载jdk8 选择对应jdk版本下载.(Tips:可在Windows下载完成后,通过FTP或者SSH到发送到Linux上) 2. 登录Linux,切换到root用户 su roo ...
- linux视频采集软件,嵌入式LINUX环境下视频采集
Video for Linux two(Video4Linux2)简称V4L2,是V4L的改进版.V4L2是linux操作系统下用于采集图片.视频和音频数据的API接口,配合适当的视频采集设备和相应的 ...
- linux 8051 编译,[编译] 3、在Linux下搭建51单片机的开发烧写环境(makefile版)
星期二, 10. 七月 2018 01:01上午 - beautifulzzzz 一.SDCC(Small Device C Compiler)编译环境搭建 SDCC是一个小型设备的C语言编译器,该编 ...
- linux中板子烧写环境配置,3、在Linux下搭建51单片机的开发烧写环境(makefile版)...
星期二, 10. 七月 2018 01:01上午 - beautifulzzzz 一.SDCC(Small Device C Compiler)编译环境搭建 SDCC是一个小型设备的C语言编译器,该编 ...
- 零基础 Ubuntu 20.04.01 下搭建51单片机开发环境[开源编译器SDCC]
原创首发于CSDN,转载请注明出处,谢谢! 文章目录 为何会在Linux下开发单片机 个人系统环境与所用开发板 安装开源编译器 sdcc STC MCU ISP 闪存工具 stcgal 的安装 单片机 ...
- linux开发 stc_Linux环境下搭建STC单片机平台的指南
Linux 环境下的头文件定义 编译文件以及转换bin文件等 操作系统:Ubuntu16.04 单片机:STC89C52RC 所需工具: 1.编辑器 - vim 2.编译器 - sdcc 3.转换程序 ...
最新文章
- TOA定位算法的FPGA实现
- 比较Java 8中的命令式和功能性算法
- Problem J: Island Buses
- php用空格分隔的字符串对比,探讨各种PHP字符串函数的总结分析
- linux 启动tomcat 怎么显示日志文件,随着LINUX的启动,打开一个终端显示TOMCAT的日志文件,请问如何做到?...
- 内含福利 | 我们“偷”来了一座航站楼。9.21, HAY!18等你来候机!
- 快速阅读之眼球的训练
- arcgis怎么压缩tif文件_PDF文件怎么压缩才能变小?这样压缩,真的很简单!
- 如何进行音频合并?很简单,只需三步骤
- Alfred神器使用手册
- ENGLISH-英文进修
- 深入理解8583协议
- Mybatis-Plus整理知识点01
- 泰山OFFICE技术讲座:Times New Roman的kerning研究
- C++ Cstring类型使用
- 看漫画学python下载_漫画批量下载
- matlab qpsk 星座图,【求助】如何画QPSK信号的星座图?各位高手帮帮忙啊!小弟...
- cpu_only openpose Windows环境搭建
- 共享内存—shmget参数shmflg详解—IPC_CREAT、IPC_EXCL、0666(对内存的读写执行权限)
- java基础篇 第1章 计算机、程序和java概述 学习笔记 - 副本
热门文章
- Springcloud五大神兽流程图
- 关于手机Camera的硬件电路知识
- 脑机接口信号基本操作回顾
- 广州外援斯贝茨被CBA公司停赛4场 罚款10万元
- ProBuilder快速关卡建模实践
- 【大数据】利用Python进行Hbase查询的简易指南
- 4x4矩阵键盘扫描c语言程序,单片机4*4矩阵键盘扫描程序(c语言+汇编语言2个版本)...
- Beaglebone Black基本操作(Debian)
- 四个步骤教你入门Selenium+python脚本编写
- 【Mysql数据库全套教程笔记-SELECT使用篇】