Ⅰ 以下關於嵌入式軟體開發的敘述中,正確的是( )。
【答案】:C
本題考查嵌入式系統軟體開發調試的基礎知識。嵌入式系統的軟體開發與通常軟體開發的區別:要在於軟體實現部分,其中又可以分為編譯和調試兩部分,下面分別對這兩部分進行講解。第一是交叉編譯。嵌入式軟體開發所採用的編譯為交叉編譯。所謂交叉編譯就是在一個平台上生成可以在另一個平台上執行的代碼。編譯的最主要的工作就在將程序轉化成運行該程序的CPU所能識別的機器代碼,由於不同的體系結構有不同的指令系統。因此,不同的CPU需要有相應的編譯器,而交叉編譯就如同翻譯一樣,把相同的程序代碼翻譯成不同CPU的對應可執行二進制文件。要注意的是,編譯器本身也是程序,也要在與之對應的某一個CPU平台上運行。這里一般將進行交叉編譯的主機稱為宿主機,也就是普通的通用PC,而將程序實際的運行環境稱為目標機,也就是嵌入式系統環境。由於一般通用計算機擁有非常豐富的系統資源、使用方便的集成開發環境和調試工具等,而嵌入式系統的系統資源非常緊缺,無法在其上運行相關的編譯工具,因此,嵌入式系統的開發需要藉助宿主機(通用計算機)來編譯出目標機的可執行代碼。第二是交叉調試。嵌入式軟體經過編譯和鏈接後即進入調試階段,調試是軟體開發過程中必不可少的一個環節,嵌入式軟體開發過程中的交叉調試與通用軟體開發過程中的調試方式有很大的差別。在常見軟體開發中,調試器與被調試的程序往往運行在同一台計算機上,調試器是一個單獨運行著的進程它通過操作系統提供的調試介面來控制被調試的進程。而在嵌入式軟體開發中,調試時採用的是在宿主機和目標機之間進行的交叉調試,調試器仍然運行在宿主機的通用操作系統之上,但被調試的進程卻是運行在基於特定硬體平台的嵌入式操作系統中,調試器和被調試進程通過串口或者網路進行通信,調試器可以控制、訪問被調試進程,讀取被調試進程的當前狀態,並能夠改變被調試進程的運行狀態。