1為什么要對(duì)中斷向量表進(jìn)行重新映射?COREM3權(quán)威指南上講“然而,為了動(dòng)態(tài)重分發(fā)中斷,CM3允許向量表重定位——從其它地址處開(kāi)始定位各異常向量。這些地址對(duì)應(yīng)的區(qū)域可以是代碼區(qū),但也可以是RAM區(qū)。在RAM區(qū)就可以修
ST公司重定位向量表的庫(kù)函數(shù):void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset){ assert_param(IS_NVIC_VECTTAB(NVIC_VectTab)); assert_param(IS_NVIC_OFFSET(Offset)); SCB->VTOR = NVIC_Vect
//Cortex-M0內(nèi)核中斷向量共有48個(gè)。//由于M0內(nèi)核不具有M3、M4內(nèi)核的中斷向量表重定位功能,須采用以下方式解決IAP向量問(wèn)題:// 1:復(fù)制用戶代碼中的中斷向量表到SRAM首地址// 2: 開(kāi)啟SRAM的重映射功能,將SRAM的地
;//StackConfiguration;//StackSize(inBytes);//Stack_SizeEQU0x00000200;//定義堆棧大小AREASTACK,NOINIT,READWRITE,ALIGN=3;//定義一個(gè)數(shù)據(jù)段按8字節(jié)對(duì)齊Stack_MemSPACEStack_Size;//保留Stack_Size大小的堆棧空間
啟動(dòng)的方式對(duì)于S3C2440而言,啟動(dòng)的方式有兩種,一是Nor Flash方式啟動(dòng),二是Nand Flash方式啟動(dòng)。使用Nor Flash方式啟動(dòng)Nor Flash的地址范圍如下 0x0000.0000—0x0800.0000 (2M Nor Flash) 片內(nèi)的BootSRAM地址被置為
在STM32F103等cortex-m3/m4內(nèi)核的單片機(jī)上可以通過(guò)設(shè)置SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET;該寄存器的值來(lái)實(shí)現(xiàn)中斷向量表的重定義。但在STM32F0xx系列以cortex-m0為內(nèi)核的單片機(jī)中卻怎么也找不到這個(gè)設(shè)置中斷
通常32位ARM嵌入式系統(tǒng)的中斷向量表是在程序編譯前設(shè)置好的,每次編寫中斷程序都要改C程序的匯編啟動(dòng)代碼,相當(dāng)繁瑣。本文給出一種配置ARM中斷向量表新方法。該方法比通常方法僅增加一條指令執(zhí)行時(shí)間,簡(jiǎn)便高效,功