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

正文內(nèi)容

講述iap功能在實(shí)際使用過程中的應(yīng)用方法以及相關(guān)解決方案(參考版)

2025-05-28 22:12本頁面
  

【正文】 。 ? 總結(jié) “在線升級 ” 解決方案并不是唯一的,本方案使用 UART0進(jìn)行升級,當(dāng)然也可以使用其它的手段進(jìn)行升級,而且片內(nèi) Flash的分區(qū)方式也不是唯一的,因此本方案并不是唯一的解決方法。 當(dāng)前程序運(yùn)行在 HIGH區(qū),那么只能升級LOW區(qū)。 Boo tLo ad er TestBoo tLo ad er _ Test _ DataLOWOb jectCod eLOWHIGHOb jectCod eHIGHsrc LOW選項(xiàng)編譯結(jié)果 HIGH選項(xiàng)編譯結(jié)果 當(dāng)前程序運(yùn)行在 LOW區(qū),那么只能升級HIGH區(qū)。 編譯選項(xiàng)及其位置 用戶程序代碼編寫區(qū),代碼量不得超過 16K 位于系統(tǒng) Boot代碼區(qū),用戶不能隨便修改 ? 升級方法 使用 “ 在線升級模板 ” 建立工程,編譯以后產(chǎn)生樹狀的文件結(jié)構(gòu)。該模板具有兩個(gè)編譯選項(xiàng): HIGH和LOW。 ARM7 處理器核 RAM FLASH UART0 串口 ? 升級 HIGH區(qū)代碼 通過 IAP對Flash編程 處理器核HIGH區(qū) 0x0000 0000 0x0000 4000 0x0000 8000 0x0001 0000 LOW區(qū) 程序標(biāo)志區(qū) 用戶 Boot區(qū) 0x0001 0000 0000 8000程序運(yùn)行在LOW區(qū) 于低電平 串口接收升級代碼 修改程序標(biāo)志,標(biāo)識程序運(yùn)行在高區(qū) CPU運(yùn)行HIGH區(qū)的用戶代碼 處理器核此處為用戶編寫的Boot代碼,有別于由芯片廠商固化在片內(nèi)的 Boot代碼。對于這個(gè)區(qū)間,僅僅使用了前 4個(gè)字節(jié),用來保存當(dāng)前用戶代碼區(qū)的首地址。反之,如果程序位于 HIGH區(qū),可以對 LOW區(qū)進(jìn)行升級。 系統(tǒng)通過串口接收升級代碼,然后調(diào)用 IAP函數(shù)實(shí)現(xiàn)在線升級。 目前,在線升級是很多系統(tǒng)都必需的一個(gè)功能,對于 LPC2300來說,利用 IAP函數(shù)即可實(shí)現(xiàn)在線升級。 } 以字對齊定義變量區(qū) 扇區(qū) 7的起始地址 初始化變量區(qū)數(shù)據(jù) 選擇扇區(qū) 7 擦除扇區(qū) 7 選擇扇區(qū) 7 寫入數(shù)據(jù)到 Flash 編程后的 Flash區(qū)域 擦除后的 Flash區(qū)域 ?概述 ?Boot簡介 ?片內(nèi) Flash存儲(chǔ)系統(tǒng) ?數(shù)據(jù)存儲(chǔ)解決方案 ?在線升級解決方案 在線升級解決方案 ? 系統(tǒng)概述 “在線升級 ” 實(shí)際上是 Flash數(shù)據(jù)存儲(chǔ)的一個(gè)應(yīng)用特例。 RamToFlash(DestAddr, (uint32)SendData, 512)。 EraseSector(7,7)。 i++) { SendData[i] = i。 for(i = 0。 ? 函數(shù)主體 define DestAddr 0x00007000 int main (void) { __align(4) uint8 SendData[512]。 return(paramout[0])。 paramin[3] = no。 paramin[1] = dst。 } 設(shè)置扇區(qū)編程命令字 設(shè)置 Flash目標(biāo)地址 設(shè)置 SRAM源地址 調(diào)用 IAP服務(wù)程序 編程扇區(qū) 返回操作狀態(tài)碼 設(shè)置復(fù)制字節(jié)數(shù) 256/512/1024/4096 IAP代碼還為用戶提供了一個(gè)數(shù)據(jù)校驗(yàn)的手段 , 這樣用戶就可以不必自己動(dòng)手來校驗(yàn)寫入 Flash中的數(shù)據(jù)是否正確。 (*(void(*)())IAP_ENTER_ADR)(paramin,paramout)。 paramin[3] = no。 paramin[1] = dst。執(zhí)行編程扇區(qū)的操作時(shí), IAP函數(shù)會(huì)將 RAM中的數(shù)據(jù)拷貝到 Flash中。擦除操作一次可以擦除多個(gè)扇區(qū)。 } 設(shè)置扇區(qū)擦除命令字 設(shè)置起始扇區(qū) 設(shè)置終止扇區(qū) 調(diào)用 IAP服務(wù)程序 LPC2300片內(nèi) Flash在寫入數(shù)據(jù)前需要執(zhí)行擦除操作。 (*(void(*)())IAP_ENTER_ADR)(paramin,paramout)。 paramin[2] = sec2。 選擇扇區(qū)(可選)返回操作狀態(tài)碼 ? 片內(nèi) Flash編程步驟 確定系統(tǒng)參數(shù) 選擇扇區(qū)(可選) 擦除扇區(qū)(可選) 選擇扇區(qū) 編程扇區(qū) 校驗(yàn)數(shù)據(jù)(可選) uint32 EraseSector(uint32 sec1,uint32 sec2) { paramin[0] = IAP_ERASESECTOR。 } 設(shè)置扇區(qū)選擇命令字 設(shè)置起始扇區(qū) 設(shè)置終止扇區(qū) 調(diào)用 IAP服務(wù)程序 對某一個(gè)扇區(qū)執(zhí)行擦除、寫入等操作之前,必須先選擇該扇區(qū)。 (*(void(*)())IAP_ENTER_ADR)(paramin,paramout)。 paramin[1] = sec1。 定義 CCLK值大小, 單位為 KHz IAP入口參數(shù)緩沖區(qū) IAP出口參數(shù)緩沖區(qū) IAP入口地址定義 通過在使用 IAP代碼之前,需要定義一些常量,如系統(tǒng)時(shí)鐘、 IAP函數(shù)入口、 IAP入口緩沖區(qū)和出口緩沖區(qū)等。 ? 片內(nèi) Flash編程步驟 確定系統(tǒng)參數(shù) 選擇扇區(qū)(可選) 擦除扇區(qū)(可選) 選擇扇區(qū) 編程扇區(qū) 校驗(yàn)數(shù)據(jù)(可選) define IAP_FCCLK 48000 define IAP_ENTER_ADR 0x7FFFFFF1 uint32 paramin[8]。 片內(nèi) SRA
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1