国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

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

發布時間:2010-7-15 15:50    發布者:zealot
關鍵詞: Flash , IAP , 存儲器 , 片外
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指令的格式都可以執行,這就為系統自修改提供了可能。在應用編程IA(In Application 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。下面以Philips公司的LPC2210和Silicon Storage Technology公司的SST39VF160為例,詳細討論這種情況IAP的解決方案。        

1 硬件結構        

1.1 LPC2210介紹        

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

1.2 SST39VF160介紹   

Silicon Storage Technology公司的SST39VF160是一個1M×16b的COMS多功能FLASH器件,單電壓的讀和寫操作,電壓范圍3.0-3.6V,提供48腳TSOP和48腳TFBGA兩種封裝形式。        

該器件主要操作包括讀、寫編程、扇區/塊擦除和芯片擦除操作。擦除和字編程必須遵循一定的時序,表1列出了扇區擦除和字編程過程及時序。擦除或編程操作過程中讀取觸發位DQ6將得到"1"和"0"的循環跳變;而操作結束后讀DQ6,得到的是不變的固定值。這是器件提供的寫操作狀態檢測軟件方法。      

1.3 硬件連接
      
SST39VF160作為系統的程序存儲器,以LPC2210的CS0作為Flash的片選信號,處理器配置Boot引腳為16位數據總線寬度后,上電可直接執行SST39VF160中代碼。此Flash芯片為16位數據寬度,無字節控制總線,所以應用中不使用LPC2210的BLS引腳。系統結構示意圖如圖1所示。


2.軟件實現        

2.1 IAP實現要點分析
        

在嵌入式應用系統中,通常要求記錄一些現場的傳感、交互輸入數據,通常把數據記錄在Flash存儲器中,以 便下次上電能獲得以前的數據。如果系統程序和數據分開存儲。那么只要對存放數據的Flash器件進行編程即可。然而大多數嵌入式系統,程序和需保存的數據都共存于同一Flash存儲器中,那么是否也如前所述,可對Flash存儲器直接編程呢?理論和實踐都表明不可以。        

先從理論上計算:LPC2210允許的芯片核工作頻率(CCLK)范圍是10-60MHz,存儲器讀訪問長度由存儲器組配置寄存器BCFG中讀訪問的長度域控制WST1控制,其最大可用長度為35個CCLK,而SST39VF160的扇區擦除典型時間為18ms。下面是計算算式:      

TRDmax=RDLenmax/CCLKmin=35/10×10-6=3.5μs        
Tp=18ms>>3.5μs      其中:TRDmax--最大讀訪問的時間;        
RDLenmax--最大讀訪問可用長度;        
CCLKmin--最小核工作時鐘頻率;      
Tp--扇區擦除典型時間。     
   
算式得出扇區擦除典型時間遠大于最大讀訪問時間。這樣一來,如果再給某FLASH寫數據,同時于其中預取指,那么因Flash執行命令期間,對其他操作不響應,預取出的必定是其數據引腳上的不確定數據,預取指失敗。實踐也表現,如果在程序執行過程中,對同一Flash進行扇區擦除,必定引起預取指中斷。        
      
為了解決在同一Flash芯片存放程序并IAP這一問題,引進代碼重映射的思想。所謂重映射就是代碼先自復制到制定存儲區,然后跳轉到制定區的起點開始執行。這里,IAP程序先自復制到LPC2210片內SRAM中,然后跳轉到SRAM執行IAP代碼。前面過說,ARM7為馮·諾依曼結構,這就為IAP程序重映射提供了可能。        
編寫可重映射代碼的關鍵是要解決程序中相對偏移的問題,ARM7指令系列中涉及相對偏移的指令主要有LDR/STR以跳轉指令。這里的解決方案是:凡涉及偏移值的指令通通采用基址變址尋址方式,以PC寄存器作基址寄存器,以立即數為變址,這樣當程序塊整塊移動時,要加載的數據或跳轉的地址與當前PC值的偏移值固定,解決了相對偏移問題。      

2.2 扇區擦除        

事先編程在Flash中的程序前自復制到SRAM制定的位置,然后,賦PC為SRAM中扇區編程代碼段的起點ERASEPART。程序于SRAM中的ERASEPART起點開始執行,按照SST39VF160扇區擦除的時序要求開始擦除。按照ARM公司提出的ATPCS規定,C語言程序調用匯編程序時,寄存器R0-R3傳遞參數,返回值由寄存器R0傳遞原則,扇區擦除程序的一個參數,要擦除的扇區號,由R0傳遞;返回參數置于R0,扇區擦除成功返回"1",否則返回"0"。        

2.3 字編程        

程序于SRAM中的PROGRAMPART起點開始執行,按照SST39VF160字編程的時序要求開始編程。入口參數有三個,一次為編程地址、數據起始地址、編程數據長度。字編程成功返回"1",否則返回"0"。         

3.結論        

在嵌入式應用系統中,IAP是極為有效的一種技術。根據本文提出的方案,在實際應用中只需針對選用的Flash,更改特定的擦、寫操作代碼就可實現系統片外存儲器的在應用編程。本文提出的IAP代碼重入到SRAM執行的方法,有效地解決了應用無片內程序存儲器的32位ARM處理器的嵌入式系統IAP難題,有很大的應用價值。
本文地址:http://m.qingdxww.cn/thread-15313-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 手机在线免费观看毛片| 亚欧洲精品在线视频免费观看| 在线播放国产色视频在线| 一区二区视频| 久久re视频这里精品免费1| 亚洲日本欧美天堂在线| 亚洲国产成人久久一区二区三区| 天天操天天干天天干| 天天干天天弄| 四虎在线永久免费观看| 97国产精品久久精品国产| 女人高潮时一吸一夹| 中文字幕在线视频网站| 欧美亚洲国产一区二区三区| 特黄特色的免费大片看看| 亚洲国产人久久久成人精品网站| 国产AV精品白浆一区二| 女子叉开腿让男子桶免费软件| 亚洲视色| 日韩成人高清| 窝窝看一夜七次郎在线视频| 荡乳乱公小说| 久久人人爽人人片AV人成| 日韩在线一区二区三区| 青草国产| 四虎www.| 变态露出野外调教| 日韩精品一卡二卡三卡四卡2021 | 亚洲愉拍一区二区精品| 久久精品视频uu| 日韩国产午夜一区二区三区| 日本精品国产| 天天做天天摸天天爽天天爱| 超嫩校花被灌醉在线观看| 胸大的姑娘中文字幕视频| 日韩毛片最新看| 特黄一级视频| 亚洲无限资源| 精品久久久麻豆国产精品| 青青青国产视频| 日本天堂视频在线观看|