《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 設計基于NXP LPC2000的次級啟動加載程序用于代碼升級
設計基于NXP LPC2000的次級啟動加載程序用于代碼升級
摘要: 本文介紹了如何設計和實現一個基于NXPLPC2000的次級啟動加載程序(SecondaryBootLoader),用來對用戶代碼進行在線升級。
Abstract:
Key words :

        引言

  本文雖然是針對NXP(恩智浦公司)的LPC2000系列,但使用IAP技術對內部閃存進行編程卻適用于幾乎所有的NXP ARM MCU系列,包括Cortex-M0 LPC1100以及Cortex-M3 LPC1300/1700等系列。

  在大多數的LPC2000器件內部,存在著一個被稱為“主啟動加載程序(Primary Boot Loader)”的固件,它在每次上電或復位時被首先運行。本文所講的“次級啟動加載程序”實際上是一段用戶自己寫的代碼(燒寫在用戶閃存區),在執行完主啟動加載程序后被執行,提供給用戶一個選擇,是繼續執行當前的應用程序還是對當前應用程序進行更新。

  在應用編程(In Application Programming, IAP)是指在用戶應用程序運行時,對內部閃存執行擦除或編程操作,它是對用戶代碼進行升級的一個關鍵技術。

  LPC2000 IAP介紹

  扇區(Sector)

  IAP操作都是基于“扇區(Sector)”的,這就意味著即使僅僅需要更新一個字節的代碼,也要將該字節所在的整個扇區擦除。因此,用戶應該將待更新的代碼和其它代碼放在不同的扇區,以免誤擦除。

  IAP的應用領域

  使用IAP技術,可以對用戶代碼進行升級,也可以把內部閃存當成類似EEPROM來存儲數據。

  當用戶應用程序運行時,用戶可以對程序的一部分進行更新,就像在線升級病毒庫一樣,而不必將硬件電路斷電甚至將芯片取下來放到專門的編程器上去重新燒寫代碼。

  當數據存儲器使用,可以減少PCB板面積、降低成本。由于作為數據存儲的扇區會被擦除,因此不能將這些扇區和存放用戶應用程序的扇區重疊。另外,閃存的擦除和編程次數也是有一定限制的,過于頻繁的擦除或編程會影響閃存的壽命。對于LPC2000芯片來說,至少可以穩定擦寫十萬次,數據至少可以保存20年。

  如何使用IAP

  關于IAP的詳細說明、各種命令碼、返回碼和參數格式,可以參考LPC2000系列的用戶手冊。下面重點介紹一下如何使用IAP。

  使用流程

  圖1是使用IAP對閃存進行擦寫和編程的基本步驟。

        定義系統參數:在調用IAP命令前,有一些參數必須事先設置好,這包括系統時鐘、IAP調用的入口地址、存放輸入參數和輸出參數的變量。

  選擇扇區:在對任何扇區進行擦除或編程前,必須選擇(準備)這些扇區,當然,也可以一次選擇多個扇區。

  擦除扇區:在對閃存的指定扇區進行編程前,必須先擦除這些扇區。如果這些扇區已經被擦除,則不必再擦除了??梢砸淮螌Χ鄠€扇區進行擦除。

  編程扇區:在這個階段,數據將被從SRAM寫入閃存中的指定地址。這里有幾個要特別注意的地方:

  ● 只能將位于片內SRAM內的數據寫入片內閃存;

  ● 位于片內閃存的寫入地址必須是256字節對齊;

  ● 片內SRAM必須位于局部總線(Local Bus),這就意味著有兩塊SRAM區域(供USB和以太網使用)內的數據不能被直接寫入閃存;

  ● 一次寫入的字節數必須是256、512、1024或者4096。

  數據校驗:用戶不必自己寫程序每次對寫入的數據進行檢查,而是可以直接調用一個數據校驗的IAP命令。

  IAP過程中的中斷

  在擦除和編程操作過程中,片內閃存是不可訪問的,當用戶程序啟動執行時,用戶閃存區域的中斷向量有效。在調用擦除和編程的IAP命令前,用戶應當關閉中斷或者確保中斷向量表在SRAM中有效并且中斷處理函數也位于SM中。

  IAP使用的RAM

  IAP命令使用片內SM最頂端的32字節空間。最多使用128字節的棧空間(位于用戶分配的棧內),且為向下生長方式。

  次級啟動加載程序和用戶應用程序設計

  次級啟動加載程序

  每次上電或者復位后,次級啟動加載程序將會被運行,通過串口打印出一些選項,用戶可以選擇繼續執行應用程序或者更新程序。

  次級啟動加載程序位于內部閃存中從扇區0開始的若干個扇區內,這些扇區不能和用戶應用程序占用的扇區重疊。

  另外,由于主程序運行在ARM模式,而IAP運行在THUMB模式,因此必須做相應配置使得次級啟動加載程序里支持ARM和THUMB模式并存。

       用戶應用程序

  存儲器分布

  用戶應用程序存放在和次級啟動加載程序位置不同的的扇區中,并且占用了從0x4000 0000開始的一部分片內SM空間。

  在片內SRAM的最底部,存放了應用程序的中斷向量表。要注意在配置系統RW區域時,把這部分空間預留出來,即用戶應用程序的RW從0x4000 0040開始。

  中斷向量表重映射

  對于ARM7處理器而言,中斷向量位于從0x0000 0000到0x0000 001C的地址范圍,因此在Boot ROM和SRAM內的一小部分空間必須被映射到這個地址內,使得可以在不同的模式(參考LPC2000用戶手冊內存映射章節)下使用中斷。

  這一小段空間包括32字節的中斷向量以及額外的32字節跳轉指令,總共64字節,范圍為0x0000 0000到0x0000 003F。

  因為次級啟動加載程序的中斷向量表存在于閃存的0x0000 0000到0x0000 003F,因此用戶應用程序的中斷向量表只能被映射到片內SRAM(對于支持外部總線接口的LPC2000器件,也可以映射到片外存儲器)。在跳轉到用戶應用程序執行前,要將這64字節的數據復制到片內SRAM的底部(0x4000 0000 – 0x4000 003F),并且將系統的內存映射模式設置為“User RAM Mode”。這樣當用戶應用程序產生中斷時,系統會自動到位于SRAM的中斷向量表取中斷向量入口,而不是錯誤地跳轉到位于0x0地址處的、屬于次級啟動加載程序的中斷向量表。

  運行用戶應用程序

  更新完成后,修改PC指針,使其指向新的用戶程序的起始地址,然后開始執行。

  注意:要保證用戶應用程序能運行,必須還要做一些必要的初始化工作,包括RW區域的復制、ZI區域的清零等等,這些沒有放在次級啟動加載程序里完成,而是在用戶應用程序開始運行時首先執行。

  程序(從串口利用XMODEM協議更新代碼)上電運行時,串口將會打印出如圖4的信息。

  用戶可以測試一些IAP命令,或者選擇PROG命令更新用戶代碼,更新完成后,選擇RUN命令來執行。

 

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          日韩视频中午一区| 欧美一级视频| 欧美国产精品中文字幕| 亚洲国产成人午夜在线一区| 最新国产成人av网站网址麻豆| 欧美成人69av| 欧美一区二区三区四区在线| 欧美国产日本高清在线| 国产精品日韩精品欧美在线| 亚洲一区二区三区影院| 国产亚洲日本欧美韩国| 国产拍揄自揄精品视频麻豆| 亚洲伦理网站| 久久天堂国产精品| 麻豆成人在线| 亚洲日本国产| 国产精品人人爽人人做我的可爱| 欧美日韩精品免费观看视一区二区| 另类天堂视频在线观看| 欧美激情1区2区| 久久婷婷久久| 国产精品三级视频| 国产欧美精品日韩| 国产精品高清网站| 国产精品xxxav免费视频| 亚洲自拍都市欧美小说| 国产精品视频大全| a4yy欧美一区二区三区| 午夜亚洲伦理| 亚洲视频在线观看一区| 国产日韩在线亚洲字幕中文| 欧美激情一区二区三区蜜桃视频| 亚洲一区二区少妇| 亚洲一区二区三区免费在线观看| 亚洲综合精品四区| 亚洲激情av在线| 欧美日韩美女在线观看| 亚洲欧美一区二区三区久久| 欧美日韩成人综合天天影院| 亚洲桃花岛网站| 国产性猛交xxxx免费看久久| 国产精品资源在线观看| 欧美14一18处毛片| 欧美日韩视频免费播放| 久久国产精品网站| 亚洲成色999久久网站| 国产日韩欧美一区二区三区在线观看| 女主播福利一区| 久久久久久久综合色一本| 99爱精品视频| 久久精品一区二区三区中文字幕| 久久久噜久噜久久综合| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲精品欧美一区二区三区| 国产亚洲欧美一区| 欧美午夜片在线免费观看| 久久五月激情| 一区二区欧美在线| 亚洲欧美在线免费| 中文日韩欧美| 久久久www成人免费精品| 快播亚洲色图| 美国十次了思思久久精品导航| 午夜激情综合网| 日韩亚洲一区在线播放| 香蕉av福利精品导航| 国产精品专区h在线观看| 尤妮丝一区二区裸体视频| 欧美激情一区二区在线| 国产精品久久久久免费a∨大胸| 国产精品视频在线观看| 一区二区三区四区在线| 亚洲国产成人高清精品| 久久亚洲春色中文字幕| 欧美在现视频| 香港成人在线视频| 牛牛影视久久网| 欧美日韩国产美| 亚洲精品欧美极品| 在线一区日本视频| 国产精品电影网站| 在线观看国产欧美| 一区二区三区欧美在线| 免费高清在线视频一区·| 激情综合久久| 欧美日韩不卡在线| 国产欧美一区二区精品忘忧草| 欧美日韩国产美女| 欧美不卡一卡二卡免费版| 欧美日韩中国免费专区在线看| 久久另类ts人妖一区二区| 久久精品亚洲精品国产欧美kt∨| 欧美视频网站| 久久综合色天天久久综合图片| 性欧美xxxx大乳国产app| 国产一区日韩一区| 久久精品中文字幕免费mv| 久久成人精品| 国产在线观看一区| 免费成人在线观看视频| 欧美激情一区二区三区在线视频观看| 久久激五月天综合精品| 国产精品久久久久9999高清| 欧美精品导航| 国产亚洲欧美日韩一区二区| 极品少妇一区二区三区| 久久久久久久尹人综合网亚洲| 亚洲欧美成人一区二区在线电影| 久久蜜桃精品| 在线一区二区三区四区五区| 亚洲精品护士| 一区二区日韩伦理片| 亚洲国产另类久久久精品极度| 国产精品高潮视频| 中文成人激情娱乐网| 国产精品久久久91| 久久精品亚洲热| 一区二区三区在线不卡| 久久久久国色av免费看影院| 欧美日本二区| 久久国产视频网| 亚洲国产精品一区制服丝袜| 亚洲午夜精品17c| 午夜激情综合网| 亚洲精品一区二区三| 国内免费精品永久在线视频| 亚洲国产综合在线| 午夜日韩福利| 欧美日本视频在线| 国产女主播一区二区| 欧美成人首页| 久久精品91久久香蕉加勒比| 国产手机视频精品| 国产精品狼人久久影院观看方式| 久久夜色精品国产| 欧美精品午夜视频| 国产精品一区二区三区免费观看| 亚洲国产精品一区二区久| 久久国产精品久久久| 91久久视频| 久久久久久国产精品mv| 国产精品亚洲综合| 欧美日韩一区在线观看| 亚洲人成在线免费观看| 国产精品高精视频免费| 欧美黄色aaaa| 在线一区二区三区做爰视频网站| 美日韩精品视频免费看| 欧美一级成年大片在线观看| 免费不卡中文字幕视频| 91久久久一线二线三线品牌| 妖精视频成人观看www| 在线看视频不卡| 99re热精品| 亚洲人成网站精品片在线观看| 国产一区二区三区在线播放免费观看| 极品少妇一区二区三区精品视频| 欧美chengren| 欧美亚日韩国产aⅴ精品中极品| 欧美一区二区三区在线免费观看| 国产一区二区你懂的| 亚洲综合视频1区| 久久在线视频| 久久精品首页| 欧美大香线蕉线伊人久久国产精品| 国产精品免费视频观看| 国产欧美一区二区精品婷婷| 国产精品红桃| 久久精品视频在线免费观看| 国产精品一区二区你懂得| 亚洲日韩欧美视频一区| 国产欧美日韩亚洲精品| 欧美色欧美亚洲高清在线视频| 亚洲免费成人av电影| 欧美日韩免费观看一区二区三区| 午夜视频在线观看一区二区三区| 国产精品久久久久久久一区探花| 久久久精品国产一区二区三区| 欧美视频在线播放| 99精品欧美一区二区三区综合在线| 久久久国产亚洲精品| 国产精品视频导航| 国产精品国产三级国产普通话三级| 夜夜夜精品看看| 欧美久色视频| 亚洲看片一区| 欧美日韩精品一区视频| 午夜国产欧美理论在线播放| 欧美先锋影音| 国产日韩一区二区三区| 韩国成人理伦片免费播放| 国产精品久久久久久久久久久久久| 久久久噜噜噜久久| 性色av一区二区三区在线观看| 亚洲欧美日韩国产成人精品影院| 亚洲国产成人久久综合| 中日韩高清电影网| 国产精品卡一卡二| 狠狠色丁香久久综合频道| 亚洲国产一区二区在线| 欧美日韩直播| 亚洲国产精品ⅴa在线观看| 99人久久精品视频最新地址| 午夜精品久久久久久久久久久久久| 亚洲一区在线免费观看| 狂野欧美一区| 欧美成人免费网站| 欧美在线视频在线播放完整版免费观看| 国产精品一区二区在线观看不卡| 欧美日韩国产精品一区二区亚洲| 亚洲一区在线观看免费观看电影高清| 久久综合九色综合欧美狠狠| 欧美日本视频在线| 亚洲一区在线观看免费观看电影高清| 亚洲欧美中文在线视频| 在线观看日产精品| 国产综合亚洲精品一区二| 原创国产精品91| 国产精品九色蝌蚪自拍| 亚洲永久精品大片| 99国产精品国产精品久久| 国产欧美日韩在线视频| 国内揄拍国内精品少妇国语| 久久久水蜜桃| 午夜精品久久久久久久白皮肤| 久久婷婷久久| 国产欧美欧洲在线观看| 国产精品看片资源| 亚洲精品色婷婷福利天堂| 亚洲伦理一区| 亚洲第一免费播放区| 欧美一级午夜免费电影| 亚洲人精品午夜在线观看| 欧美剧在线免费观看网站| 亚洲午夜免费福利视频| 国产精品亚洲综合久久| 一本到高清视频免费精品| 中国成人黄色视屏| 国产精品男gay被猛男狂揉视频| 欧美一区二区三区视频| 精久久久久久| 国模精品一区二区三区| 欧美尤物巨大精品爽| 久久都是精品| 国产精品sss| 欧美日韩国产999| 亚洲视频精选| 欧美视频在线观看免费| 在线播放日韩专区| 亚洲在线黄色| 国产精品99一区二区| 国际精品欧美精品| 国产精品激情av在线播放| 国产亚洲毛片| 欧美99久久| 美女国产一区| 国产精品日韩在线一区| 欧美久久电影| 久久综合久久综合这里只有精品| 国产精品久久久久久久久久三级| 亚洲福利视频免费观看| 在线视频观看日韩| 欧美怡红院视频一区二区三区| 欧美日韩mv| 一本久久青青| 亚洲欧美日韩中文视频| 夜夜躁日日躁狠狠久久88av| 亚洲小说春色综合另类电影| 久久久水蜜桃av免费网站| 国产真实久久| 在线成人av.com| 一本色道久久综合精品竹菊| 日韩一级视频免费观看在线| 欧美成人嫩草网站| 91久久在线观看| 国产精品男人爽免费视频1| 夜夜嗨网站十八久久| 在线激情影院一区| 日韩一级片网址| 亚洲无亚洲人成网站77777| 狠狠综合久久av一区二区老牛| 一本色道久久88精品综合| 欧美日韩精品国产| 国产自产高清不卡| 亚洲精品久久久久久久久久久| 99re6这里只有精品视频在线观看| 亚洲第一精品影视| 亚洲裸体俱乐部裸体舞表演av| 亚洲日本欧美天堂| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美大片一区二区| 久久蜜桃av一区精品变态类天堂| 欧美一级视频免费在线观看| 国产精品久久久久av| 久久av一区二区三区| 欧美激情一二区| 欧美精品午夜视频| 欧美不卡三区| 国产欧美一区二区三区沐欲| 国产视频久久久久久久| 欧美激情日韩| 国产一区二区三区四区在线观看| 蜜桃久久精品乱码一区二区| 榴莲视频成人在线观看| 欧美国产视频在线观看| 欧美精品二区三区四区免费看视频| 亚洲黄色免费网站| 国产区精品视频| 美女性感视频久久久| 老司机精品福利视频| 欧美性猛交一区二区三区精品| 亚洲欧美日韩精品久久亚洲区| 国产精品视频第一区| 欧美国产极速在线| 国产精品久久久久久久久果冻传媒| 国产日韩在线不卡| 99ri日韩精品视频| 亚洲欧洲av一区二区| 欧美日本在线| 久久尤物电影视频在线观看| 亚洲精品国产日韩| 欧美激情va永久在线播放| 亚洲最新视频在线播放| 午夜在线一区二区| 欧美视频日韩| 国产人妖伪娘一区91| 亚洲自拍偷拍福利| 欧美日本韩国一区二区三区|