新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > stm32 中斷向量表 NVIC_SetVectorTable() 應(yīng)用

        stm32 中斷向量表 NVIC_SetVectorTable() 應(yīng)用

        作者: 時間:2016-11-17 來源:網(wǎng)絡(luò) 收藏
        STM32中斷向量表的設(shè)置主要是用在IAP 程序中,
        如果是普通的 flash 中只有一個程序,一般不需要設(shè)置這個。
        顧名思義,這個表存放的是中斷服務(wù)函數(shù)的入口地址,當(dāng)發(fā)生中斷時,
        CPU來這個表中查詢,以此獲取中斷函數(shù)的入口地址。
        在stm32 的啟動文件中,設(shè)置完成堆棧,就來設(shè)置 中斷向量表,
        AREA RESET, DATA, READONLY ;
        定義只讀數(shù)據(jù)段,實際上是在CODE區(qū)(假設(shè)STM32從FLASH啟動,則此中斷向量表起始地址即為0x8000000)
        如果改變了程序的起始地址,這種就是IAP的情況了,像這個樣子
        那么這個時候就需要重新設(shè)置中斷向量表
        NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x00010000);//重新配置中斷向量表
        配合地址的改變,這樣程序運行的時候才能找到中斷服務(wù)函數(shù)的入口地址,正常執(zhí)行。
        附件:
        對中斷向量表更深入的解釋
        顯然,200039c0就是棧頂?shù)刂罚?8006F21就是reset_handler地址!
        stm32 小端模式,高字節(jié)在高位,低字節(jié)在低位,所以這個要反過來看。



        關(guān)鍵詞: STM32中斷向量

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 涟水县| 项城市| 九龙县| 东丽区| 三门县| 交城县| 额敏县| 景泰县| 疏勒县| 昌图县| 云阳县| 彝良县| 长春市| 中阳县| 黄龙县| 商城县| 眉山市| 和平县| 玉环县| 青州市| 金坛市| 晋州市| 昌乐县| 贵德县| 重庆市| 乌恰县| 南陵县| 临安市| 辽宁省| 泰兴市| 沁源县| 柞水县| 平阳县| 洪雅县| 天峻县| 农安县| 泰州市| 灵丘县| 万年县| 萨迦县| 昔阳县|