發(fā)布時間:2021-08-30 16:28:06來源:轉(zhuǎn)載
嵌入式系統(tǒng)的交叉調(diào)試有多種方法,主要可分為軟件方式和硬件方式兩種,軟件方式和硬件調(diào)試。那么兩種有什么區(qū)別,哪個比較好呢?
(1)軟件方式
軟件方式調(diào)試主要是通過插入調(diào)試樁的方式來進行的。調(diào)試樁方式進行調(diào)試是通過目標操作系統(tǒng)和調(diào)試器內(nèi)分別加入某些功能模塊,二者互通信息來進行調(diào)試。該方式的典型調(diào)試器有 Gdb 調(diào)試器。
(2)硬件調(diào)試
硬件調(diào)試器的基本原理是通過仿真硬件的執(zhí)行過程,讓開發(fā)者在調(diào)試時可以隨時了解到系統(tǒng)的當前執(zhí)行情況。目前嵌入式系統(tǒng)開發(fā)中較常用到的硬件調(diào)試器是 ROMMonitor、ROMEmulator、In-CircuitEmulator 和 In-CircuitDebugger。
從各方面比較嵌入式系統(tǒng)與通用計算機的區(qū)別
(1)嵌入式系統(tǒng)與通用型系統(tǒng)的較大區(qū)別就在于嵌入式系統(tǒng)大多工作在為特定用戶群設(shè)計的系統(tǒng)中,因此它通常都具有低功耗、體積小、集成度高等特點,并且可以滿足不用應(yīng)用的特定需求。
(2)嵌入式系統(tǒng)的硬件和軟件都必須進行地設(shè)計,量體裁衣、去除冗余,力爭在同樣的硅片面積上實現(xiàn)更高的性能 。
(3)嵌入式系統(tǒng)是將先進的計算機技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)與各個行業(yè)的具體應(yīng)用相結(jié)合后的產(chǎn)物。這一點就決定了它必然是一個技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識集成系統(tǒng),從事嵌入式系統(tǒng)開發(fā)的人才也必須是復(fù)合型人才。
(4)為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲器芯片或單片機本身中,而不是存儲于磁盤中。
(5)嵌入式開發(fā)的軟件代碼尤其要求高質(zhì)量、高可靠性,由于嵌入式設(shè)備所處的環(huán)境往往是無人職守或條件惡劣的情況下,因此,其代碼必須有更高的要求。
(6)嵌入式系統(tǒng)本身不具備二次開發(fā)能力,即設(shè)計完成后用戶通常不能對其中的程序功能進行修改,必須有一套開發(fā)工具和環(huán)境才能進行再次開發(fā)
問題二、ARM9有哪些優(yōu)于ARM7的特性?
(1)ARM7 處理器采用的 3 級流水線設(shè)計,而 ARM9 則采用 5 級流水線設(shè)計
通過使用 5 級流水線機制,在每一個時鐘周期內(nèi)可以同時執(zhí)行 5 條指令。這樣就大大提高了處理性能。
在同樣的加工工藝下,ARM9 處理器的時鐘頻率是 ARM7 的 1.8~2.2 倍。
(2)ARM9采用的是哈佛結(jié)構(gòu),ARM7采用的是馮諾依曼結(jié)構(gòu)
馮·諾依曼結(jié)構(gòu)共用數(shù)據(jù)存儲空間和程序存儲空間,它們共享存儲器總線,這也是以往設(shè)計時常用的方式,而哈佛結(jié)構(gòu)則具有分離的數(shù)據(jù)和程序空間及分離的訪問總線。所以哈佛結(jié)構(gòu)在指令執(zhí)行時,取址和取數(shù)可以并行,因此具有更高的執(zhí)行效率 。
(3)ARM9引入了高速緩存和寫緩存提高了存儲器的訪問速度。
(4)支持MMU,MMU 是內(nèi)存管理單元,它把內(nèi)存以“頁”為單位來進行處理。一頁內(nèi)存是指一個具有一定大小的連續(xù)的內(nèi)存塊,通常為 4096B 或 8192B。操作系統(tǒng)為每個正在運行的程序建立并維護一張被稱為進程內(nèi)存映射的表,表中記錄了程序可以存取的所有內(nèi)存頁以及它們的實際位置。
每當程序存取一塊內(nèi)存時,它會把相應(yīng)的虛擬地址(virtual address)傳送給 MMU,而MMU 會在 PMM 中查找這塊內(nèi)存的實際位置,也就是物理地址(physical address),物理地址可以在內(nèi)存中或磁盤上的任何位置。如果程序要存取的位置在磁盤上,就必須把包含該地址的頁從磁盤上讀到內(nèi)存中,并且必須更新 PMM 以反映這個變化(這被稱為 pagefault,即頁錯)。
只有擁有了 MMU 才能真正實現(xiàn)內(nèi)存保護。例如當 A 進程的程序試圖直接訪問屬于 B 進程的虛擬地址中的數(shù)據(jù),那么 MMU 會產(chǎn)生一個異常(Exception)來阻止 A 的越界操作。這樣,通過內(nèi)存保護,一個進程的失敗并不會影響其他進程的運行,從而增強了系統(tǒng)的穩(wěn)定性,ARM9 也正是因此擁有了 MMU,比 ARM7 有了更強的穩(wěn)定性和可靠性。
更多培訓課程: 無錫嵌入式 更多學校信息: 無錫新區(qū)寶龍達內(nèi)IT教育培訓 咨詢電話: