《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于VxWorks的FLASH存儲器實時存取管理方案
基于VxWorks的FLASH存儲器實時存取管理方案
摘要: VxWorks操作系統提供文件系統來訪問和管理Flash 存儲器,這種方式不能滿足實時寫入和系統可控的要求。本文提出一種通過接管系統時鐘中斷來控制Flash Memory讀寫操作和基于管理區的簡單可控文件管理方案,實現移動通信系統在不影響業務模塊運行的前提下,滿足對實時性和可控性要求。
Abstract:
Key words :

  1. 引言

  Cdma2000 1x移動通信系統的基站主處理機采用WindRiver公司VxWorks" title="VxWorks">VxWorks嵌入式實時操作系統,選用FLASH 存儲器(以下簡稱FLASH)作為外部存儲設備保存系統參數和業務數據。

  FLASH與普通磁介質存儲器最大的差異在于寫操作方式不同,其寫操作相對于普通磁盤是比較慢的過程,消耗掉大量的CPU資源。FLASH基于命令字的寫操作方式導致的寫入錯誤,雖然幾率很小但實際上是存在的。而商用VxWorks操作系統提供的dosFs文件系統和專用TrueFFS文件系統對該情況處理不足,并且用戶沒有相應的源碼,系統一旦出現寫操作錯誤,將不可控制,降低了系統的可控性。所以,有必要對FLASH的存取操作加以改進或控制,并設計一套相對應的專用FLASH文件管理方案,滿足系統可控性的要求。

  2. 存取設計

  FLASH寫操作基于命令字方式完成,分為擦除(erase)和編程(program)兩個階段。由于FLASH的編程指令只能使“1”改為“0”,擦除指令只能使“0”改為“1”,而且,擦除操作不能在字節或任意數據區域進行,而必須是一個完整的扇區,所以向FLA

 

SH某位置寫入數據時,要先擦除目標位置所在扇區的所有數據,然后才能進行編程操作。實際上,只須向特定的寄存器寫入標準的指令序列,具體的擦除和編程過程就可由內部嵌入的算法執行。

 

  2.1 設計思想

  通常,FLASH寫操作指令下達后,由驅動程序完成命令字的設置。此時,數據被臨時存儲于FLASH的鎖存器中,但系統仍需要保持數據總線直到寫入操作終止或完成才釋放。

  一個扇區的擦除是十幾毫秒的時間,一個字節的寫入是幾微秒的時間,可以看到,數據總線的占用過程消耗了大量的CPU時間。這部分資源的節約對于嵌入式實時系統來說是必要的。操作系統完全可以在設置寫操作命令字后釋放數據總線,退出FLASH操作,把擦除/編程過程的CPU時間用來執行其他指令,等當前命令字執行完畢后,通過某個事件的觸發,使CPU跳轉回來設置下一個命令字。這就是改進FLASH操作過程的設計思想。

  2.2 實現過程

  觸發事件選擇和跳轉周期長短的控制是問題解決的關鍵,即在一個命令字操作完成后,選用什么方式來觸發下一個命令字操作??梢钥紤]的方式主要有掃描方式和中斷方式。

  通過掃描方式,當應用程序完成一次完整的處理周期時,掃描某個標志狀態,判斷FLASH寫入操作是否進行完成。如果完成,則再次設置命令字進行操作。由于程序處理周期取決于應用層業務處理時間,這種方式會導致觸發周期不固定。

  采用中斷方式,可以通過設置中斷頻率來控制觸發周期。但必須選擇合適的中斷源,使其精度達到要求并且對系統沒有額外的影響。由于基站系統采用外部GPS時鐘,系統的單板時鐘閑置,其精度對于FLASH操作是足夠的,所以可以考慮選擇CPU時鐘中斷。問題在于VxWorks對該中斷是否有使用。實際上,VxWorks通過該時鐘中斷完成系統記數器,從而在其基礎上實現系統定時器,看門狗定時器,任務分時調度等功能組件。因此,接管時鐘中斷,必須在修改時鐘頻率同時,保證操作系統所需的系統記數器頻率不變。

  VxWorks提供sysClkConnect()函數允許時鐘中斷發生時,根據指定參數掛接用戶定義的中斷處理程序,中斷處理完成后由用戶程序返回。VxWorks提供的usrClock()函數是系統缺省時鐘中斷處理函數,用來調用計數器函數tickAnnounce(),實現系統計數器的作用。時鐘中斷頻率由SYS_CLK_RATE設定,缺省值是60。因此,我們在替換時鐘中斷處理函數時,需要包含操作系統的記數器函數tickAnnounce(),并通過分頻的方法保證tickAnnounce()的調用和時鐘頻率修改前的調用頻率是一致的,從而使操作系統計數器感覺不到時鐘頻率修改和中斷處理函數被替換的區別。

  當然,系統時鐘頻率的設置不能太高,通常時鐘頻率設置為60HZ(或100HZ),當頻率超過600HZ時,會使內核調度用時比率偏高,而實際任務可用的CPU時間下降,處理器將花費大多數時間來處理時鐘而使系統運行效率下降或不可用。

  圖1給出了具體的實現流程圖。sysClkChange()是自定義的系統時鐘頻率調整控制函數,該函數根據入口參數設置系統時鐘中斷頻率,選擇掛接中斷的處理函數flsClock()或usrClock()。自定義的中斷處理函數的flsClock()通過調用usrClock()函數完成系統計數器功能。sysClkRateGet()和sysClkRateSet()函數是VxWorks提供的時鐘頻率設置函數。

具體的實現流程圖

  flsClock()還需要負責實際的寫入操作。首先檢查上一次中斷處理中的FLASH操作是否已經完成。如果沒有完成,則返回,并記錄返回次數,若返回次數超過了一定限度,即認為該片FLASH發生故障,向應用層發出FLASH故障告警;如果已經完成,則開始進行本次操作,即先確定操作的類型(擦除還是編程)和相關參數(包括目標扇區序號,目的地址,數據源地址等等),然后調用驅動程序提供的FLASH操作接口,完成命令字設置等操作。

 

  3. 管理設計

  在I/O系統基本結構中,應用程序可以通過符合標準I/O接口的文件系統調用設備驅動程序來操作設備,也可以直接與驅動程序連接來操作設備(VxWorks本身并不支持這種做法)。通常,采用文件系統來操作存取設備的方式,減少了驅動程序必須支持的I/O操作接口函數的數目,在VxWorks開發中得到廣泛的應用。

  VxWorks提供與MS-DOS兼容的dosFs文件系統供I/O接口調用,但dosFs文件系統本質上容易受到某種類型磁盤故障的影響,導致更新過程中數據結構不一致性,而且,dosFs文件系統是一個不考慮容錯性能的文件系統,沒有考慮FLASH操作的特殊性,對于底層驅動程序中FLASH命令字方式導致的寫入錯誤無法處理。作為VxWorks的可選組

 

件,M-System公司為VxWorks定制的TrueFFS組件提供了面向FLASH的專用文件系統。

 

  TrueFFS文件系統使用block-to-flash轉換系統將閃存抽象為普通塊設備?;趧討B維護的映射圖使FLASH索引成一系列連續塊。進行數據寫入時,如果目標塊已寫有數據,TrueFFS另找空閑區寫入,待數據安全寫入后,TrueFFS更新映射圖,將該塊指向寫入的新FLASH地址。TrueFFS文件系統機制非常完善,但基站系統對FLASH功能要求比較單一,存儲的數據文件類型和存儲方式相對單一,TrueFFS文件系統并不能發揮其強大功能,反而降低了系統的性能。

  3.1 設計思想

  參考dosFs文件系統和TrueFFS文件系統的管理方法,選取其中重要功能重新設計,實現一個應用層可控的FLASH管理方案。把FLASH劃分為管理區和數據區兩部分進行組織管理。其中管理區存放文件管理信息,數據區存放數據文件。為了防止在修改管理區的過程中掉電,在存儲區的兩端設置雙備份的管理區。

  我們將FLASH最小管理單位定義為一個FLASH扇區(塊)。進行FLASH操作之前,先將目標扇區內容備份到內存,在內存中修改完畢后再固化到FLASH。管理區和數據區占用的空間是扇區的整數倍,這樣才不會在更新某些數據的同時,造成對已有數據的修改。對于比較小的文件,可能小于一個扇區的空間,導致FLASH空間的浪費,但避免了因為共享同一扇區造成不同文件操作之間的相互影響,降低數據被破壞的可能性,簡化管理策略。

  3.2 實現過程

  根據文件管理方案,假定用戶可修改的FLASH塊數為512,其中前后兩個管理區占用64塊,數據區可用448塊。FLASH管理區需要包含的內容如表1所示。

FLASH管理區需要包含的內容

  任何時刻,處于活動狀態的管理區只有一個。在更新數據的時候,首先更新處于活動狀態的管理區,然后寫入數據文件,等待寫入穩定后,更新另一個管理區,然后將另一個管理區置為當前活動狀態,原先管理區置為非活動狀態。這樣可以保證在數據文件寫入失敗時,通過兩個管理區管理信息的一致性來識別數據的有效性。

  FLASH塊列表的每個字節對應一個扇區的占用情況,1表示該扇區已分配,0表示該扇區未分配,0xff表示該扇區壞死,不能使用。

  文件信息記錄位置按照系統配置好的處理機數目采用固定順序存放。更新任何一個數據文件之前,要更新該文件的信息記錄,確定該文件操作狀態,版本信息和存放位置。具體的組織結構如表2所示。

具體的組織結構如表2所示

  系統需要從FLASH讀取數據時,首先比較兩個FLASH管理區管理信息是否一致。如果一致,認為數據有效,直接讀?。蝗绻灰恢?,則說明存在FLASH操作異常,向系統操作維護控制臺(OMC)告警,并通知應用程序請求向OMC下載寫入新的數據文件。

  當需要刪除FLASH上數據文件時,只需將管理區中該文件操作狀態置成“無效”,并將其占用的扇區置成“未分配”狀態,然后更新FLASH管理區信息即可。

  這里沒有給出碎片收集和垃圾數據處理的機制,實際上,刪除操作所實現的功能即有回收垃圾數據所在扇區的作用,并且由應用層控制,實現了系統可控性。對于FLASH中存在的碎片,由于我們采取的是以扇區為單元進行數據管理的,數據文件的存儲空間是整數塊,而且塊列表可以不連續,所以不存在碎片的問題,從而就巧妙的避免了碎片收集的復雜性。

  4. 總結

  本文介紹的FLASH操作方法以及與之配套的文件管理方案,為系統運行節省了可觀的時間,可以很好的解決了業務運行與數據備份之間對系統資源占用的矛盾,對于FLASH操作相對頻繁和數據備份實時性要求較高的系統,都是適用的。

 

  5. 參考文獻

  [1] WindRiver Inc. VxWorks Programmer's Guide 5.4 Edition 1[EB/OL].1999

  [2] WindRiver Inc. Tornado User's Guide 2.2 [EB/OL].2002

  [3] 陳智育 溫彥軍等.VxWorks程序開發實踐[M].北京:人民郵電出版,2003-9-1.177-200.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲三级影院| 在线观看日韩精品| 亚洲激情在线观看视频免费| 国产精品99久久久久久www| 一本色道久久综合亚洲精品按摩| 欧美日韩在线观看视频| 亚洲精品国偷自产在线99热| 尤物在线观看一区| 香蕉久久一区二区不卡无毒影院| 免费观看日韩av| 伊人久久综合| 国产精品免费在线| 久久久久久**毛片大全| 久久国产88| 中日韩高清电影网| 国产乱子伦一区二区三区国色天香| 亚洲欧美在线一区二区| 一区在线影院| 妖精成人www高清在线观看| 亚洲欧美成人一区二区三区| 国产精品香蕉在线观看| 久久精品国产久精国产思思| 久久精品人人| 99精品国产福利在线观看免费| 欧美日韩在线播放| 国产精品你懂的在线欣赏| 欧美亚洲综合网| 亚洲少妇中出一区| 欧美日韩国产欧美日美国产精品| 久久一区二区精品| 欧美一级久久久| 日韩亚洲欧美高清| 国产亚洲精品美女| 久久不射2019中文字幕| 亚洲欧美日韩爽爽影院| 国一区二区在线观看| 久久久成人网| 国产精品久久久一本精品| 国产精品久久国产精品99gif| 午夜在线不卡| 一区二区三区回区在观看免费视频| 亚洲中字黄色| 欧美网站在线| 国产亚洲视频在线| 一区在线视频| 国产精品看片你懂得| 国产精品对白刺激久久久| 欧美风情在线观看| 亚洲第一精品夜夜躁人人爽| 樱桃成人精品视频在线播放| 娇妻被交换粗又大又硬视频欧美| 欧美日韩午夜在线视频| 国产精品wwwwww| 一区在线视频观看| 国产精品99久久久久久久女警| 欧美视频在线一区二区三区| 欧美日韩免费在线观看| 欧美成人自拍视频| 免费人成网站在线观看欧美高清| 亚洲欧美日韩综合国产aⅴ| 国产揄拍国内精品对白| 亚洲欧美日韩国产另类专区| 一区二区三区高清不卡| 国产视频欧美视频| 99爱精品视频| 久久久久综合| 欧美一区二区三区久久精品茉莉花| 另类春色校园亚洲| 国产亚洲欧美中文| 国产精品v欧美精品v日本精品动漫| 麻豆精品视频| 久久一区二区三区四区五区| 亚洲欧美一级二级三级| 欧美日本亚洲视频| 国产日韩精品一区观看| 欧美福利视频在线观看| 亚洲无亚洲人成网站77777| 亚洲三级网站| 久久综合免费视频影院| 免费高清在线视频一区·| 久久精品亚洲国产奇米99| 黄色精品免费| 欧美精品啪啪| 久久久久久久欧美精品| 精品va天堂亚洲国产| 欧美四级剧情无删版影片| 亚洲麻豆视频| 在线国产日韩| 久久精品国产综合| 久久精品亚洲一区| 国产视频一区二区在线观看| 欧美日韩国产不卡在线看| 国产精品v欧美精品v日韩| 亚洲欧美日韩在线一区| 久久久成人精品| 亚洲动漫精品| 欧美视频日韩视频| 亚洲天堂成人| 精品99一区二区| 国产人成一区二区三区影院| 欧美在线观看天堂一区二区三区| 亚洲国产美女精品久久久久∴| 国产一级久久| 欧美一区二区播放| 久久美女性网| 欧美一区二区三区在线看| 亚洲欧美三级在线| 亚洲图片欧美一区| 亚洲精品九九| 国产精品久久国产精麻豆99网站| 国产精品日韩在线播放| 欧美精品二区三区四区免费看视频| 亚洲天堂av综合网| 国产亚洲欧美激情| 欧美激情视频一区二区三区在线播放| 午夜精品影院在线观看| 黄色成人在线观看| 久久综合久久综合久久| 亚洲电影在线| 欧美日韩亚洲视频一区| 欧美一级免费视频| 欧美成人黑人xx视频免费观看| 欧美成人黄色小视频| 久久成人精品| 免费观看在线综合| 久久久亚洲国产美女国产盗摄| 一区二区三区久久| 欧美日韩一区免费| 欧美视频成人| 夜夜嗨av色综合久久久综合网| 亚洲综合清纯丝袜自拍| 欧美另类高清视频在线| 又紧又大又爽精品一区二区| 国产综合av| 国产精品福利在线观看| 亚洲特黄一级片| 欧美日韩免费观看一区=区三区| 一个人看的www久久| 国产精品久久久久9999高清| 国产裸体写真av一区二区| 亚洲自拍偷拍视频| 欧美午夜免费电影| 麻豆视频一区二区| 亚洲国产美国国产综合一区二区| 国内成人精品视频| 亚洲宅男天堂在线观看无病毒| 亚洲经典在线| 99精品热视频只有精品10| 欧美激情一区三区| 国产精品不卡在线| 亚洲一区二区四区| 国产欧美在线视频| 国产一区二区久久久| 免费成人美女女| 国产精品自拍小视频| 欧美11—12娇小xxxx| 亚洲三级电影全部在线观看高清| 亚洲精品中文字幕女同| 一区二区三区自拍| 在线欧美不卡| 国产精品资源| 夜久久久久久| 亚洲激情网址| 亚洲日本无吗高清不卡| 国产一区在线观看视频| 欧美福利一区二区| 国产精品劲爆视频| 欧美黄色网络| 久久中文字幕一区| 鲁大师影院一区二区三区| 国产亚洲精品成人av久久ww| 一区免费在线| 99re8这里有精品热视频免费| 久久夜色精品亚洲噜噜国产mv| 原创国产精品91| 免费观看日韩av| 欧美欧美天天天天操| 欧美大秀在线观看| 国产在线播精品第三| 欧美日韩性生活视频| 亚洲黄一区二区| 亚洲激情成人网| 亚洲国产日韩一级| 亚洲精品1区2区| 99在线精品视频| 亚洲激情专区| 在线播放日韩专区| 欧美日韩成人| 国产伦精品一区二区三区| 在线亚洲+欧美+日本专区| 亚洲国产高清自拍| 黄色精品一二区| 在线日本高清免费不卡| 欧美日韩精选| 国产午夜亚洲精品理论片色戒| 一本久久综合亚洲鲁鲁| 久久精品国产精品亚洲精品| 久久久久中文| 国产一区视频在线观看免费| 亚洲欧美在线一区| 国产九色精品成人porny| 亚洲手机在线| 国内揄拍国内精品少妇国语| 亚洲高清免费在线| 欧美精品一区在线播放| 欧美日韩日日骚| 久久久精品国产免费观看同学| 欧美日韩视频在线第一区| 国产精品专区第二| 欧美亚州韩日在线看免费版国语版| 国产精品v欧美精品v日本精品动漫| 欧美日韩在线不卡一区| 免费在线播放第一区高清av| 亚洲精品欧美日韩专区| 好吊成人免视频| 91久久精品www人人做人人爽| 欧美日韩国产综合视频在线观看中文| 亚洲欧美一区二区精品久久久| 国产精品福利网站| 欧美韩日一区二区| 亚洲国产日韩欧美在线图片| 欧美日韩中文在线观看| 国产精品99久久久久久白浆小说| 久久av资源网| 亚洲午夜在线观看视频在线| 国内欧美视频一区二区| 在线播放视频一区| 黄色av日韩| 久久午夜视频| 亚洲精品免费电影| 欧美日韩www| 久久久噜噜噜| 欧美日韩一区二区三区高清| 日韩视频在线播放| 欧美+日本+国产+在线a∨观看| 亚洲伦理在线| 国产一区日韩一区| 麻豆乱码国产一区二区三区| 国产精品久久久久婷婷| 亚洲国产成人午夜在线一区| 亚洲激情在线播放| 国产精品免费一区豆花| 91久久国产综合久久蜜月精品| 亚洲香蕉视频| 亚洲欧洲三级电影| 欧美视频一区| 麻豆精品网站| 欧美肥婆在线| 黄色免费成人| 国产精品激情偷乱一区二区∴| 国产精品亚洲成人| 欧美与黑人午夜性猛交久久久| 国产精品亚洲片夜色在线| 亚洲视频免费观看| 在线观看日韩| 欧美午夜一区二区三区免费大片| 亚洲精品在线免费观看视频| 国产精品中文字幕欧美| 韩国女主播一区二区三区| 欧美日韩性生活视频| 欧美日韩精品免费观看视频| 麻豆精品一区二区综合av| 国产精品免费观看在线| 性做久久久久久免费观看欧美| 美女网站在线免费欧美精品| 久久久久久9999| 国产日韩一区| 一区二区三区国产在线| 国产精品国产三级国产专播品爱网| 国产麻豆精品视频| 亚洲精品欧美一区二区三区| 欧美日韩免费一区| 国产精品高潮呻吟久久av黑人| 欧美日韩久久精品| 国内视频精品| 一区二区高清在线观看| 国产精品一区二区久久久| 久久蜜臀精品av| 欧美色大人视频| 亚洲视频 欧洲视频| 国产一区二区三区在线观看网站| 欧美在线免费视屏| 欧美成人综合网站| 亚洲裸体俱乐部裸体舞表演av| 亚洲一区二区三区精品视频| 久久久久欧美| 欧美成人激情在线| 亚洲欧美一区二区原创| 亚洲高清一区二区三区| 亚洲综合大片69999| 久久黄色级2电影| 国产精品一区免费在线观看| 亚洲国产欧美精品| 久久成人国产| 国产精品av免费在线观看| 国产欧美一区二区三区另类精品| 一区二区三区四区五区在线| 久久精品国语| 亚洲丁香婷深爱综合| 国产午夜精品一区理论片飘花| 亚洲视频在线看| 久久久91精品| 久久亚洲电影| 亚洲伊人网站| 老色鬼精品视频在线观看播放| 国产日韩精品在线播放| 亚洲图片激情小说| 欧美精品免费观看二区| 激情丁香综合| 国产又爽又黄的激情精品视频| 欧美日韩一区国产| 国产亚洲精品aa午夜观看| 久久精品91久久香蕉加勒比| 亚洲欧美日韩专区| 亚洲精品免费电影| 美女诱惑黄网站一区| 亚洲视频中文字幕| 久久一二三区| 国产精品中文字幕在线观看| 国产日产高清欧美一区二区三区| 香蕉乱码成人久久天堂爱免费| 欧美色精品在线视频| 亚洲免费福利视频| 欧美日韩成人在线观看| 亚洲精品免费一区二区三区| 一区二区三区久久网| 久久精品国产免费看久久精品| 久久久久久久欧美精品|