《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 解決方案 > ARM片外FIash存儲(chǔ)器IAP解決方案

ARM片外FIash存儲(chǔ)器IAP解決方案

2011-12-09
作者:Siliconstorage
關(guān)鍵詞: ARM 存儲(chǔ)器 Flash

引 言

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

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

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

1.1 LPC2210介紹

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

1.2 SST39VFl60介紹

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

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

1.3 硬件連接

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

 

 

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

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

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

TRDmax=RDLenmax/CCLKmin=35/10×10一6=3.5 μs

.TD=18 ms》3.5μs

其中:TRDmax—最大讀訪問(wèn)時(shí)間;

RDLenmix——最大讀訪問(wèn)可用長(zhǎng)度;

CCLKmin——最小核工作時(shí)鐘頻率;

Tp——扇區(qū)擦除典型時(shí)間。

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

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

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

2.2 扇區(qū)擦除

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

2.3 字編程

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

3 結(jié)論

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

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲区免费影片| 亚洲综合日韩在线| 99在线观看免费视频精品观看| 国产伦精品一区二区| 欧美视频在线视频| 欧美精品在线播放| 欧美xx视频| 免费成人激情视频| 美女999久久久精品视频| 久久久久久久久久久久久女国产乱 | 日韩午夜av在线| 亚洲黄色免费网站| 亚洲国产高清一区| 亚洲第一页在线| 影音先锋中文字幕一区| 激情懂色av一区av二区av| 国产一区二区三区久久| 国产三区二区一区久久| 国产欧美 在线欧美| 国产乱码精品一区二区三| 国产麻豆精品theporn| 国产欧美综合一区二区三区| 国产女主播一区二区三区| 国产欧美一级| 国产亚洲精品久久久久动| 国产三级欧美三级日产三级99| 国产女主播在线一区二区| 国产欧美日韩视频一区二区三区| 国产欧美精品一区| 国产一区二区三区四区在线观看| 国内成人自拍视频| 亚洲电影欧美电影有声小说| 亚洲人成在线观看| 一区二区国产日产| 亚洲一区三区视频在线观看| 亚洲第一精品在线| 亚洲激情视频| 日韩视频永久免费观看| 亚洲天堂久久| 午夜在线精品偷拍| 久久成人免费电影| 亚洲日本成人网| 国产精品制服诱惑| 欧美 日韩 国产精品免费观看| 美女视频黄a大片欧美| 欧美精品一区二区在线播放| 欧美日韩国产综合在线| 国产精品你懂的在线欣赏| 国产色视频一区| 亚洲高清三级视频| 中文国产成人精品| 欧美在线精品免播放器视频| 亚洲国产成人精品视频| 夜夜嗨av一区二区三区中文字幕 | 国产欧美一区二区三区在线看蜜臀| 国产亚洲欧美一区二区| 在线观看亚洲a| 亚洲精品久久久久久久久久久久久 | 99精品欧美一区二区蜜桃免费| 亚洲影院高清在线| 久久成人免费网| 欧美超级免费视 在线| 欧美日韩视频在线一区二区 | 一本大道av伊人久久综合| 一区二区三区视频观看| 欧美在线在线| 一区二区欧美视频| 久久精品国产久精国产思思| 欧美jizzhd精品欧美巨大免费| 欧美性做爰毛片| 国内精品久久久久久久97牛牛| 久久精品观看| 欧美高清视频一区二区| 国产精品乱子乱xxxx| 一区二区在线看| 亚洲天堂网在线观看| 久久精品女人| 一区二区三区精品| 久久嫩草精品久久久精品| 欧美日韩国产综合视频在线观看中文| 国产欧美日韩在线| 亚洲精品小视频| 久久成人久久爱| 亚洲新中文字幕| 狼人天天伊人久久| 国产精品入口| 日韩午夜激情电影| 亚洲电影免费在线| 午夜精品区一区二区三| 欧美激情视频在线免费观看 欧美视频免费一| 国产精品大全| 亚洲激情社区| 亚洲电影av在线| 亚洲欧美国内爽妇网| 欧美顶级少妇做爰| 黑人巨大精品欧美一区二区小视频| 亚洲深夜福利在线| 99re6热在线精品视频播放速度| 久久久久久电影| 国产精品蜜臀在线观看| 亚洲破处大片| 亚洲高清激情| 欧美专区在线观看| 国产精品久久久久9999高清 | 亚洲精品免费在线| 亚洲大片av| 久久精品国产欧美激情| 国产精品久久久| 日韩亚洲成人av在线| 亚洲日本乱码在线观看| 久久视频在线看| 国产乱码精品一区二区三| 中文亚洲免费| 中国女人久久久| 欧美日韩1区2区3区| 亚洲国产精品第一区二区| 久久精品视频在线播放| 久久国产精品高清| 国产麻豆午夜三级精品| 中文精品视频| 亚洲午夜久久久| 欧美日韩一级视频| 日韩系列欧美系列| 亚洲图中文字幕| 欧美三级欧美一级| 亚洲美女中文字幕| 亚洲视频中文| 欧美午夜精品久久久| 99re在线精品| 宅男精品视频| 欧美午夜片在线免费观看| 在线视频精品一区| 亚洲伊人伊色伊影伊综合网| 欧美日韩高清免费| 一本大道av伊人久久综合| 亚洲婷婷综合色高清在线| 欧美日韩国产色综合一二三四| 亚洲精品免费电影| 一区二区三区欧美在线| 欧美日韩视频在线一区二区观看视频| 亚洲免费黄色| 亚洲免费视频一区二区| 国产精品资源在线观看| 欧美一区二区三区免费观看视频 | 久久精品视频在线观看| 国内免费精品永久在线视频| 亚洲福利免费| 欧美黄色精品| 日韩午夜在线视频| 亚洲欧美国产va在线影院| 国产欧美日韩一区二区三区在线| 欧美一级免费视频| 免费视频亚洲| 亚洲精品孕妇| 午夜精品视频在线观看| 国产一区二区三区av电影| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美中在线观看| 国产欧亚日韩视频| 亚洲成人资源| 欧美精品啪啪| 亚洲私人影吧| 久久国产福利| 亚洲韩日在线| 亚洲欧美综合v| 韩国在线视频一区| 亚洲精品日产精品乱码不卡| 欧美日韩一区二区在线视频 | 国产精品高精视频免费| 欧美亚洲网站| 男人的天堂亚洲| 一区二区三区国产盗摄| 久久精精品视频| 最新国产乱人伦偷精品免费网站 | 亚洲性xxxx| 国内精品视频666| 夜夜嗨av一区二区三区| 国产伦精品一区二区三区免费| 久久精品视频亚洲| 欧美日本韩国在线| 校园春色国产精品| 欧美金8天国| 香蕉av777xxx色综合一区| 欧美激情按摩| 午夜一区二区三视频在线观看| 欧美激情视频一区二区三区不卡| 亚洲一级高清| 米奇777超碰欧美日韩亚洲| 亚洲视频一起| 免费成人av在线看| 亚洲欧美在线一区二区| 欧美精品色综合| 欧美亚洲一区二区三区| 欧美片第1页综合| 欧美一区二区三区播放老司机| 欧美日韩亚洲综合在线| 亚洲福利国产| 国产欧美va欧美va香蕉在| 一区二区三区国产在线| 国产一区二区三区四区老人|