亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Bootloader程序Flash數(shù)據(jù)的一致性驗(yàn)證方法*

        2019-01-17 03:11:12,,,,
        關(guān)鍵詞:診斷儀校驗(yàn)應(yīng)用程序

        ,,,,

        (1.齊魯工業(yè)大學(xué)(山東省科學(xué)院),濟(jì)南 250353;2.山東省科學(xué)院自動(dòng)化研究所;3.山東省汽車電子技術(shù)重點(diǎn)實(shí)驗(yàn)室)

        引 言

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

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

        參考文獻(xiàn)[2]提出了一種判斷程序數(shù)據(jù)塊寫入是否正確的方法,在程序數(shù)據(jù)寫入過程中提取標(biāo)識(shí)信息,與程序數(shù)據(jù)塊已知的驗(yàn)證信息進(jìn)行對(duì)比,標(biāo)識(shí)信息和驗(yàn)證信息一致表明數(shù)據(jù)塊寫入正確。這種方法僅用于判斷燒寫數(shù)據(jù)時(shí)是否發(fā)生錯(cuò)誤,沒有考慮系統(tǒng)整個(gè)生命周期內(nèi)Flash存儲(chǔ)數(shù)據(jù)發(fā)生破損的情況。參考文獻(xiàn)[3]提出了一種對(duì)軟件程序數(shù)據(jù)進(jìn)行校驗(yàn)的方法,在軟件程序加載階段對(duì)程序各個(gè)模塊進(jìn)行哈希計(jì)算,將計(jì)算結(jié)果發(fā)回服務(wù)器端進(jìn)行對(duì)比。這種方法不適合嵌入式系統(tǒng)程序Flash數(shù)據(jù)的校驗(yàn),而且沒有說明校驗(yàn)信息的生成方法。

        本文設(shè)計(jì)了一種基于CAN總線的Bootloader,在產(chǎn)品生產(chǎn)階段通過CAN總線下載并燒錄應(yīng)用程序,保證了下載數(shù)據(jù)的一致性,在產(chǎn)品運(yùn)行階段,對(duì)應(yīng)用數(shù)據(jù)進(jìn)行校驗(yàn)對(duì)比,保證了產(chǎn)品生命周期內(nèi)的數(shù)據(jù)一致性[4]。

        1 基于CAN總線的Bootloader

        ISO 15765-3以ISO 14229-1定義的統(tǒng)一診斷服務(wù)(UDS)為基礎(chǔ),規(guī)范了基于CAN總線的診斷服務(wù)(UDS on CAN)[5],既可以用于汽車CAN節(jié)點(diǎn)的下線檢測、故障診斷、功能配置,也可以用于汽車CAN節(jié)點(diǎn)的程序下載和軟件升級(jí)。CAN節(jié)點(diǎn)中實(shí)現(xiàn)應(yīng)用程序下載和升級(jí)的程序稱為Bootloader,Bootloader響應(yīng)診斷儀發(fā)起的UDS服務(wù)請(qǐng)求[6],接收診斷儀發(fā)送的應(yīng)用程序指令數(shù)據(jù),通過Flash驅(qū)動(dòng)程序進(jìn)行應(yīng)用程序Flash地址空間的擦除和應(yīng)用程序數(shù)據(jù)的燒寫。

        1.1 Flash地址空間

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

        圖1 程序Flash地址空間分配

        1.2 程序數(shù)據(jù)文件

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

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

        1.3 應(yīng)用程序分段

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

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

        (1)

        假設(shè)該分段由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同時(shí)滿足以下關(guān)系:

        Seg_len=Seg_e-Seg_s+1

        (5)

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

        2 Flash數(shù)據(jù)一致性驗(yàn)證

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

        2.1 生產(chǎn)階段一致性驗(yàn)證

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

        診斷儀根據(jù)S19文件中各分段內(nèi)SRecord的Flash寫入地址連續(xù)的特性計(jì)算分段尺寸,具體計(jì)算方法為:

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

        圖3 Flash數(shù)據(jù)一致性驗(yàn)證

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

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

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

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

        圖2 分段尺寸計(jì)算

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

        2.2 運(yùn)行階段一致性驗(yàn)證

        在產(chǎn)品運(yùn)行階段,上電后,MCU首先跳入Bootloader的地址空間運(yùn)行,檢查應(yīng)用程序有效標(biāo)志,如果讀取到的有效標(biāo)志為0x55,MCU跳入應(yīng)用程序的地址空間運(yùn)行。在應(yīng)用程序的初始化階段,讀取存儲(chǔ)在數(shù)據(jù)Flash中的校驗(yàn)信息,根據(jù)校驗(yàn)信息中的分段尺寸,讀取各個(gè)分段中的Flash數(shù)據(jù),進(jìn)行CRC32校驗(yàn),并將計(jì)算結(jié)果和校驗(yàn)信息中的CRC32校驗(yàn)值進(jìn)行對(duì)比,如果數(shù)據(jù)一致,表明程序Flash數(shù)據(jù)沒有損壞,系統(tǒng)正常運(yùn)行,如果不一致,表明程序Flash數(shù)據(jù)被損壞,進(jìn)入跛行模式。具體流程如圖3所示。

        結(jié) 語

        猜你喜歡
        診斷儀校驗(yàn)應(yīng)用程序
        日立EUB 8500E彩色超聲診斷儀的維修與升級(jí)
        刪除Win10中自帶的應(yīng)用程序
        爐溫均勻性校驗(yàn)在鑄鍛企業(yè)的應(yīng)用
        馬純棟:維修技術(shù)人員應(yīng)提高診斷儀的利用率
        蔡鵬:優(yōu)質(zhì)診斷儀為現(xiàn)代汽修打開便利之門
        大型電動(dòng)機(jī)高阻抗差動(dòng)保護(hù)穩(wěn)定校驗(yàn)研究
        電測與儀表(2015年1期)2015-04-09 12:03:02
        基于加窗插值FFT的PMU校驗(yàn)方法
        鍋爐安全閥在線校驗(yàn)不確定度評(píng)定
        光聲成像宮頸癌診斷儀
        關(guān)閉應(yīng)用程序更新提醒
        電腦迷(2012年15期)2012-04-29 17:09:47
        九一九色国产| 巨爆中文字幕巨爆区爆乳| 一本色道久在线综合色| 一本色道久久综合亚洲| 国产一级一级内射视频| 亚洲国产av无码精品无广告| 岳丰满多毛的大隂户| 特黄大片又粗又大又暴| 国产男女免费完整视频| 羞羞视频在线观看| 日日躁夜夜躁狠狠久久av| 中文字幕 人妻熟女| 国产精品午夜波多野结衣性色| 色翁荡息又大又硬又粗又视频图片| 亚洲另在线日韩综合色| 青春草在线观看免费视频| 国产一区二区三区成人av| 亚洲精品中文字幕一二三四| 成人免费在线亚洲视频| 男人国产av天堂www麻豆| 成人乱码一区二区三区av| 中文乱码字慕人妻熟女人妻| 免费人成无码大片在线观看| 国产亚洲精品hd网站| 日韩人妻中文字幕一区二区| 亚洲精品女人天堂av麻| 青青草成人免费在线观看视频| 日日日日做夜夜夜夜做无码| 久久久受www免费人成| 国产乱子伦一区二区三区| 亚洲国产精品久久久天堂不卡海量| 久久精品国产88久久综合 | 一区视频在线观看免费播放.| 性色av一区二区三区密臀av| 精品综合久久88少妇激情| 亚洲欧洲成人a∨在线观看| 精品久久香蕉国产线看观看亚洲| 亚洲五月天综合| 亚洲中文字幕在线爆乳| 国产精品一区二区AV不卡| 国产三级三级精品久久|