Code::Blocks + SDCC

前言


所謂 "工欲善其事必先利其器" ,在 8051 程式開發上,當然也有許多 compiler 選擇,最常見的不外乎 Keil C ,但是由於 Keil C 是商業軟體要賣錢的,因此對於學生的我們似乎不是那麼適用,另外一個也是相當知名但非商業軟體的要算是 SDCC 了,由於 SDCC 本身只有 compiler 並沒有 IDE ,所以在編譯程式上顯得格外麻煩。前幾天在想 Dec-C++ 可不可以跟 SDCC 整,網路搜尋似乎是有這種 plugin 的,可是我找不到了,而且 Dev-C++ 也很久沒開發了,因此想說換找另一個目前當紅的 IDE -- Code::Blocks (以下用 CodeBlocks 稱乎) ,果然 CodeBlocks 有跟 SDCC 整在一起,這樣方便多了,以下將逐步介紹如何利用 CodeBlocks + SDCC 編譯出 8051 可以用的 Hex file。

準備軟體


當然本文是介紹 Code::Blocks + SDCC 所以你的電腦要先灌好他們拉。以下是載點:

Code::Blocks 8.0.2 Windows 版安裝程式

SDCC Windows 版


以下介紹如何安裝

安裝 Code::Blocks


首先開啟 Code::Blocks 安裝程式之後會看到如下的畫面。


請點選 [Next]


點選 [I Agree]


這裡請 把 type of install 改成 Full 然後點 [Next]


選一個你想要安裝的位置吧,然後就點 [Install]


裝完後會問你要不要執行 Code::Blocks 先點[否]吧!


裝完摟,點 [Next]



點 [Finish]

至此已經裝完 Code::Blocks 拉 在來看 SDCC 的安裝吧


安裝 SDCC


SDCC 的安裝非常簡單,將下載下來的 SDCC zip 檔解壓縮到 C: 底下就好拉,如下圖。



利用 Code::Blocks + SDCC 編譯 8051 程式


首先開啟安裝好的 Code::Blocks


然後點選上圖中間的 [Create a new project]


點選 [Console application] (上圖框框處) 然後點 [Go]


點 [Next]


選 C (因為 8051 都是寫 C 語言而已拉) 選完點 [Next]


專案擺放位置,看你喜歡把專案擺在哪裡~ 設定完點 [Next]


注意: Compiler 那邊請選 SDCC Compiler 選完點 [Finish] 專案就建完拉。

點完 [Finish] 之後會出現三個 script warning 都點選確定吧~



點完後視窗如下圖:


把程式碼改成我們想要的 (這裡以實驗四為例) 貼完後向下面這樣


貼完後點 [紅色框框處那個按鈕] 就可以 編譯 了! 編譯訊息如下


最下面訊息欄顯示 0 error 2 warnings 我們只管有沒有 error 不管 warning 所以 0 error 表示編譯成功了 :P

我們可以切回 Build log 看一下



紅線處顯示了這次編出來的檔案有多大。

到這裡程式是編完了。但是... 檔案在哪邊勒?!


Hex file 的位置


先進去專案開的位置,觀察紅線處



裡面有個叫 bin 的資料夾,點進去裡面有有一個叫做 Debug 的資料夾點進去後如下圖。



紅色細框處就是我們要燒錄的 Hex 檔拉,這裡透過 Code::Blocks + SDCC 編出來副檔名會是 .exe 不過影響,到時候要燒錄就是選他拉。


燒錄


打開燒錄軟體,點 open file 之後要把 [檔案類型] 選 所有檔案 才看的到我們要的 .exe 然後把目錄移進去剛剛上面說的目錄。


點到我們要的檔案(exp4.exe)後 點 開啟舊檔


那我們就可以快快樂樂的燒錄拉~


調整字型


可能有的人會覺得 Code::Blocks 預設的字型太小,所以請到選單列的 [Setting] -> [Editor...] 如下圖 (因為 Windows 我拍不到 ScreenShot 在此用 Mac 的代替,不過選單位置沒變)



點出來後 如下圖


點選上圖框框處 [Choose] 會出現如下圖。


調整到你想要的大小按下 [確定] 就好拉~


美化程式碼


這點倒是我覺得超方便的地方,因為 Linux 底下用 vi 最喜歡的就是這個功能 XDD

在選單的 [Plugings] -> [Source Code Format] 如下圖,同時這裡 Code 還是很亂的



點下後... 將將!! 程式碼就變成下面這樣了,是不是很讚的功能勒~ 這對於平常沒有好的 coding style 的人來說實在造福很多,尤其是有時候寫一寫程式左右大括號數目不一,利用 formatter 來 "修整" 一下程式碼實在是最好不過的東西了