LPC2106 實現fiq中斷控制燈閃爍,基礎
上傳時間: 2016-06-05
上傳用戶:yiyifei
隨著國內工業化、數字化的迅速發展,嵌入式開發在IT行業中的重要性越來越顯著。嵌入式開發領域對產品的功能性、穩定性、實時性等方面的要求也越來越高。 采用嵌入式實時操作系統作為開發平臺,以高性能的嵌入式處理器為工業控制等領域的主控制器可以有效地提高系統的可靠性、實時性、和軟件編程的靈活性。在嵌入式處理器方面,ARM構架已經在高性能、低功耗、低成本的嵌入式領域里占領先地位。而在嵌入式操作系統方面,適合國內發展方向的解決方案以及系統基礎結構方面并不理想。首先,國外成熟的嵌入式實時操作系統大都成本高、結構復雜,不適合強實時應用;其次,因大部分實時操作系統不公開源碼,使開發的產品存在安全隱患。而類似μC/OS-II的小型強實時嵌入式操作系統內核雖然具有低成本、易控制、小規模、高性能等特性,但這類系統的基礎較為薄弱,面臨產品化和商業化還有一定的距離。 本文針對這種情況,結合現有的操作系統內核理論及嵌入式強實時系統的特殊需求,特別是對μC/OS-Ⅱ的研究分析基礎上,面向強實時應用,設計、構造了一種適合在32位ARM處理器環境下使用的內核。這樣做的目的是為了提供一個基礎牢固、值得信賴的基本平臺。 本文研究工作主要集中在以下幾個方面: 針對嵌入式環境中高效、簡潔、易擴展、易剪裁的要求,對內核體系結構框架進行了設計。內核整體上采用分層結構,在各層中采用功能相對獨立的模塊:在最底層借鑒微核的原理,只提供最基本的功能模塊。 針對系統快速和穩定的實時響應能力需求,為IRQ中斷建立了統一的中斷入口,采用合理的半嵌套工作方式;保留fiq為不可屏蔽中斷,在快速反應場合使用;引入中斷分段處理機制解決中斷和任務的ITC機制共享,需要硬保護機制相互協調所引起的硬保護機制被隱性地泛濫使用問題。 針對應用提出的系統行為的可預測性需求,在調度算法方面采用基于優先級位圖的搶占閾值調度算法,提高了處理器的利用率和任務集合的可調度性,減少了內核存儲開銷;在共享資源訪問控制方面,以優先級天花板協議為依據,使用互斥事件解決優先級反轉和死鎖問題的發生。 為了保障系統的強實時性能,本文還對內核的時鐘管理、內存管理等方面進行了設計。最后,通過實時性能測試,結果表明該實時內核有很好的強實時特性。
上傳時間: 2013-04-24
上傳用戶:alia
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
一、開發環境 1、開發板: AT91SAM7X256-EK 2、仿真器: SAM-ICE(ATMEL) 3、開發軟件: ADS1.2 (ARM調試模式) 二、程序功能 1、程序目的:AT91SAM7X256的AIC功能驗證與使用指導。 2、功能說明: 1).PIO 中斷測試程序 --改變LED1的狀態 2).IRQ0 中斷測試程序 --改變LED1的狀態 3).fiq 中斷測試程序 --改變LED2的狀態 4).software 中斷測試程序 --改變LED3的狀態 ---必須設為 內部 邊沿觸發方式 5).TC中斷測試程序 --改變LED4的狀態 ---2種模式都可以 6).其他中斷見相應功能測試程序
上傳時間: 2015-09-25
上傳用戶:exxxds
ARMask.The ARM has six operating modes: • User (unprivileged mode under which most tasks run) • fiq (entered when a high priority (fast) interrupt is raised) • IRQ (entered when a low priority (normal) interrupt is raised) • Supervisor (entered on reset and when a Software Interrupt instruction is executed) • Abort (used to handle memory access violations) • Undef (used to handle undefined instructions) * ARM Architecture Version 4 adds a seventh mode: • System (privileged mode using the same registers as user mode)
標簽: unprivileged operating ARMask modes
上傳時間: 2013-12-24
上傳用戶:bcjtao
VIP專區-嵌入式/單片機編程源碼精選合集系列(48)資源包含以下內容:1. 51單片機上移植UCOSII,通過調試.2. dspgetway源代碼.3. 針對三星ARM處理器的flash燒寫程序.4. 優龍S3C2410平臺的用ADS1.2進行編譯的程序.5. 紅外解碼程序.6. at91sam7s64的一個應用.使用ads1.2編譯器,實現usb口的通訊功能..7. at91sam7s63,ads1.2編譯器 本程序為為一個簡單的跑馬燈演示: 1.8. 本程序為完成各種中斷的演示.at91sam7s64芯片,ads1.2編譯器.代碼說明: 1)完成基本的初始化 2)初始化PIO,IRQ,fiq,software_interrupt等 3).9. 是介紹ISE的非常好的教程.10. ucGUI上的漢字子模提取工具.11. ucGUI的一些使用例子.12. 基于EasyArm2200和ucOS2的SD卡文件系統的實現.13. 芯片.14. 芯片.15. 包含vxWorks的許多底層API源碼.16. 用匯編寫的一個鍵盤 程序 純屬練習 沒價值 用的是矩陣掃瞄法.17. 參加今年的比賽肯定要用的。謝謝支持。祝大家好運!.18. 文件包括了S3C2410基礎試驗源代碼中的DA轉換.19. 文件中包括了S3C2410基礎試驗源代碼的觸摸屏源代碼.20. ucos 移植實驗成功把ucos移植到2410上建立十個任務.21. s3c2410ucos 移植實驗成功把ucos移植到2410上建立十個任務.22. 文檔中包括S3C2410基礎試驗中VGA顯示(ADS)中調試通過的源代碼.23. PIC網卡控制器ENC28J60的PIC單片機程序源代碼(c).24. 操作系統為wince,開發環境為EVC,有關窗口的應用程序.25. 在keil平臺下用c語言開發的基于89c2051的小程序.26. 操作系統為wince,開發環境為EVC,有關串口的應用程序.27. 操作系統為wince,開發環境為EVC,有關網絡的應用程序.28. 操作系統為wince,開發環境為EVC,有關數據庫的應用程序.29. 操作系統為wince,開發環境為EVC,有關PING的應用程序.30. uC/OS移植到x86上的范例1.31. pdf文件,是用來控制液晶屏輸入輸出的的器件.32. ATMEL AT91SAM USB Mass Storage Module.33. 自己修改的U-boot1.1.4For AT91RM9200DK. 請用armgcc3.3.2編譯。.34. ZLG的Smartarm2200上uClinux boot代碼.35. AT91RM9200的USB host測試代碼.36. AT91RM9200的網口測試代碼.37. AT91RM9200的DS1307 RTC 測試代碼.38. 利用該源代碼可以實現在DE2的板子上進行USB畫筆的實驗.39. Pic18F458的Can通信模塊代碼.40. 51單片機模擬2272解碼,采用中斷方法.
上傳時間: 2013-04-15
上傳用戶:eeworm