Linux 下 STC89C52RC 開發環境的搭建
第一次接觸單片機,自然選擇了簡單的51單片機。然而我的作業系統是 Linux 。在 Windows 下上手51似乎很容易。但是 Linux 上搭建 51 開發環境不是很順。
那麼談談 Linux 我如何搭建 STC89C52RC 的開發環境吧。
(一)
選擇自己喜好的代碼編輯器即可。vim , emacs , gedit 等都可以。
(二)
安裝編譯器。一般選擇 sdcc 。一般可從發行版的包管理器中直接安裝。
如Arch中:
$ sudo pacman -S sdcc
如果不行,需要自行下載編譯。
簡單介紹使用sdcc:
假如目前的目錄有一個寫好的源檔案 main.c 。 使用如下簡單方式即可編譯。
$ sdcc main.c
產生的若干個檔案中 main.ihx 是一個產生的16進位可執行檔。後面便可以將其燒錄到單片機中。
(三)
將產生的可執行程式燒錄到單片機是需要一條下載線的。一般說來使用 USB 轉串口的下載線。插上之後,在 /dev 裡面有個裝置叫 ttyUSB* 說明可以進行後面內容。
否則你可能需要安裝 USB 轉串口的驅動。
選擇燒錄工具。網上大部分使用的是 gSTCISP 這個工具燒錄。但是在我嘗試之後,總是卡在 We are trying to connect your MCU...這個地方。
起初我還以為下載線出現問題了。後來發現不是。你可以嘗試。注意 gSTCISP 需要的是二進位檔案,因此需要把 main.ihx 轉換為二進位檔案。
一個轉換例子:
$ makebin < main.ihx > main.bin
你需要把檔案名稱更改成你自己相應檔案名稱。其他方法還有很多,自行搜尋。
通過我測試的一個燒錄工具 stcflash 。這是一個 python 指令碼。因此你需要安裝 python 環境。大部分 Linux 發行版安裝了 python 。但是你需要安裝一個額外的運行庫 python-serial 。
$ sudo pacman -S python-serial
將下載好的 stcflash.py 放入源檔案目錄。接下來開始燒錄。
首先關閉板子。執行
$ sudo python ./stcflash.py ./main.ihx
開啟開發板即可燒錄進去。成功結果如下:
Connect to /dev/ttyUSB0 at baudrate 2400
Detecting target... done
FOSC: 11.996MHz
Model: STC89C52RC (ver4.3C)
ROM: 8KB
Baudrate: 38400
Erasing target... done
Size of the binary: 218
Programming: #################### done
另外二進位檔案使用 stcflash 也可以燒錄進入。
sdcc :http://sdcc.sourceforge.net/snap.php#Linux
gSTCISP :http://osdn.jp/projects/sfnet_gstcisp/releases/?fulllist=1
stcflash :https://github.com/RainMark/stcflash.git
本文永久更新連結地址: