《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > ARM片外Flash存儲器IAP解決辦法
ARM片外Flash存儲器IAP解決辦法
摘要: 以ARM芯片為處理器核的嵌入式應(yīng)用系統(tǒng),以其小體積、低功耗、低成本、高性能、豐富的片內(nèi)資源以及對操作系統(tǒng)的廣泛支持,得到了人們越來越多的青睞。在應(yīng)用編程IAP就是這樣的自修改程序。
關(guān)鍵詞: ARM Flash存儲器 IAP
Abstract:
Key words :

 0 引 言

 

  以ARM芯片為處理器核的嵌入式應(yīng)用系統(tǒng),以其小體積、低功耗、低成本、高性能、豐富的片內(nèi)資源以及對操作系統(tǒng)的廣泛支持,得到了人們越來越多的青睞。在應(yīng)用編程IAP(InApplicatAiONProgram)就是這樣的自修改程序。它先在RAM存儲器中寫人數(shù)據(jù)值,然后使PC指向該存儲段,把該段作為程序段來執(zhí)行。很多ARM7芯片自帶IAP處理器,應(yīng)用其自帶的IAP處理器可以方便地對其片內(nèi)集成的Flash存儲器進(jìn)行在應(yīng)用編程,但幾乎所有的ARM核芯片均不支持片外IAP處理,因?yàn)槠釬lash存儲器是用戶選型的,芯片生產(chǎn)廠家無法先知先覺,而不同F(xiàn)lash存儲器其編程時序也不盡相同,導(dǎo)致芯片生產(chǎn)廠家無法提供通用的IAP代碼。那么,如何對嵌入式系統(tǒng)的片外Flash存儲器進(jìn)行在應(yīng)用編程呢?這里分兩種情況:一是普通代碼存放在片外單獨(dú)1片F(xiàn)lash中,IAP代碼在另一片F(xiàn)lash中完成,此時只要依據(jù)Flash的操作時序執(zhí)行IAP代碼,完成擦除或?qū)懭氩僮骷纯伞_@種情況雖然簡單,但應(yīng)用了2片F(xiàn)lash;而IAP代碼很小,一般完全可以集成到1片中,所以這里對這種情況不予考慮。另一種情況是1片F(xiàn)lash中既要存儲普通代碼,又要實(shí)現(xiàn)IAP。

  針對嵌入式應(yīng)用系統(tǒng)片外Flash存儲器IAP無現(xiàn)成方案的問題,介紹一種基于代碼重入思想的片外存儲器IAP解決方案。結(jié)合LPC2210及SST39VFl60芯片,簡介兩款芯片特點(diǎn),給出應(yīng)用連接框圖;分析IAP實(shí)現(xiàn)要點(diǎn),并給出IAP的實(shí)現(xiàn)代碼。下面以Phnips公司的LPC2210 和 Silicon storageTechnology 公司的SST39VFl60為例,詳細(xì)討論這種情況IAP的解決方案。

 

  1 硬件結(jié)構(gòu)

 

  1.1 LPC2210介紹

  Philips公司的LPC22lO是一款基于支持實(shí)時仿真和嵌入式跟蹤的16/32位ARM7TDMI-SCPU的微控制器。芯片采用144腳封裝,有16 KB片內(nèi)靜態(tài)RAM,開放外部總線;通過外部存儲器接口可將外部存儲器配置成4組,每組的容量高達(dá)16 Mb,數(shù)據(jù)寬度8/16/32位均可;具有多個32位定時器、8路lO位PWM輸出、多個串行接口(包括2個16C550工業(yè)標(biāo)準(zhǔn)UART、高速I2C接口和2個sPI接口)以及9個外部中斷、多達(dá)76個可承受5 V電壓的通用I/O口,同時內(nèi)嵌實(shí)時時鐘和看門狗,片內(nèi)外設(shè)功能豐富強(qiáng)大;片內(nèi)晶振頻率范圍l~30 MHz,通過片內(nèi)PLL可實(shí)現(xiàn)最大為60 MHz的CPU工作頻率,具有2種低功耗模式——空閑和掉電,通過外部中斷將處理器從掉電模式中喚醒,并可通過個別使能/禁止外部功能來優(yōu)化功耗。以上特性,使其特別適用于工業(yè)控制、醫(yī)療系統(tǒng)、訪問控制和POS機(jī),同時也非常適合于通信網(wǎng)關(guān)協(xié)議轉(zhuǎn)換器,嵌入式軟Modem,以及其他各種類型的應(yīng)用。

  1.2 SST39VFl60介紹

  SILICON StoraLge Technology公司的SST39VFl60是一個lM×16b的CMOS多功能Flash器件,單電壓的讀和寫操作,電壓范圍3.O~3.6 V,提供48腳TSOP和48腳TFBGA兩種封裝形式。

  該器件主要操作包括讀、字編程、扇區(qū)/塊擦除和芯片擦除操作。擦除和字編程必須遵循一定的時序,表l列出了扇區(qū)擦除和字編程過程及時序。擦除或編程操作過程中讀取觸發(fā)位DQ6將得到“1”和“O”的循環(huán)跳變;而操作結(jié)束后讀DQ6,得到的是不變的固定值。這是器件提供的寫操作狀態(tài)檢測軟件方法。

  1.3 硬件連接

  SST39VF160作為系統(tǒng)的程序存儲器,以LPC2210的CSO作為Flash的片選信號,處理器配置Boot引腳為16位數(shù)據(jù)總線寬度后,上電可直接執(zhí)行SST39VFl60中代碼。此Flash芯片為16位數(shù)據(jù)寬度,無字節(jié)控制總線,所以應(yīng)用中不使用LPC2210的BLS引腳。系統(tǒng)結(jié)構(gòu)示意圖如圖1所示。

 

  系統(tǒng)結(jié)構(gòu)示意圖

 

  2 軟件實(shí)現(xiàn)

 

  2.1 IAP實(shí)現(xiàn)要點(diǎn)分析

  在嵌入式應(yīng)用系統(tǒng)中,通常要求記錄一些現(xiàn)場的傳感、交互輸入數(shù)據(jù),通常把數(shù)據(jù)記錄在Flash存儲器中,以便下次上電能獲取以前的數(shù)據(jù)。如果系統(tǒng)程序和數(shù)據(jù)分開存儲,那么只要對存放數(shù)據(jù)的Flash器件進(jìn)行編程即可。然而大多數(shù)嵌入式系統(tǒng),程序和需保存的數(shù)據(jù)都共存于同一Flash存儲器中,那么是否也如前所述,可對Flash存儲器直接編程呢?理論和實(shí)踐都表明不可以。先從理論上計算:LPC22lO允許的芯片核工作頻率(CCLK)范圍是10~60 MHz,存儲器讀訪問長度由存儲器組配置寄存器BCFG中讀訪問的長度域控制WSTl控制,其最大可用長度為35個CCLK,而SST39VFl60的扇區(qū)擦除典型時間為18 ms。下面是計算算式:

  TRDmax=RDLenmax/CCLKmin=35/10×10一6=3.5 μs.TD=18 ms》3.5μs其中:TRDmax—最大讀訪問時間;RDLenmix——最大讀訪問可用長度;CCLKmin——最小核工作時鐘頻率;Tp——扇區(qū)擦除典型時間。

  算式得出扇區(qū)擦除典型時間遠(yuǎn)大于最大讀訪問時間。這樣一來,如果再給某Flash寫數(shù)據(jù),同時于其中預(yù)取指,那么因F1ash在執(zhí)行命令期間,對其他操作不響應(yīng),預(yù)取出的必定是其數(shù)據(jù)引腳上的不確定數(shù)據(jù),預(yù)取指失敗。實(shí)踐也表明,如果在程序執(zhí)行過程中,對同一Flash進(jìn)行扇區(qū)擦除,必定引起預(yù)取指中斷。

  為了解決在同一Flash芯片存放程序并IAP這一問題,引進(jìn)代碼重映射的思想。所謂重映射就是代碼先自復(fù)制到指定存儲區(qū),然后跳轉(zhuǎn)到指定區(qū)的起點(diǎn)開始執(zhí)行。這里,lAP程序先自復(fù)制到LPC2210片內(nèi)SRAM中,然后跳轉(zhuǎn)到SRAM執(zhí)行l(wèi)AP代碼。前面說過,ARM7為馮·諾依曼結(jié)構(gòu),這就為IAP程序重映射提供了可能。

  編寫可重映射代碼的關(guān)鍵是要解決程序中相對偏移的問題,ARM7指令系列中涉及相對偏移的指令主要有LDR/STR以及跳轉(zhuǎn)指令。這里的解決方案是:凡涉及偏移值的指令通通采用基址變址尋址方式,以PC寄存器作基址寄存器,以立即數(shù)為變址,這樣當(dāng)程序塊整塊移動時,要加載的數(shù)據(jù)或跳轉(zhuǎn)的地址與當(dāng)前Pc值的偏移值固定,解決了相對偏移問題。

  2.2 扇區(qū)擦除

  事先編程在Flash中的程序先自復(fù)制到SRAM指定的位置,然后,賦PC為SRAM中扇區(qū)編程代碼段的起點(diǎn)ERASEPART。程序于SRAM中的ERASEPART起點(diǎn)開始執(zhí)行,按照SST39VF160扇區(qū)擦除的時序要求開始擦除。按照ARM公司提出的ATPCS規(guī)定,C語言程序調(diào)用匯編程序時,寄存器R0一R3傳遞參數(shù),返回值由寄存器RO傳遞原則,扇區(qū)擦除程序的一個參數(shù),要擦除的扇區(qū)號,由RO傳遞;返回參數(shù)置于R0,扇區(qū)擦除成功返回“1”,否則返回“0”。

  2.3 字編程

  程序于SRAM中的PROGRAMPART起點(diǎn)開始執(zhí)行,按照SST39VFl60字編程的時序要求開始編程。入口參數(shù)有三個,依次為編程地址、數(shù)據(jù)起始地址、編程數(shù)據(jù)長度。字編程成功返回“1”,否則返回“0”。

 

  3 結(jié)論

 

  文中提出的IAP代碼重入到SR—kM執(zhí)行的方法,有效地解決了應(yīng)用無片內(nèi)程序存儲器的32位ARM處理器的嵌入式系統(tǒng)IAP難題,有很大的應(yīng)用價值。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
日韩手机在线导航| 久久精品水蜜桃av综合天堂| 午夜视频在线观看一区二区三区| 亚洲精品网址在线观看| 亚洲国产精品一区二区三区| 一区二区三区我不卡| 国产视频精品网| 国产精品一区在线观看你懂的| 欧美日韩三级一区二区| 欧美激情视频免费观看| 欧美激情影音先锋| 欧美激情亚洲国产| 欧美精品aa| 欧美日韩免费视频| 欧美女激情福利| 欧美区国产区| 欧美日韩精品一区二区三区| 欧美精品观看| 欧美久久久久久蜜桃| 欧美久久九九| 国产精品成人一区二区艾草| 国产精品成人免费精品自在线观看| 欧美日韩精品在线视频| 欧美三区美女| 国产精品久久久久7777婷婷| 国产精品视频在线观看| 国产精品亚洲美女av网站| 国产精品影视天天线| 国产婷婷一区二区| 狠狠色综合色综合网络| 一区二区三区在线看| 亚洲国产专区校园欧美| 日韩图片一区| 中文高清一区| 亚洲淫片在线视频| 欧美在线视频免费播放| 久久精品一区二区三区中文字幕| 亚洲国产精品美女| 99这里只有久久精品视频| 一本色道久久综合亚洲精品高清| 亚洲午夜在线| 欧美一区视频| 猛干欧美女孩| 欧美日韩综合视频| 国产麻豆精品视频| 影音国产精品| 一道本一区二区| 午夜精品久久久久99热蜜桃导演| 久久精品99久久香蕉国产色戒| 亚洲国产高清在线| 亚洲视频导航| 久久久久9999亚洲精品| 欧美国产日韩一区二区三区| 欧美视频中文字幕| 国产亚洲欧美日韩在线一区| 亚洲国产另类久久久精品极度| 一区二区三区四区五区在线 | 亚洲午夜在线观看| 久久精品国产77777蜜臀| 99视频精品全部免费在线| 欧美一级在线播放| 女女同性精品视频| 国产精品久久久久9999吃药| 一区视频在线| 亚洲性色视频| 亚洲精品国产精品国自产观看| 亚洲一区欧美| 蜜桃久久av| 国产精品久久久久影院色老大| 狠狠色综合色综合网络| 一区二区三区精品国产| 亚洲欧洲在线看| 亚洲女人小视频在线观看| 男女激情视频一区| 国产日韩欧美在线播放不卡| 亚洲精品一区二区在线| 欧美影院一区| 亚洲欧美日韩国产综合精品二区| 欧美电影在线播放| 国产午夜精品视频| 一区二区三区久久久| 亚洲三级免费| 久久久精品999| 国产精品免费电影| 亚洲精品久久久久久久久| 久久精品亚洲国产奇米99| 亚洲欧美日韩在线观看a三区| 欧美福利一区二区| 国产一区二区三区久久久| 亚洲视频一起| 一区二区av| 女同一区二区| 韩国一区电影| 午夜电影亚洲| 亚洲一区视频| 欧美日韩国产在线观看| 在线成人欧美| 亚洲丶国产丶欧美一区二区三区| 午夜精品久久久久| 欧美日韩在线影院| 亚洲精品一区二| 亚洲精品国产拍免费91在线| 久久三级福利| 国产日韩综合| 亚洲一区二区三区午夜| 亚洲午夜在线视频| 欧美日韩精品一本二本三本| 亚洲国语精品自产拍在线观看| 亚洲电影免费观看高清完整版在线观看 | 久久精品视频免费| 欧美在线播放视频| 国产精品视频区| 亚洲一区综合| 亚洲女ⅴideoshd黑人| 欧美日韩调教| av成人免费在线观看| 一区二区日韩伦理片| 欧美日韩精品在线播放| 99精品国产福利在线观看免费| 一本不卡影院| 欧美日韩成人一区二区| 日韩视频免费观看高清完整版| 亚洲卡通欧美制服中文| 欧美精品v国产精品v日韩精品| 亚洲激情视频在线播放| 亚洲毛片av在线| 欧美激情区在线播放| 亚洲精品少妇30p| 正在播放欧美一区| 欧美午夜电影网| 亚洲一区自拍| 久久久91精品国产一区二区精品| 国产亚洲精品美女| 久久国产精品99国产| 久久夜色精品国产亚洲aⅴ | 亚洲国产精品123| 免费欧美在线视频| 亚洲欧洲日本一区二区三区| 99视频国产精品免费观看| 欧美日韩一区二区三区在线| 在线亚洲+欧美+日本专区| 香蕉成人久久| 韩日成人在线| 亚洲精品在线观看免费| 欧美日韩美女在线| 亚洲网址在线| 久久精品理论片| 影音先锋日韩有码| 一本色道久久综合狠狠躁的推荐| 欧美午夜理伦三级在线观看| 亚洲自啪免费| 久久久青草青青国产亚洲免观| 一区二区自拍| 亚洲天堂成人在线观看| 国产精品一区视频网站| 亚洲国产精品综合| 欧美天堂亚洲电影院在线观看| 亚洲欧美日韩国产综合| 久久免费的精品国产v∧| 亚洲国产精品一区二区www| 亚洲一本大道在线| 国产一区二区精品在线观看| 亚洲国内高清视频| 欧美日韩精品国产| 欧美伊人久久久久久午夜久久久久| 毛片一区二区三区| 一本久久a久久免费精品不卡| 久久精品欧美| 亚洲肉体裸体xxxx137| 欧美一级淫片播放口| 亚洲国产另类久久精品| 午夜视频在线观看一区二区| 韩国成人福利片在线播放| 夜久久久久久| 国产最新精品精品你懂的| 一本色道久久综合一区| 国产婷婷色一区二区三区四区 | 99香蕉国产精品偷在线观看| 国产欧美日韩一区二区三区在线观看| 亚洲激情社区| 国产精品一国产精品k频道56| 亚洲国产天堂久久综合网| 国产精品高潮在线| 最新69国产成人精品视频免费| 国产精品xxxxx| 亚洲精品九九| 国产日韩一区欧美| 亚洲视频视频在线| 曰本成人黄色| 午夜在线视频观看日韩17c| 在线观看日韩av先锋影音电影院| 亚洲午夜一级| 亚洲黄色毛片| 久久香蕉精品| 亚洲欧美精品suv| 欧美日韩一本到| 91久久精品国产91久久性色| 国产色综合天天综合网| 亚洲一区二区三区精品动漫| 亚洲国产精品视频一区|