《電子技術應用》
您所在的位置:首頁 > 微波|射頻 > 設計應用 > 片外FIash存儲器IAP的n種方案
片外FIash存儲器IAP的n種方案
摘要: 針對嵌入式應用系統片外Flash存儲器IAP無現成方案的問題,介紹一種基于代碼重入思想的片外存儲器IAP解決方案。結合LPC2210及SST39VFl60芯片,簡介兩款芯片特點,給出應用連接框圖;分析IAP實現要點,并給出IAP的實現代碼。
Abstract:
Key words :

   
    引 言
    
    以ARM芯片為處理器核的嵌入式應用系統,以其小體積、低功耗、低成本、高性能、豐富的片內資源以及對操作系統的廣泛支持,得到了人們越來越多的青睞。包括工業控制領域、無線通信領域、網絡應用、消費電子、成像和安全產品等,如今,ARM微處理器及嵌入式技術的應用幾乎已經滲透到了各個領域。其中ARM7作為ARM微處理器系列中的一員,是低功耗的32位RISC處理器。Samsung公司的S3C4510B、Philips公司的LPC20XX、LPC21XX、LPC22XX系列等都是ARM7處理器。這些為數繁多的ARM7處理器,因其片內外設不同而各擅所長,但都應用同樣的ARM7TDMI核(或ARM7TDMI—S核,這是ARM7TDMI的綜合版本,這兩種核對處理器應用人員來說沒有區別)。可以說,ARM7TDMI是目前使用最為廣泛的32位嵌入式RIsc處理器。ARM7TDMI核應用馮·諾依曼結構,處理器使用的存儲器中數據和程序指令不予區分,PC寄存器指向的存儲器單元,無論是ROM區還是RAM區,只要符合ARM指令的格式都可以執行,這就為系統自修改提供了可能。在應用編程IAP(InApplicatAion Program)就是這樣的自修改程序。它先在RAM存儲器中寫人數據值,然后使PC指向該存儲段,把該段作為程序段來執行。很多ARM7芯片自帶IAP處理器,應用其自帶的IAP處理器可以方便地對其片內集成的Flash存儲器進行在應用編程,但幾乎所有的ARM核芯片均不支持片外IAP處理,因為片外Flash存儲器是用戶選型的,芯片生產廠家無法先知先覺,而不同Flash存儲器其編程時序也不盡相同,導致芯片生產廠家無法提供通用的IAP代碼。那么,如何對嵌入式系統的片外Flash存儲器進行在應用編程呢?這里分兩種情況:一是普通代碼存放在片外單獨1片Flash中,IAP代碼在另一片Flash中完成,此時只要依據Flash的操作時序執行IAP代碼,完成擦除或寫入操作即可。這種情況雖然簡單,但應用了2片Flash;而IAP代碼很小,一般完全可以集成到1片中,所以這里對這種情況不予考慮。另一種情況是1片Flash中既要存儲普通代碼,又要實現IAP。下面以Phnips公司的LPC2210 和 Silicon storage Technology 公司的SST39VFl60為例,詳細討論這種情況IAP的解決方案。
    
    1 硬件結構
    
    1.1 LPC2210介紹
    
    Philips公司的LPC22lO是一款基于支持實時仿真和嵌入式跟蹤的16/32位ARM7TDMI-SCPU的微控制器。芯片采用144腳封裝,有16 KB片內靜態RAM,開放外部總線;通過外部存儲器接口可將外部存儲器配置成4組,每組的容量高達16 Mb,數據寬度8/16/32位均可;具有多個32位定時器、8路lO位PWM輸出、多個串行接口(包括2個16C550工業標準UART、高速I2C接口和2個sPI接口)以及9個外部中斷、多達76個可承受5 V電壓的通用I/O口,同時內嵌實時時鐘和看門狗,片內外設功能豐富強大;片內晶振頻率范圍l~30 MHz,通過片內PLL可實現最大為60 MHz的CPU工作頻率,具有2種低功耗模式——空閑和掉電,通過外部中斷將處理器從掉電模式中喚醒,并可通過個別使能/禁止外部功能來優化功耗。以上特性,使其特別適用于工業控制、醫療系統、訪問控制和POS機,同時也非常適合于通信網關協議轉換器,嵌入式軟Modem,以及其他各種類型的應用。
    
    1.2 SST39VFl60介紹
    
    Silicon StoraLge Technology公司的SST39VFl60是一個lM×16b的CMOS多功能Flash器件,單電壓的讀和寫操作,電壓范圍3.O~3.6 V,提供48腳TSOP和48腳TFBGA兩種封裝形式。
    
    該器件主要操作包括讀、字編程、扇區/塊擦除和芯片擦除操作。擦除和字編程必須遵循一定的時序,表l列出了扇區擦除和字編程過程及時序。擦除或編程操作過程中讀取觸發位DQ6將得到“1”和“O”的循環跳變;而操作結束后讀DQ6,得到的是不變的固定值。這是器件提供的寫操作狀態檢測軟件方法。
    
    
    1.3 硬件連接
    SST39VF160作為系統的程序存儲器,以LPC2210的CSO作為Flash的片選信號,處理器配置Boot引腳為16位數據總線寬度后,上電可直接執行SST39VFl60中代碼。此Flash芯片為16位數據寬度,無字節控制總線,所以應用中不使用LPC2210的BLS引腳。系統結構示意圖如圖l所示。
     
    
     
    2 軟件實現
    
    2.1 IAP實現要點分析
    
    在嵌入式應用系統中,通常要求記錄一些現場的傳感、交互輸入數據,通常把數據記錄在Flash存儲器中,以便下次上電能獲取以前的數據。如果系統程序和數據分開存儲,那么只要對存放數據的Flash器件進行編程即可。然而大多數嵌入式系統,程序和需保存的數據都共存于同一Flash存儲器中,那么是否也如前所述,可對Flash存儲器直接編程呢?理論和實踐都表明不可以。先從理論上計算:LPC22lO允許的芯片核工作頻率(CCLK)范圍是10~60 MHz,存儲器讀訪問長度由存儲器組配置寄存器BCFG中讀訪問的長度域控制WSTl控制,其最大可用長度為35個CCLK,而SST39VFl60的扇區擦除典型時間為18 ms。下面是計算算式:
    
    TRDmax=RDLenmax/CCLKmin=35/10×10一6=3.5 μs
    
    .TD=18 ms》3.5μs
    
    其中:TRDmax—最大讀訪問時間;
    
    RDLenmix——最大讀訪問可用長度;
    
    CCLKmin——最小核工作時鐘頻率;
    
    Tp——扇區擦除典型時間。
    
    算式得出扇區擦除典型時間遠大于最大讀訪問時間。這樣一來,如果再給某Flash寫數據,同時于其中預取指,那么因F1ash在執行命令期間,對其他操作不響應,預取出的必定是其數據引腳上的不確定數據,預取指失敗。實踐也表明,如果在程序執行過程中,對同一Flash進行扇區擦除,必定引起預取指中斷。
    
    為了解決在同一Flash芯片存放程序并IAP這一問題,引進代碼重映射的思想。所謂重映射就是代碼先自復制到指定存儲區,然后跳轉到指定區的起點開始執行。這里,lAP程序先自復制到LPC2210片內SRAM中,然后跳轉到SRAM執行lAP代碼。前面說過,ARM7為馮·諾依曼結構,這就為IAP程序重映射提供了可能。
    
    編寫可重映射代碼的關鍵是要解決程序中相對偏移的問題,ARM7指令系列中涉及相對偏移的指令主要有LDR/STR以及跳轉指令。這里的解決方案是:凡涉及偏移值的指令通通采用基址變址尋址方式,以PC寄存器作基址寄存器,以立即數為變址,這樣當程序塊整塊移動時,要加載的數據或跳轉的地址與當前Pc值的偏移值固定,解決了相對偏移問題。
    
    2.2 扇區擦除
    
    事先編程在Flash中的程序先自復制到SRAM指定的位置,然后,賦PC為SRAM中扇區編程代碼段的起點ERASEPART。程序于SRAM中的ERASEPART起點開始執行,按照SST39VF160扇區擦除的時序要求開始擦除。按照ARM公司提出的ATPCS規定,C語言程序調用匯編程序時,寄存器R0一R3傳遞參數,返回值由寄存器RO傳遞原則,扇區擦除程序的一個參數,要擦除的扇區號,由RO傳遞;返回參數置于R0,扇區擦除成功返回“1”,否則返回“0”。
    
    2.3 字編程
    
    程序于SRAM中的PROGRAMPART起點開始執行,按照SST39VFl60字編程的時序要求開始編程。入口參數有三個,依次為編程地址、數據起始地址、編程數據長度。字編程成功返回“1”,否則返回“0”。
    
    3 結論
    
    在嵌入式應用系統中,IAP是極為有效的一種技術。根據本文提出的方案,在實際應用中只需針對選用的Flash,更改特定的擦、寫操作代碼就可實現系統片外存儲器的在應用編程。文中提出的IAP代碼重入到SR—kM執行的方法,有效地解決了應用無片內程序存儲器的32位ARM處理器的嵌入式系統IAP難題,有很大的應用價值。


 

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲欧美一级二级三级| 亚洲精品小视频| 亚洲国产欧美在线人成| 国产日韩欧美综合精品| 欧美午夜在线观看| 欧美日韩人人澡狠狠躁视频| 欧美国产亚洲精品久久久8v| 欧美成年人视频网站欧美| 久久在线播放| 久久中文欧美| 另类av一区二区| 美女91精品| 欧美a级一区二区| 欧美黑人国产人伦爽爽爽| 欧美粗暴jizz性欧美20| 你懂的网址国产 欧美| 麻豆精品网站| 欧美岛国在线观看| 欧美精品在线观看| 欧美婷婷在线| 国产精品免费一区二区三区在线观看| 国产精品久久激情| 国产九九视频一区二区三区| 国产欧美一区二区三区在线老狼| 国产日韩欧美成人| 狠狠干综合网| 亚洲激情国产| 一区二区三区四区五区视频| 亚洲午夜精品一区二区| 亚洲免费综合| 久久精品99国产精品| 亚洲电影在线看| 亚洲乱码一区二区| 亚洲一区二区视频| 性亚洲最疯狂xxxx高清| 久久久免费精品| 欧美韩国日本一区| 欧美色图首页| 国产欧美亚洲日本| 一区福利视频| 亚洲美女一区| 亚洲欧美国产精品桃花| 久久精品1区| 一区二区三区黄色| 性欧美xxxx大乳国产app| 久久久久久网| 欧美日韩1区2区| 国产精品综合网站| 在线观看欧美激情| 国产精品99久久久久久久vr| 欧美一区国产在线| 一区二区三区欧美日韩| 欧美一区二区三区免费视| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美连裤袜在线视频| 国产精品网站一区| 在线观看精品一区| 亚洲午夜电影在线观看| 久久精品国产精品亚洲综合| 日韩亚洲国产精品| 欧美一区二区观看视频| 欧美α欧美αv大片| 国产精品久久久久久久app| 黄色精品一二区| 亚洲视频一区在线观看| 亚洲韩国青草视频| 午夜精品一区二区在线观看| 麻豆av一区二区三区| 国产精品www色诱视频| 激情综合激情| 亚洲欧美成人在线| 亚洲精品中文字幕女同| 性欧美精品高清| 欧美日韩国产经典色站一区二区三区| 国产日韩免费| 夜夜爽99久久国产综合精品女不卡| 久久精品国产2020观看福利| 亚洲性线免费观看视频成熟| 蜜桃av噜噜一区二区三区| 国产精品一区二区女厕厕| 亚洲精品免费电影| 久久精品国产亚洲一区二区三区| 亚洲网站在线| 欧美成人蜜桃| 国内精品国产成人| 亚洲图片在线观看| 一区二区欧美亚洲| 免费观看日韩av| 国产一区美女| 亚洲一区国产视频| 在线一区二区三区做爰视频网站| 麻豆国产精品va在线观看不卡| 国产九区一区在线| 一区二区三区av| 亚洲裸体视频| 免费不卡在线视频| 国产亚洲一二三区| 亚洲一区二区综合| 亚洲一区二区在线观看视频| 欧美国产精品一区| 伊人成人在线视频| 久久精品91| 久久久国产91| 国产日韩免费| 先锋影音国产一区| 欧美在线观看日本一区| 国产精品久久久久久影视 | 国产亚洲一区二区三区在线观看 | 亚洲男女毛片无遮挡| 欧美激情综合色综合啪啪| 在线欧美小视频| 亚洲黄色性网站| 看欧美日韩国产| 韩日欧美一区二区| 久久大综合网| 久久亚洲精品中文字幕冲田杏梨| 国产午夜精品理论片a级探花| 亚洲欧美中文另类| 欧美一区综合| 国产日韩欧美高清免费| 午夜宅男欧美| 久久裸体视频| 伊伊综合在线| 亚洲精品日韩在线观看| 欧美国产第一页| 亚洲日本va午夜在线电影| 一区二区久久久久久| 欧美日韩直播| 亚洲桃色在线一区| 午夜久久久久久| 国产亚洲激情视频在线| 久久精品首页| 欧美1区2区| 日韩视频不卡中文| 亚洲欧美日韩精品久久亚洲区| 国产精品美女主播| 欧美亚洲综合另类| 蜜桃av一区二区在线观看| 91久久黄色| 亚洲综合好骚| 国产亚洲欧洲| 亚洲日本乱码在线观看| 欧美日韩在线亚洲一区蜜芽| 亚洲免费视频一区二区| 久久久久久精| 亚洲人成网站999久久久综合| 夜夜精品视频| 国产精品国产馆在线真实露脸 | 午夜日韩在线| 国产一区二区三区的电影 | 午夜精品一区二区三区在线播放| 久久久久九九九九| 亚洲福利视频一区二区| 一区二区三欧美| 国产精品综合不卡av| 亚洲国产欧美一区二区三区同亚洲 | 狠狠88综合久久久久综合网| 日韩系列在线| 国产精品网红福利| 91久久国产综合久久蜜月精品| 欧美日韩你懂的| 欧美在线三区| 欧美日韩国产精品一卡| 午夜精品一区二区三区电影天堂| 欧美不卡三区| 亚洲欧美成人| 欧美精品免费看| 香蕉成人久久| 欧美日韩国产二区| 久久成人这里只有精品| 欧美日韩影院| 久久精品视频免费播放| 欧美体内谢she精2性欧美| 亚洲福利视频在线| 国产精品v日韩精品v欧美精品网站| 亚洲成在人线av| 欧美午夜电影一区| 91久久精品美女高潮| 国产九九精品| 亚洲视频精选| 尤物精品国产第一福利三区 | 欧美极品色图| 亚洲欧美日韩在线| 欧美精品日日鲁夜夜添| 午夜在线精品偷拍| 欧美日韩国产免费| 久久精品盗摄| 国产精品腿扒开做爽爽爽挤奶网站 | 一本色道久久综合亚洲精品婷婷 | 国产精品一区亚洲| 99国内精品| 韩国在线一区| 亚洲欧美日韩在线| 亚洲精品激情| 麻豆91精品| 欧美亚洲视频在线观看| 国产精品www网站| 亚洲精品国精品久久99热| 国产一区视频在线看| 亚洲综合精品一区二区|