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