精華區beta Programming 關於我們 聯絡資訊
※ 引述《tester.bbs@bbs.csie.ncu.edu.tw (try or test)》之銘言: > 用單顆 IC 做成的 processor , 受其接腳的限制, 無法像 > 傳統大型電腦的 cpu 直接用排線將 console switch/lamp 連到 > processor register 與 control register 進行設定或顯示. 你有沒有寫過monitor?(或研究過?) 設定及顯示需要透過介面及對應的程式才能達成,暫存器不會「直接」跟排線連線。 就算內建ICD,暫存器仍然不會「直接」跟排線連線。 > 微處理機需要透過一個 mornitor program 控制接腳訊號 > 與外界的使用者的輸入/輸出裝置溝通, 再協助使用者設定 CPU > 內部的所有 register 或 memory 內容再加以顯示, 除外還能透 > 過 mornitor program 設定 single step, break-point, trace > 等執行模式. 有此特定功能的輸入/輸出裝置就是 console . 這裡不討論user,因為他們不會參與開發工作。 console的意思,歧見滿大的....暫不討論。 > 198x 出的大電腦幾乎都已經是 VLSI 的 CPU , 197X 的電 > 腦才仍然有整排的按扭開關與指示燈. 以前的大電腦只給一個(串) > Clock Pulse 就是一次 single step , 結果從指示燈(lamp)就看 > 見了. 考古,跟你想要的embedded linux有何關連?若用LED,根本就不需要monitor 或ICE了。市面上8051的書的第一個範例不就是教你驅動LED? > DEBUG 最常用的是設定 break-point , 這跟在 C 程式當中 > 插個 printf 沒兩樣. 但 ICE 硬體設定斷點跟用軟體的 Mornitor > program 設定斷點則是大大的不同工作原理, 但兩者要好用, 都要 > 用到近乎有 console 對 register 與 memory 的設定與顯示功能. > 而後者就是 console mornitor program 的主要功能. 你把「模擬器」跟「除錯器」搞混了..模擬器硬體本身是要模擬 target上的uC,所以可以用硬體本身+ 內部寫好的軟體去[運算] 目標uC的I/O 信號、暫存器(包括調整運行時鐘),以中斷點還是 軟體控制,這軟體跟寫在uC的軟體不一樣,所以不會佔用可用的 硬體資源,模擬的uC當然就比模擬的目標高檔囉。 想像乘在PC上完任天堂遊戲,用的ROM檔就是你要運作的程式, 模擬器程式就是ICE上寫好的韌體,PC就是模擬器硬體本身。 minitor提供的中斷機制, 是利用真實uC本身的硬體資源( 程式 空間、本身的硬體中斷、堆疊空間)達成,x86用的是外部記憶體, minitor當然是在外部的ROM上, 對於一些本身內建EEPROM、Flash 的uC,monitor程式就會是在MCU裡面,像基本型的8051,有些人就 會把monitor寫在內部ROM中,利用軟體搭配硬體中斷進行單步除錯 ,不過monitor的功能實做的作法很多,端看各家的思維不同。 寫法也不一樣。 你的論點幾乎都在PC level打轉,離embedded system還有很長的 距離。 -- ※ Origin: SayYA 資訊站 <bbs.sayya.org> ◆ From: h23-206.grad.ccit.edu.tw