单片机成长之路(51基础篇) - 006 在Linux下搭建51单片机的开发烧写环境
在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单片机的开发烧写环境的更多相关文章
- [编译] 3、在Linux下搭建51单片机的开发烧写环境(makefile版)
		
星期二, 10. 七月 2018 01:01上午 - beautifulzzzz 一.SDCC(Small Device C Compiler)编译环境搭建 SDCC是一个小型设备的C语言编译器,该编 ...
 - [编译] 8、在Linux下搭建 stm8 单片机的开发烧写环境(makefile版)
		
目录 一.SDCC(Small Device C Compiler)编译环境搭建 1.1.下载 1.2.编译 1.3.测试 二.Hex2Bin+命令行烧写工具配置使用 2.1.下载工具安装配置 2.2 ...
 - 单片机成长之路(51基础篇) - 009 关于sdcc的多文件编译范例(一)
		
本文是续 单片机成长之路(51基础篇) - 006 在Linux下搭建51单片机的开发烧写环境编写的. 本范例主要由(main.c ,delay.h,delay.c,makefile)4个文件组成,s ...
 - 单片机成长之路(51基础篇) - 015 关于sdcc的多文件编译范例二
		
本文是续 单片机成长之路(51基础篇) - 009 关于sdcc的多文件编译范例(一)编写的. 在实际的工作中,单片机的头文件和功能函数不可能同全部放在同一个文件夹下面,我们把单片机成长之路(51基础 ...
 - (转)Python成长之路【第九篇】:Python基础之面向对象
		
一.三大编程范式 正本清源一:有人说,函数式编程就是用函数编程-->错误1 编程范式即编程的方法论,标识一种编程风格 大家学习了基本的Python语法后,大家就可以写Python代码了,然后每个 ...
 - 单片机成长之路(51基础篇) - 002 STC单片机冷启动和复位有什么区别
		
STC单片机简介 STC单片机是一款增强型51单片机,完全兼容MCS-51,还增加了新的功能,比如新增两级中断优先级,多一个外中断,内置EEPROM,硬件看门狗,具有掉电模式,512B内存等.还支持I ...
 - Sass进阶之路,之一(基础篇)
		
Sass 学习Sass之前,应该要知道css预处理器这个东西,css预处理器是什么呢? Css预处理器定义了一种新的语言将Css作为目标生成文件,然后开发者就只要使用这种语言进行编码工作了.预处理器通 ...
 - python成长之路第三篇(1)_初识函数
		
目录: 函数 为什么要使用函数 什么是函数 函数的返回值 文档化函数 函数传参数 文件操作(二) 1.文件操作的步骤 2.文件的内置方法 函数: 一.为什么要使用函数 在日常写代码中,我们会发现有很多 ...
 - C++自学成长之路(第一篇)
		
今天开始我将开启C++自学成长之路,今天是第一天,在以前就一直在网上查找关于c++的资料,想买一本好一点的,权威一点的资料书,通过努力查找,我选择了c++ primer,在网上这本书的好评如潮.更多的 ...
 
随机推荐
- [ 低危 ] mt网CRLF
			
漏洞: xxx.meituan.com/%0d%0aevilheadername:%20inject_by_whoamisb 原理猜测: 收到xxx二级域名的时候,会location跳转到该域名(这是 ...
 - 其实我们可以少写点if else和switch
			
前言 作为搬砖在第一线的底层工人,业务场景从来是没有做不到只有想不到的复杂. 不过他强任他强,if-else全搞定,搬就完了.但是随着业务迭代或者项目交接,自己在看自己或者别人的if代码的时候,心情就 ...
 - Django 学习第九天——请求与响应
			
一.HttpRequest 对象: 服务器接收到http协议的请求后,会根据报文创建 HttpRequest 对象视图函数的第一个参数是HttpRequest 对象再django.http 模块中定义 ...
 - 如何基于asp.net core的Identity框架在mysql上作身份验证处理
			
首先了解这个概念,我一开始也是理解和掌握基本的概念,再去做程序的开发.Identity框架是微软自己提供,基于.net core平台,可拓展.轻量 级.面向多个数据库的身份验证框架.IdentityS ...
 - Python内存管理以及数据类型
			
一.内存管理 1.Cpython解释器的垃圾回收机制 什么是垃圾:当一个值身上没有绑定任何变量名(该值的引用计数=0)时,该值就是一个垃圾. Cpython解释器就会自动回收这样的垃圾. #引用计数增 ...
 - VMware5.5-虚拟交换机
			
虚拟交换机 即为[VM(ESXI内部.ESXI外部.ESXI之间等)]的各功能.提供的网桥 虚拟机选项负责虚机间的通讯 Vmkernel选项负责主机间的通讯 标准交换机 添加拓扑中vmotion的虚拟 ...
 - CY7C68013 USB接口相机开发记录 - 第四天:上位机编写1
			
前面学习了USB相机硬件固件.设备驱动,可以实现USB设备识别.数据发送的功能.然后,非常重要的一部分,USB设备发出的数据,我要怎么接受,怎么查看发送的数据是否是正确的.网上百度了下,大部分人都使用 ...
 - (转)nginx uwsgi wsgi django 这些东西究竟是什么关系
			
有太多的文章告诉我们nginx uwsgi django 这些东西怎么用了,太多的人知道这些东西的怎么使用,怎么配置,怎么优化,但是还是有一部分人比如我这种水货不知道这些东西到底是啥,为啥一个项目的发 ...
 - quartz详解2:quartz由浅入深
			
http://blog.itpub.net/11627468/viewspace-1763498/ 一.quartz核心概念 先来看一张图: scheduler 任务调度器 trigger 触 ...
 - pytorch0.4版的CNN对minist分类
			
卷积神经网络(Convolutional Neural Network, CNN)是深度学习技术中极具代表的网络结构之一,在图像处理领域取得了很大的成功,在国际标准的ImageNet数据集上,许多成功 ...