xcode能进行图形编译吗_在linux下也能进行51单片机开发吗?送你一份教程。

点击上方“大鱼机器人”,选择“置顶/星标公众号”

福利干货,第一时间送达!

da094c8a3bda1d469df777bf36974733.gifffca5a9dfaf9390e2c5d7b1dfc314f16.png

阅读文本大概需要 5 分钟。

 0 

 写在前面

在liunx环境下,没有keil这种IDE(集成开发环境)来开发51单片机,如果想在liunx下进行51单片机开发,也不是没有办法。往下看!

在liunx下搭载51开发环境主要就两部分:

编译环境的搭建、烧写程序

 1 

 搭载编译环境

SDCC是一个小型设备的C语言编译器,该编译器是标准C语言,可以编译Intel MCS51架构的微处理器,也可以编译STM8等常见MCU。

我们要在linux上搭建51开发环境,首先要搭建SDCC编译环境。

其主页是:http://sdcc.sourceforge.net/  (复制到浏览器打开)

1.1 下载

有两个可供下载的:

  • 1) https://sourceforge.net/projects/sdcc/files/

  • 2) http://sdcc.sourceforge.net/snap.php 

注: 对于选择拿来即用的兄弟,可以直接跳过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

 2  

 测试

直接下载编译好的需要将其按照说明放入系统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/packihxa.hex:a.c
${z_sdcc} a.c
${z_packihx} a.ihx > a.hexclean:
rm -rf *.asm *.lst *.mem *.rst *.lnk *.rel *.sym *.ihx *.hex *.map *.lk *.bin

 3  

 HEX2BIN+命令行烧写工具配置使用
3.1  下载工具安装配置

理论上hex也能烧写,但是hex比bin要大一些,所以我们用这里用bin烧写。

hex转bin要用到一个Hex2Bin工具,将其下载下来解压到tool目录下;

下载地址:https://sourceforge.net/projects/hex2bin/files/latest/download

stc单片机烧写工具需要用一个github开源软件stcflash,也将其下载到tool目录下:

下载地址:https://sourceforge.net/projects/hex2bin/files/latest/download

➜ 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.pya.hex:a.c
${z_sdcc} a.c
${z_packihx} a.ihx > a.hex
${z_hex2bin} a.hexclean:
rm -rf *.asm *.lst *.mem *.rst *.lnk *.rel *.sym *.ihx *.hex *.map *.lk *.binflash:
python ${z_stcflash} a.bin

866bfb29a64e4e846ac1b94947fd3243.png

3.3 编译+烧写

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

c0409b6d81f0e6cce453e5780a1895af.png

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

c2b0c60bbab4983548765e15c5cee51d.png

//end

cb2d6cee1e36e305eea4e3aa9cb6d8ff.png

推荐阅读:

全国一等奖,他的学习之路。

一块电路板从“出生“到”成年”

//end

这么“”的文章,我觉得可以转发+收藏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值