freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

bootloader程序在mcf51ac系列單片機上的實現(xiàn)(編輯修改稿)

2025-08-03 11:40 本頁面
 

【文章內(nèi)容簡介】 表固定存放在1M地址的邊緣,默認存放在地址為0x000000開始的FLASH區(qū)域且不可移動。[3]正常情況下,要使用某個中斷,只需要在中斷服務(wù)函數(shù)前面加上編譯指令interrupt 和中斷向量號即可,這時編譯器就會把該中斷服務(wù)函數(shù)的入口地址存放到相應(yīng)的中斷向量中。由于BootLoader程序和主程序分別生成不同的中斷向量表且位置重疊,因此如果按正常情況使用就會造成兩個程序的中斷向量沖突。由于只有一張中斷向量表,所以BootLoader程序考慮不使用中斷模式,又考慮到BootLoader程序必須要使用復(fù)位向量(因為程序復(fù)位應(yīng)首先跳轉(zhuǎn)到BootLoader程序而不是主程序),再考慮到程序下載簡單方便,決定使用中斷向量映射表解決這個問題,下面詳細介紹下中斷向量映射表的生成及程序執(zhí)行過程。中斷向量表引導(dǎo)程序區(qū)中斷向量映射表主程序區(qū)0x00000x04100x54000x5800引導(dǎo)代碼區(qū)主程序代碼區(qū)添加了中斷向量映射表的FLASH空間劃分示意圖如圖2所示。BootLoader程序區(qū)固定從0x410開始,其大小可以根據(jù)需求自行設(shè)定;中斷向量映射表固定從0x5400開始,其大小固定為0x400;主程序代碼區(qū)則從0x5800開始。圖2 FLASH空間劃分示意圖添加中斷向量映射表后程序的執(zhí)行過程如圖3所示。首先程序復(fù)位或加電后從0x000000位置開始執(zhí)行,這個位置存放的是復(fù)位相關(guān)的2個異常向量,一個是初始化SP堆棧指針,一個是初始化PC指針,這2個異常向量是Bootloader程序生成的,指向Bootloader程序的入口地址,Bootloader程序運行后首先要做一個運行模式的判斷,是進入Bootloader程序執(zhí)行還是跳轉(zhuǎn)到主程序執(zhí)行,如果進入主程序,則通過中斷向量映射表跳轉(zhuǎn)到主程序的入口地址開始圖3 程序運行過程示意圖執(zhí)行主程序。在主程序運行過程中假設(shè)發(fā)生一個Vector N中斷,首先到中斷向量表中讀取指令,這個指令是指向中斷向量映射表相應(yīng)位置的,這時再讀取指令就能跳轉(zhuǎn)到正確的中斷服務(wù)處理程序了。中斷向量映射表實際上是編輯一個文件,這個文件定義了MCF51AC系列單片機除2個復(fù)位相關(guān)異常向量外所有使用的100多個中斷的中斷服務(wù)程序, 每個中斷服務(wù)程序只有一條匯編的jmp語句,如果該中斷沒有被使用則跳轉(zhuǎn)到固定的異常處理函數(shù),如果使用了則跳轉(zhuǎn)到真正的中斷服務(wù)程序。在這個映射表中沒有定義中斷向量表的前2個復(fù)位向量(堆棧和PC指針復(fù)位向量),只定義了一個主程序的入口函數(shù)StartupEntry(),這個函數(shù)負責(zé)讓程序跳轉(zhuǎn)到真正的入口函數(shù)_startup()。此外還定義一個異常處理函數(shù)IllegalTrap(),這個函數(shù)內(nèi)容是個死循環(huán),程序如果跳到這里來表示有未使用的中斷產(chǎn)生或有其他異常錯誤需要查找。中斷向量映射表生成后,在Bootloader工程和主程序工程中必須保持一致,只允許修改其中的函數(shù)內(nèi)容。Bootloader生成的程序是通過仿真器寫到FLASH中的,會占用中斷向量表、Bootloader程序區(qū);而主程序生成的程序通過Bootloader下載到FLASH中,占用中斷向量映射表和主程序區(qū)。這樣兩個工程就可以隨意添加文件和功能而不用考
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1