日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

一種片外Flash存儲器IAP的方案

出處:liudewei 發(fā)布于:2007-06-04 16:24:33

 引言       
       以ARM芯片為處理器核的嵌入式應(yīng)用系統(tǒng),以其小體積、低功耗、低成本、高性能、豐富的片內(nèi)資源以及對操作系統(tǒng)的廣泛支持,得到了人們越來越多的青睞。包括工業(yè)控制領(lǐng)域、無線通信領(lǐng)域、網(wǎng)絡(luò)應(yīng)用、消費(fèi)電子、成像和安全產(chǎn)品等,如今,ARM微處理器及嵌入式技術(shù)的應(yīng)用幾乎已經(jīng)滲透到了各個領(lǐng)域。其中,ARM7作為ARM微處理器系列中的一員,是低功耗的32位RISC處理器。
       Samsung公司的S3C4510B、Philips公司的LPC20XX、LPC21XX、LPC22XX系列等都是ARM7處理器。這些為數(shù)繁多的ARM7處理器,因其片內(nèi)外設(shè)不同而各擅所長,但都應(yīng)用同樣的ARM7TDMI核(或ARM7TDMI-S核,這是ARM7TDMI的綜合版本,這兩種核對處理器應(yīng)用人員來說沒有區(qū)別)。可以說,ARM7TDM
 
I是目前使用為廣泛的32位嵌入式RISC處理器。      
       ARM7TDMI核應(yīng)用馮 ·諾依曼結(jié)構(gòu),處理器使用的存儲器中數(shù)據(jù)和程序指令不予區(qū)分,PC寄存器指向的存儲器單元,無論是ROM區(qū)還是RAM區(qū),只要符合ARM指令的格式都可以執(zhí)行,這就為系統(tǒng)自修改提供了可能。在應(yīng)用編程IA(In Application Program)就是這樣的自修改程序。它先在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。下面以Philips公司的LPC2210和Silicon Storage Technology公司的SST39VF160為例,詳細(xì)討論這種情況IAP的解決方案。       
       1 硬件結(jié)構(gòu)       
       1.1 LPC2210介紹       

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

       Silicon Storage Technology公司的SST39VF160是一個1M×16b的COMS多功能FLASH器件,單電壓的讀和寫操作,電壓范圍3.0-3.6V,提供48腳TSOP和48腳TFBGA兩種封裝形式。       
       該器件主要操作包括讀、寫編程、扇區(qū)/塊擦除和芯片擦除操作。擦除和字編程必須遵循一定的時序,表1列出了扇區(qū)擦除和字編程過程及時序。擦除或編程操作過程中讀取觸發(fā)位DQ6將得到"1"和"0"的循環(huán)跳變;而操作結(jié)束后讀DQ6,得到的是不變的固定值。這是器件提供的寫操作狀態(tài)檢測軟件方法。      
       1.3 硬件連接       
       SST39VF160作為系統(tǒng)的程序存儲器,以LPC2210的CS0作為Flash的片選信號,處理器配置Boot引腳為16位數(shù)據(jù)總線寬度后,上電可直接執(zhí)行SST39VF160中代碼。此Flash芯片為16位數(shù)據(jù)寬度,無字節(jié)控制總線,所以應(yīng)用中不使用LPC2210的BLS引腳。系統(tǒng)結(jié)構(gòu)示意圖如圖1所示。

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

點(diǎn)擊看原圖


 

       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í)踐都表明不可以。       
       先從理論上計算:LPC2210允許的芯片核工作頻率(CCLK)范圍是10-60MHz,存儲器讀訪問長度由存儲器組配置寄存器BCFG中讀訪問的長度域控制WST1控制,其可用長度為35個CCLK,而SST39VF160的扇區(qū)擦除典型時間為18ms。下面是計算算式:      
       TRDmax=RDLenmax/CCLKmin=35/10×10-6=3.5μs       
       Tp=18ms>>3.5μs      其中:TRDmax--讀訪問的時間;       
       RDLenmax--讀訪問可用長度;       
       CCLKmin--核工作時鐘頻率;      
       Tp--扇區(qū)擦除典型時間。       
算式得出扇區(qū)擦除典型時間遠(yuǎn)大于讀訪問時間。這樣一來,如果再給某FLASH寫數(shù)據(jù),同時于其中預(yù)取指,那么因Flash執(zhí)行命令期間,對其他操作不響應(yīng),預(yù)取出的必定是其數(shù)據(jù)引腳上的不確定數(shù)據(jù),預(yù)取指失敗。實(shí)踐也表現(xiàn),如果在程序執(zhí)行過程中,對同一Flash進(jìn)行扇區(qū)擦除,必定引起預(yù)取指中斷。       
       為了解決在同一Flash芯片存放程序并IAP這一問題,引進(jìn)代碼重映射的思想。所謂重映射就是代碼先自復(fù)制到制定存儲區(qū),然后跳轉(zhuǎn)到制定區(qū)的起點(diǎn)開始執(zhí)行。這里,IAP程序先自復(fù)制到LPC2210片內(nèi)SRAM中,然后跳轉(zhuǎn)到SRAM執(zhí)行IAP代碼。前面過說,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ù),返回值由寄存器R0傳遞原則,扇區(qū)擦除程序的一個參數(shù),要擦除的扇區(qū)號,由R0傳遞;返回參數(shù)置于R0,扇區(qū)擦除成功返回"1",否則返回"0"。       
       2.3 字編程       
       程序于SRAM中的PROGRAMPART起點(diǎn)開始執(zhí)行,按照SST39VF160字編程的時序要求開始編程。入口參數(shù)有三個,為編程地址、數(shù)據(jù)起始地址、編程數(shù)據(jù)長度。字編程成功返回"1",否則返回"0"。        
       3.結(jié)論       
       在嵌入式應(yīng)用系統(tǒng)中,IAP是極為有效的一種技術(shù)。根據(jù)本文提出的方案,在實(shí)際應(yīng)用中只需針對選用的Flash,更改特定的擦、寫操作代碼就可實(shí)現(xiàn)系統(tǒng)片外存儲器的在應(yīng)用編程。本文提出的IAP代碼重入到SRAM執(zhí)行的方法,有效地解決了應(yīng)用無片內(nèi)程序存儲器的32位ARM處理器的嵌入式系統(tǒng)IAP難題,有很大的應(yīng)用價值。
  
關(guān)鍵詞:一種片外Flash存儲器IAP的方案PHILIPSS3C4510BSST39VF16016C550LPC2210ARM7TDMI

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!