精華區beta Programming 關於我們 聯絡資訊
> ==>發信人: Master.bbs@bbs.sayya.org (可愛的ASM), 信區: programming > 你把「模擬器」跟「除錯器」搞混了..模擬器硬體本身是要模擬 > target上的uC,所以可以用硬體本身+ 內部寫好的軟體去[運算] > 目標uC的I/O 信號、暫存器(包括調整運行時鐘),以中斷點還是 > 軟體控制,這軟體跟寫在uC的軟體不一樣,所以不會佔用可用的 > 硬體資源,模擬的uC當然就比模擬的目標高檔囉。 In Circuit Emulater 都是拿來除錯的, 可不像是 Emulater/Simulater 才是會被拿來模擬及執行. 會直接替代目標 uC 執行的 真實型ICE 對 target machine 的 I/O , Register 都是實質去 access 而不是 "算" 出來的. 這種 ICE 自備其 RAM 及 Mornitor Program ROM 及 I/O 界面. 但可以將這三者都對應 (MAP) 到 Target uC , 甚至提供 shadow RAM / ROM , 不使用斷點/暫 停, 都能實時不影響 Target uC 就做到監看記憶體的內容變化. 其映 射的 Memory 與 I/O space 從位址到資料都可以被 comparater 設定 硬體斷點. JTAG/ICE/OCD 就不是如此, 她是用 Target uC 來執行, 但也用 OCD 的 comparater 來設定硬體斷點. Target Machine 的 ROM/RAM I/O 要正常 才能運作. 理論上, Target uC 內建的 boundary scan 可以錄到 uC register 內容, 就有如 processor 的 register 被接出排線到 console Lamp 似的, 只是她是用高速 shifter 的 series line 來代 替. 只是這種可以 scan 的位元位置不可能很多, 而且是時間性抽樣的, 因此不會完全齊全真實. 斷點查閱所有 register 內容時, 有可能會靠 NMI(Non Mask Interrupt) 混用 Mornitor Program 來進行. > 想像乘在PC上完任天堂遊戲,用的ROM檔就是你要運作的程式, > 模擬器程式就是ICE上寫好的韌體,PC就是模擬器硬體本身。 > minitor提供的中斷機制, 是利用真實uC本身的硬體資源( 程式 > 空間、本身的硬體中斷、堆疊空間)達成,x86用的是外部記憶體, > minitor當然是在外部的ROM上, 對於一些本身內建EEPROM、Flash > 的uC,monitor程式就會是在MCU裡面,像基本型的8051,有些人就 > 會把monitor寫在內部ROM中,利用軟體搭配硬體中斷進行單步除錯 > ,不過monitor的功能實做的作法很多,端看各家的思維不同。 > 寫法也不一樣。 -- ◎ Origin: 中央松濤站□bbs.csie.ncu.edu.tw From: 140.115.6.234