當前位置:首頁 » 服務存儲 » 一種存儲器的調試
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

一種存儲器的調試

發布時間: 2022-04-12 13:05:15

A. 調試工具是什麼

調試工具亦稱調試程序、調試器,指一種用於調試其它程序的計算機程序及工具。能夠讓代碼在指令組模擬器中可以檢查運行狀況以及選擇性地運行,以便排錯、調試。當開發的進度遇到瓶頸或找不出哪裡有問題時,這技術將是非常有用的。但是將程序運行在調試器之下,這將比直接在運作的平台以及處理器上運行還要來得慢。
當程序死機時,如果調試器是屬於來源階段調試器或象徵階段調試器,調試器即可以顯示出錯誤所在位置的源代碼,並使其於集成開發環境里也能看見。要是屬於低級調試器或機器語言調試器的話,它將能顯示的是一行一行的反匯編碼(這里指的死機情況是指,當發生原因是因為程序員在設計上的疏失,使得程序無法繼續正常運行的情況。例如程序嘗試去調用某個對在該版本的CPU上而言是不合理的操作,或者是對保護或無法訪問存儲器位置進行寫入)。
典型的調試器通常能夠在程序運行時擁有以下這些功能,例如單步運行、利用中斷點使程序遇到各種種類的事件時停止(一般用於使程序停止在想要檢查的狀態)、以及追蹤某些變數的變化。有些調試器也有能力在想要調試的程序在運行狀態時,去改變它的狀態,而不僅僅只是用來觀察而己。
一個好的調試器存在的重要性不誇張。就算一個編程語言/平台在電腦的行程里運作非常良好。有無調試器以及調試器的好壞,對於一個編程語言及平台來說,經常是能不能正常運行的重要因素。總之,軟體要能夠(或經常)運行在不同的調試器下進行測試,是非常重要的。不過由於調試器出現將做對軟體程序的內部時間的不可避免的變動。所以,即使是一個幾近完美的調試器,在多任務環境或分布式系統下,它也會更難去測試到運行時的問題。
一個調試器除了能夠用來調試,同樣的,它也經常被用來作為破解軟體的工具,像是用來跳過軟體的防拷貝保護,還有破解序號驗證,以及其它軟體保護功能。
大部分的主流調試工程,譬如gdb和dbx提供基於主控台的命令提示介面。調試器前端應用,現在普遍是提供給集成式開發工具(IDE)作為調試引撆、動態化、可視化等特點。

B. debug命令怎麼用是干什麼的

DEBUG是一個DOS實用程序,是供程序員使用的程序調試工具,可以用它檢查內存中任何地方的位元組以及修改任何地方的位元組。它可以用於逐指令執行某個程序以驗證程序運行的正確性,也可以追蹤執行過程、比較一個指令執行前後的值以及比較與移動內存中數據的范圍,讀寫文件與磁碟扇區。
它的功能包括以下幾個方面。
⒈ 直接輸入,更改,跟蹤,運行匯編語言源程序;
⒉ 觀察操作系統的內容;

3.查看ROM BIOS的內容;
⒋觀察更改RAM內部的設置值;
⒌以扇區或文件的方式讀寫軟盤數據。
A 匯編命令
功能: 將指令直接匯編成機器碼輸入到內存中。
說明: 用於小段程序的匯編及修改目標程序,所有輸入的數字均採用十六進制, 用戶裝入內存的匯編語句是連續存放的,若沒有指定地址,並且前面沒有使用匯編命令,該語句被匯編到 CS:0100區域。
例A:>DEBUG
-a 0100
08F1:0100 MOV AH,09
08F1:0102 MOV DX,109
08F1:0105 INT 21H;
08F1:0107 INT 21H;<-XP下運行cmd debug時,應該是INT 20H,21H會出遇無效指令錯誤
08F1:0109 db 'May I help you $'
08F1:0115←離開a狀態
-g ←運行
May I help you 運行結果
Program terminated normally表示運行正常

C比較命令
功能: 比較兩內存區域中的內容是否相同,若不同則顯示其地址和內容。
如:C4000:0 3F 100
就是用來比較4000:0000-4000:003F與DS:0100-DS:013F之間的內容:其顯示格式如下:
內存地址1內含值1內含值2內存地址2
例:比較4000:0 3F 100內容的差異
-C4000:0 3F 100
4000:0000 64 43 08F1:0100
4000:0001 3E 69 08F1:0101 顯示內容的差異處
4000:0002 78 FF 08F1:0102
……………………………………
如果要比較的范圍在DS內,則段地址不必指出:
如:-C 0 4 100;比較DS:0---DS:4與DS:100---DS:104
C命令的另一種格式如下:C地址1 L 長度 地址2
如:-C000:0 L4 0;由0000:0與與DS:0開始比較它同-C0000:0 3 0命令相等,顯示結果如下:
0000:0000 8A C0 08F1:0000
0000:0001 10 20 08F1:0001 它們都比較4個位元組
0000:0002 1C 00 08F1:0002
0000:0003 49 7F 08F1:0003

轉儲命令
* D[地址] 或D[起始地址][目的地址] 轉儲命令
功能: 以內存映象方式顯示內存中的信息。
說明: 轉儲用左右兩部分顯示內存映象內容,左邊以十六進制,右邊以ASCⅡ字元顯示,所有不可列印字元用句號(。)表示。每行顯示16個位元組的內容,在第八和第九個位元組之間有一個連字元 - 此命令隱含的段地址為DS的值。若未指定起始地址,則D命令從顯示的最後一個單元的下一個單元開始顯示,若以前沒有使用給D命令, 則從初使化的段寄存器的內容,加上地址偏移量 0100H 開始顯示。
例:-d10,4f即為顯示DS:4f的內容在D命令中如不指出段地址,則其默認為DS段。
如指明段地址,則從指明的段地址列出指定的范圍
如:-dfff:00:0f
我們也可以指定長度來列出所需要內存內容
如:-d 100 L20即為顯示由DS:100-DS:11F的內容,共20H個位元組:
* E[地址] [位元組串) 修改內存命令
功能: 從指定的地址開始修改內存值。
格式:E起始地址[數據行]
⑴用給定內容代替指定范圍的單元內容
-E地址 內容表
例:-E100 41 42 43 44 48 47 46 45
-D 100,L08
08F1:0100 41 42 43 44 48 47 46 45 ABCDHGFE…
⑵逐個內存內容
例:-E 100:
08F1:0100 76 42 :42是操作員鍵入
此命令是將原100號內存內容76修改為42,用D命令可察看。
* F[地址范圍] [位元組或位元組串] 填寫命令
功能: 將要填寫的位元組或位元組串填入由地址范圍指定的存儲器中。
例:-f100 120 61 62 63 64
-d100 11f
08F1:0100 61 62 63 64 61 62 63 64 -61 62 63 64 61 62 63 abcd abcd abcd abcd
08F1:0110 13 67 98 E3 C8 2E B3 B6 -03 21 AC 19 3121 4E 96 g……1…
如果數據行超出指定的范圍,則填不下的數值會被忽略。
例:-f 100 107 41 43 43 44 45 46 47 48 49 4A 4B 4C 4D -d 100,lof
08F1:0100 41 42 43 44 45 46 47 64 -61 62 63 64 ABCDEFGdabcdabcd
由上例可看出,超出范圍的數據被忽略
另外,F和E命令都可填入字元串:
如:-F 100 105 "MSDOS"
-d 100 l0f
08F1:0100 4D 53 44 4F 53 46 47 64 -61 62 63 64 MS DOS FGabcd abcd

G執行命令
功能: 執行正在調試的程序,當達到斷點時停止執行, 並且顯示寄存器標志和下一條要執行的命令。
說明: 如果沒有指定起始地址,那麼當前指令地址由CS,IP寄存器的內容來決定,如果用戶指定起始地址就從指定的起始地址開始執行。如果指定斷點,當指令到達指令地址時停止執行,並顯示各寄存器標志位的內容和下一條要執行的命令,最多允許用戶設定10個斷點。
例:A:\>debug tan.exe
-u:反編譯成匯編語言程碼
…………
. .
-g 100 指定中斷點
Program terminated normally:
另外:我們在DEBUG下可運行一個文件.EXE
如:A:\>debug tan.exe
-g
即可開始運行此程序,和在DOS下完全一樣:
* H[數值][數值] 十六進制算術運算命令
功能: 分別顯示兩個十六進制數相加的和以及第一個數減去第二個數的差。
說明: 替用戶完成簡單的十六進制數的運算。
例:-h4538 5623
9B5B EF15

I命令
功能: 從指定的埠輸入並顯示(用十六進制)的一個位元組。
例:-i70
F9;顯示70埠的內容為F9
I命令可由80X86的64K個埠取數據

L命令
功能: 將一個文件或盤的絕對扇區裝入存儲器。
說明: 單個L命令能夠裝入的最大扇區數是 80H,其中盤號 0,1,2,3……分別代表 A,B,C,……出現讀盤錯,顯示錯誤信息。
⑴格式1.L裝入地址 驅動器名 起始扇區/扇區數
這種方式可把磁碟上指定扇區范圍的內容裝入到存儲器從指定地址開始的區域中,在此外扇區編號引用邏輯/扇區的方式。
例:-L 100 0 01,將A驅的0扇區裝至CS:100上
-d 100 10f
08F1:0100 EB 3C 90 3C 53 44 4F 53 -36 2E 32 32 02 01 01 00.L,MSDOS 6.22……
⑵格式2:L裝入地址
這種方式可把指定文件裝入內存,裝入的文件可在進入DEBUG時指定亦可用N命令建立,格式為-n文件名:
例1 DEBUG tan.pas
-L 100
例2 DEBUG
-n tan.pas
-L 100
須知:L命令只能讀取邏輯扇區,不能讀取硬碟分區表
L命令中所用的磁碟代碼A=00,B=01,C=02……

C. 存放待調試的程序

通常採用E2PROM類型的存儲晶元來存放待調試的程序。
E2PROM是一種帶電可擦可編程只讀存儲器,掉電後數據也不會丟失的存儲晶元,其全稱為Electrically Erasable Programmable Read-Only Memory。
程序在執行途中中斷或出錯,則需要調試,就需要使用可編輯的晶元。E2PROM晶元不用從計算機中取出就可編輯修改,大大減少晶元損耗,不過需要注意遮光,以免紫外線照射使資料受損。

D. 單片機調試的方法和步驟是什麼

首先,了解硬體介面以及功能,以便於配置IO埠;

第二,根據硬體設計以及功能需要,編寫單片機程序;

第三,編譯程序,把程序燒寫到單片機中,或者鏈接debug調試器,在線對單片機進行模擬;

第四,在線模擬可以支持單步調試和斷點調試,測試單片機的軟體功能;

第五,如果出現問題,首先分析是軟體邏輯的問題,還是硬體方面的問題,以便於對症下葯;

最後,將軟體寫入單片機的flash中,將單片機加密,防止其他人竊取單片機內部代碼。

E. 存儲器的原理是什麼

存儲器講述工作原理及作用

介紹

存儲器(Memory)是現代信息技術中用於保存信息的記憶設備。其概念很廣,有很多層次,在數字系統中,只要能保存二進制數據的都可以是存儲器;在集成電路中,一個沒有實物形式的具有存儲功能的電路也叫存儲器,如RAM、FIFO等;在系統中,具有實物形式的存儲設備也叫存儲器,如內存條、TF卡等。計算機中全部信息,包括輸入的原始數據、計算機程序、中間運行結果和最終運行結果都保存在存儲器中。它根據控制器指定的位置存入和取出信息。有了存儲器,計算機才有記憶功能,才能保證正常工作。計算機中的存儲器按用途存儲器可分為主存儲器(內存)和輔助存儲器(外存),也有分為外部存儲器和內部存儲器的分類方法。外存通常是磁性介質或光碟等,能長期保存信息。內存指主板上的存儲部件,用來存放當前正在執行的數據和程序,但僅用於暫時存放程序和數據,關閉電源或斷電,數據會丟失。

2.按存取方式分類

(1)隨機存儲器(RAM):如果存儲器中任何存儲單元的內容都能被隨機存取,且存取時間與存儲單元的物理位置無關,則這種存儲器稱為隨機存儲器(RAM)。RAM主要用來存放各種輸入/輸出的程序、數據、中間運算結果以及存放與外界交換的信息和做堆棧用。隨機存儲器主要充當高速緩沖存儲器和主存儲器。

(2)串列訪問存儲器(SAS):如果存儲器只能按某種順序來存取,也就是說,存取時間與存儲單元的物理位置有關,則這種存儲器稱為串列訪問存儲器。串列存儲器又可分為順序存取存儲器(SAM)和直接存取存儲器(DAM)。順序存取存儲器是完全的串列訪問存儲器,如磁帶,信息以順序的方式從存儲介質的始端開始寫入(或讀出);直接存取存儲器是部分串列訪問存儲器,如磁碟存儲器,它介於順序存取和隨機存取之間。

(3)只讀存儲器(ROM):只讀存儲器是一種對其內容只能讀不能寫入的存儲器,即預先一次寫入的存儲器。通常用來存放固定不變的信息。如經常用作微程序控制存儲器。目前已有可重寫的只讀存儲器。常見的有掩模ROM(MROM),可擦除可編程ROM(EPROM),電可擦除可編程ROM(EEPROM).ROM的電路比RAM的簡單、集成度高,成本低,且是一種非易失性存儲器,計算機常把一些管理、監控程序、成熟的用戶程序放在ROM中。

3.按信息的可保存性分類

非永久記憶的存儲器:斷電後信息就消失的存儲器,如半導體讀/寫存儲器RAM。

永久性記憶的存儲器:斷電後仍能保存信息的存儲器,如磁性材料做成的存儲器以及半導體ROM。

4.按在計算機系統中的作用分

根據存儲器在計算機系統中所起的作用,可分為主存儲器、輔助存儲器、高速緩沖存儲器、控制存儲器等。為了解決對存儲器要求容量大,速度快,成本低三者之間的矛盾,目前通常採用多級存儲器體系結構,即使用高速緩沖存儲器、主存儲器和外存儲器。

能力影響

從寫命令轉換到讀命令,在某個時間訪問某個地址,以及刷新數據等操作都要求數據匯流排在一定時間內保持休止狀態,這樣就不能充分利用存儲器通道。此外,寬並行匯流排和DRAM內核預取都經常導致不必要的大數據量存取。在指定的時間段內,存儲器控制器能存取的有用數據稱為有效數據速率,這很大程度上取決於系統的特定應用。有效數據速率隨著時間而變化,常低於峰值數據速率。在某些系統中,有效數據速率可下降到峰值速率的10%以下。

通常,這些系統受益於那些能產生更高有效數據速率的存儲器技術的變化。在CPU方面存在類似的現象,最近幾年諸如AMD和 TRANSMETA等公司已經指出,在測量基於CPU的系統的性能時,時鍾頻率不是唯一的要素。存儲器技術已經很成熟,峰值速率和有效數據速率或許並不比以前匹配的更好。盡管峰值速率依然是存儲器技術最重要的參數之一,但其他結構參數也可以極大地影響存儲器系統的性能。

影響有效數據速率的參數

有幾類影響有效數據速率的參數,其一是導致數據匯流排進入若干周期的停止狀態。在這類參數中,匯流排轉換、行周期時間、CAS延時以及RAS到CAS的延時(tRCD)引發系統結構中的大部分延遲問題。

匯流排轉換本身會在數據通道上產生非常長的停止時間。以GDDR3系統為例,該系統對存儲器的開放頁不斷寫入數據。在這期間,存儲器系統的有效數據速率與其峰值速率相當。不過,假設100個時鍾周期中,存儲器控制器從讀轉換到寫。由於這個轉換需要6個時鍾周期,有效的數據速率下降到峰值速率的 94%。在這100個時鍾周期中,如果存儲器控制器將匯流排從寫轉換到讀的話,將會丟失更多的時鍾周期。這種存儲器技術在從寫轉換到讀時需要15個空閑周期,這會將有效數據速率進一步降低到峰值速率的79%。表1顯示出針幾種高性能存儲器技術類似的計算結果。

顯然,所有的存儲器技術並不相同。需要很多匯流排轉換的系統設計師可以選用諸如XDR、RDRAM或者DDR2這些更高效的技術來提升性能。另一方面,如果系統能將處理事務分組成非常長的讀寫序列,那麼匯流排轉換對有效帶寬的影響最小。不過,其他的增加延遲現象,例如庫(bank)沖突會降低有效帶寬,對性能產生負面影響。

DRAM技術要求庫的頁或行在存取之前開放。一旦開放,在一個最小周期時間,即行周期時間(tRC)結束之前,同一個庫中的不同頁不能開放。對存儲器開放庫的不同頁存取被稱為分頁遺漏,這會導致與任何tRC間隔未滿足部分相關的延遲。對於還沒有開放足夠周期以滿足tRC間隙的庫而言,分頁遺漏被稱為庫沖突。而tRC決定了庫沖突延遲時間的長短,在給定的DRAM上可用的庫數量直接影響庫沖突產生的頻率。

大多數存儲器技術有4個或者8個庫,在數十個時鍾周期具有tRC值。在隨機負載情況下,那些具有8個庫的內核比具有4個庫的內核所發生的庫沖突更少。盡管tRC與庫數量之間的相互影響很復雜,但是其累計影響可用多種方法量化。

存儲器讀事務處理

考慮三種簡單的存儲器讀事務處理情況。第一種情況,存儲器控制器發出每個事務處理,該事務處理與前一個事務處理產生一個庫沖突。控制器必須在打開一個頁和打開後續頁之間等待一個tRC時間,這樣增加了與頁循環相關的最大延遲時間。在這種情況下的有效數據速率很大程度上決定於I/O,並主要受限於DRAM內核電路。最大的庫沖突頻率將有效帶寬削減到當前最高端存儲器技術峰值的20%到30%。

在第二種情況下,每個事務處理都以隨機產生的地址為目標。此時,產生庫沖突的機會取決於很多因素,包括tRC和存儲器內核中庫數量之間的相互作用。tRC值越小,開放頁循環地越快,導致庫沖突的損失越小。此外,存儲器技術具有的庫越多,隨機地址存取庫沖突的機率就越小。

第三種情況,每個事務處理就是一次頁命中,在開放頁中定址不同的列地址。控制器不必訪問關閉頁,允許完全利用匯流排,這樣就得到一種理想的情況,即有效數據速率等於峰值速率。

第一種和第三種情況都涉及到簡單的計算,隨機情況受其他的特性影響,這些特性沒有包括在DRAM或者存儲器介面中。存儲器控制器仲裁和排隊會極大地改善庫沖突頻率,因為更有可能出現不產生沖突的事務處理,而不是那些導致庫沖突的事務處理。

然而,增加存儲器隊列深度未必增加不同存儲器技術之間的相對有效數據速率。例如,即使增加存儲器控制隊列深度,XDR的有效數據速率也比 GDDR3高20%。存在這種增量主要是因為XDR具有更高的庫數量以及更低的tRC值。一般而言,更短的tRC間隔、更多的庫數量以及更大的控制器隊列能產生更高的有效帶寬。

實際上,很多效率限制現象是與行存取粒度相關的問題。tRC約束本質上要求存儲器控制器從新開放的行中存取一定量的數據,以確保數據管線保持充滿。事實上,為保持數據匯流排無中斷地運行,在開放一個行之後,只須讀取很少量的數據,即使不需要額外的數據。

另外一種減少存儲器系統有效帶寬的主要特性被歸類到列存取粒度范疇,它規定了每次讀寫操作必須傳輸的數據量。與之相反,行存取粒度規定每個行激活(一般指每個RAS的CAS操作)需要多少單獨的讀寫操作。列存取粒度對有效數據速率具有不易於量化的巨大影響。因為它規定一個讀或寫操作中需要傳輸的最小數據量,列存取粒度給那些一次只需要很少數據量的系統帶來了問題。例如,一個需要來自兩列各8位元組的16位元組存取粒度系統,必須讀取總共32位元組以存取兩個位置。因為只需要32個位元組中的16個位元組,系統的有效數據速率降低到峰值速率的50%。匯流排帶寬和脈沖時間長度這兩個結構參數規定了存儲器系統的存取粒度。

匯流排帶寬是指連接存儲器控制器和存儲器件之間的數據線數量。它設定最小的存取粒度,因為對於一個指定的存儲器事務處理,每條數據線必須至少傳遞一個數據位。而脈沖時間長度則規定對於指定的事務處理,每條數據線必須傳遞的位數量。每個事務處理中的每條數據線只傳一個數據位的存儲技術,其脈沖時間長度為1。總的列存取粒度很簡單:列存取粒度=匯流排寬度×脈沖時間長度。

很多系統架構僅僅通過增加DRAM器件和存儲匯流排帶寬就能增加存儲系統的可用帶寬。畢竟,如果4個400MHz數據速率的連接可實現 1.6GHz的總峰值帶寬,那麼8個連接將得到3.2GHz。增加一個DRAM器件,電路板上的連線以及ASIC的管腳就會增多,總峰值帶寬相應地倍增。

首要的是,架構師希望完全利用峰值帶寬,這已經達到他們通過物理設計存儲器匯流排所能達到的最大值。具有256位甚或512位存儲匯流排的圖形控制器已並不鮮見,這種控制器需要1,000個,甚至更多的管腳。封裝設計師、ASIC底層規劃工程師以及電路板設計工程師不能找到採用便宜的、商業上可行的方法來對這么多信號進行布線的矽片區域。僅僅增加匯流排寬度來獲得更高的峰值數據速率,會導致因為列存取粒度限制而降低有效帶寬。

假設某個特定存儲技術的脈沖時間長度等於1,對於一個存儲器處理,512位寬系統的存取粒度為512位(或者64位元組)。如果控制器只需要一小段數據,那麼剩下的數據就被浪費掉,這就降低了系統的有效數據速率。例如,只需要存儲系統32位元組數據的控制器將浪費剩餘的32位元組,進而導致有效的數據速率等於50%的峰值速率。這些計算都假定脈沖時間長度為1。隨著存儲器介面數據速率增加的趨勢,大多數新技術的最低脈沖時間長度都大於1。

選擇技巧

存儲器的類型將決定整個嵌入式系統的操作和性能,因此存儲器的選擇是一個非常重要的決策。無論系統是採用電池供電還是由市電供電,應用需求將決定存儲器的類型(易失性或非易失性)以及使用目的(存儲代碼、數據或者兩者兼有)。另外,在選擇過程中,存儲器的尺寸和成本也是需要考慮的重要因素。對於較小的系統,微控制器自帶的存儲器就有可能滿足系統要求,而較大的系統可能要求增加外部存儲器。為嵌入式系統選擇存儲器類型時,需要考慮一些設計參數,包括微控制器的選擇、電壓范圍、電池壽命、讀寫速度、存儲器尺寸、存儲器的特性、擦除/寫入的耐久性以及系統總成本。

選擇存儲器時應遵循的基本原則

1、內部存儲器與外部存儲器

一般情況下,當確定了存儲程序代碼和數據所需要的存儲空間之後,設計工程師將決定是採用內部存儲器還是外部存儲器。通常情況下,內部存儲器的性價比最高但靈活性最低,因此設計工程師必須確定對存儲的需求將來是否會增長,以及是否有某種途徑可以升級到代碼空間更大的微控制器。基於成本考慮,人們通常選擇能滿足應用要求的存儲器容量最小的微控制器,因此在預測代碼規模的時候要必須特別小心,因為代碼規模增大可能要求更換微控制器。目前市場上存在各種規模的外部存儲器器件,我們很容易通過增加存儲器來適應代碼規模的增加。有時這意味著以封裝尺寸相同但容量更大的存儲器替代現有的存儲器,或者在匯流排上增加存儲器。即使微控制器帶有內部存儲器,也可以通過增加外部串列EEPROM或快閃記憶體來滿足系統對非易失性存儲器的需求。

2、引導存儲器

在較大的微控制器系統或基於處理器的系統中,設計工程師可以利用引導代碼進行初始化。應用本身通常決定了是否需要引導代碼,以及是否需要專門的引導存儲器。例如,如果沒有外部的定址匯流排或串列引導介面,通常使用內部存儲器,而不需要專門的引導器件。但在一些沒有內部程序存儲器的系統中,初始化是操作代碼的一部分,因此所有代碼都將駐留在同一個外部程序存儲器中。某些微控制器既有內部存儲器也有外部定址匯流排,在這種情況下,引導代碼將駐留在內部存儲器中,而操作代碼在外部存儲器中。這很可能是最安全的方法,因為改變操作代碼時不會出現意外地修改引導代碼。在所有情況下,引導存儲器都必須是非易失性存儲器。

可以使用任何類型的存儲器來滿足嵌入式系統的要求,但終端應用和總成本要求通常是影響我們做出決策的主要因素。有時,把幾個類型的存儲器結合起來使用能更好地滿足應用系統的要求。例如,一些PDA設計同時使用易失性存儲器和非易失性存儲器作為程序存儲器和數據存儲器。把永久的程序保存在非易失性ROM中,而把由用戶下載的程序和數據存儲在有電池支持的易失性DRAM中。不管選擇哪種存儲器類型,在確定將被用於最終應用系統的存儲器之前,設計工程師必須仔細折中考慮各種設計因素。

F. 存儲系統中的EPROM是指什麼

本教程操作環境:windows10系統、Dell G3電腦。

內存按存儲信息的功能可分為只讀存儲器ROM、可改寫的只讀存儲器EPROM和隨機存儲器RAM。EPROM即為可擦寫可編程的只讀存儲器。

EPROM由以色列工程師Dov Frohman發明,是一種斷電後仍能保留數據的計算機儲存晶元——即非易失性的(非揮發性)。它是一組浮柵晶體管,被一個提供比電子電路中常用電壓更高電壓的電子器件分別編程。一旦編程完成後,EPROM只能用強紫外線照射來擦除。通過封裝頂部能看見矽片的透明窗口,很容易識別EPROM,這個窗口同時用來進行紫外線擦除。可以將EPROM的玻璃窗對准陽光直射一段時間就可以擦除。

EPROM是一種具有可擦除功能,擦除後即可進行再編程的ROM內存,寫入前必須先把裡面的內容用紫外線照射它的IC卡上的透明視窗的方式來清除掉。這一類晶元比較容易識別,其封裝中包含有「石英玻璃窗」,一個編程後的EPROM晶元的「石英玻璃窗」一般使用黑色不幹膠紙蓋住, 以防止遭到陽光直射。

特點:

EPROM的編程需要使用編程器完成。編程器是用於產生EPROM編程所需要的高壓脈沖信號的裝置。編程時將EPROM的數據送到隨機存儲器中,然後啟動編程程序,編程器便將數據逐行地寫入EPROM中。

一片編程後的EPROM,可以保持其數據大約10~20年,並能無限次讀取。擦除窗口必須保持覆蓋,以防偶然被陽光擦除。老式電腦的BIOS晶元,一般都是EPROM,擦除窗口往往被印有BIOS發行商名稱、版本和版權聲明的標簽所覆蓋。EPROM已經被EEPROM取代(電擦除只讀寄存器)。

一些在快閃記憶體出現前生產的微控制器,使用EPROM來儲存程序的版本,以利於程式開發;如使用一次性可編程器件,在調試時將造成嚴重浪費

以上就是eprom是指什麼存儲器的詳細內容,更多請關注html中文網其它相關文章!

G. debag命令介紹

Debug常用命令集

名稱 解釋 格式
a (Assemble) 逐行匯編 a [address]
c (Compare) 比較兩內存塊 c range address
d (Dump) 內存16進制顯示 d [address]或 d [range]
e (Enter) 修改內存位元組 e address[list]
f (fin) 預置一段內存 f range list
g (Go) 執行程序 g [=address][address...]
h (Hexavithmetic) 制算術運算 h value value
i (Input) 從指定埠地址輸入 i pataddress
l (Load) 讀盤 l [address [driver seetor>
m (Move) 內存塊傳送 m range address
n (Name) 置文件名 n filespec [filespec...]
o (Output) 從指定埠地址輸出 o portadress byte
q (Quit) 結束 q
r (Register) 顯示和修改寄存器 r [register name]
s (Search) 查找位元組串 s range list
t (Trace) 跟蹤執行 t [=address] [value]
u (Unassemble) 反匯編 u [address ]或range
w (Write) 存檔 w [address[driver sector secnum>
? 聯機幫助 ?

debug小匯編a命令

debug小匯編a命令是一個很有用的功能,許多的小程序都要他來做。

編一些小程序比匯編要來得方便,快潔。
在Debug中,中斷是非常有用的,首先,讓我們先了解一下中斷。
所謂中斷,其實,就是,當你做某事時,有人過來找你有其他事,你先放下手中的事(計算機中,稱為保護現場)
,再去與叫你的那個人辦事去,等完了,你又回,接著做剛才的事。這是個很通俗的講法。
計算機在運行時,也會出現這種情況,我們叫之中斷。
下面是他的一些常用中斷向量的入口值詳解:(記住哦,很用的...呵呵)

IBM PC 中斷 int10
ooH 屏幕方式設置

入口:AH=0,AL=顯示方式代碼(0--6)
0:40*25 黑白
1:40*25 彩色
2:80*25 黑白
3:80*25 彩色文本
4:320*200 彩色
5:320*200 黑白
6:640*200 黑白圖形模式
7:80*25 單色字元(單色顯示器)

0BH 色彩設置
入口:AH=0B,BL=0 設背景色,BH=0--15 BL=1 設調色碼,BH=0--1
0CH 寫圖形點
入口:AH=0C,CX:DX=列號:行號,AL=顏色
ODH 讀圖形點
入口:AH=0D,CX:DX=列號:行號
返回:AL=顏色
0EH 在當前頁、當前游標處寫字元
入口:AH=0E,AL=字元的ASCII碼,BL=前景色
OFH 顯示器狀態
入口:AH=0F
返回:AL=當前顯示器方式,AH=屏幕列數,BH=當前頁號

01H 游標設置
入口:AH=1,CH=游標起始行號(00--0C),CL=游標結束行號(00--0C)
註:CH > CL
02H 游標定位
入口:AH=2,BH=頁號,DH:DL=起始行:列
03H 讀游標位置
入口:AH=3,BH=頁號。
返回:DH:DL=起始行:列
06H 窗口上卷
入品:AH=6,AL=窗口上卷行數,CH:CL-DH:DL 窗口坐標
註:AL=0 卷動整個窗口
07H 窗口下卷
入口:AH=7,AL=窗口下卷行數,CH:CL-DH:DL 窗口坐標
08H 讀當前游標處字元和屬性
入口:AH=8,BH=頁號。
返回:AH:AL=字元的顏色:字元的ASCII碼
註:顏色代碼見下對照表
09H:在當前游標處寫字元和屬性
註:游標不下移
入口:AH=9,BH=頁號,BL:AL=字元的顏色:字元的ASCII碼,CX=重復次數
1 2 3 4 5 6 7 8
BL R G B I R G B
閃爍 字元底色 加亮 字元顏色

中斷向量號表

中斷號 解釋 中斷號 解釋
0 除數為0錯 19 引導裝入程序
1 音步中斷 1A 日時調用
2 不可屏蔽中斷NMI 1B 鍵盤阻斷時得到控制權
3 斷電中斷(CCH) 1C 時鍾中斷時得到控制權
4 溢出中斷 1D 指向CRT初始參數表
5 屏幕列印中斷 1E 指向盒帶參數表
6-7 保留 1F 1KB圖形模式
8 計時器中斷(18.2秒) 20 結束DOS程序
9 鍵盤中斷 21 DOS功能調用
A-D 保留 22 結束地址(建義用EXEC)
E 軟盤機中斷 23 DOS Crtl-Break退出地址
F 保留 24 DOS致命錯向量
10 屏幕I/O調用 25 DOS絕對磁碟讀
11 設備檢查調用 26 DOS絕對磁碟寫
12 存儲器檢查調用 27 結束程序並駐留(建義用31h)
13 軟盤機I/O調用 28-3F DOS保留
14 RS-233I/O調用 40-7F 未用
15 盒帶機I/O調用 80-85 BASIC保留
16 鍵盤I/O調用 86-F0 BASIC解釋程序用
17 列印機I/O調用 F1-FF 未用
18 ROM-BASIC入口

指令名詳解
call 指令(過程調用)(控制指令-長轉移)

詳解:

段內直接調用

段內間接調用(寄存器)

段內間接調用(存儲器)

段間直接調用

段間間接調用

指令名
jmp 指令(無條件轉移指令)(控制指令-長轉移)

詳解:
段內直接跳轉

短段內直接跳轉

段內間接跳轉(寄存器)

段內間接跳轉(存儲器)

段間直接跳轉

段間間接跳轉

指令名
ret 指令(過程返回)(控制指令-長轉移)

詳解:

段內返回

段內返回立即數加於sp

段間返回

段間返回立即數加於sp

na/jnbe 指令(控制指令-短轉移) 不小於或不等於時轉移

jae/jnb 指令 (控制指令-短轉移) 大於或等於時轉移

jb/jnae 指令 (控制指令-短轉移) 小於轉移

jbe/jna 指令 (控制指令-短轉移) 小於或等 於轉移

jg/jnle 指令(控制指令-短轉移) 大於轉移

jge/jnl 指令 (控制指令-短轉移) 大於或等於轉移

jl/jnge 指令 (控制指令-短轉移) 小於轉移

jle/jng 指令 (控制指令-短轉移) 小於或等 於轉移

je/jz 指令 (控制指令-短轉移) 等於轉移

jne/jnz 指令 (控制指令-短轉移) 不等於轉移

jc 指令 (控制指令-短轉移) 有進位時轉移

jnc 指令 (控制指令-短轉移) 列進位時轉移
jno 指令 (控制指令-短轉移) 不溢出時轉移
jnp/jpo 指令 (控制指令-短轉移) 奇偶性為奇數時轉移

jns 指令 (控制指令-短轉移) 符號位為"0"轉移

jo 指令 (控制指令-短轉移) 溢出轉移

jp/jpe 指令 (控制指令-短轉移) 奇偶性為偶數時轉移

js 指令 (控制指令-短轉移) 符號位為"1"時轉移

loop 指令 (循環控制指令-短轉移) cx 不為0時循環

loope/loopz 指令 (循環控制指令-短轉移) cx 不為0且標志 z=1 時循環

loopne/loopnz 指令 (循環控制指令-短轉移) cx 不為0且標志 z=0 時循環

jcxz 指令 (循環控制指令-短轉移) cx 為0時轉移

★int 指令 (中斷指令) 中斷指令(後詳解)

into 指令 (中斷指令) 溢出中斷

iret 指令 (中斷指令) 中斷返回

指令名
shl 指令(邏輯左移)
sal 指令(算術左移)
shr 指令(邏輯右移)
sar 指令(算術右移) 寄存器,1
rol 指令(循環左移) 寄存器,cl
ror 指令(循環右移) 存儲器,1
rcl 指令(通過進位的循環左移)存儲器,cl
rcr 指令(通過進位的循環右移)(邏輯運算)

not 指令(取反運算)寄存器求反

(邏輯運算)存儲器求反

and 指令(與運算) (邏輯運算)

寄存器 and 寄存器 寄存器
寄存器 and 存儲器 寄存器

存儲器 and 寄存器 存儲器

立即數 and 存儲器 存儲器

立即數 and 累加器 累加器

or 指令(或運算)(邏輯運算)

寄存器 or 寄存器 寄存器
寄存器 or 存儲器 寄存器

存儲器 or 寄存器 存儲器

立即數 or 存儲器 存儲器

立即數 or 累加器 累加器

test 指令(測試) (邏輯運算)

寄存器 test 寄存器
寄存器 test 存儲器
寄存器 test 立即數
存儲器 test 立即數
累加器 test 立即數

movs 指令(串傳送)(字元串操作指令)
單個傳送
重復傳送

cmps 指令(串比較) (字元串操作指令)
單個比較
重復比較

scas 指令(串掃描)(字元串操作指令)
單個搜索
重復搜索

lods 指令(裝入串)
(字元串操作指令)
單個裝載
重復裝載

stos 指令(保存串) (字元串操作指令)
單個存儲
重復存儲

mov 指令(傳送字或位元組)(數據傳送命令)
寄存器與寄存器間傳送
存儲器與寄存器間傳送
立即數傳送給存儲器
立即數傳送給寄存器
存儲器傳送給累加器
累加器傳送存儲器
寄存器傳送給段寄存器
存儲器傳送給段寄存器
段寄存器傳送給寄存器
段寄存器傳送給存儲存器

pop 指令(把字彈出堆棧) (數據傳送命令)

push 指令(把字壓入堆棧)
存儲器
寄存器
段寄器
xchg 指令(交換字或位元組) (數據傳送命令)
寄存器與寄存器交換
存儲器與寄存器交換
寄存器與累加器交換

in 指令(埠輸入) (數據傳送命令)
直接輸入
間接輸入

out 指令(埠輸出) (數據傳送指令)
直接輸出
間接輸出

add 指令(加法)(算術指令)
adc 指令(帶進位加法)
寄存器+寄存器 寄存器
寄存器+存儲器 寄存器
存儲器+寄存器 存儲器
立即數+存儲器 存儲器
立即數+累加器 累加器

inc 指令(加1)(算術指令)
存儲器增量
寄存器增量

sub 指令(減法) (算術指令)
sbb 指令(帶借位減法)
寄存器-寄存器 寄存器
寄存器-存儲器 寄存器
存儲器-寄存器 存儲器
立即數-存儲器 存儲器
立即數-累加器 累加器

dec 指令(減1)(算術指令)
存儲器減量
寄存器減量

nec 指令(求反,以0減之)
寄存器求補
存儲器求補

cmp 指令(比較)(算術指令)
寄存器與寄存器比較
寄存器與存儲器比較
寄存器與立即數比較
存儲器與立即數比較
累加器與立即數比較

mul 指令(無符號乘法) (算術指令)
imul 指令(整數乘法)
與8位寄存器相乘
與16位寄存器相乘
與8位存儲單元相乘
與16位存儲單元相乘

div 指令(無符號除法)(算術指令)
idiv 指令(整數除法)
被8位寄存器除
被16位寄存器除
被8位存儲單元除
被16位存儲單元除

DEBUG主要命令

DEBUG是為匯編語言設計的一種高度工具,它通過單步、設置斷點等方式為匯編語言程序員提供了非常有效的調試手段。
一、DEBUG程序的調用
在DOS的提示符下,可鍵入命令:
C:\DEBUG [D:][PATH][FILENAME[.EXT>[PARM1][PARM2]
其中,文件名是被調試文件的名字。如用戶鍵入文件,則DEBUG將指定的文件裝入存儲器中,用戶可對其進行調試。如果未鍵入文件名,則用戶可以用當前存儲器的內容工作,或者用DEBUG命令N和L把需要的文件裝入存儲器後再進行調試。命令中的D指定驅動器PATH為路徑,PARM1和PARM2則為運行被調試文件時所需要的命令參數。
在DEBUG程序調入後,將出現提示符,此時就可用DEBUG命令來調試程序。
二、DEBUG的主要命令
1、顯示存儲單元的命令D(DUMP),格式為:
_D[address]或_D[range]
例如,按指定范圍顯示存儲單元內容的方法為:
-d100 120
18E4:0100 c7 06 04 02 38 01 c7 06-06 02 00 02 c7 06 08 02 G...8.G.....G...
18E$:0110 02 02 bb 04 02 e8 02 00-CD 20 50 51 56 57 8B 37 ..;..h..M PQVW.
7
18E4:0120 8B
其中0100至0120是DEBUG顯示的單元內容,左邊用十六進製表示每個位元組,右邊用ASCII字元表示每個位元組,·表示不可顯示的字元。這里沒有指定段地址,D命令自動顯示DS段的內容。如果只指定首地址,則顯示從首地址開始的80個位元組的內容。如果完全沒有指定地址,則顯示上一個D命令顯示的最後一個單元後的內容。
2、修改存儲單元內容的命令有兩種。
·輸入命令E(ENTER),有兩種格式如下:第一種格式可以用給定的內容表來替代指定范圍的存儲單元內容。命令格式為:
-E address[list]
例如,-E DS:100 F3'XYZ'8D
其中F3,'X','Y','Z'和各佔一個位元組,該命令可以用這五個位元組來替代存儲單元DS:0100到0104的原先的內容。
第二種格式則是採用逐個單元相繼修改的方法。命令格式為:
-E address
例如,-E DS:100
則可能顯示為:
18E4:0100 89.-
如果需要把該單元的內容修改為78,則用戶可以直接鍵入78,再按"空格"鍵可接著顯示下一個單元的內容,如下:
18E4:0100 89.78 1B.-
這樣,用戶可以不斷修改相繼單元的內容,直到用ENTER鍵結束該命令為止。
·填寫命令F(FILL),其格式為:
-F range list
例如:-F 4BA:0100 5 F3'XYZ'8D
使04BA:0100~0104單元包含指定的五個位元組的內容。如果list中的位元組數超過指定的范圍,則忽略超過的項;如果list的位元組數小於指定的范圍,則重復使用list填入,直到填滿指定的所有單元為止。
3)檢查和修改寄存器內容的命令R(register),它有三種格式如下:
·顯示CPU內所有寄存器內容和標志位狀態,其格式為:
-R
例如,-r
AX=0000 BX=0000 CX=010A DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=18E4 ES=18E4 SS=18E4 CS=18E4 IP=0100 NV UP DI PL NZ NA PO NC
18E4:0100 C70604023801 MOV WORD PTR [0204],0138 DS:0204=0000
·顯示和修改某個寄存器內容,其格式為:
-R register name
例如,鍵入
-R AX
系統將響應如下:
AX F1F4

即AX寄存器的當前內容為F1F4,如不修改則按ENTER鍵,否則,可鍵入欲修改的內容,如:

-R bx
BX 0369
:059F
則把BX寄存器的內容修改為059F。
·顯示和修改標志位狀態,命令格式為:
-RF系統將響應,如:
OV DN EI NG ZR AC PE CY-
此時,如不修改其內容可按ENTER鍵,否則,可鍵入欲修改的內容,如:
OV DN EI NG ZR AC PE CY-PONZDINV
即可,可見鍵入的順序可以是任意的。
4)運行命令G,其格式為:
-G[=address1][address2[address3…>
其中,地址1指定了運行的起始地址,如不指定則從當前的CS:IP開始運行。後面的地址均為斷點地址,當指令執行到斷點時,就停止執行並顯示當前所有寄存器及標志位的內容,和下一條將要執行的指令。
5)跟蹤命令T(Trace),有兩種格式:
·逐條指令跟蹤
-T [=address]
從指定地址起執行一條指令後停下來,顯示所有寄存器內容及標志位的值。如未指定地址則從當前的CS:IP開始執行。
·多條指令跟蹤
-T [=address][value]
從指定地址起執行n條指令後停下來,n由value指定。
6)匯編命令A(Assemble),其格式為:
-A[address]
該命令允許鍵入匯編語言語句,並能把它們匯編成機器代碼,相繼地存放在從指定地址開始的存儲區中。必須注意:DEBUG把鍵入的數字均看成十六進制數,所以如要鍵入十進制數,則其後應加以說明,如100D。
7)反匯編命令U(Unassemble)有兩種格式。
·從指定地址開始,反匯編32個位元組,其格式為:
-U[address]
例如:
-u100
18E4:0100 C70604023801 MOV WORD PTR[0204],0138
18E4:0106 C70606020002 MOV WORD PTR[0206],0200
18E4:010C C70606020202 MOV WORD PTR[0208],0202
18E4:0112 BBO4O2 MOV BX,0204
18E4:0115 E80200 CALL 011A
18E4:0118 CD20 INT 20
18E4:011A 50 PUSH AX
18E4:011B 51 PUSH CX
18E4:011C 56 PUSH SI
18E4:011D 57 PUSH DI
18E4:011E 8B37 MOV SI,[BX]
如果地址被省略,則從上一個U命令的最後一條指令的下一個單元開始顯示32個位元組。
·對指定范圍內的存儲單元進行反匯編,格式為:
-U[range]
例如:
-u100 10c
18E4:0100 C70604023801 MOV WORD PTR[0204],0138
18E4:0106 C70606020002 MOV WORD PTR[0206],0200
18E4:010C C70606020202 MOV WORD PTR[0208],0202

-u100 112
18E4:0100 C70604023801 MOV WORD PTR[0204],0138
18E4:0106 C70606020002 MOV WORD PTR[0206],0200
18E4:010C C70606020202 MOV WORD PTR[0208],0202

可見這兩種格式是等效的。
8)命名命令N(Name),其格式為:
-N filespecs [filespecs]
命令把兩個文件標識符格式化在CS:5CH和CS:6CH的兩個文件控制塊中,以便在其後用L或W命令把文件裝入存檔。filespecs的格式可以是:
[d:][path] filename[.ext]
例如,
-N myprog
-L
-
可把文件myprog裝入存儲器。
9)裝入命令(Load),有兩種功能。
·把磁碟上指定扇區范圍的內容裝入到存儲器從指定地址開始的區域中。其格式為:
-L[address[drive sector sector]
·裝入指定文件,其格式為:
-L[address]
此命令裝入已在CS:5CH中格式化了文件控制塊所指定的文件。如未指定地址,則裝入CS:0100開始的存儲區中。
10)寫命令W(Write),有兩種功能。
·把數據寫入磁碟的指定扇區。其格式為:
-W address drive sector sector
·把數據寫入指定的文件中。其格式為:
-W[address]
此命令把指定的存儲區中的數據寫入由CS:5CH處的文件控制塊所指定的文件中。如未指定地址則數據從CS:0100開始。要寫入文件的位元組數應先放入BX和CX中。
11)退出DEBUG命令Q(Quit),其格式為:
-Q
它退出DEBUG,返回DOS。本命令並無存檔功能,如需存檔應先使用W命令。

問題:初學者問一個低級問題,執行debug-a後,如果有一行輸入錯誤,如何更改這一行?

回答:
加入進行如下輸入:
D:\PWIN95\Desktop>debug
-a
2129:0100movax,200
2129:0103movbx,200
2129:0106movcx,200
2129:0109
此時,發現movbx,200一句錯誤,應為movbx,20,可以敲回車返回"-"狀態,然後輸入:
-a103
2129:0103movbx,20
如果多或者少若干行,不必重新輸入,可以用M命令移動後面的程序來去掉或者增加程序空間。

H. 匯編語言中,調試程序是存儲器內容在哪看

在debug 中,要查看內存中的內容,用 d 命令。

d 命令的格式:
d <地址范圍>

<地址范圍>有兩種表示方法,一是(起始地址 結束地址),二是(起始地址L長度)
如果不給結束地址,則默認長度為128個位元組。

例如:

d 200 2ff 顯示200~2ff這個范圍內存內容
d 200L100 顯示跟上面一樣
d 200 顯示200~27f 的內容

地址可以帶有段寄存器或段地址。比如:
d ds:200L30
d ffff:0 0f

如果你要查看 [BX] 所指的內存內容,你要先用R命令查看BX寄存器的值(假設查看到的是12AF),再用D命令查看對應的內存內容 d 12af L10

I. bios是一種rom晶元,而rom晶元不是一種只讀存儲器嗎,這種存儲器只能讀出,那怎麼進行bios設置呢,謝謝

BIOS它的中文名字是基本輸入輸出系統,包括加電檢測程序,主板參數設置程序,啟動程序和存儲體(CMOS)。現如今程序部分都是FLASH晶元作為存儲體的,相對固定,一定條件下可以反復擦寫,方便升級。

開機後,根據不同的主板按下某個特定的按鍵,就可以打開BIOS設置程序,對主板的一些參數進行設置,這些參數信息最後保存在CMOS晶元中,這種存儲晶元是可以任意修改的,而且要電來維持的,一旦沒電,保存在這里的信息就會丟失,主板都有一個紐扣大小的電池就是當關機後用來給CMOS供電的。

J. Arm常見調試方法有哪幾種呢。。

ARM應用軟體的開發工具根據功能的不同,分別有編譯軟體、匯編軟體、鏈接軟體、調試軟體、嵌入式實時操作系統、函數庫、評估板、JTAG模擬器、在線模擬器等,目前世界上約有四十多家公司提供以上不同類別的產品。下面就由福州卓躍教育具體介紹。
使用集成開發環境開發基於ARM的應用軟體,包括編輯、編譯、匯編、鏈接等工作全部在PC機上即可完成,調試工作則需要配合其他的模塊或產品方可完成,目前arm培訓班常見的調試方法有以下幾種:
1、 指令集模擬器
部分集成開發環境提供了指令集模擬器,可方便用戶在PC機上完成一部分簡單的調試工作,但是由於指令集模擬器與真實的硬體環境相差很大,因此即使用戶使用指令集模擬器調試通過的程序也有可能無法在真實的硬體環境下運行,用戶最終必須在硬體平台上完成整個應用的開發
2、 駐留監控軟體
駐留監控軟體(Resident Monitors)是一段運行在目標板上的程序,集成開發環境中的調試軟體通過乙太網口、並行埠、串列埠等通訊埠與駐留監控軟體進行交互,由調試軟體發布命令通知駐留監控軟體控製程序的執行、讀寫存儲器、讀寫寄存器、設置斷點等。駐留監控軟體是一種比較低廉有效的調試方式,不需要任何其他的硬體調試和模擬設備。ARM公司的Angel就是該類軟體,大部分嵌入式實時操作系統也是採用該類軟體進行調試,不同的是在嵌入式實時操作系統中,駐留監控軟體是作為操作系統的一個任務存在的。
3、 JTAG模擬器
JTAG模擬器也稱為JTAG調試器,是通過ARM晶元的JTAG邊界掃描口進行調試的設備。JTAG模擬器比較便宜,連接比較方便,通過現有的JTAG邊界掃描口與 ARM CPU 核通信,屬於完全非插入式(即不使用片上資源)調試,它無需目標存儲器,不佔用目標系統的任何埠,而這些是駐留監控軟體所必需的。另外,由於JTAG調試的目標程序是在目標板上執行,模擬更接近於目標硬體,因此,許多介面問題,如高頻操作限制、AC和DC參數不匹配,電線長度的限制等被最小化了。使用集成開發環境配合JTAG模擬器進行開發是目前採用最多的一種調試方式。