※ 引述《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