為驗證燒錄進去的數(shù)據(jù)是否正確,我們一般有兩種方式:checksum和readout。下面我們以Flashrunner2.0為例,來講講兩者的區(qū)別。
為了縮短燒錄時間,使用checksum代替readout很有用。因為readout通常比checksum慢。發(fā)生這種情況是因為readout會檢查所有編程的存儲器,將它從存儲器中讀取的值與frb中存在的相應值進行比較。readout的工作方式非常簡單,從目標存儲器中讀取一個或多個字節(jié),并將它們與frb中的相應值進行比較。顯然,這種類型的驗證非常準確,因為它逐個比較了所有已注冊的值。如前所述,readout會逐字節(jié)進行比較,因此,如果它沒有返回錯誤,則意味著編程已正確完成,沒有出錯的可能性。
checksum會向目標設(shè)備發(fā)送命令,目標設(shè)備會計算特定內(nèi)存部分的校驗和。在執(zhí)行此操作的同時,F(xiàn)lashRunner 2.0 使用 frb 中的值計算該內(nèi)存位置中預期值的校驗和。此時,當兩者都完成計算時,將對兩個校驗和進行比較。如果它們對應,則 FlashRunner 2.0 將繼續(xù)執(zhí)行下一個內(nèi)存部分,直到完成。請注意,checksum作為驗證讀出命令是不安全的,因為它是基于內(nèi)存區(qū)域計算結(jié)果的。因此,如果內(nèi)存中存在不正確的值,則 FlashRunner 2.0 和設(shè)備計算的校驗和是不同的,這會導致驗證校驗和返回錯誤并中斷腳本的執(zhí)行。
Cheksum在我們的驅(qū)動程序中廣泛存在。但在某些情況下可能無用。校驗和需要一個實際執(zhí)行計算的 CPU,因此內(nèi)存會自動排除。從 FlashRunner 2.0 讀取執(zhí)行目標計算將導致與驗證讀出方法相同的執(zhí)行時間。
微控制器還必須在引導加載程序的特定函數(shù)中包含啟動此計算的可能性。這將通過與目標設(shè)備內(nèi)存計算并行進行 frb 計算來帶來加速優(yōu)勢。
-
存儲器
+關(guān)注
關(guān)注
38文章
7430瀏覽量
163517 -
內(nèi)存
+關(guān)注
關(guān)注
8文章
2966瀏覽量
73814 -
程序
+關(guān)注
關(guān)注
116文章
3756瀏覽量
80754 -
命令
+關(guān)注
關(guān)注
5文章
676瀏覽量
21965 -
燒錄
+關(guān)注
關(guān)注
8文章
252瀏覽量
35495
發(fā)布評論請先 登錄
相關(guān)推薦
評論