·
為了提供電腦可執行的程式碼,程式撰寫者需要用文字編輯器編寫原始碼,之 後用 C 編譯器 Compiler,組譯器 Assembler,將原始碼程式翻譯成為機器碼, 再用鏈接器 Linker 調動函式庫其它支援程式並組織完整的可執行的程式並在電 腦上執行。若編輯及編譯程式的電腦為不同電腦,則需要用燒錄器 Loader 將可 執行檔送進執行電腦上執行。
- 文字編輯器:常見文字編輯器,提供程式撰寫者以打字方式撰寫原始碼, 亦即符合 C 語法的指令行所組合成的程式。
- C 編譯器(C Compiler):程式語言為人對電腦下指令的語言,對於人而 言較容易看的是文字敘述(例如 C 語言),而對於電腦機器而言最方便的 是二進制數位碼 (即機器碼 Machine Code )。為了讓雙方可以用自己最容 易的方式來溝通,兩者之間要會有兩層次的翻譯,執行翻譯工作的本身 即是一個電腦軟體程式。C 編譯器,可以針對不同 MCU,把標準通用 C 語言翻譯成配合不同 MCU 的組合語言,視不同 MCU 之不同 C 編譯器, 編釋完成之程式副檔名,多數有類似 ASM 之類的文字。
- 組譯器 Assembler:組合語言是不同 MCU 廠商配合自己的硬體所設計出 來最適合操作自己電腦更接近機器動作的語言,組合語言也是以文字碼, 通常叫做助憶碼,來描述指令,以簡化程式設計師的負擔,再提供組譯 器,將助憶碼翻譯成二進制碼,以利執行。 編譯完成的機械碼一般是當 作資料檔貯存,即 obj File。
- 鏈結器 Linker:鏈結器有,找支援函式,安置函式,鏈結函式三個主要 工作,鏈結(link)完成之後的程式為可執行檔,即為可執行.exe 檔。
- 找支援函式 :大部份的情況下,一般人所寫的程式均不完整無法單 獨執行,必需要由函式館取得一些現成的函式,副程式,或則是模組 來支援共同完成一支可執行的程式。
- 安置函式 :編譯完成的機械碼為一個團塊,鍵結器會在電腦程式記 憶體中找到空間,將所有的機械碼,包括程式設計師撰寫的以及函式 庫中找到的,一一安置在記憶體中適當的位置。
- 鏈結函式:當所有機器碼都安排好位置之後,縺結器(Linker)來接著 安排程式中分岔指令跳躍指令,以及函式呼叫都可以找到要真實的記 憶體位置去執行跳躍。
- 燒錄器 Loader:若編輯及編譯程式的電腦為不同電腦,則需要用可燒錄 器 Loader 先將前述結果轉為 16 進制可燒錄檔(.HEX),再經由通訊將燒 錄檔燒進執行電腦。PC 上可執行程式由於是在 PC 上完成可執行檔(*.exe) 的編譯及鏈結,本身就在 PC 記憶體上,執行時也在 PC 上所以沒有明顯 的 Loader 動作。本課程實驗中,Compile,Link 的動作是在 PC 上進行, 但執行時在 AVR 微控器上執行,所以要有 Loader ,將貯存在 PC 記憶體 上的程式,放置到 AVR 微控器程式記憶體之中。本課程使用的 AVR 微控 器,本實驗課程將提供 Loader。