ARM調試
上傳時間: 2013-11-22
上傳用戶:sssl
ARM處理器的工作模式 ARM處理器狀態 ARM微處理器的工作狀態一般有兩種,并可在兩種狀態之間切換:第一種為ARM狀態,此時處理器執行32位的字對齊的ARM指令;第二種為Thumb狀態,此時處理器執行16位的、半字對齊的Thumb指令。在程序的執行過程中,微處理器可以隨時在兩種工作狀態之間切換,并且,處理器工作狀態的轉變并不影響處理器的工作模式和相應寄存器中的內容。但ARM微處理器在開始執行代碼時,應該處于ARM狀態。 ARM處理器狀態 進入Thumb狀態:當操作數寄存器的狀態位(位0)為1時,可以采用執行BX指令的方法,使微處理器從ARM狀態切換到Thumb狀態。此外,當處理器處于Thumb狀態時發生異常(如IRQ、FIQ、Undef、Abort、SWI等),則異常處理返回時,自動切換到Thumb狀態。 進入ARM狀態:當操作數寄存器的狀態位為0時,執行BX指令時可以使微處理器從Thumb狀態切換到ARM狀態。此外,在處理器進行異常處理時,把PC指針放入異常模式鏈接寄存器中,并從異常向量地址開始執行程序,也可以使處理器切換到ARM狀態。ARM處理器模式 ARM微處理器支持7種運行模式,分別為:用戶模式(usr):ARM處理器正常的程序執行狀態。快速中斷模式(fiq):用于高速數據傳輸或通道處理。外部中斷模式(irq):用于通用的中斷處理。管理模式(svc):操作系統使用的保護模式。數據訪問終止模式(abt):當數據或指令預取終止時進入該模式,可用于虛擬存儲及存儲保護。系統模式(sys):運行具有特權的操作系統任務。定義指令中止模式(und):當未定義的指令執行時進入該模式,可用于支持硬件協處理器的軟件仿真。ARM處理器模式 ARM微處理器的運行模式可以通過軟件改變,也可以通過外部中斷或異常處理改變。大多數的應用程序運行在用戶模式下,當處理器運行在用戶模式下時,某些被保護的系統資源是不能被訪問的。 除用戶模式以外,其余的所有6種模式稱之為非用戶模式,或特權模式;其中除去用戶模式和系統模式以外的5種又稱為異常模式,常用于處理中斷或異常,以及需要訪問受保護的系統資源等情況。ARM寄存器 ARM處理器共有37個寄存器。其中包括:31個通用寄存器,包括程序計數器(PC)在內。這些寄存器都是32位寄存器。以及6個32位狀態寄存器。 關于寄存器這里就不詳細介紹了,有興趣的人可以上網找找,很多這方面的資料。異常處理 當正常的程序執行流程發生暫時的停止時,稱之為異常,例如處理一個外部的中斷請求。在處理異常之前,當前處理器的狀態必須保留,這樣當異常處理完成之后,當前程序可以繼續執行。處理器允許多個異常同時發生,它們將會按固定的優先級進行處理。當一個異常出現以后,ARM微處理器會執行以下幾步操作:進入異常處理的基本步驟:將下一條指令的地址存入相應連接寄存器LR,以便程序在處理異常返回時能從正確的位置重新開始執行。將CPSR復制到相應的SPSR中。根據異常類型,強制設置CPSR的運行模式位。強制PC從相關的異常向量地址取下一條指令執行,從而跳轉到相應的異常處理程序處。如果異常發生時,處理器處于Thumb狀態,則當異常向量地址加載入PC時,處理器自動切換到ARM狀態。 ARM微處理器對異常的響應過程用偽碼可以描述為: R14_ = Return LinkSPSR_= CPSRCPSR[4:0] = Exception Mode NumberCPSR[5] = 0 ;當運行于 ARM 工作狀態時If == Reset or FIQ then;當響應 FIQ 異常時,禁止新的 FIQ 異常CPSR[6] = 1PSR[7] = 1PC = Exception Vector Address異常處理完畢之后,ARM微處理器會執行以下幾步操作從異常返回:將連接寄存器LR的值減去相應的偏移量后送到PC中。將SPSR復制回CPSR中。若在進入異常處理時設置了中斷禁止位,要在此清除。
上傳時間: 2013-11-15
上傳用戶:hanbeidang
Keil C51語言使用技巧及實戰(周立功) 這是一本關于Intel 80C51 以及廣大的51 系列單片機的書這本書介紹給讀者一些新的技術使你的8051 工程和開發過程變得簡單請注意這本書的目的可不是教你各種8051 嵌入式系統的解決方法為使問題討論更加清晰在適當的地方給出了程序代碼我們以討論項目的方法來說明每章碰到的問題所有的代碼都可在附帶的光盤上找到你必須熟系C 和8051 匯編因為本書不是一本C 和匯編的指導書你可以買到不少關于ANSI C 的書最佳選擇當然是Intel的數據書可從你的芯片供應商處免費索取和隨編譯工具附送的手冊
上傳時間: 2014-12-27
上傳用戶:lhw888
關鍵詞 LM3S2016、CTM系列隔離CAN收發器摘 要 基于32位Luminary ARM的CAN節點設計
上傳時間: 2013-10-13
上傳用戶:guanliya
keil c51v805 完全漢化破解版破解方法: 1.運行c51v808a.exe,直到安裝完畢. 2.運行Keil_lic-v3.2.exe選擇如下圖: [ sn.JPG (21.79 KB) 2007-5-16 09:38 點擊GENERATE ,獲得注冊碼.打開文件菜單下的LICENSE對話框,將LICO框內的注冊碼COPY到LICENSE ID欄內.點擊ADD ID. 3.復制ccKeilVxx.exe到安裝目錄下C:KeilC51BIN,覆蓋原文件.大功告成!!!!!!!!!!!
上傳時間: 2014-05-05
上傳用戶:75119158
keil 使用筆記:在Memory窗口上輸入address_type:address才能看到正確地址的變量debug~perfermance analyzer加入要察看的模塊名稱,然后view~perfermance analyzer window 可以察看各個模塊運行時間①Display address_type:address B:Bit address C:Code Memory Bx:Code Bank D D:80H 命令可以查看特殊寄存器 data D I:0 命令可以查看內部RAM數據iData; D X:0 命令可以查看外部RAM數據xData; ②R1 //顯示R1 register ~R1 //顯示變量R1 R1 = R7 //對寄存器Rx操作R1 = --R7 R1 = 0x20 ③main //顯示main()的開始地址d main //顯示main()的代碼④向RAM.ROM中寫數據Enter data_type address_type:address expr,expr.... data_type:int char double float long E char data:0x20 1,2,3,4 //向data區0x20開始的地址寫1,2,3,4 變量放在RAM的30H,要把定義放在main前面!另外特別注意,內部RAM通常供C程序存放中間變量等,所以一定要看看編譯后的程序中是否存在存儲單元沖突的情況,比如如果程序中 使用了別的寄存器組的話,08-1FH單元就不能用了unsigned long data i _at_ 0x30
上傳時間: 2013-11-05
上傳用戶:dongqiangqiang
KEIL RTX51實時操作系統中文版:RTX51是一個適用于8051 家族的實時多任務操作系統。RTX51使復雜的系統和軟件設計以及有時間限制的工程開發變得簡單。RTX51是一個強大的工具,它可以在單個CPU上管理幾個作業(任務)。RTX51有兩種不同的版本。 RTX51 Full 允許4個優先權任務的循環和切換,并且還能并行的利用中斷功能。RTX51 支持信號傳遞,以及與系統郵箱和信號量進行消息傳遞。RTX51的os_wait 函數可以等以 下事件:中斷、時間到、來自任務或中斷的信號、來自任務或中斷的消息、信號量。 RTX51 Tiny 是RTX51 Full 的一個子集。RTX51 Tiny 可以很容易的運行在沒有擴展外 部存儲器的單片機系統上。但是,使用RTX51 Tiny 的程序可以訪問外部存儲器。RTX51 Tiny允許循環任務切換,并且支持信號傳遞,還能并行的利用中斷功能。RTX51 Tiny 的os_wait函數可以等待以下事件:時間到、時間間隔、來自任務或者中斷的信號。 本章節以后的部分用RTX-51 來指代RTX-51 Full 和RTX-51 Tiny。在兩者之間不同的 地方會加以說明。
上傳時間: 2013-11-25
上傳用戶:axin881314
Proteus6.9和Keil聯調方法及破解文件下載:方法:1.安裝proteus6.9和keil吧2.安裝壓縮包里面的vdmagdi.exe文件,安裝完后keil\c51\bin\文件夾里面會有VDM51.DLL這個.3.把壓縮包里面的PROSPICE.DLL復制到Proteus6Professional\bin目錄下,覆蓋已經有的.4.打開keil,打開optionfortarget里面的debug選項卡,選擇ProteusVSMSimulator,并進行相關設置.(兩臺計算機聯調得輸入正確的host IP和port號)5,打開isis,選擇debug\useremotedebugmonitor.這樣就可以啦,試試看吧!
上傳時間: 2013-10-15
上傳用戶:wenwiang
Keil uVision3下載:keil uvision3注冊機,keil uvision3中文版:Keil uVision3軟件破解版與沒破解版的區別就是一個沒有代碼限制,一個有2K代碼限制。附件含有手冊和教程。 1.點擊c51v802.exe直接安裝直到結束,安裝路徑最好選用默認的c:\keil與 原來的老板本放到相同的目錄下會自動添加一個新的目錄c:\keil\uv3 2.第一次運行請先進入file->License Management彈出窗口下輸入注冊碼, 注冊碼由Keil_lic_v2.exe生成,選擇V2選項,生成后復制LIC0內容到keil 彈出窗口的New License ID Code中然后點擊Add LIC,注意看看注冊后的使 用期限,如果太短可以用注冊機重新生成,一般都可以找到30年左右:-) 3.復制ccKeilVxx.exe文件到c:\keil\c51\bin\下面并運行,以修正0xFD BUG. 至此安裝完畢。
上傳時間: 2013-10-14
上傳用戶:ruixue198909
單片機開發中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變為 CPU可以執行的機器碼有兩種方法,一種是手工匯編,另一種是機器匯編,目前已極少使用手工匯編的方法了。機器匯編是通過匯編軟件將源程序變為機器碼,用于MCS-51 單片機的匯編軟件有早期的A51,隨著單片機開發技術的不斷發展,從普遍使用匯編語言到逐漸使用高級語言開發,單片機的開發軟件也在不斷發展,Keil 軟件是目前最流行開發MCS-51 系列單片機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持Keil 即可看出。Keil 提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(uVision)將這些部份組合在一起。運行Keil 軟件需要Pentium 或以上的CPU,16MB或更多RAM、20M 以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統。掌握這一軟件的使用對于使用51 系列單片機的愛好者來說是十分必要的,如果你使用C 語言編程,那么Keil 幾乎就是你的不二之選(目前在國內你只能買到該軟件、而你買的仿真機也很可能只支持該軟件),即使不使用C 語言而僅用匯編語言編程,其方便易用的集成環境、強大的軟件仿真調試工具也會令你事半功倍。我們將通過一些實例來學習 Keil 軟件的使用,在這一部份我們將學習如何輸入源程序,建立工程、對工程進行詳細的設置,以及如何將源程序變為目標代碼。圖1 所示電路圖使用89C51 單片機作為主芯片,這種單片機性屬于MCS-51 系列,其內部有4K 的FLASH ROM,可以反復擦寫,非常適于做實驗。89C51 的P1 引腳上接8 個發光二極管,P3.2~P3.4 引腳上接4 個按鈕開關,我們的第一個任務是讓接在P1 引腳上的發光二極管依次循環點亮。
上傳時間: 2013-11-06
上傳用戶:aesuser