嵌入式系統其實在我們的生活中無所不在,嵌入式系統是嵌入式計算機系統的簡稱,也就是說嵌入式系統與普通計算機其實非常類似,列出幾個典型的應用:智能機器人手機汽車(導...
平常我們很少關注編譯和鏈結的過程,因為開發環境都集成開發的環境,比如Visual Studio、Eclipse,這樣的IDE一般都將編譯和鏈結的過程一步完成,因...
編譯器做了什麼? 我們知道使用機器指令撰寫程式碼是非常麻煩的事情,也會使開發程式的效率不高,編譯器就是將來源碼(source code)翻譯成機器語言(obje...
目標文件格式 (Object file) 可重定位目標文件 (Relocatable Object File) 這類文件包含了二進制程式碼和數據,其形式可以...
在上一篇文章中,我們熟悉了可重定位文件和可執行文件,我們繼續學習連節操作的具體步驟---「符號解析」 符號與符號表 連結的過程就是把多個不同的 obj file...
在上篇文章我們說了「符號解析」,符號解析的任務就是:建立定義與引用之間的關聯,而「重定址」的任務就是:把程式碼中每一個符號引用和正好一個符號定義關聯起來。 重定...
為甚麼會出現動態連結? 動態連結出現的原因就是為了解決靜態連結中提到的兩個問題: 浪費空間,因為每個可執行程序中對所有需要的Obj file都要有一份副本,所...
為甚麼我們需要 Cache? 在思考為甚麼需要 Cache 之前,先思考程序是如何運行起來的 ? 我們知道程序是因運行在 RAM 之中,當我們需要運行一個 pr...
ARM Cortex Overview ARM Architecture 從第七代開始,分為三種配置(Profile) Application:AXI,VMS...
Exception 與 Interrupt Interrupt 是由內部 timer 或 I/O 裝置發出的。 Exception 是由於程式 Error 或...