于TMSF240芯片的內部FLASH的一種自測試方法
目前DSP芯片不僅廣泛應用于機載設備中,也越來(lái)越廣泛地應用于飛控計算機和自動(dòng)駕駛儀中。飛行控制系統的安全性直接關(guān)系到飛機和飛行員的存亡。飛控計算機作為飛行控制系統的核心控制處理單元,其可靠性要求是所有航空電子設備中最高的。自動(dòng)駕駛儀是按一定技術(shù)要求自動(dòng)控制飛行器的裝置,與飛機上其他系統交聯(lián)還可實(shí)現對飛機的控制,其可靠性也不容忽視。用于飛控計算機和自動(dòng)駕駛儀的每一個(gè)元器件都必須經(jīng)過(guò)嚴格的測試。
飛控計算機CPU模塊的處理器通常選用PowerPC或X86系列,CPU模塊設計有專(zhuān)門(mén)的FLASH芯片,為保證飛控程序存放的正確無(wú)誤,FLASH測試必不可少。而智能接口模塊的處理器通常選用TMSF240、TMSF2812等,采用片內FLASH存放自己的程序。這部分FLASH的自測試常常被忽視,而這是飛控系統不能容忍的。本文介紹了一種基于TMSF240芯片內部FLASH的自測試方法。
1 問(wèn)題描述
在CPU處理器無(wú)自帶FLASH空間的情況下,我們選用市場(chǎng)上專(zhuān)用的FLASH芯片,通過(guò)硬件設計該FLASH芯片的每一個(gè)地址空間都是可以訪(fǎng)問(wèn)的,我們可以指定不同的區域存放不同的內容。FLASH芯片的自測試也有很多種方法,目前較普遍采用的是校驗和的方法,即由專(zhuān)門(mén)的燒寫(xiě)工具(可以使用軟件完成該工具)在燒寫(xiě)的過(guò)程中將校驗和計算好直接放到指定的單元中,這個(gè)單元可以指定到燒程序時(shí)寫(xiě)不到的空閑空間,自測試時(shí)只需重新計算一遍校驗和與該值進(jìn)行比較即可。此種方法我們稱(chēng)之為方法一。
而TMSF240內部自帶FLASH存儲空間,燒錄過(guò)程對于用戶(hù)來(lái)說(shuō)較透明。我們不直接指定向某一具體的Flash空間寫(xiě)入數據,而是通過(guò)執行TI公司提供的批處理文件,經(jīng)由聞亭仿真器連接目標機來(lái)完成燒錄程序的過(guò)程,因此直接使用方法一我們無(wú)處存放校驗和為使用方法一來(lái)測試芯片內部的FLASH我們必須解決校驗和的存放問(wèn)題。
2 芯片內部FLASH自測試方法概述
下面介紹的方法實(shí)現的是解決程序本身自測試程序本身燒到FLASH后保存的是否正確的問(wèn)題。該方法不是將校驗和直接寫(xiě)到FLASH中,而是在待燒錄的程序中定義一個(gè)變量,該變量最終用于存放事先計算好的校驗和,通過(guò)兩次燒錄實(shí)現芯片內部FLASH自測試功能的。必須巧妙地避開(kāi)因改變程序本身而引起的程序校驗和改變而導致自測試算法失效的問(wèn)題。
本方法需要事先將程序完全調試好燒錄到FLASH中,然后才能讀取FLASH內容計算校驗和。此時(shí)將校驗和值賦給事先定義好的變量,重新編譯后得到最終的目標碼,燒錄到FLASH中。程序上電后自動(dòng)運行,FLASH自測試程序在每次執行自測試功能時(shí)都將要測試的程序空間讀出并計算校驗和與該變量進(jìn)行比較,比較結果一致則待測試FLASH空間正確,反之則表明FLASH空間有故障。
由于變量賦值的改變會(huì )導致整個(gè)代碼校驗和的改變,因此該問(wèn)題必須得到恰當的解決。第一次燒寫(xiě)的程序的算法如圖1所示。
以上步驟中第二步到第四步是此算法的實(shí)現重點(diǎn),它屬于代碼的一部分,兩次燒寫(xiě)要對其進(jìn)行更改,詳見(jiàn)第3節。第三步是本方法的關(guān)鍵所在,由于sum=0,所以經(jīng)過(guò)“sum=sum+sum;”的運算后sum值還是0,并沒(méi)有改變sum的值。而sum的初值0并沒(méi)有對程序的真實(shí)校驗和值做出貢獻,這為第二次燒寫(xiě)的程序代碼和計算做出鋪墊。
評論