為驗(yàn)證燒錄進(jìn)去的數(shù)據(jù)是否正確,我們一般有兩種方式:checksum和readout。下面我們以Flashrunner2.0為例,來(lái)講講兩者的區(qū)別。
為了縮短燒錄時(shí)間,使用checksum代替readout很有用。因?yàn)閞eadout通常比checksum慢。發(fā)生這種情況是因?yàn)閞eadout會(huì)檢查所有編程的存儲(chǔ)器,將它從存儲(chǔ)器中讀取的值與frb中存在的相應(yīng)值進(jìn)行比較。readout的工作方式非常簡(jiǎn)單,從目標(biāo)存儲(chǔ)器中讀取一個(gè)或多個(gè)字節(jié),并將它們與frb中的相應(yīng)值進(jìn)行比較。顯然,這種類型的驗(yàn)證非常準(zhǔn)確,因?yàn)樗饌€(gè)比較了所有已注冊(cè)的值。如前所述,readout會(huì)逐字節(jié)進(jìn)行比較,因此,如果它沒(méi)有返回錯(cuò)誤,則意味著編程已正確完成,沒(méi)有出錯(cuò)的可能性。
checksum會(huì)向目標(biāo)設(shè)備發(fā)送命令,目標(biāo)設(shè)備會(huì)計(jì)算特定內(nèi)存部分的校驗(yàn)和。在執(zhí)行此操作的同時(shí),F(xiàn)lashRunner 2.0 使用 frb 中的值計(jì)算該內(nèi)存位置中預(yù)期值的校驗(yàn)和。此時(shí),當(dāng)兩者都完成計(jì)算時(shí),將對(duì)兩個(gè)校驗(yàn)和進(jìn)行比較。如果它們對(duì)應(yīng),則 FlashRunner 2.0 將繼續(xù)執(zhí)行下一個(gè)內(nèi)存部分,直到完成。請(qǐng)注意,checksum作為驗(yàn)證讀出命令是不安全的,因?yàn)樗腔趦?nèi)存區(qū)域計(jì)算結(jié)果的。因此,如果內(nèi)存中存在不正確的值,則 FlashRunner 2.0 和設(shè)備計(jì)算的校驗(yàn)和是不同的,這會(huì)導(dǎo)致驗(yàn)證校驗(yàn)和返回錯(cuò)誤并中斷腳本的執(zhí)行。
Cheksum在我們的驅(qū)動(dòng)程序中廣泛存在。但在某些情況下可能無(wú)用。校驗(yàn)和需要一個(gè)實(shí)際執(zhí)行計(jì)算的 CPU,因此內(nèi)存會(huì)自動(dòng)排除。從 FlashRunner 2.0 讀取執(zhí)行目標(biāo)計(jì)算將導(dǎo)致與驗(yàn)證讀出方法相同的執(zhí)行時(shí)間。
微控制器還必須在引導(dǎo)加載程序的特定函數(shù)中包含啟動(dòng)此計(jì)算的可能性。這將通過(guò)與目標(biāo)設(shè)備內(nèi)存計(jì)算并行進(jìn)行 frb 計(jì)算來(lái)帶來(lái)加速優(yōu)勢(shì)。
-
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7653瀏覽量
167409 -
內(nèi)存
+關(guān)注
關(guān)注
8文章
3125瀏覽量
75270 -
程序
+關(guān)注
關(guān)注
117文章
3826瀏覽量
82987 -
命令
+關(guān)注
關(guān)注
5文章
737瀏覽量
22880 -
燒錄
+關(guān)注
關(guān)注
8文章
290瀏覽量
36354
發(fā)布評(píng)論請(qǐng)先 登錄
IC安全燒錄量產(chǎn)設(shè)計(jì)的一種機(jī)制
一種新型半自動(dòng)驗(yàn)證流程 SoC連通性的正確性

怎么去驗(yàn)證ads1292R采集到的數(shù)據(jù)是否正確?
如何驗(yàn)證FFT的結(jié)果是否正確?
ads1292R采集數(shù)據(jù)怎么驗(yàn)證據(jù)是否為正確的
有沒(méi)有辦法驗(yàn)證電纜是否正確安裝,而沒(méi)有嘗試通過(guò)jtag連接以獲取丟失的電纜錯(cuò)誤?
驗(yàn)證STM32的設(shè)備號(hào)讀取是否正確
請(qǐng)問(wèn)如何驗(yàn)證加速度計(jì)數(shù)據(jù)是否正確?
深層解析形式驗(yàn)證

評(píng)論