前言
所謂 "工欲善其事必先利其器" ,在 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 來 "修整" 一下程式碼實在是最好不過的東西了