一、蜂鳴器學習
代碼實現:
二、BSP工程管理
利用BSP工程管理,使文檔顯示不雜亂;
????????將這些文件分為4類,并保存到4個不同的文件夾里。
????????首先在新的工程文件夾里創建一個之后我們編寫的類似led驅動,clk驅動等等外設驅動程序都放在這文件夾里面,創建名為bsp文件夾;
????????再創建project文件夾,存放 start.s和 main.c 文件,也就是應用文件;
? ? ? ? 一個imx6ull文件夾,用來保存NXP的相關庫cc.h、fsl_common.h、fsl_iomuxch和 MCIMX6Y2.h 這四個文件;
????????最后再創建一個obj文件夾,用來存放編譯生成的.o?文件。
三、 按鍵練習
?
代碼實現:
四、中斷
4.1 GIC控制器(通用中斷控制器)
????????VFIQ/VIRQ中V指虛擬化的;
????????我們使用IRQ;
作用:
- 作用是中斷優先級排序;
- 中斷屏蔽的控制;
????????GIC控制器(v2版本)最多處理8個內核;最多有1020個中斷源:
- SGI? (軟件中斷):( 0 -?15?),由軟件產生的中斷;
- PPIs(私有中斷):(16 - 31),每個核都有自己獨有的中斷;
- SPI(共享中斷):(32-1019),外設中斷,如定時器、外部中斷、串口中斷等。
4.2 異常向量表
????????異常向量表重映射是指在處理器發生異常時,通過改變異常向量表的物理地址與邏輯地址之間的映射關系
????????目的:確保系統能夠正確響應和處理異常。
4.3 協處理器
????????協處理器:用于減輕系統微處理器特定處理任務的芯片;
? ? ? ? cortex A7 共16個協處理器,CP0~CP15
4.3.1 mcr指令與mrc指令?
用mcr與mrc來訪問協處理器;
mcr寫入協處理器;
mrc讀取協處理器;
協處理器編號p0-p15;
讀取出來的寄存器內容:
SCTLR寄存器:
CPS指令
獲取中斷號,并記錄?
GPIOx_ICR? ? ? ? //設置中斷寄存器?
GPIOx_IMR? ? ? ? //設置中斷屏蔽寄存器 ,若為1,開中斷
GPIOx_ISR? ? ? ? //設置中斷標記寄存器 ,若為1,則說明該位產生中斷,但要手動清零