linux 8051 编译,[编译] 3、在Linux下搭建51单片机的开发烧写环境(makefile版)
星期二, 10. 七月 2018 01:01上午 - beautifulzzzz
一、SDCC(Small Device C Compiler)編譯環(huán)境搭建
SDCC是一個小型設(shè)備的C語言編譯器,該編譯器是標準C語言,可以編譯Intel MCS51架構(gòu)的微處理器,也可以編譯STM8等常見MCU。我們要在linux上搭建51開發(fā)環(huán)境,首先要搭建SDCC編譯環(huán)境。
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節(jié)
1.2、編譯
如何編譯:
./config
可能會出現(xiàn)下面幾種錯誤(我也給出了解決辦法):
錯誤 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設(shè)備
failed for device/lib/pic14
解決方法:
./configure --disable-pic14-port --disable-pic16-port
1.3、測試
直接下載編譯好的需要將其按照說明放入系統(tǒng)bin等文件中,采用編譯的會自動將其放入系統(tǒng)bin中。而我比較喜歡不讓其和系統(tǒng)的各種東西糾纏在一起,單獨放在工程下的一個叫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轉(zhuǎn)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單片機的開發(fā)燒寫環(huán)境:GO
@beautifulzzzz
智能硬件、物聯(lián)網(wǎng),熱愛技術(shù),關(guān)注產(chǎn)品
博客:http://blog.beautifulzzzz.com
園友交流群:414948975
單片機成長之路(51基礎(chǔ)篇) - 006 在Linux下搭建51單片機的開發(fā)燒寫環(huán)境
在Linux下沒有像keli那樣好用的IDE來開發(fā)51單片機,開發(fā)環(huán)境只能自己搭建了. 第一步:安裝交叉編譯工具?a) 安裝SDCC?sudo apt-get install sdcc?b)測試SDC ...
[編譯] 7、在Linux下搭建安卓APP的開發(fā)燒寫環(huán)境(makefile版-gradle版)—— 在Linux上用命令行+VIM開發(fā)安卓APP
April 18, 2020 6:54 AM - BEAUTIFULZZZZ 目錄 0 前言 1 gradle 安裝配置 1.1 卸載系統(tǒng)默認裝的gradle 1.2 下載對應(yīng)版本的二進制文件 1.3 ...
[編譯] 5、在Linux下搭建安卓APP的開發(fā)燒寫環(huán)境(makefile版)—— 在Linux上用命令行+VIM開發(fā)安卓APP
星期三, 19. 九月 2018 02:19上午 - BEAUTIFULZZZZ 0)前言 本文不討論用IDE和文本編輯器開發(fā)的優(yōu)劣,是基于以下兩點考慮去嘗試用命令行編譯安卓APP的: 了解安卓APP ...
Linux 下搭建jsp服務(wù)器(配置jsp開發(fā)環(huán)境)
Linux?做為服務(wù)器的高效一直時為人所熟知的了,在linux?上搭建各種各樣的服務(wù)器和開發(fā)環(huán)境也時學(xué)計算機的人常做的.以下時最近在linux配置jsp服務(wù)器的全過程,包含一些基本步驟和排錯過程: 1 ...
[編譯] 4、在Linux下搭建nRF51822的開發(fā)燒寫環(huán)境(makefile版)
星期日, 09. 九月 2018 07:51下午 - beautifulzzzz 1.安裝步驟 1) 從GNU Arm Embedded Toolchain官網(wǎng)下載最新的gcc-arm工具鏈,寫文章時 ...
Linux下搭建 Cocos2d-x-2.1.4 編譯環(huán)境
[tonyfield 2013.09.04 ] 參考 Linux下搭建 Cocos2d-x-2.1.4 編譯環(huán)境 導(dǎo)入 HelloCpp 例程 1. Java 入口 HelloCpp.java Hel ...
linux下搭建lamp環(huán)境以及安裝swoole擴展
linux下搭建lamp環(huán)境以及安裝swoole擴展 ? 一.CentOS 6.5使用yum快速搭建LAMP環(huán)境 準備工作:先更新一下yum源 ?我安裝的環(huán)境是:apache2.2.15+mysql5 ...
Linux下搭建PHP環(huán)境
轉(zhuǎn)載于:?http://www.uxtribe.com/php/405.html 該站下有系列PHP文章. 在Linux下搭建PHP環(huán)境比Windows下要復(fù)雜得多.除了安裝Apache,PHP等軟件 ...
Java學(xué)習(xí)心得之 Linux下搭建JavaWeb環(huán)境
作者:楓雪庭 出處:http://www.cnblogs.com/FengXueTing-px/ 歡迎轉(zhuǎn)載 Java學(xué)習(xí)心得之 Linux下搭建JavaWeb環(huán)境 1. 前言2. Java安裝3. t ...
隨機推薦
C# if中連續(xù)幾個條件判斷
C# if中連續(xù)幾個條件判斷 1.if (條件表達式1 && 條件表達式2) 當(dāng)條件表達式1為true時 using System; using System.Collections. ...
【POJ】2096 Collecting Bugs
http://poj.org/problem?id=2096 題意:s個系統(tǒng)n種bug,每天找出一個bug,種類的概率是1/n,系統(tǒng)的概率是1/s.問:每個系統(tǒng)至少找出一個bug:每種類的bug都被找 ...
分享SVN的鉤子代碼[借鑒學(xué)習(xí)]pre-commit-post 鉤子
#/bin/bash REPOS=$1 TXN=$2 export HOME=/ export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/us ...
起底區(qū)塊鏈人臉識別黑馬,一個沒有人像的人臉識別:iFace Chain(愛妃鏈)
近幾年來,人臉識別技術(shù)可謂在移動互聯(lián)網(wǎng)中得到了空前廣泛應(yīng)用,從銀行APP免密轉(zhuǎn)賬,人臉快捷支付到證券人臉開戶,人臉識別技術(shù)已經(jīng)應(yīng)用到了移動互聯(lián)的諸多應(yīng)用場景.互聯(lián)網(wǎng)無處不在的今天,便捷與安全貌似是一個 ...
3173. 【GDOI2103模擬3.17】掃雷游戲(搜索 + 剪枝)
Problem 給出一個類似掃雷的游戲,有\(zhòng)(num\)個數(shù)字,求至少有多少個雷. Data constraint \(n,m\le 15,num\le 15\) Solution 好搜索啊. 現(xiàn)講一 ...
centos 7 默認圖形界面(或者字符界面)啟動
1.切換到管理員用戶 2.systemctl get-default命令獲取當(dāng)前模式(可以省去) 3.systemctl set-default?graphical.target?修改啟動模式(修改為 ...
ubuntu 配置ftp server(zz)
ubuntu 配置 ftp server ? 安裝vsftpd sudo?apt-get?install?vsftpd #?vsftp(Very?Secure?FTP)是一種在Unix/Linux中非 ...
iOS11 Xcode 9 按住command 單擊 恢復(fù)到從前(直接跳轉(zhuǎn)到定義)
iOS11 Xcode 9? 按住command 單擊 恢復(fù)到從前(直接跳轉(zhuǎn)到定義) ? 2017年9月20日,蘋果如期推送 Xcode 9 和 iOS 11的更新. Xcode 9正式版與之前bet ...
王者榮耀交流協(xié)會第一次scrum會議
照片: 拍照的人是我(高遠博),沒有出鏡.開會時間是17:00到17:37. 昨天的成績: (1)優(yōu)化了折線圖界面 今天的計劃: (1)小組成員匯報昨日成果. (2)小組成員繼續(xù)推進任務(wù). 遇到的困難 ...
dom4j之selectSingleNode方法
dom4j之selectSingleNode方法 2017年12月18日 15:10:18 xclsky1120 閱讀數(shù):2043 ? 版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載. https ...
總結(jié)
以上是生活随笔為你收集整理的linux 8051 编译,[编译] 3、在Linux下搭建51单片机的开发烧写环境(makefile版)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux twiki 添加权限,Lin
- 下一篇: linux mysql UNSIGNED