原标题:在Linux下烧录51单片机

*本文作者:LEdge1,本文属 FreeBuf原创奖励计划,未经许可禁止转载。

背景

我一直在学习Linux 系统,但是最近还要学习51单片机,所以在Linux下给51单片机烧录程序那是非常必要的。

之前在windows上使用keil十分方便,但是转移到Linux上去没有专门给单片机烧写程序的IDE了。无奈只能自己一步一步地配置咯!

看了网上一些博客发现他们写的很模糊,像我这种Linux小白真的是一头雾水,在自己捣鼓了两天之后,把自己的心得发出来,像我那些即将或者正在为此事烦恼的人能够稍微轻松一点!

正文

首先得使用USB转TTL模块给51单片机接线。

接完线之后,我们得在Linux下配置我们的开发编译环境。

首先我们得配置SDCC编译器,像我使用了Ubuntu,我直接使用包管理器安装。当然了你也可以去下载文件自己下来编译!

这里我贴上sdcc的网站链接文字

sudo apt install sdcc

当然了我们有了编译器还不行。我们还需要可以给51单片机烧录程序的软件啊。哈哈。它就是stcflash,大家可以直接使用git命令去克隆到本地

解压之后会有一个名为stcflash 的可执行脚本。

我把她重新命名了一下,为了方便我直接把他重新命名为1。之后为1添加可执行权限。

chmod +x 1

这样的话,就算没有后缀名的花也可以运行,因为在脚本第一行就已经申明了运行。同样的我贴上stcflash的github的地址。

之后我们得把它添加到环境变量里面去。

mv 1/usr/local/bin/

这时候我们得安装一个依赖,因为51单片机是使用串口下载程序的,安装一个python serial。

apt install python serial

这时候我们可以执行1(stcflash.py)这个脚本了,这时候切换到工作目录中,写一个51单片机的程序。在Linux下写的和Windows下写程序会有一些不同的地方。

比如说在Windows下引用reg51.h这个头文件就好了而在linux下我们得引用msc51/8051.h这个头文件。

当然了我们在Windows下写定义端口的的时候是使用^符号,而在Linux下要使用_符号来表示。

我在这里只是简单介绍一下如何在Linux下烧录单片机,不是来告诉你在Linux和Windows下编写程序的时候有哪些不同的,这些要注意的是我们自己要去摸索的。

编写之后我们就可以使用SDCC 编译我们的.c代码了。

sdcc main.c

但是sdcc编译出来的是.ihx文件。但是烧录51单片机是要使用.hex文件。不要怕,其实我们在安装sdcc的时候我们就已经安装了一个packihx软件 。这个软件的功能就是将.ihx文件转化成.hex文件的。

packihx mian.ihx>main.hex

使用命令packihx之后,现在我们就有了可以烧写的了.hex文件了。

我们之前就已经把1(stcflash.py) 放到了我们的环境变量了,对就是那个我重名命为1的软件。我们在使用1这个软件的时候我们要使用root权限。当然了stcflash会自动识别我们插入的端口,但是你电脑上有多个串口的话,你可能要指定一下串口号。我这里只有这一个串口号,所以他就会自动识别,目前来看她自动识别还是听准确的。目前没啥问题!

stcflsh main.hex --port /dev/ttyusb0

我的串口号是USB0。

51 单片机是要断电重启才能烧录的,所以我们断电重启一下。

OK

完美。万事开头难,解决了第一步,大家都可以开始奔放了。

总结

在最后我得感谢一下B站了,说真的B站是个学习的好地方!大家不要总是追番啦。里面有很多有用的东西!!!!

第一次写稿子,希望今后发布更多的稿子!!!这个文档写的很详细大家跟着做基本都可以解决问题。

*本文作者:LEdge1,本文属 FreeBuf原创奖励计划,未经许可禁止转载。返回搜狐,查看更多

责任编辑:

单片机上运行linux程序代码,在Linux下烧录51单片机相关推荐

  1. linux 程序占内存,linux下,一个运行中的程序,究竟占用了多少内存

    1. 在linux下,查看一个运行中的程序, 占用了多少内存, 通常的命令有php (1). ps aux:html 其中  VSZ(或VSS)列 表示,程序占用了多少虚拟内存.linux RSS列 ...

  2. linux 8051 编译,[编译] 3、在Linux下搭建51单片机的开发烧写环境(makefile版)

    星期二, 10. 七月 2018 01:01上午 - beautifulzzzz 一.SDCC(Small Device C Compiler)编译环境搭建 SDCC是一个小型设备的C语言编译器,该编 ...

  3. 安卓手机上运行 PC-E500 程序

    目录 第1章安卓手机上运行 PC-E500 程序    1 1 PockEmul    1 2 下载    1 3 打包BASIC程序    2 4 配置PC-E500模拟器    5 5 载入e50 ...

  4. linux中板子烧写环境配置,3、在Linux下搭建51单片机的开发烧写环境(makefile版)...

    星期二, 10. 七月 2018 01:01上午 - beautifulzzzz 一.SDCC(Small Device C Compiler)编译环境搭建 SDCC是一个小型设备的C语言编译器,该编 ...

  5. Spark在Yarn上运行Wordcount程序

    过往记忆专注于Hadoop.Spark.Hive.Flume.Hbase,QQ交流群:138615359 首页 Hadoop Spark Hive Hbase Flume 面试题 面试题 数据结构 算 ...

  6. linux 程序占内存,linux概念之程序占用内存

    1.在linux下,查看一个运行中的程序,占用了多少内存,一般的命令有 (1). ps aux: 其中  VSZ(或VSS)列 表示,程序占用了多少虚拟内存. RSS列 表示, 程序占用了多少物理内存 ...

  7. Crossover2023mac苹果电脑系统上运行Windows程序虚拟机工具模拟器

    CrossOver是一款可以让Mac和Linux系统中正常运行Windows软件的应用程序.它不像虚拟机一样需要安装Windows系统之后才可以安装Windows的应用程序,这一方式给大多数用户带来了 ...

  8. VS2017编译可在Win2000上运行的程序

    微软最后一个可以原生编译Win2000应用程序IDE是Visual Studio 2008,后续版本只能支持到WinXP.那么有什么办法让高版本的VS编译出可以在Win2000上运行的程序呢? 首先我 ...

  9. DolphiScheduler平台上运行spark程序时,外部参数设置

    DolphiScheduler平台上运行spark程序时,外部参数设置 近期使用DS平台执行spark程序,遇到了部分参数设置的问题,代码中需要外部传入一个参数procDate(处理日期),具体设置如 ...

最新文章

  1. 为小区物业开发一个停车位租赁系统
  2. IT 巡检内容、方法大全
  3. JavaScript学习笔记05【高级——DOM对象】
  4. 第三次学JAVA再学不好就吃翔(part113)--对象操作流
  5. WDM驱动程序入门(1)-Hello WDM
  6. 网络协议:ARP协议
  7. C++超详细STL常用算法总结
  8. 基于STM32F1单片机、ESP8266WIFI模块、DHT11温湿度传感的WIFI网络温湿度传输系统
  9. ios旧版本app网站_这两款app已解锁永久订阅版!
  10. Sigar libsigar-amd64-linux.so
  11. 限制root远程登录
  12. javascript 原型链实现继承简单例子
  13. 软件管理 --软件仓库的搭建
  14. 网卡超时实现机制 watchdog_timeo/ndo_tx_timeout
  15. 七牛云这个API,让我轻松搞定Banner背景自动切换的功能
  16. 【论文翻译】High-Performance Long-Term Tracking with Meta-Updater
  17. 人脸识别之目标追踪识别
  18. 李宏毅线性代数笔记7 子空间
  19. 和风天气开发者使用总结
  20. pat 7-7 莫尔斯码(Morse Code) (15分) 模拟

热门文章

  1. android bench内存测试,华为p10内存测试软件(androbench) v5.0.1 免费版
  2. sql 两个 in_SQL基础知识——IN运算符
  3. 卷积码Viterbi译码算法基本原理及C语言实现
  4. 学习数字电路必须知道的几种编码
  5. [Swift]LeetCode39. 组合总和 | Combination Sum
  6. boke练习: spring boot: security post数据时,要么关闭crst,要么添加隐藏域
  7. 微信小程序的scroll-view组件
  8. 华为oj----iNOC产品部-杨辉三角的变形 .
  9. DELPHI跨平台的临界替代者
  10. Karrigell 入门教程