999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Bootloader程序Flash數據的一致性驗證方法*

2019-01-17 03:11:12,,,,
單片機與嵌入式系統應用 2018年12期
關鍵詞:一致性程序信息

,,,,

(1.齊魯工業大學(山東省科學院),濟南 250353;2.山東省科學院自動化研究所;3.山東省汽車電子技術重點實驗室)

引 言

在中小型嵌入式系統形式的汽車電子產品中,一般由MCU內部的NOR Flash存儲并運行系統程序,NOR Flash支持片內運行(Excute In Place),不必把代碼讀到系統RAM中。作為一種CMOS工藝的集成電路芯片,隨著其工作頻率越來越快、集成度越來越高、工藝尺寸越來越小,MCU及其內部Flash越來越容易受到輻射效應的影響[1]。輻射效應可能會造成NOR Flash數據的破壞,從而使得基于程序指令運行的嵌入式系統的應用邏輯發生混亂。汽車電子產品的壽命一般都在10年以上,NOR Flash的數據一致性對產品整個生命周期內的功能穩定性和數據安全性尤為重要,有必要研究一種方法來檢驗汽車電子產品程序Flash數據的一致性。

在中小型嵌入式系統中,MCU程序Flash地址空間被劃分為若干扇區,扇區大小一般為16 KB或32 KB,有效程序數據一般被劃分為若干個分段(Segment),分段位于扇區內,尺寸不固定,但都小于扇區長度,對于中小型嵌入式系統而言,幾個分段就能夠滿足程序存儲要求。

參考文獻[2]提出了一種判斷程序數據塊寫入是否正確的方法,在程序數據寫入過程中提取標識信息,與程序數據塊已知的驗證信息進行對比,標識信息和驗證信息一致表明數據塊寫入正確。這種方法僅用于判斷燒寫數據時是否發生錯誤,沒有考慮系統整個生命周期內Flash存儲數據發生破損的情況。參考文獻[3]提出了一種對軟件程序數據進行校驗的方法,在軟件程序加載階段對程序各個模塊進行哈希計算,將計算結果發回服務器端進行對比。這種方法不適合嵌入式系統程序Flash數據的校驗,而且沒有說明校驗信息的生成方法。

本文設計了一種基于CAN總線的Bootloader,在產品生產階段通過CAN總線下載并燒錄應用程序,保證了下載數據的一致性,在產品運行階段,對應用數據進行校驗對比,保證了產品生命周期內的數據一致性[4]。

1 基于CAN總線的Bootloader

ISO 15765-3以ISO 14229-1定義的統一診斷服務(UDS)為基礎,規范了基于CAN總線的診斷服務(UDS on CAN)[5],既可以用于汽車CAN節點的下線檢測、故障診斷、功能配置,也可以用于汽車CAN節點的程序下載和軟件升級。CAN節點中實現應用程序下載和升級的程序稱為Bootloader,Bootloader響應診斷儀發起的UDS服務請求[6],接收診斷儀發送的應用程序指令數據,通過Flash驅動程序進行應用程序Flash地址空間的擦除和應用程序數據的燒寫。

1.1 Flash地址空間

Bootloader地址空間和應用程序地址空間分配如圖1所示。MCU的程序Flash同時存儲Bootloader和應用程序,運行在Bootloader地址空間上的程序將應用程序數據燒寫或更新到應用程序地址空間中[7]。圖中應用程序Flash地址空間包含若干分段,以分段1、分段2、…、分段n表示,n為分段數量。各個分段的首地址和截止地址在應用程序的鏈接文件中設定,在實際應用中,由于函數指令數據不能跨段存儲,因此,分段的實際尾地址小于或等于設定的截止地址。

圖1 程序Flash地址空間分配

1.2 程序數據文件

應用程序編譯、鏈接后生成程序數據文件,本方法選擇大多數MCU都支持的S19文件。S19的全稱為Motorola format for EEPROM programming,是摩托羅拉公司為程序和數據文件定義的一種可打印的ASCII形式編碼的S格式文件,以實現在不同的計算機平臺之間傳輸程序代碼和數據[8]。

S19文件中的每一行數據為一條SRecord,以S0型SRecord開始,以S9型SRecord結束,以S2型SRecord存放Flash寫入地址、程序數據、程序數據長度信息[9]。

1.3 應用程序分段

應用程序的每個分段都由多條S2型SRecord組成,分段內SRecord的Flash寫入地址連續,每條SRecord的程序數據長度相等。記分段內第n條SRecord的Flash寫入地址為Addr(n),第(n+1)條SRecord的Flash寫入地址為Addr(n+1),SRecord的程序數據長度為Len_s,三者滿足以下關系:

Addr(n+1)=Addr(n)+Len_s

(1)

假設該分段由m條SRecord組成,記分段首地址為Seg_s,分段尾地址為Seg_e,分段尺寸為Seg_len,則

Seg_s=Addr(1)

(2)

Seg_e=Addr(m)+Len_s-1

(3)

Seg_len=m*Len_s

(4)

Seg_s、Seg_e、Seg_len同時滿足以下關系:

Seg_len=Seg_e-Seg_s+1

(5)

應用程序的鏈接文件指定了程序各個分段的首地址[10],它不會隨應用程序的修改而變化,分段尾地址和分段尺寸可以通過編譯鏈接生成的S19文件計算得出。

2 Flash數據一致性驗證

本方法不僅可以檢測產品生產下線階段程序Flash數據的一致性,還能夠檢測產品整個生命周期內因電磁干擾、空間輻射等效應對Flash數據造成的損壞。Flash數據一致性驗證的校驗信息為各分段尺寸和對所有Flash數據按照地址遞增的方式進行CRC32計算得出的校驗值。

2.1 生產階段一致性驗證

在產品生產階段,首先通過燒錄器燒寫Bootloader,然后通過診斷儀軟件,基于UDS on CAN協議將應用程序下載到產品中,通過Bootloader進行燒寫。下載應用程序Flash數據的過程中,診斷儀解析S19文件,計算出各分段的尺寸和應用程序Flash數據的CRC32校驗值,并將之作為驗證信息發送給Bootloader。Bootloader在燒寫應用程序的過程中同樣計算各分段尺寸和應用程序Flash數據的CRC32校驗值,燒寫完成后,Bootloader比較診斷儀計算的驗證信息和自身計算的校驗信息,兩者一致,則表明應用程序燒錄正確,然后在MCU內部數據Flash中存儲校驗信息,并將應用程序有效標志置為0x55,存入數據Flash中。

診斷儀根據S19文件中各分段內SRecord的Flash寫入地址連續的特性計算分段尺寸,具體計算方法為:

① 讀取分段首行SRecord,提取Flash寫入地址和程序數據長度,分段首地址賦值為Flash寫入地址,分段尾地址初始值賦值為Flash寫入地址+程序數據長度-1。然后進入步驟②;

圖3 Flash數據一致性驗證

② 讀取下一行SRecord,提取Flash寫入地址和程序數據長度,如果Flash寫入地址等于分段尾地址+1,進入步驟③,否則進入步驟④;

③ 將分段尾地址累加,累加值為程序數據長度,判斷該行是否為S19文件最后一行,如果是,進入步驟⑤,否則,進入步驟②;

④ 按照式(5)計算分段尺寸,將該行視為下一個分段首行SRecord,進入步驟①;

⑤ 按照式(5)計算分段尺寸,退出分段尺寸的計算過程。

圖2 分段尺寸計算

具體計算流程如圖2所示。Bootloader根據Flash寫入地址計算分段尺寸,Flash的燒寫以頁(Page)為單位,如果燒寫地址屬于分段i,將分段i尺寸累加,累加值為頁長度。

2.2 運行階段一致性驗證

在產品運行階段,上電后,MCU首先跳入Bootloader的地址空間運行,檢查應用程序有效標志,如果讀取到的有效標志為0x55,MCU跳入應用程序的地址空間運行。在應用程序的初始化階段,讀取存儲在數據Flash中的校驗信息,根據校驗信息中的分段尺寸,讀取各個分段中的Flash數據,進行CRC32校驗,并將計算結果和校驗信息中的CRC32校驗值進行對比,如果數據一致,表明程序Flash數據沒有損壞,系統正常運行,如果不一致,表明程序Flash數據被損壞,進入跛行模式。具體流程如圖3所示。

結 語

猜你喜歡
一致性程序信息
關注減污降碳協同的一致性和整體性
公民與法治(2022年5期)2022-07-29 00:47:28
注重教、學、評一致性 提高一輪復習效率
IOl-master 700和Pentacam測量Kappa角一致性分析
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于事件觸發的多智能體輸入飽和一致性控制
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
主站蜘蛛池模板: 国产中文在线亚洲精品官网| 精品国产一区二区三区在线观看| 精品无码日韩国产不卡av| 亚洲 欧美 日韩综合一区| 亚洲色图狠狠干| 日韩欧美综合在线制服| 亚洲色图综合在线| 呦女亚洲一区精品| 国产福利一区视频| 国产乱人乱偷精品视频a人人澡| 国产小视频免费观看| 亚洲综合在线网| 亚洲性日韩精品一区二区| 永久免费av网站可以直接看的| 91偷拍一区| 久久精品一品道久久精品| 亚洲精品中文字幕午夜| 97se亚洲综合在线| 999在线免费视频| 午夜欧美在线| 国产亚洲现在一区二区中文| 久久久久亚洲精品成人网| 亚洲成a人片在线观看88| 国产97区一区二区三区无码| 无码啪啪精品天堂浪潮av| 久久中文字幕不卡一二区| 成人小视频网| 鲁鲁鲁爽爽爽在线视频观看| 丁香五月亚洲综合在线 | 国产美女视频黄a视频全免费网站| 日本免费福利视频| 最新午夜男女福利片视频| 亚洲人成在线精品| 三上悠亚在线精品二区| 中文成人在线视频| 一级毛片不卡片免费观看| 亚洲午夜天堂| 国产成人av大片在线播放| 成人免费一级片| 亚洲天堂成人| 久久精品亚洲热综合一区二区| 亚洲高清中文字幕在线看不卡| 欧美a在线| 亚洲一区二区视频在线观看| 小说 亚洲 无码 精品| 毛片网站观看| 亚洲国产中文综合专区在| 成人在线不卡| 色网站在线视频| 久久久91人妻无码精品蜜桃HD| 国产在线小视频| 国产第二十一页| 亚洲黄色成人| 色综合成人| 亚洲色图综合在线| 麻豆a级片| 狠狠v日韩v欧美v| 呦女亚洲一区精品| 视频在线观看一区二区| 国产小视频在线高清播放| 亚洲精品成人福利在线电影| 久久精品亚洲中文字幕乱码| 亚洲成人动漫在线| 青青草一区二区免费精品| 亚洲欧美日韩视频一区| 亚洲天堂777| 国产精品福利一区二区久久| 日韩精品亚洲一区中文字幕| 久久毛片基地| 久久中文字幕2021精品| 91精品国产一区自在线拍| 亚洲色大成网站www国产| 亚洲成人在线免费观看| 人妻中文字幕无码久久一区| 欲色天天综合网| 国产精品免费福利久久播放| 尤物视频一区| 色悠久久综合| 91福利在线看| 国产va视频| 亚洲精品第五页| 亚洲国产成人麻豆精品|