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

歡迎訪問 生活随笔!

生活随笔

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

linux

在linux下也能进行51单片机开发吗?送你一份教程。

發(fā)布時間:2023/12/19 linux 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在linux下也能进行51单片机开发吗?送你一份教程。 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

點擊上方“大魚機器人”,選擇“置頂/星標公眾號”

福利干貨,第一時間送達!

閱讀文本大概需要 5 分鐘。

?0?

?寫在前面


在liunx環(huán)境下,沒有keil這種IDE(集成開發(fā)環(huán)境)來開發(fā)51單片機,如果想在liunx下進行51單片機開發(fā),也不是沒有辦法。往下看!

在liunx下搭載51開發(fā)環(huán)境主要就兩部分:

編譯環(huán)境的搭建、燒寫程序

?1?

?搭載編譯環(huán)境


SDCC是一個小型設備的C語言編譯器,該編譯器是標準C語言,可以編譯Intel MCS51架構(gòu)的微處理器,也可以編譯STM8等常見MCU。

我們要在linux上搭建51開發(fā)環(huán)境,首先要搭建SDCC編譯環(huán)境。

其主頁是:http://sdcc.sourceforge.net/? (復制到瀏覽器打開)

1.1 下載

有兩個可供下載的:

  • 1)?https://sourceforge.net/projects/sdcc/files/ <-- 需要自己編譯,有一定難度

  • 2)?http://sdcc.sourceforge.net/snap.php?<-- 編譯好的,拿來即用

注:?對于選擇拿來即用的兄弟,可以直接跳過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


?2??

?測試


直接下載編譯好的需要將其按照說明放入系統(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

?3??

?HEX2BIN+命令行燒寫工具配置使用


3.1? 下載工具安裝配置

理論上hex也能燒寫,但是hex比bin要大一些,所以我們用這里用bin燒寫。

hex轉(zhuǎn)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.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

3.3?編譯+燒寫

進入example目錄運行make,自動編譯:


輸入make flash,給51單片機重新上電(冷啟動)進行燒寫:

//end

推薦閱讀:

全國一等獎,他的學習之路。

一塊電路板從“出生“到”成年”

//end

這么“”的文章,我覺得可以轉(zhuǎn)發(fā)+收藏

總結(jié)

以上是生活随笔為你收集整理的在linux下也能进行51单片机开发吗?送你一份教程。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。