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
主站蜘蛛池模板: 在线视频一区二区三区不卡| 亚洲清纯自偷自拍另类专区| 亚洲伦理一区二区| 国产高清又黄又嫩的免费视频网站| 亚洲无码精品在线播放| 亚洲一区精品视频在线| 亚洲视频免| 日本国产在线| 熟女成人国产精品视频| 国产激爽爽爽大片在线观看| 全部免费特黄特色大片视频| 91无码人妻精品一区| 亚洲中文字幕国产av| 91九色国产porny| 综合网久久| 国产成人亚洲综合a∨婷婷| 国产成人麻豆精品| 欧美成人精品高清在线下载| 国产亚洲精品yxsp| 国产精品无码AV片在线观看播放| 久草中文网| 国产欧美综合在线观看第七页| 中文字幕日韩欧美| 永久免费AⅤ无码网站在线观看| 精品在线免费播放| 最新国产午夜精品视频成人| 精品少妇人妻一区二区| 欧美成人免费一区在线播放| 亚洲香蕉伊综合在人在线| 欧美成在线视频| 亚洲日本精品一区二区| 婷婷午夜天| 丝袜美女被出水视频一区| 99视频有精品视频免费观看| 欧美午夜精品| 亚洲成A人V欧美综合天堂| 毛片免费视频| 91精品国产情侣高潮露脸| 亚洲国产天堂久久综合226114| 久久综合色天堂av| 超清无码熟妇人妻AV在线绿巨人| 伊人国产无码高清视频| 国产人成在线观看| 蜜桃视频一区| 精品视频第一页| a免费毛片在线播放| 中文字幕 日韩 欧美| 免费中文字幕一级毛片| 青青青伊人色综合久久| 亚洲精选无码久久久| 欧美第一页在线| 日韩国产一区二区三区无码| 国产第一页亚洲| 国产综合精品一区二区| 精品国产91爱| 米奇精品一区二区三区| 一级黄色欧美| 国产精品嫩草影院av| 欧美午夜在线观看| 欧美成人免费午夜全| 大香网伊人久久综合网2020| 美女一级免费毛片| 国产欧美日韩18| 日韩色图区| 日韩专区欧美| 国产成人AV男人的天堂| 日韩中文无码av超清| 亚洲动漫h| 日本久久免费| 露脸一二三区国语对白| 亚洲欧美日韩高清综合678| 国产极品美女在线观看| 国产精品亚洲专区一区| 欧美午夜在线播放| 国产成人高清在线精品| 精品国产自| 高清色本在线www| 四虎永久免费地址| 在线看AV天堂| 日韩国产亚洲一区二区在线观看| 国产精品第| 极品国产一区二区三区|