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
主站蜘蛛池模板: 97se亚洲| 久久国产精品电影| 伊人大杳蕉中文无码| 97视频在线精品国自产拍| 精品视频免费在线| 国产精品分类视频分类一区| 亚洲精品大秀视频| 国产精品观看视频免费完整版| 国模私拍一区二区| 亚洲综合一区国产精品| 亚洲国产系列| 欧美日韩一区二区三| 亚洲天堂啪啪| 国产激情在线视频| 伊人久久婷婷五月综合97色| 激情成人综合网| a级毛片免费在线观看| 国产主播在线一区| 91精品啪在线观看国产91| 免费观看成人久久网免费观看| 国产福利小视频高清在线观看| A级毛片无码久久精品免费| 国产Av无码精品色午夜| 国产在线观看成人91| 91久久国产热精品免费| 亚洲国产亚洲综合在线尤物| 国产成人精品免费av| 国产迷奸在线看| 国产96在线 | 日韩精品中文字幕一区三区| 久久久久国产精品嫩草影院| 成人午夜福利视频| 国产欧美日韩专区发布| 国产一区在线视频观看| 在线精品自拍| 色婷婷电影网| 国产偷倩视频| 特级aaaaaaaaa毛片免费视频 | 狼友视频国产精品首页| 免费在线看黄网址| 亚洲视频a| 国产成人av大片在线播放| 国产欧美日韩91| 久久大香香蕉国产免费网站| 福利在线一区| 四虎影视国产精品| 亚洲AV无码乱码在线观看代蜜桃| 国产免费久久精品99re丫丫一| 波多野结衣一二三| 2020久久国产综合精品swag| 无码精品福利一区二区三区| 精品五夜婷香蕉国产线看观看| 亚洲日韩久久综合中文字幕| 亚洲无码精彩视频在线观看| 免费国产高清视频| 在线不卡免费视频| 日韩欧美91| 狠狠色综合久久狠狠色综合| 亚洲精品国产综合99久久夜夜嗨| 色综合天天综合中文网| 亚洲一区第一页| 国产精品微拍| 日韩AV无码一区| 国产亚洲精品精品精品| 女同久久精品国产99国| 一边摸一边做爽的视频17国产| 成人午夜视频网站| 亚洲成年人片| 亚洲精品在线影院| 亚洲男人天堂2020| 天堂成人在线视频| 亚洲人成网站18禁动漫无码| 无码一区18禁| 九九久久99精品| 99色亚洲国产精品11p| 久久精品这里只有精99品| 国产精品99久久久久久董美香| 日韩精品视频久久| 美女潮喷出白浆在线观看视频| 美女毛片在线| 久久国产乱子| 大乳丰满人妻中文字幕日本|