日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

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

發(fā)布時間:2024/4/14 linux 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 8051 编译,[编译] 3、在Linux下搭建51单片机的开发烧写环境(makefile版) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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

一、SDCC(Small Device C Compiler)編譯環(huán)境搭建

SDCC是一個小型設備的C語言編譯器,該編譯器是標準C語言,可以編譯Intel MCS51架構的微處理器,也可以編譯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設備

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轉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)網,熱愛技術,關注產品

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

園友交流群:414948975

單片機成長之路(51基礎篇) - 006 在Linux下搭建51單片機的開發(fā)燒寫環(huán)境

在Linux下沒有像keli那樣好用的IDE來開發(fā)51單片機,開發(fā)環(huán)境只能自己搭建了. 第一步:安裝交叉編譯工具?a) 安裝SDCC?sudo apt-get install sdcc?b)測試SDC ...

&lbrack;編譯&rsqb; 7、在Linux下搭建安卓APP的開發(fā)燒寫環(huán)境(makefile版-gradle版)—— 在Linux上用命令行&plus;VIM開發(fā)安卓APP

April 18, 2020 6:54 AM - BEAUTIFULZZZZ 目錄 0 前言 1 gradle 安裝配置 1.1 卸載系統(tǒng)默認裝的gradle 1.2 下載對應版本的二進制文件 1.3 ...

&lbrack;編譯&rsqb; 5、在Linux下搭建安卓APP的開發(fā)燒寫環(huán)境(makefile版)—— 在Linux上用命令行&plus;VIM開發(fā)安卓APP

星期三, 19. 九月 2018 02:19上午 - BEAUTIFULZZZZ 0)前言 本文不討論用IDE和文本編輯器開發(fā)的優(yōu)劣,是基于以下兩點考慮去嘗試用命令行編譯安卓APP的: 了解安卓APP ...

Linux 下搭建jsp服務器(配置jsp開發(fā)環(huán)境)

Linux?做為服務器的高效一直時為人所熟知的了,在linux?上搭建各種各樣的服務器和開發(fā)環(huán)境也時學計算機的人常做的.以下時最近在linux配置jsp服務器的全過程,包含一些基本步驟和排錯過程: 1 ...

&lbrack;編譯&rsqb; 4、在Linux下搭建nRF51822的開發(fā)燒寫環(huán)境(makefile版)

星期日, 09. 九月 2018 07:51下午 - beautifulzzzz 1.安裝步驟 1) 從GNU Arm Embedded Toolchain官網下載最新的gcc-arm工具鏈,寫文章時 ...

Linux下搭建 Cocos2d-x-2&period;1&period;4 編譯環(huán)境

[tonyfield 2013.09.04 ] 參考 Linux下搭建 Cocos2d-x-2.1.4 編譯環(huán)境 導入 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)境

轉載于:?http://www.uxtribe.com/php/405.html 該站下有系列PHP文章. 在Linux下搭建PHP環(huán)境比Windows下要復雜得多.除了安裝Apache,PHP等軟件 ...

Java學習心得之 Linux下搭建JavaWeb環(huán)境

作者:楓雪庭 出處:http://www.cnblogs.com/FengXueTing-px/ 歡迎轉載 Java學習心得之 Linux下搭建JavaWeb環(huán)境 1. 前言2. Java安裝3. t ...

隨機推薦

C&num; if中連續(xù)幾個條件判斷

C# if中連續(xù)幾個條件判斷 1.if (條件表達式1 && 條件表達式2) 當條件表達式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的鉤子代碼[借鑒學習]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(愛妃鏈)

近幾年來,人臉識別技術可謂在移動互聯(lián)網中得到了空前廣泛應用,從銀行APP免密轉賬,人臉快捷支付到證券人臉開戶,人臉識別技術已經應用到了移動互聯(lián)的諸多應用場景.互聯(lián)網無處不在的今天,便捷與安全貌似是一個 ...

3173&period; 【GDOI2103模擬3&period;17】掃雷游戲(搜索 &plus; 剪枝)

Problem 給出一個類似掃雷的游戲,有\(zhòng)(num\)個數字,求至少有多少個雷. Data constraint \(n,m\le 15,num\le 15\) Solution 好搜索啊. 現(xiàn)講一 ...

centos 7 默認圖形界面&lpar;或者字符界面&rpar;啟動

1.切換到管理員用戶 2.systemctl get-default命令獲取當前模式(可以省去) 3.systemctl set-default?graphical.target?修改啟動模式(修改為 ...

ubuntu 配置ftp server&lpar;zz&rpar;

ubuntu 配置 ftp server ? 安裝vsftpd sudo?apt-get?install?vsftpd #?vsftp(Very?Secure?FTP)是一種在Unix/Linux中非 ...

iOS11 Xcode 9 按住command 單擊 恢復到從前&lpar;直接跳轉到定義&rpar;

iOS11 Xcode 9? 按住command 單擊 恢復到從前(直接跳轉到定義) ? 2017年9月20日,蘋果如期推送 Xcode 9 和 iOS 11的更新. Xcode 9正式版與之前bet ...

王者榮耀交流協(xié)會第一次scrum會議

照片: 拍照的人是我(高遠博),沒有出鏡.開會時間是17:00到17:37. 昨天的成績: (1)優(yōu)化了折線圖界面 今天的計劃: (1)小組成員匯報昨日成果. (2)小組成員繼續(xù)推進任務. 遇到的困難 ...

dom4j之selectSingleNode方法

dom4j之selectSingleNode方法 2017年12月18日 15:10:18 xclsky1120 閱讀數:2043 ? 版權聲明:本文為博主原創(chuàng)文章,未經博主允許不得轉載. https ...

總結

以上是生活随笔為你收集整理的linux 8051 编译,[编译] 3、在Linux下搭建51单片机的开发烧写环境(makefile版)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。