新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 基于TMSF240芯片的內部FLASH自測試方法

        基于TMSF240芯片的內部FLASH自測試方法

        作者: 時間:2013-06-27 來源:網絡 收藏

        飛控計算機CPU模塊的處理器通常選用PowerPC或X86系列,CPU模塊設計有專門的,為保證飛控程序存放的正確無誤,測試必不可少。而智能接口模塊的處理器通常選用2812等,采用片內存放自己的程序。這部分FLASH的自測試常常被忽視,而這是飛控系統不能容忍的。本文介紹了一種基于內部FLASH的自測試方法。

        本文引用地址:http://www.104case.com/article/185437.htm

        1 問題描述

        在CPU處理器無自帶FLASH空間的情況下,我們選用市場上專用的FLASH,通過硬件設計該FLASH芯片的每一個地址空間都是可以訪問的,我們可以指定不同的區域存放不同的內容。FLASH芯片的自測試也有很多種方法,目前較普遍采用的是校驗和的方法,即由專門的燒寫工具(可以使用軟件完成該工具)在燒寫的過程中將校驗和計算好直接放到指定的單元中,這個單元可以指定到燒程序時寫不到的空閑空間,自測試時只需重新計算一遍校驗和與該值進行比較即可。此種方法我們稱之為方法一。

        而TMSF內部自帶FLASH存儲空間,燒錄過程對于用戶來說較透明。我們不直接指定向某一具體的Flash空間寫入數據,而是通過執行TI公司提供的批處理文件,經由聞亭仿真器連接目標機來完成燒錄程序的過程,因此直接使用方法一我們無處存放校驗和為使用方法一來測試芯片內部的FLASH我們必須解決校驗和的存放問題。

        2 芯片內部FLASH自測試方法概述

        下面介紹的方法實現的是解決程序本身自測試程序本身燒到FLASH后保存的是否正確的問題。該方法不是將校驗和直接寫到FLASH中,而是在待燒錄的程序中定義一個變量,該變量最終用于存放事先計算好的校驗和,通過兩次燒錄實現芯片內部FLASH自測試功能的。必須巧妙地避開因改變程序本身而引起的程序校驗和改變而導致自測試算法失效的問題。

        本方法需要事先將程序完全調試好燒錄到FLASH中,然后才能讀取FLASH內容計算校驗和。此時將校驗和值賦給事先定義好的變量,重新編譯后得到最終的目標碼,燒錄到FLASH中。程序上電后自動運行,FLASH自測試程序在每次執行自測試功能時都將要測試的程序空間讀出并計算校驗和與該變量進行比較,比較結果一致則待測試FLASH空間正確,反之則表明FLASH空間有故障。

        由于變量賦值的改變會導致整個代碼校驗和的改變,因此該問題必須得到恰當的解決。第一次燒寫的程序的算法如圖1所示。

        1.jpg

        以上步驟中第二步到第四步是此算法的實現重點,它屬于代碼的一部分,兩次燒寫要對其進行更改,詳見第3節。第三步是本方法的關鍵所在,由于sum=0,所以經過“sum=sum+sum;”的運算后sum值還是0,并沒有改變sum的值。而sum的初值0并沒有對程序的真實校驗和值做出貢獻,這為第二次燒寫的程序代碼和計算做出鋪墊。

        3 芯片內部FLASH自測試方法詳述

        3.1 第一次燒寫步驟

        第一次燒寫過程如下:

        步驟1:將包含圖1的代碼編譯后形成待燒錄文件*.out;

        步驟2:將代碼編譯生成待燒錄文件*.out,然后通過TI公司提供的批處理文件和仿真器將其燒入片內自帶的FLASH中。

        3.2 第二次燒寫步驟

        第二次燒寫過程如下:

        步驟1:利用聞亭仿真器設置成燒錄模式下代碼調試模式,將硬件斷點設置在FLASH自測試的函數入口處;

        步驟2:將程序連續運行至斷點處后,單步調試計算出真正的代碼和sum=XXX;

        步驟3:此時更改程序,將計算好的校驗和寫入程序中定義好的變量中,即將圖1中第二步中sum=0更改為sum=XXX;

        步驟4:將代碼重新編譯生成待燒錄文件*.out,然后通過TI公司提供的批處理文件和仿真器將其燒入片內自帶的FLASH中。

        3.3 方法詳細說明

        在第二次燒寫過程中,圖1所示的算法變成圖2所示內容。

        2.jpg

        由于原來的校驗和為0,現在將其改為XXX,所以第二次固化的程序的校驗和比第一次固化的程序的校驗和增加了XXX。而第一次固化的校驗和本應該為XXX,因此第二次固化程序的最終的校驗和計算出來后應check sum為2XXX,圖2中的第三步sum=sum+sum正好滿足了上述要求,即sum=2XXX。因此第四步check sum=sum能正確反映自測試結果。

        需要補充說明一點,該算法是基于第一次燒錄成功后重新加載第一次燒錄的程序由DSP處理器自動計算校驗和是正確的基礎上的,這是由CPU的加減乘除和邏輯運算等自測試正確保證的,在上電時PUBIT里有該項自測試。

        4 結束語

        DSP已經廣泛應用于飛控計算機智能接口模塊中。雖然其具有很高的可靠性,但在飛控系統的使用中也必須進行測試。本文就DSP芯片內部自帶FLASH提出了一種自測試方法,通過兩次燒寫FLASH將待測空間的校驗和計算出來并計入RAM中事先定義好的變量中,重新編譯后生成新的目標碼校驗和變成第一次校驗和的2倍。這樣利用sum=sum+sum巧妙地避過了兩次校驗和增加而引起程序的改動。此方法簡單有效地解決了DSP芯片內部FLASH自測試問題,并已在機載設備,包括飛控計算機接口模塊中得到應用,對提高機載設備的可測試性和可靠性有一定的作用,值得推廣使用。



        關鍵詞: FLASH TMSF 240 芯片

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 汉沽区| 井冈山市| 澄江县| 齐齐哈尔市| 合水县| 彝良县| 玉环县| 山丹县| 彭泽县| 雷山县| 曲阳县| 建阳市| 黄石市| 博白县| 张掖市| 晋城| 乌审旗| 东辽县| 沁源县| 阳原县| 维西| 武邑县| 吉林市| 凉城县| 兰州市| 祁阳县| 宁城县| 布尔津县| 顺平县| 江安县| 上虞市| 三都| 兴山县| 新疆| 禹城市| 宾川县| 拜泉县| 郑州市| 随州市| 天等县| 苍梧县|