步驟:設定gpiob引腳
1、將gpiob8引腳設定為gpio功能
暫存器:gpiob.altfn0
功能:選擇gpiob8引腳的函式
數值:00 = 函式0,01 = 函式1,10 = 函式2,11 = 函式2
位:[17:16]
設定為:通過晶元手冊查閱,要將位設定為00
2、將gpiob8引腳設定為輸入功能
暫存器:gpiob.outenb
功能:指定gpiob的第幾個引腳為輸入或輸出模式
數值:0 = 輸入模式,1 = 輸出模式
位:[31:0]
設定為:要將第8位設定為0
3、設定gpiob8引腳的中斷觸發方式:下降沿觸發
暫存器:gpiob.detmode0
功能:指定gpiob處於輸入模式的檢測模式,高的兩位為[17:16],需要跟gpiob.detmodeex暫存器配合使用,低的一位為[8]
數值:000 = 低電平,001 = 高電平,010 = 下降沿,011 = 上公升沿,100 = 兩邊沿,101 to 111 = 保留
位:[17:16]
設定為:要將第其設定為01
暫存器:gpiob.detmodeex
功能:處於輸入模式的檢測模式
數值:看gpiob.detmode0的數值
位:[8]
設定為:要將第8位設定為0
4、設定gpiob8引腳中斷使能暫存器
暫存器:gpiob.intenb
功能:指定當出現gpiob使用中斷事件發生時gpiob.detmode可以使用
數值:0 = 禁用,1 = 使能
位:[31:0]
設定為:要將第8位設定為1
5、設定gpiob8引腳的檢測使能暫存器
暫存器:gpiob.detenb
功能:決定使用gpiob.pad的檢測模式
數值:0 = 禁用,1 = 使能
位:[31:0]
設定為:要將第8位設定為1
6、事件檢測暫存器
暫存器:gpiob.det
功能:中斷掛起的標誌位,當讀gpiob引腳對應的位為1,表示中斷發生。在相應的位寫1,可以清除中斷掛起標誌位,可以接收下一次中斷
位:[31:0]
設定為:判斷第8位是否為1
設定gicd分配器層
1、設定gicd層全域性中斷使能暫存器
暫存器:gicd_ctrl
注意:預設使用組0暫存器,也可以設定組1暫存器
功能:全域性使能,**組0相應的中斷
數值:0 = 組0中斷未被**,1 = 組0中斷**,服從優先順序規則
位:[0]
設定為:要將第0位,即組0設定為1
2、設定gicd層86號對應的中斷使能暫存器
理解:為什麼要設定第86號?因為gpiob的中斷源的中斷號為54號,這個54號是spi(共享外圍中斷)裡的,實際上還要加上16位ppi(私有外圍中斷)和16位sgi(軟體生成中斷)所以54+16+16 = 86
暫存器:gicd_isenabler.isenabler2
功能:對於spi和ppi,每個位都控制著乙個中斷號,從分配器**到cpu介面
數值:讀:0 = 禁用**相應的中斷號,1 = 使能**相應的中斷號;寫:0 = 沒有效果,1 = 允許**相應的中斷
位:[31:0]
設定為:要將第2個暫存器的第22位設定為1,gicd_isenabler2[22] = 0b1;
注意:因為一共有160個中斷號,每個暫存器可以管理32個中斷號,所以需要5個暫存器管理,此時是86號中斷號,所以86 / 32 = 2…22,由此可以得出是控制該中斷號的暫存器為第2個暫存器的第22位
3、設定訊號中斷優先順序暫存器
理解:gicd_ipriorityrn這個暫存器中每8位管理著乙個中斷號,因為每個中斷號佔8位,乙個暫存器是32位,所以乙個暫存器可以管理4個中斷號,一共160個中斷號,所以需要40個暫存器管理所有的中斷號
暫存器:gicd_ipriorityrn
功能:設定中斷訊號的優先順序,設定的值越小優先順序越高
數值:可以設定1~255之間的數,如果設定為50,那麼該暫存器51-255之間優先順序的中斷就會被忽略掉
位:[31:0]
設定為:要將第21個暫存器的第[23-16]位設定為1-255,暫且設定為120,gicd_ipriorityr21[23:16] = 120;
注意:因為一共有40個暫存器,所以每個暫存器可以管理4個中斷,此時是86號中斷號,所以86 / 4 = 21…2,由此可以得出是控制該中斷優先順序的暫存器為第21個暫存器的第2 * 8 = 16位,乙個中斷號有8位,所以要設定第[16:23]位的優先級數是120
4、設定中斷目標分配暫存器
暫存器:gicd_itargetsrn
功能:cpu的系統編號從0開始,要使用哪乙個cpu就將第幾位設定為1
位:[31:0]
設定為:要將第21個暫存器的第[23-16]位設定為1,這表示,該中斷使用第0個cpu,gicd_itargetsrn21[23:16] = 0x1
5、清除gicd層中斷掛起標誌位
暫存器:gicd_icpender.icpendern
注意:160個中斷需要5個暫存器,每個暫存器管理32個中斷,所以86 / 32 = 2…22,所以只需要設定第2個暫存器的第22位為1即可
功能:中斷號對應的位置1,表示清除對應的中斷掛起標誌位
數值:0 = 沒有影響,1 = 清除
位:[31:0]
設定為:要將第2個暫存器的第22位為1即可,gicd_icpender2[22] = 0b1;
設定gicc分配器層
1、設定gicc層中斷全域性使能暫存器
暫存器:gicc_ctrl
功能:使能組0中斷由cpu介面連線到處理器裡面
數值:0 = 禁用,1 = 使能
位:[0]
設定為:要將第0位設定為1
2、設定gicc層中斷遮蔽暫存器
暫存器:gicc_pmr
功能:cpu介面的優先順序遮蔽級,只有中斷的優先順序高於這個欄位的值,介面才不會被過濾掉這個中斷訊號
數值:1-255
位:[7:0]
設定為:設定為255
3、獲取中斷號
暫存器:gicc_iar
功能:獲取中斷號
位:[9:0]
設定為:irq_num = gicc_iar & 0x3ff:
4、清除gicc層中斷號
暫存器:gicc_eoir
功能:將處理完的中斷號寫到這個暫存器中就可以清除中斷
數值:1-255
位:[9:0]
設定為:中斷號
p5 主流框架。
mvc開發模式。就是 首先介面html檔案,然後系統預設通過方法呼叫其控制器controller中的方法。一般控制器的名稱和html的資料夾名字相同。然後控制器裡面寫一些方法跳轉,轉到對應的logic層。logic裡面主要寫的就是方法。之後logic裡面例項化modal類。modal的名字對應的就是...
CSS樣式 入門學習p5
where there is a will,there is a way.3.2 text decoration 文字修飾屬性 underline 下劃線。overline 上劃線。line through 刪除線。blink 閃爍。none 無任何修飾。eg p.through 4 css屬性 設...
PMP 5P複習計畫
step1 5 一共5個階段 重點是 step3 step1看完headfirst 意義 初步入門 大致了解 5個過程 10大知識領域 建議此階段內容的學習至少在10月初完成,如果打算在12月報名考試 2 pmp 尚德 對於計算題講解很到位 step1 目的是更好理解pmp,以便在下面的學習中會比較...