記錄下使用ram中斷向量表的常規寫法:
首先需要在link檔案中指定vector_rom及vector_ram的位置,
vector_rom m_interrupts_start m_interrupts_size
在map檔案中有如下定義後可以在c**中引申這些變數定義值
extern uint32_t __ram_vector_table_size;
extern uint32_t __vector_table;
extern uint32_t __vector_ram;
#if defined(use_ram_vector_table)
/*** @brief 把中斷向量表複製乙份到sdram,並使用該中斷向量表
* @note 適用於nor_sdram_code版本的程式,晶元上電後把所有**載入至sdram中執行,
使用sdram的中斷向量表後,中斷產生時cpu不需要訪問flash
* @retval 無
*/void copyanduseramvectortable(void)
/* 調整cortex-m核心的vtor暫存器指向ram版本的中斷向量表
* 後面產生中斷時會從vtor暫存器指向的位址載入中斷
*/scb->vtor = (uint32_t)__vector_ram;
}enableglobalirq(irqmaskvalue);
#endif
中斷向量表
中斷向量表 中斷源的識別標誌,可用來形成相應的中斷服務程式的入口位址或存放中斷服務程式的首位址 稱為中斷向量。在pc at中由硬體產生的中斷標識碼被稱為中斷型別號 當然,中斷型別號還有其他的產生方法,如指令中直接給出 cpu自動形成等 即在中斷響應期間 8259a 產生的是當前請求中斷的最高優先順序...
中斷向量表
關於中斷向量的幾點注釋 1.系統引導時,中斷向量表放在記憶體何處?系統剛引導時,記憶體0x00000到0x0003ff共1kb的空間用於存放中斷向量表。每個中斷向量占用4個位元組,共可儲存256個中斷向量。2.系統引導時,處在實模式下,只可定址1mb,為什麼要用4個位元組來定址中斷呢處理程式?剛看到...
中斷向量錶小計
1.系統引導時,中斷向量表放在記憶體何處?系統剛引導時,記憶體0x00000到0x0003ff共1kb的空間用於存放中斷向量表。每個中斷向量占用4個位元組,共可儲存256個中斷向量。2.系統引導時,處在實模式下,只可定址1mb,為什麼要用4個位元組來定址中斷呢處理程式?剛看到的時候,我也很納悶。我們...