新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于TMSF240芯片的內(nèi)部FLASH自測(cè)試方法

基于TMSF240芯片的內(nèi)部FLASH自測(cè)試方法

作者: 時(shí)間:2013-06-27 來(lái)源:網(wǎng)絡(luò) 收藏

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

本文引用地址:http://2s4d.com/article/185437.htm

1 問(wèn)題描述

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

而TMSF內(nèi)部自帶FLASH存儲(chǔ)空間,燒錄過(guò)程對(duì)于用戶來(lái)說(shuō)較透明。我們不直接指定向某一具體的Flash空間寫入數(shù)據(jù),而是通過(guò)執(zhí)行TI公司提供的批處理文件,經(jīng)由聞亭仿真器連接目標(biāo)機(jī)來(lái)完成燒錄程序的過(guò)程,因此直接使用方法一我們無(wú)處存放校驗(yàn)和為使用方法一來(lái)測(cè)試芯片內(nèi)部的FLASH我們必須解決校驗(yàn)和的存放問(wèn)題。

2 芯片內(nèi)部FLASH自測(cè)試方法概述

下面介紹的方法實(shí)現(xiàn)的是解決程序本身自測(cè)試程序本身燒到FLASH后保存的是否正確的問(wèn)題。該方法不是將校驗(yàn)和直接寫到FLASH中,而是在待燒錄的程序中定義一個(gè)變量,該變量最終用于存放事先計(jì)算好的校驗(yàn)和,通過(guò)兩次燒錄實(shí)現(xiàn)芯片內(nèi)部FLASH自測(cè)試功能的。必須巧妙地避開(kāi)因改變程序本身而引起的程序校驗(yàn)和改變而導(dǎo)致自測(cè)試算法失效的問(wèn)題。

本方法需要事先將程序完全調(diào)試好燒錄到FLASH中,然后才能讀取FLASH內(nèi)容計(jì)算校驗(yàn)和。此時(shí)將校驗(yàn)和值賦給事先定義好的變量,重新編譯后得到最終的目標(biāo)碼,燒錄到FLASH中。程序上電后自動(dòng)運(yùn)行,F(xiàn)LASH自測(cè)試程序在每次執(zhí)行自測(cè)試功能時(shí)都將要測(cè)試的程序空間讀出并計(jì)算校驗(yàn)和與該變量進(jìn)行比較,比較結(jié)果一致則待測(cè)試FLASH空間正確,反之則表明FLASH空間有故障。

由于變量賦值的改變會(huì)導(dǎo)致整個(gè)代碼校驗(yàn)和的改變,因此該問(wèn)題必須得到恰當(dāng)?shù)慕鉀Q。第一次燒寫的程序的算法如圖1所示。

1.jpg

以上步驟中第二步到第四步是此算法的實(shí)現(xiàn)重點(diǎn),它屬于代碼的一部分,兩次燒寫要對(duì)其進(jìn)行更改,詳見(jiàn)第3節(jié)。第三步是本方法的關(guān)鍵所在,由于sum=0,所以經(jīng)過(guò)“sum=sum+sum;”的運(yùn)算后sum值還是0,并沒(méi)有改變sum的值。而sum的初值0并沒(méi)有對(duì)程序的真實(shí)校驗(yàn)和值做出貢獻(xiàn),這為第二次燒寫的程序代碼和計(jì)算做出鋪墊。

3 芯片內(nèi)部FLASH自測(cè)試方法詳述

3.1 第一次燒寫步驟

第一次燒寫過(guò)程如下:

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

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

3.2 第二次燒寫步驟

第二次燒寫過(guò)程如下:

步驟1:利用聞亭仿真器設(shè)置成燒錄模式下代碼調(diào)試模式,將硬件斷點(diǎn)設(shè)置在FLASH自測(cè)試的函數(shù)入口處;

步驟2:將程序連續(xù)運(yùn)行至斷點(diǎn)處后,單步調(diào)試計(jì)算出真正的代碼和sum=XXX;

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

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

3.3 方法詳細(xì)說(shuō)明

在第二次燒寫過(guò)程中,圖1所示的算法變成圖2所示內(nèi)容。

2.jpg

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

需要補(bǔ)充說(shuō)明一點(diǎn),該算法是基于第一次燒錄成功后重新加載第一次燒錄的程序由DSP處理器自動(dòng)計(jì)算校驗(yàn)和是正確的基礎(chǔ)上的,這是由CPU的加減乘除和邏輯運(yùn)算等自測(cè)試正確保證的,在上電時(shí)PUBIT里有該項(xiàng)自測(cè)試。

4 結(jié)束語(yǔ)

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



關(guān)鍵詞: FLASH TMSF 240 芯片

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉