在Linux下没有像keli那样好用的IDE来开发51单片机,开发环境只能自己搭建了。

第一步:安装交叉编译工具 
a) 安装SDCC 
sudo apt-get install sdcc 
b)测试SDCC是否可用,这是个网上找的简单的流水灯代码 test.c, 用来测试

 #include "8051.h"

 #define uint unsigned int
#define uchar unsigned char
uchar tab[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; void Delay(uint xms){
uint i,j;
for(i=xms;i>;i--)
for(j=;j>;j--);
} void main(){
uchar i;
while(){
for(i=;i<;i++){
P1 = tab[i];
Delay();
}
}
}

编译它:

sdcc test.c 

会生成这么多的文件(我们只需要其中的 test.ihx):

  test.lk test.map test.rel test.sym test.asm test.ihx test.lst test.mem test.rst

packihx file.ihx >file.hex 转换为hex文件

接着下载hex2bin文件,网址(http://sourceforge.net/projects/hex2bin/files/latest/download)。

hex2bin sourcefile.hex。之后就会生成sourcefile.bin文件。

注意:为了方便以后调用hex2bin,可以将路径加入到 .bashrc文件在~/.bashrc最后一行加上Hex2bin 所在的文件夹位置:

PATH=$PATH:/home/jikexianfeng/-demo/Hex2bin-2.5

可以写个makefile文件,编译方便些 
这是我写的makefile:

 test.hex : test.c
sdcc test.c
packihx test.ihx > test.hex
hex2bin test.hex
clean:
rm -rf *.asm *.lst *.mem *.rst *.lnk *.rel *.sym *.ihx *.hex *.map

第二步:安装烧写工具 
a)下载stcflash: http://github.com/laborer/stcflash ,这是个用python写的向单片机烧写bin文件的软件 
b)安装环境:sudo apt-get install python-serial 
c)烧写 : sudo python ./stcflash.py test.bin

解决 ImportError: No module named 'serial' 问题

Traceback (most recent call last):
File "/home/jikexianfeng/51-demo/.stcflash/stcflash.py", line , in <module>
import serial
ImportError: No module named serial

解决办法(安装 serial module,这里区分python2和 python3):

sudo apt install python-pip //python2
sudo apt install python3-pip //python3

安装python3的 pip3的时候,如果时国内的软件源可能安装不上,(当时用中国科学技术大学的软件源,python3-pip下载有问题),换成ubuntu官网成功下载。

安装pyserial:

pip install pyserial    //python2
pip3 install pyserial //python3

可以从pyserial下载这里去获取源码进行熟悉和学习。

单片机成长之路(51基础篇) - 006 在Linux下搭建51单片机的开发烧写环境的更多相关文章

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

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

  2. [编译] 8、在Linux下搭建 stm8 单片机的开发烧写环境(makefile版)

    目录 一.SDCC(Small Device C Compiler)编译环境搭建 1.1.下载 1.2.编译 1.3.测试 二.Hex2Bin+命令行烧写工具配置使用 2.1.下载工具安装配置 2.2 ...

  3. 单片机成长之路(51基础篇) - 009 关于sdcc的多文件编译范例(一)

    本文是续 单片机成长之路(51基础篇) - 006 在Linux下搭建51单片机的开发烧写环境编写的. 本范例主要由(main.c ,delay.h,delay.c,makefile)4个文件组成,s ...

  4. 单片机成长之路(51基础篇) - 015 关于sdcc的多文件编译范例二

    本文是续 单片机成长之路(51基础篇) - 009 关于sdcc的多文件编译范例(一)编写的. 在实际的工作中,单片机的头文件和功能函数不可能同全部放在同一个文件夹下面,我们把单片机成长之路(51基础 ...

  5. (转)Python成长之路【第九篇】:Python基础之面向对象

    一.三大编程范式 正本清源一:有人说,函数式编程就是用函数编程-->错误1 编程范式即编程的方法论,标识一种编程风格 大家学习了基本的Python语法后,大家就可以写Python代码了,然后每个 ...

  6. 单片机成长之路(51基础篇) - 002 STC单片机冷启动和复位有什么区别

    STC单片机简介 STC单片机是一款增强型51单片机,完全兼容MCS-51,还增加了新的功能,比如新增两级中断优先级,多一个外中断,内置EEPROM,硬件看门狗,具有掉电模式,512B内存等.还支持I ...

  7. Sass进阶之路,之一(基础篇)

    Sass 学习Sass之前,应该要知道css预处理器这个东西,css预处理器是什么呢? Css预处理器定义了一种新的语言将Css作为目标生成文件,然后开发者就只要使用这种语言进行编码工作了.预处理器通 ...

  8. python成长之路第三篇(1)_初识函数

    目录: 函数 为什么要使用函数 什么是函数 函数的返回值 文档化函数 函数传参数 文件操作(二) 1.文件操作的步骤 2.文件的内置方法 函数: 一.为什么要使用函数 在日常写代码中,我们会发现有很多 ...

  9. C++自学成长之路(第一篇)

    今天开始我将开启C++自学成长之路,今天是第一天,在以前就一直在网上查找关于c++的资料,想买一本好一点的,权威一点的资料书,通过努力查找,我选择了c++ primer,在网上这本书的好评如潮.更多的 ...

随机推荐

  1. exporter API(导出、输出器api)moodel3.3

    Moodle[导出器]是接收数据并将其序列化为一个简单的预定义结构的类.它们确保输出的数据格式统一,易于维护.它们也用于生成外部函数的签名(参数和返回值) 外部函数定义在moodle/lib/exte ...

  2. String,StringBuffer与StringBuilder的区别|线程安全与线程不安全

    https://www.cnblogs.com/xingzc/p/6277581.html

  3. 【ABP】ABP跨域调用API时出现的问题

    public override void Initialize() { IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAss ...

  4. js发送邮件 不会调用客户端。

    方式三:使用node中nodemail 首先需要安装node的环境,然后安装nodemailer: npm install nodemailer --save npm install nodemail ...

  5. Ubantu17.10 上安装gitlab

    http://www.jianshu.com/p/92f97939e33a 亲测成功

  6. Java笔记(十四) 并发基础知识

    并发基础知识 一.线程的基本概念 线程表示一条单独的执行流,它有自己的程序计数器,有自己的栈. 1.创建线程 1)继承Thread Java中java.lang.Thread这个类表示线程,一个类可以 ...

  7. 【DWM1000】 非官方开源定位代码bitcraze

    蓝点DWM1000 模块已经打样测试完毕,有兴趣的可以申请购买了,更多信息参见 蓝点论坛 正文: 最近关注DWM1000 定位,一方面在看DWM1000 官方提供的代码,也在四处网上找资料看资料. 其 ...

  8. 潭州课堂25班:Ph201805201 django 项目 第四十五课 mysql集群和负载均衡(课堂笔记)

    2.使用docker安装Haproxy 一.为什么要使用数据库集群和负载均衡? 1.高可用 2.高并发 3.高性能 二.mysql数据库集群方式 三.使用docker安装PXC 1.拉取PXC镜像 d ...

  9. 用STM32CudeMX 点亮红色LED灯(软件操作步骤为主)

    1.收获如何使用软件STM32CudeMX配置代码 注意:自己要敲的代码,直接看102行,其他是软件配置的.!!! /** ************************************** ...

  10. vb.net播放资源文件中的音乐

    1.在自己的工程里添加一个资源文件. 2.打开添加的资源文件,资源类型选择为音频,点击添加资源把准备好的wav格式音乐文件添加进入资源文件. 3.设置资源属性和文件属性为嵌入 4.代码以及调用方法 P ...