星期二, 10. 七月 2018 01:01上午 - beautifulzzzz

一、SDCC(Small Device C Compiler)编译环境搭建

SDCC是一个小型设备的C语言编译器,该编译器是标准C语言,可以编译Intel MCS51架构的微处理器,也可以编译STM8等常见MCU。我们要在linux上搭建51开发环境,首先要搭建SDCC编译环境。

SDCC is a retargettable, optimizing Standard C (ANSI C89, ISO C99, ISO C11) compiler suite that targets the Intel MCS51 based microprocessors (8031, 8032, 8051, 8052, etc.), Maxim (formerly Dallas) DS80C390 variants, Freescale (formerly Motorola) HC08 based (hc08, s08), Zilog Z80 based MCUs (z80, z180, gbz80, Rabbit 2000/3000, Rabbit 3000A, TLCS-90) and STMicroelectronics STM8. Work is in progress on supporting the Microchip PIC16 and PIC18 targets. It can be retargeted for other microprocessors.

1.1、下载

有两个可供下载的:

注:对于选择拿来即用的兄弟,可以直接跳过1.2节

1.2、编译

如何编译:

./config

可能会出现下面几种错误(我也给出了解决办法):

错误 1、缺少bison : configure: error: Cannot find required program bison.

解决方法: sudo apt-get install flex bison

错误 2、找不到adjacency_list.hpp configure: error: boost library not found (boost/graph/adjacency_list.hpp).

解决方法: sudo apt-get install libboost-date-time-dev libboost-program-options-dev libboost-system-dev libboost-filesystem-dev libboost-iostreams-dev

错误 3、 没有PIC14、PIC16设备 failed for device/lib/pic14

解决方法: ./configure --disable-pic14-port --disable-pic16-port

1.3、测试

直接下载编译好的需要将其按照说明放入系统bin等文件中,采用编译的会自动将其放入系统bin中。而我比较喜欢不让其和系统的各种东西纠缠在一起,单独放在工程下的一个叫tool的文件里,大不了用的时候输全路径!

如下,我在example目录下建一个makefile和a.c文件,将直接编译好的sdcc文件放在tool下面:

➜ SDCC_WS tree -L 2

.

├── example

│ ├── a.c

│ └── makefile

├── readme.md

└── tool

└── sdcc

其中a.c为51闪灯程序:

#include <8052.h>

void delay(void);

void main(void){

while(1){

P1 = 0xFF; // Turn ON all LED's connected to Port1

delay();

P1 = 0x00; // Turn OFF all LED's connected to Port1

delay();

}

}

void delay(void){

int i,j;

for(i=0;i<0xff;i++)

for(j=0;j<0xff;j++);

}

makefile为:

SDCC_PATH=../tool/sdcc

z_sdcc=${SDCC_PATH}/bin/sdcc

z_packihx=${SDCC_PATH}/bin/packihx

a.hex:a.c

${z_sdcc} a.c

${z_packihx} a.ihx > a.hex

clean:

rm -rf *.asm *.lst *.mem *.rst *.lnk *.rel *.sym *.ihx *.hex *.map *.lk *.bin

二、Hex2Bin+命令行烧写工具配置使用

2.1、下载工具安装配置

理论上hex也能烧写,但是hex比bin要大一些,所以我们用这里用bin烧写。hex转bin要用到一个 Hex2Bin 工具,将其下载下来解压到tool目录下;stc单片机烧写工具需要用一个github开源软件 stcflash ,也将其下载到tool目录下:

➜ SDCC_WS tree -L 2

.

├── example

│ ├── a.c

│ └── makefile

├── readme.md

└── tool

├── Hex2bin-2.5

├── sdcc

├── software

└── stcflash

将makefile改为:

SDCC_PATH=../tool/sdcc

HEX2BIN_PATH=../tool/Hex2bin-2.5

STCFLASH=../tool/stcflash

z_sdcc=${SDCC_PATH}/bin/sdcc

z_packihx=${SDCC_PATH}/bin/packihx

z_hex2bin=${HEX2BIN_PATH}/hex2bin

z_stcflash=${STCFLASH}/stcflash.py

a.hex:a.c

${z_sdcc} a.c

${z_packihx} a.ihx > a.hex

${z_hex2bin} a.hex

clean:

rm -rf *.asm *.lst *.mem *.rst *.lnk *.rel *.sym *.ihx *.hex *.map *.lk *.bin

flash:

python ${z_stcflash} a.bin

2.2、编译+烧写

进入example目录运行make,自动编译:

输入make flash,给51单片机重新上电(冷启动)进行烧写:

链接

8051 PROGRAMMING USING SMALL DEVICE C COMPILER (SDCC): GO

在Linux下搭建51单片机的开发烧写环境: GO

@beautifulzzzz

智能硬件、物联网,热爱技术,关注产品

博客:http://blog.beautifulzzzz.com

园友交流群:414948975

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

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

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

  2. 零基础 Ubuntu 20.04.01 下搭建51单片机开发环境[开源编译器SDCC]

    原创首发于CSDN,转载请注明出处,谢谢! 文章目录 为何会在Linux下开发单片机 个人系统环境与所用开发板 安装开源编译器 sdcc STC MCU ISP 闪存工具 stcgal 的安装 单片机 ...

  3. 【android-cocos2d-X2.2 环境配置】在Mac下搭建Cocos2d-X-android开发环境!

    仅用于cocos2d-X2.2--cocos2d-X3.4 原文地址:http://blog.csdn.net/dingkun520wy/article/details/17097593 (1)下载 ...

  4. Linux操作系统搭建51单片机开发环境(国产桌面操作系统deepin)

    1.概述 操作系统作为计算机系统的掌上明珠,一直是我们国家极力想要掌握的核心技术之一.随着这几年国际关系动荡,地缘政治风云突变的缘故,开发和应用国产操作系统热情空前高涨.尤其基于 Linux 的国产操 ...

  5. win10php环境配置教程,Windows10系统下如何去配置PHP开发环境

    Windows下搭建(Apache+PHP+MySQL)=>WAMP Linux下搭建(Apache+PHP+MySQL) =>LAMP PHP开发环境配置一般有套件安装和自定义安装两种方 ...

  6. linux中root所属的组的gid为,linux用户和用户组

    1.用户和用户组概念 回到顶部 Linux是典型的多用户多任务操作系统,在使用linux操作系统之前,必须首先向系统管理员申请账号,然后通过帐号登录系统. 用户在登录时键入正确的用户名和口令后,即可进 ...

  7. linux存放脚本目录,linux中Shell脚本所在目录的绝对路径linux操作系统 -电脑资料...

    linux shell 脚本里面如果想得到当前脚本文件存放的绝对路径,也没有太现成的命令可以调用,不过可以通过下面的语句来获取:代码如下复制代码 baseDirForScriptSelf=$(cd & ...

  8. 单片机上运行linux程序代码,在Linux下烧录51单片机

    原标题:在Linux下烧录51单片机 *本文作者:LEdge1,本文属 FreeBuf原创奖励计划,未经许可禁止转载. 背景 我一直在学习Linux 系统,但是最近还要学习51单片机,所以在Linux ...

  9. 51单片机支持python么_macOS搭建51单片机开发环境

    1.概述 鉴于好多朋友平常工作电脑为苹果,再配一台 Windows 机器来开发 51 单片机,略显多余.为此,本文详细讲解在 macOS 搭建 51 单片机开发环境. 软硬件需求:macOS 笔记本或 ...

最新文章

  1. MyBatis学习总结一
  2. torch.nn.functional.pad(input, pad, mode=‘constant‘, value=0)
  3. 编译原理(三)之语义分析
  4. 分布式和集群区别以及分布式事务
  5. 官宣!多所高校,整体搬迁!
  6. 微软企业库4.1学习笔记(十五)缓存模块3 使用数据库作为后端存储
  7. sql 过滤空值_SQL 编程思想:一切皆关系!
  8. linux 单用户模式 挂载u盘_Linux服务器如何识别移动硬盘?
  9. Qy词典-免费离线的中英词典
  10. 基于STM32设计的NB-IOT电量采集系统(超级详细)--1.Onenet平台配置及M5311配置
  11. 【应急响应】————7、服务器大量发包
  12. e5服务器系列天梯图,最新的至强e5处理器天梯图
  13. Android开发—基于OpenCV实现相机实时图像识别跟踪
  14. 一个屌丝程序猿的人生(二十一)
  15. 微信客户端如何发只有纯文字 不带图片的朋友圈动态
  16. 6个Vlookup查找函数用法,总有你想用的!
  17. Elasticsearch:Elasticsearch 查询示例 - 动手练习(一)
  18. VScode安装及个性化插件设置
  19. android studio自定义app图标
  20. IOS APP 图标

热门文章

  1. 随机组卷功能,你值得拥有~~~
  2. 字段计算器中的功能_Flask实践:计算器
  3. linux 软件 tar deb rmp,deb、rpm、tar.gz三种Linux软件包的区别
  4. 帝国php使用系统变量,帝国cms常用变量汇总
  5. 里bl2和bl3为什么分开_真正爱过的人,分开,真的会是“好散”吗?
  6. 如何解决服装面料纬斜问题
  7. python微框架Bottle(http)
  8. 42、C++ Primer 4th笔记,IO库,未格式化IO操作
  9. 通过IPv4网络访问IPv6网络 ISATAP隧道配置方法
  10. 利用处理程序错误***(下)