国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于NandFlash存儲介質(zhì)的固件程序檢測方法

      文檔序號:6576009閱讀:378來源:國知局
      專利名稱:基于NandFlash存儲介質(zhì)的固件程序檢測方法
      技術領域
      本發(fā)明涉及電數(shù)字數(shù)據(jù)處理,特別是涉及電數(shù)字數(shù)據(jù)處理中通過軟件的測試或調(diào)試防止錯誤,尤其涉及基本Nand Flash作為存儲介質(zhì)的固件程序檢測方法。
      背景技術Nand Flash即"與-非"閃存是一種非易失存儲器,可以對稱為塊的存儲器單元塊進行擦寫和再編程。任何Nand Flash器件的寫入操作只能在空或已擦除的單元內(nèi)進行,所以大多數(shù)情況下,在進行寫入操作之前必須先執(zhí)行擦除。參見圖3,現(xiàn)有技術在固件程序Firmware管理數(shù)據(jù)的時候,當需要寫入數(shù)據(jù)到塊A中的某個位置時,則需要選擇一個可用塊B,將B擦除干凈,然后分別把A的數(shù)據(jù)Al搬到Bl,把需要寫入的數(shù)據(jù)寫入B2,把A3數(shù)據(jù)寫入B3,再把邏輯映射表指向B塊,從而完成一次寫入。實際操作中,考慮到速度的優(yōu)化,在地址連續(xù)寫入的時候,或者跨區(qū)Zone輪流寫入的時候,還有更復雜的閃存Flash管理流程。 目前,測試固件程序FW邏輯讀寫的方式都采用文件拷貝比較或者Burn In Test測試軟件,其方式都是寫入數(shù)據(jù)B2,然后讀取B2,看是否匹配;這兩種方式都有在Flash管理中需要頻繁搬運數(shù)據(jù)的特點。但是存在這種現(xiàn)象B2是搬對了,但是B1和B3在從A1、A3過來的時候搬錯了,對于這些搬錯的B1、B3,上述的拷貝比較工具并不能及時發(fā)現(xiàn)。甚至在后面的操作中,覆蓋了B1或者B3,從而忽略了曾經(jīng)發(fā)生的錯誤。 傳統(tǒng)的測試方法是做文件拷貝后進行數(shù)據(jù)比較,或者用測試軟件做全盤數(shù)據(jù)寫入后進行讀取匹配,這些方法都存在測試覆蓋Firmware算法分支不全面,并且發(fā)生數(shù)據(jù)不匹配后無法輔助分析Firmware錯誤原因的缺陷。 Nand Flash領域中的開發(fā)難點主要包括壞塊管理、損耗平衡、邏輯映射,其中驗證邏輯映射算法的正確性是一件復雜的工作,具有調(diào)試難、覆蓋算法分支難、問題重現(xiàn)難的特點,通常研發(fā)人員在編寫程序完成后,都是交付測試部門的人員,通過文件拷貝進行邏輯算法正確性的驗證。通過拷貝比較來發(fā)現(xiàn)邏輯映射算法不足之處主要有兩個途徑,一個是手工拷貝文件到存儲器中,拷滿后,通過文件比較工具Fi 1 e Compare進行數(shù)據(jù)比較,發(fā)現(xiàn)其中數(shù)據(jù)不匹配的情況,再反饋給研發(fā)人員;另外一種方法是使用隨機數(shù)填充、比較軟件進行測試,例如Burnin軟件、wrtest軟件等,自動進行隨機寫入和讀取比較,從而發(fā)現(xiàn)寫入和讀取不匹配的情況。以上兩種方法都有著明顯的缺陷是測試時間長,沒有針對性,無法生成測試腳本,無法復現(xiàn)錯誤,無法給研發(fā)人員分析問題所在提供有價值的參考信息。
      發(fā)明內(nèi)容本發(fā)明要解決的技術問題在于避免上述現(xiàn)有技術的不足而提出一種的基于NandFlash存儲介質(zhì)的固件程序檢測方法,從而令現(xiàn)有技術中存在的測試時間長、沒有針對性、無法生成測試腳本、,無法復現(xiàn)錯誤、無法給研發(fā)人員分析問題所在提供有價值的參考信息等缺陷得到解決。 本發(fā)明解決所述技術問題可以通過采用以下技術方案來實現(xiàn),該方案是基于NandFlash存儲介質(zhì)的固件程序檢測方法,包括步驟 A.判定待測試的基本NandFlash的存儲器是否為新生產(chǎn)的存儲器,如是,即對所述存儲器以隨機數(shù)進行全盤填充;如否,則執(zhí)行步驟B ; B.在所述存儲器邏輯讀寫范圍內(nèi)隨機選擇一個邏輯地址Addr,然后隨機選擇N個扇區(qū)作為操作長度; C.讀取步驟B中已選中地址Addr前面M個地址的M個扇區(qū)數(shù)據(jù),再讀取從地址Addr+N開始的M個扇區(qū)數(shù)據(jù),即讀取所選目標數(shù)據(jù)的前后M個扇區(qū); D.從所述邏輯地址Addr起,寫入N個扇區(qū)的隨機數(shù)據(jù);如果超過SCSI命令限制的一次64k的限制,則拆分后寫入; E.從所述邏輯地址Addr前M個扇區(qū)地址開始,連續(xù)讀取所述N扇區(qū)及其前后各M扇區(qū)的數(shù)據(jù),獲取寫入后當前目標設備邏輯地址上的數(shù)據(jù); F.將步驟C讀取的數(shù)據(jù)與步驟E讀取的數(shù)據(jù)進行比較,判定寫入前后數(shù)據(jù)是否匹配;如是,則執(zhí)行步驟B ;如否,則將所述兩組數(shù)據(jù)分別存入兩個文件中,再執(zhí)行步驟B。
      在步驟B中所述"隨機選擇N個扇區(qū)",其中N可為1至255中任一整數(shù)。
      在步驟C中所述"M個扇區(qū)"中,其中M可為l至256中任一整數(shù)。
      本發(fā)明采用的上述技術方法的有益效果在于 1)測試時間短,具有針對性。本發(fā)明合理選擇了單次測試的數(shù)據(jù)長度為1 255
      扇區(qū),隨機選擇寫入地址,能夠盡量覆蓋邏輯映射算法中的不同分支,如跨區(qū)Zone、跨塊
      Block、連續(xù)讀寫,本發(fā)明的方法能夠在盡量減少測試數(shù)據(jù)長度的前提下進行覆蓋; 2)可以生成測試腳本。在測試過程中,將每次測試的寫入地址、數(shù)據(jù)長度都保存到
      一個腳本文件中,如果讀寫數(shù)據(jù)不匹配,還會將兩次的數(shù)據(jù)保存到磁盤中,供研發(fā)人員查看
      比較不匹配的原因,推測具體是由數(shù)據(jù)搬移錯誤還是漏搬引起。研發(fā)人員還可以通過重新
      執(zhí)行引起錯誤的測試腳本,復現(xiàn)現(xiàn)象,從而給調(diào)試帶來便利。 3)輔助研發(fā)人員分析原因。由于測試過程中,自動保存了測試腳本,研發(fā)人員可以查看測試腳本的寫入地址和長度,根據(jù)NandFlash的參數(shù),推測引起錯誤的原因,是因為執(zhí)行到哪個算法分支后處理不當導致,從而提高了調(diào)試效率。


      圖l是本發(fā)明基本NandFlash存儲介質(zhì)的固件程序檢測方法實施流程圖; 圖2是所述方法實施時讀取目標數(shù)據(jù)前后M個扇區(qū)的示意圖; 圖3是現(xiàn)有技術中塊Block數(shù)據(jù)搬運示意圖具體實施方式
      以下結合附圖1、2所示實施作進一步詳述。 本發(fā)明基本NandFlash存儲介質(zhì)的固件程序檢測方法,包括步驟 A.判定待測試的基本NandFlash的存儲器是否為新生產(chǎn)的存儲器,如是,即對所
      述存儲器以隨機數(shù)進行全盤填充;如否,則執(zhí)行步驟B ; B.在所述存儲器邏輯讀寫范圍內(nèi)隨機選擇一個邏輯地址Addr,然后隨機選擇N個扇區(qū)作為操作長度; C.讀取步驟B中已選中地址Addr前面M個地址的M個扇區(qū)數(shù)據(jù),再讀取從地址Addr+N開始的M個扇區(qū)數(shù)據(jù),即讀取所選目標數(shù)據(jù)的前后M個扇區(qū); D.從所述邏輯地址Addr起,寫入N個扇區(qū)的隨機數(shù)據(jù);如果超過SCSI命令限制的一次64k的限制,則拆分后寫入; E.從所述邏輯地址Addr前M個扇區(qū)地址開始,連續(xù)讀取所述N扇區(qū)及其前后各M扇區(qū)的數(shù)據(jù),獲取寫入后當前目標設備邏輯地址上的數(shù)據(jù); F.將步驟C讀取的數(shù)據(jù)與步驟E讀取的數(shù)據(jù)進行比較,判定寫入前后數(shù)據(jù)是否匹配;如是,則執(zhí)行步驟B ;如否,則將所述兩組數(shù)據(jù)分別存入兩個文件中如圖1所示,在本 實施例中可將寫入前M+N+M扇區(qū)的數(shù)據(jù)保存到日志文件"時間-地址_長度_寫.dat"中, 將寫入操作后M+N+M扇區(qū)的數(shù)據(jù)保存到日志文件"時間_地址_長度_讀.dat"中。再執(zhí) 行步驟Bi 在步驟B中所述"隨機選擇N個扇區(qū)",其中N可為1至255中任一整數(shù)。
      在步驟C中所述"M個扇區(qū)"中,其中M可為l至256中任一整數(shù)。
      由于算法對于不同參數(shù)配置的NandFlash可能存在差異,通常需要針對不同的 NandFlash分別進行測試,如果采用拷貝比較的方法,由于NandFlash的寫入速度比較慢, 盡量減少測試的數(shù)據(jù)非常必要。根據(jù)NandFlash的特性,寫入的數(shù)據(jù)長度為1 255個 扇區(qū),即可保證一定覆蓋跨Zone、跨Block的算法分支,因為目前市面的NandFlash單個 Block的容量沒有超過255個扇區(qū)的,當隨機測試的數(shù)據(jù)長度大于Block的容量時,就能覆 蓋跨Block的算法分支,在這種情況下,即使測試的數(shù)據(jù)長度大于255個扇區(qū),也是沒有什 么意義了。隨機產(chǎn)生的測試地址,加上隨機產(chǎn)生的隨機長度,能夠覆蓋一些邊緣情況。
      測試的數(shù)據(jù)很重要,合適的數(shù)據(jù)可以給研發(fā)工程師很多額外的輔助信息,用于分 析遇到的數(shù)據(jù)不匹配原因。例如設定一個較小的測試容量范圍,進行數(shù)據(jù)填充,填充的內(nèi)容 為數(shù)據(jù)區(qū)所在的扇區(qū)地址(意思就是說扇區(qū)0里面填充的數(shù)據(jù)都是0x00000000,扇區(qū)1里 面填充的數(shù)據(jù)都是0x00000001),假設預填充了 100個扇區(qū)的數(shù)據(jù),那么,在進行寫入操作 之后,檢測目標寫入地址邊緣的區(qū)域發(fā)現(xiàn)數(shù)據(jù)不匹配,說明在搬運關聯(lián)區(qū)域的數(shù)據(jù)出錯了, 由于我們數(shù)據(jù)里面寫入的是邏輯地址的值,通過查看出錯的數(shù)據(jù)為哪個邏輯地址,即可猜 測搬錯的原因。 以往的拷貝匹配測試軟件都是產(chǎn)生隨機數(shù),然后順序?qū)懭牖蛘唠S機寫入測試存儲 器,沒有任何的測試信息輸出可供研發(fā)人員、測試人員參考,以致于出現(xiàn)不匹配的現(xiàn)象后無 法重現(xiàn)問題而耽誤調(diào)試進度。本發(fā)明的方法在測試過程中,對每一次隨機產(chǎn)生的地址、測試 長度都會進行保存,并且在讀寫發(fā)生不匹配的時候,可以將寫入前后的數(shù)據(jù)保存到文件中, 供研發(fā)人員分析。對于一些比較特殊的錯誤現(xiàn)象需要Firmware跟蹤調(diào)試的,還可以通過重 新執(zhí)行保存的腳本命令,重現(xiàn)出現(xiàn)問題的步驟。
      權利要求
      一種基于NandFlash存儲介質(zhì)的固件程序檢測方法,用于在NandFlash存儲器生產(chǎn)過程中對其固件程序檢測,其特征在于,包括步驟A.判定待測試的基本NandFlash的存儲器是否為新生產(chǎn)的存儲器,如是,即對所述存儲器以隨機數(shù)進行全盤填充;如否,則執(zhí)行步驟B;B.在所述存儲器邏輯讀寫范圍內(nèi)隨機選擇一個邏輯地址Addr,然后隨機選擇N個扇區(qū)作為操作長度;C.讀取步驟B中已選中地址Addr前面M個地址的M個扇區(qū)數(shù)據(jù),再讀取從地址Addr+N開始的M個扇區(qū)數(shù)據(jù),即讀取所選目標數(shù)據(jù)的前后M個扇區(qū);D.從所述邏輯地址Addr起,寫入N個扇區(qū)的隨機數(shù)據(jù);如果超過SCSI命令限制的一次64k的限制,則拆分后寫入;E.從所述邏輯地址Addr前M個扇區(qū)地址開始,連續(xù)讀取所述N扇區(qū)及其前后各M扇區(qū)的數(shù)據(jù),獲取寫入后當前目標設備邏輯地址上的數(shù)據(jù);F.將步驟C讀取的數(shù)據(jù)與步驟E讀取的數(shù)據(jù)進行比較,判定寫入前后數(shù)據(jù)是否匹配;如是,則執(zhí)行步驟B;如否,則將所述兩組數(shù)據(jù)分別存入兩個文件中,再執(zhí)行步驟B。
      2. 如權利要1所述基于NandFlash作為存儲介質(zhì)的固件程序檢測方法,其特征在于步驟B中所述"隨機選擇N個扇區(qū)",其中N可為1至255中任一整數(shù)。
      3. 如權利要l所述基于NandFlash作為存儲介質(zhì)的固件程序檢測方法,其特征在于步驟C中所述"M個扇區(qū)"中,其中M可為1至256中任一整數(shù)。
      全文摘要
      一種基于NandFlash存儲介質(zhì)的固件程序檢測方法,用于在NandFlash存儲器生產(chǎn)過程中對其固件程序檢測,包括步驟對新生產(chǎn)的基本NandFlash存儲介質(zhì)存儲器以隨機數(shù)進行全盤填充;在所述存儲器邏輯讀寫范圍內(nèi)隨機選擇一個邏輯地址Addr,然后隨機選擇N個扇區(qū)作為操作長度;讀取所選目標數(shù)據(jù)的前后M個扇區(qū);從所述邏輯地址Addr起,寫入N個扇區(qū)的隨機數(shù)據(jù);從所述邏輯地址Addr前M個扇區(qū)地址開始,連續(xù)讀取所述N扇區(qū)及其前后各M扇區(qū)的數(shù)據(jù),獲取寫入后當前目標設備邏輯地址上的數(shù)據(jù);判定寫入前后數(shù)據(jù)是否匹配,并將不匹配的數(shù)據(jù)文件進行保存。本發(fā)明的有益效果在于解決測試時間長、沒有針對性、無法生成測試腳本、無法復現(xiàn)錯誤、無法給研發(fā)人員分析問題所在提供有價值的參考信息等缺陷。
      文檔編號G06F12/02GK101710302SQ20091010493
      公開日2010年5月19日 申請日期2009年1月9日 優(yōu)先權日2009年1月9日
      發(fā)明者李志雄, 覃敏 申請人:深圳市江波龍電子有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1