欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種固件升級(jí)的方法和設(shè)備與流程

文檔序號(hào):12491656閱讀:446來(lái)源:國(guó)知局
一種固件升級(jí)的方法和設(shè)備與流程

本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,特別涉及一種固件升級(jí)的方法和設(shè)備。



背景技術(shù):

現(xiàn)有技術(shù)中,針對(duì)STM32單片機(jī)的固件升級(jí),適用范圍有限,無(wú)法適用無(wú)大容量的固件文件升級(jí),且操作不方便。



技術(shù)實(shí)現(xiàn)要素:

針對(duì)現(xiàn)有技術(shù)中的缺陷,本發(fā)明提出了一種固件升級(jí)的方法和設(shè)備,用以快捷地進(jìn)行固件升級(jí)。

具體的,本發(fā)明提出了以下具體的實(shí)施例:

本發(fā)明實(shí)施例提出了一種固件升級(jí)的方法,用于對(duì)STM32單片機(jī)的固件進(jìn)行升級(jí),該方法包括:

通過(guò)移動(dòng)終端獲取升級(jí)用的固件文件,并通過(guò)網(wǎng)絡(luò)透?jìng)髂K將升級(jí)用的固件文件發(fā)送至bootloader;

通過(guò)所述bootloader將獲取到的固件文件緩存在RAM中;

通過(guò)所述RAM不斷將所獲取到的固件文件轉(zhuǎn)移至外部存儲(chǔ)器中;

利用外部存儲(chǔ)器中的升級(jí)用的固件文件進(jìn)行固件升級(jí)。

在一個(gè)具體的實(shí)施例中,該方法還包括:

若STM32單片機(jī)的復(fù)位為普通復(fù)位,將標(biāo)志位的值更新為0;

若STM32單片機(jī)的復(fù)位是基于傳輸固件文件進(jìn)行的復(fù)位,將標(biāo)志位的值更新為1;并對(duì)外部存儲(chǔ)器所接收到的固件文件進(jìn)行完整性的校驗(yàn);

若校驗(yàn)通過(guò),則將標(biāo)志位的值更新為2;

若校驗(yàn)不通過(guò),則將標(biāo)志位的值更新為0;

若檢測(cè)到STM32單片機(jī)中APP固件區(qū)發(fā)生物理?yè)p壞,則將標(biāo)志位的值更新為3。

在一個(gè)具體的實(shí)施例中,所述利用外部存儲(chǔ)器中的升級(jí)固件文件進(jìn)行固件升級(jí),具體包括:

確定外部存儲(chǔ)器中的固件文件的標(biāo)志位的值;

若標(biāo)志位的值為2,則確定外部存儲(chǔ)器中對(duì)應(yīng)的固件文件為升級(jí)用的固件文件;

基于確定的升級(jí)用的固件文件進(jìn)行固件升級(jí)。

在一個(gè)具體的實(shí)施例中,該方法還包括:

若確定標(biāo)志位的值為0,則通過(guò)外部存儲(chǔ)器重新接收固件文件;

若確定標(biāo)志位的值為1,則啟動(dòng)APP固件區(qū)以執(zhí)行正常功能;

若確定標(biāo)志位的值為3,則生成報(bào)警信息并發(fā)送給指定的設(shè)備。

在一個(gè)具體的實(shí)施例中,所述網(wǎng)絡(luò)透?jìng)髂K具體包括:無(wú)線網(wǎng)絡(luò)透?jìng)髂K。

本發(fā)明實(shí)施例還提出了一種固件升級(jí)的設(shè)備,用于對(duì)STM32單片機(jī)的固件進(jìn)行升級(jí),該設(shè)備包括:

發(fā)送模塊,用以通過(guò)移動(dòng)終端獲取升級(jí)用的固件文件,并通過(guò)網(wǎng)絡(luò)透?jìng)髂K將固件文件發(fā)送至bootloader;

第一緩存模塊,用以通過(guò)所述bootloader將獲取到的固件文件緩存在RAM中;

第二緩存模塊,用以通過(guò)所述RAM不斷將所獲取到的固件文件轉(zhuǎn)移至外部存儲(chǔ)器中;

升級(jí)模塊,用以利用外部存儲(chǔ)器中的升級(jí)用的固件文件進(jìn)行固件升級(jí)。

在一個(gè)具體的實(shí)施例中,該設(shè)備還包括:

更新模塊,用以當(dāng)STM32單片機(jī)的復(fù)位為普通復(fù)位時(shí),將標(biāo)志位的值更新為0;

當(dāng)STM32單片機(jī)的復(fù)位是基于傳輸固件文件進(jìn)行的復(fù)位時(shí),將標(biāo)志位的值更新為1;并對(duì)外部存儲(chǔ)器所接收到的固件文件進(jìn)行完整性的校驗(yàn);

若校驗(yàn)通過(guò),則將標(biāo)志位的值更新為2;

若校驗(yàn)不通過(guò),則將標(biāo)志位的值更新為0;

當(dāng)檢測(cè)到STM32單片機(jī)中APP固件區(qū)發(fā)生物理?yè)p壞時(shí),則將標(biāo)志位的值更新為3。

在一個(gè)具體的實(shí)施例中,所述升級(jí)模塊,具體用于:

確定外部存儲(chǔ)器中的固件文件的標(biāo)志位的值;

若標(biāo)志位的值為2,則確定外部存儲(chǔ)器中對(duì)應(yīng)的固件文件為升級(jí)用的固件文件;

基于確定的升級(jí)用的固件文件進(jìn)行固件升級(jí)。

在一個(gè)具體的實(shí)施例中,該設(shè)備還包括:處理模塊,用以當(dāng)確定標(biāo)志位的值為0時(shí),通過(guò)外部存儲(chǔ)器重新接收固件文件;

當(dāng)確定標(biāo)志位的值為1時(shí),啟動(dòng)APP固件區(qū)以執(zhí)行正常功能;

當(dāng)確定標(biāo)志位的值為3時(shí),生成報(bào)警信息并發(fā)送給指定的設(shè)備。

在一個(gè)具體的實(shí)施例中,所述網(wǎng)絡(luò)透?jìng)髂K具體包括:無(wú)線網(wǎng)絡(luò)透?jìng)髂K。

與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例提出了一種固件升級(jí)的方法和設(shè)備,用于對(duì)STM32單片機(jī)的固件進(jìn)行升級(jí),其中,該方法包括:通過(guò)移動(dòng)終端獲取升級(jí)用的固件文件,并通過(guò)網(wǎng)絡(luò)透?jìng)髂K將升級(jí)用的固件文件發(fā)送至bootloader;通過(guò)所述bootloader將獲取到的固件文件緩存在RAM中;通過(guò)所述RAM不斷將所獲取到的固件文件轉(zhuǎn)移至外部存儲(chǔ)器中;利用外部存儲(chǔ)器中的升級(jí)用的固件文件進(jìn)行固件升級(jí)。以此,通過(guò)外部大容量的外部存儲(chǔ)器,實(shí)現(xiàn)了更大的適用范圍,可以應(yīng)對(duì)更大容量固件文件的升級(jí),且通過(guò)網(wǎng)絡(luò)透?jìng)髂K進(jìn)行固件文件的傳輸,方便了操作。

附圖說(shuō)明

為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實(shí)施例,因此不應(yīng)被看作是對(duì)范圍的限定,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。

圖1為本發(fā)明實(shí)施例提出的一種固件升級(jí)的方法的流程示意圖;

圖2為本發(fā)明實(shí)施例提出的一種STM32單片機(jī)的結(jié)構(gòu)的示意圖;

圖3為已有的的一種STM32單片機(jī)的固件升級(jí)所涉及的結(jié)構(gòu)的示意圖;

圖4為本發(fā)明實(shí)施例提出的一種STM32單片機(jī)的固件升級(jí)所涉及的結(jié)構(gòu)的示意圖;

圖5為本發(fā)明實(shí)施例提出的一種固件升級(jí)的設(shè)備的結(jié)構(gòu)示意圖。

具體實(shí)施方式

下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。通常在此處附圖中描述和出示的本發(fā)明實(shí)施例的組件可以以各種不同的配置來(lái)布置和設(shè)計(jì)。因此,以下對(duì)在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例?;诒景l(fā)明的實(shí)施例,本領(lǐng)域技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

以下,根據(jù)實(shí)施例及附圖對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明:

如圖1所示,為本發(fā)明實(shí)施例提出的一種固件升級(jí)的方法,用于對(duì)STM32單片機(jī)的固件進(jìn)行升級(jí),如圖1所示,該方法包括:

步驟101、通過(guò)移動(dòng)終端獲取升級(jí)用的固件文件,并通過(guò)網(wǎng)絡(luò)透?jìng)髂K將升級(jí)用的固件文件發(fā)送至bootloader;

步驟102、通過(guò)所述bootloader將獲取到的固件文件緩存在RAM中;

步驟103、通過(guò)所述RAM不斷將所獲取到的固件文件轉(zhuǎn)移至外部存儲(chǔ)器中;

步驟104、利用外部存儲(chǔ)器中的升級(jí)用的固件文件進(jìn)行固件升級(jí)。

其中,一種具體的STM32單片機(jī)的結(jié)構(gòu)如圖2所示,包括bootloader、APP固件區(qū)、RAM(random access memory,隨機(jī)存取存儲(chǔ)器)。

具體的,bootloader用于執(zhí)行代碼執(zhí)行IAP功能,在具體的執(zhí)行過(guò)程中,需要JTAG或ISP的燒入;而APP固件區(qū)則執(zhí)行正常的用戶功能,具體是通過(guò)bootloader的IAP功能燒入。

如圖3所示,為一種已有的固件升級(jí)方式所涉及到的結(jié)構(gòu)示意圖,在該方式中,STM32單片機(jī)通過(guò)USB線與PC機(jī)相連,PC通過(guò)UART串口協(xié)議將APP固件文件傳輸給bootloader,bootloader將接收到的APP固件文件緩存到RAM中,接下來(lái)bootloader對(duì)APP固件區(qū)進(jìn)行擦除,擦除完成后bootloader將APP固件文件寫(xiě)入APP固件區(qū)。這樣就完整的實(shí)現(xiàn)了一次固件升級(jí)的操作。

但是,這種方式有以下缺陷:

第一,傳統(tǒng)方案采用RAM進(jìn)行固件文件暫存,固件文件大小受到RAM容量的限制;

第二,傳統(tǒng)方案直接用存儲(chǔ)在RAM中的固件文件來(lái)燒錄到APP固件區(qū),一旦系統(tǒng)電源波動(dòng)或掉電,將會(huì)導(dǎo)致固件文件完全丟失和固件升級(jí)失?。?/p>

第三,傳統(tǒng)方案采用USB等有線方式進(jìn)行單片機(jī)和PC機(jī)的通信,給產(chǎn)品的外形設(shè)計(jì)帶來(lái)不便,在戶外或一些特殊應(yīng)用場(chǎng)景下操作變得繁瑣;

本發(fā)明人正是考慮到上述缺陷,提出了本發(fā)明的方案,采用兩級(jí)緩存,即固件文件流首先被緩存到RAM中,隨后RAM中的數(shù)據(jù)再被緩存到外部存儲(chǔ)器,具體的,例如為外部FLASH,其中,外部FLASH的容量足夠大,且外部存儲(chǔ)器容易更換,可以根據(jù)需要選取合適的容量,解決了固件文件大小受到RAM容量的限制問(wèn)題。

本文設(shè)計(jì)采用兩級(jí)緩存,固件文件最終保存在外部FLASH中,掉電數(shù)據(jù)不會(huì)丟失。

此外,具體的網(wǎng)絡(luò)透?jìng)髂K可以為無(wú)線網(wǎng)絡(luò)透?jìng)髂K,一個(gè)具體的實(shí)施例中,無(wú)線網(wǎng)絡(luò)透?jìng)髂K例如可以為藍(lán)牙無(wú)線透?jìng)髂K,以此,可以通過(guò)藍(lán)牙的方式來(lái)將固件文件傳輸給STM32單片機(jī),這樣產(chǎn)品外形設(shè)計(jì)時(shí)就不用考慮預(yù)留調(diào)試接口,在戶外或一些特殊應(yīng)用場(chǎng)景下只需要將移動(dòng)終端(例如手機(jī))連接到云端和STM32單片機(jī)便可以很方便的升級(jí)固件了。

實(shí)施例1

本發(fā)明實(shí)施例1公開(kāi)了一種固件升級(jí)的方法,用于對(duì)STM32單片機(jī)的固件進(jìn)行升級(jí),如圖1所示,該方法包括:

步驟101、通過(guò)移動(dòng)終端獲取升級(jí)用的固件文件,并通過(guò)網(wǎng)絡(luò)透?jìng)髂K將升級(jí)用的固件文件發(fā)送至bootloader;

步驟102、通過(guò)所述bootloader將獲取到的固件文件緩存在RAM中;

步驟103、通過(guò)所述RAM不斷將所獲取到的固件文件轉(zhuǎn)移至外部存儲(chǔ)器中;

步驟104、利用外部存儲(chǔ)器中的升級(jí)用的固件文件進(jìn)行固件升級(jí)。

在一個(gè)具體的實(shí)施例中,該方法還包括:

若STM32單片機(jī)的復(fù)位為普通復(fù)位,將標(biāo)志位的值更新為0;

若STM32單片機(jī)的復(fù)位是基于傳輸固件文件進(jìn)行的復(fù)位,將標(biāo)志位的值更新為1;并對(duì)外部存儲(chǔ)器所接收到的固件文件進(jìn)行完整性的校驗(yàn);

若校驗(yàn)通過(guò),則將標(biāo)志位的值更新為2;

若校驗(yàn)不通過(guò),則將標(biāo)志位的值更新為0;

若檢測(cè)到STM32單片機(jī)中APP固件區(qū)發(fā)生物理?yè)p壞,則將標(biāo)志位的值更新為3。

在一個(gè)具體的實(shí)施例中,其過(guò)程分別的0、1、2、3個(gè)分支:

STM32單片機(jī)系統(tǒng)被復(fù)位后,從開(kāi)始位置進(jìn)入bootloader程序區(qū),首先進(jìn)行更新標(biāo)志位的操作:如果是普通復(fù)位,更新標(biāo)志狀態(tài)則取0值,程序從對(duì)應(yīng)的0分支跳轉(zhuǎn)到APP程序區(qū);

如果是傳輸固件文件復(fù)位,更新標(biāo)志狀態(tài)則取1值,

程序從對(duì)應(yīng)的1分支進(jìn)入,通過(guò)預(yù)設(shè)的協(xié)議交互,獲取到固件文件的頭部和*.bin固件文件并存入外部FLASH,固件文件接收完成后利用文件頭部對(duì)文件進(jìn)行校驗(yàn),校驗(yàn)通過(guò)更新標(biāo)志狀態(tài)則取2值;校驗(yàn)未通過(guò)則更新標(biāo)志狀態(tài)則取0值;

如果分支1中正確接收了固件文件,接下來(lái)程序進(jìn)入分支2,執(zhí)行APP固件區(qū)擦除和寫(xiě)入操作;

分支3是預(yù)留給APP固件區(qū)物理?yè)p壞時(shí)的異常拋出響應(yīng)。

在一個(gè)具體的實(shí)施例中,所述利用外部存儲(chǔ)器中的升級(jí)固件文件進(jìn)行固件升級(jí),具體包括:

確定外部存儲(chǔ)器中的固件文件的標(biāo)志位的值;

若標(biāo)志位的值為2,則確定外部存儲(chǔ)器中對(duì)應(yīng)的固件文件為升級(jí)用的固件文件;

基于確定的升級(jí)用的固件文件進(jìn)行固件升級(jí)。

具體的,通過(guò)上述步驟,固件升級(jí)流程被分為0,1,2,3分支,接收固件操作和燒寫(xiě)固件操作被分開(kāi)進(jìn)行,即使發(fā)生系統(tǒng)電源波動(dòng)和掉電后,升級(jí)流程可以接著上一次的斷點(diǎn)或開(kāi)始點(diǎn)繼續(xù)運(yùn)行。

在一個(gè)具體的實(shí)施例中,該方法還包括:

若確定標(biāo)志位的值為0,則通過(guò)外部存儲(chǔ)器重新接收固件文件;

若確定標(biāo)志位的值為1,則啟動(dòng)APP固件區(qū)以執(zhí)行正常功能;

若確定標(biāo)志位的值為3,則生成報(bào)警信息并發(fā)送給指定的設(shè)備。

在一個(gè)具體的實(shí)施例中,所述網(wǎng)絡(luò)透?jìng)髂K具體包括:無(wú)線網(wǎng)絡(luò)透?jìng)髂K。

實(shí)施例2

本發(fā)明實(shí)施例2公開(kāi)了一種固件升級(jí)的設(shè)備,用于對(duì)STM32單片機(jī)的固件進(jìn)行升級(jí),如圖5所示,該設(shè)備包括:

發(fā)送模塊201,用以通過(guò)移動(dòng)終端獲取升級(jí)用的固件文件,并通過(guò)網(wǎng)絡(luò)透?jìng)髂K將固件文件發(fā)送至bootloader;

第一緩存模塊202,用以通過(guò)所述bootloader將獲取到的固件文件緩存在RAM中;

第二緩存模塊203,用以通過(guò)所述RAM不斷將所獲取到的固件文件轉(zhuǎn)移至外部存儲(chǔ)器中;

升級(jí)模塊204,用以利用外部存儲(chǔ)器中的升級(jí)用的固件文件進(jìn)行固件升級(jí)。

在一個(gè)具體的實(shí)施例中,該設(shè)備還包括:

更新模塊,用以當(dāng)STM32單片機(jī)的復(fù)位為普通復(fù)位時(shí),將標(biāo)志位的值更新為0;

當(dāng)STM32單片機(jī)的復(fù)位是基于傳輸固件文件進(jìn)行的復(fù)位時(shí),將標(biāo)志位的值更新為1;并對(duì)外部存儲(chǔ)器所接收到的固件文件進(jìn)行完整性的校驗(yàn);

若校驗(yàn)通過(guò),則將標(biāo)志位的值更新為2;

若校驗(yàn)不通過(guò),則將標(biāo)志位的值更新為0;

當(dāng)檢測(cè)到STM32單片機(jī)中APP固件區(qū)發(fā)生物理?yè)p壞時(shí),則將標(biāo)志位的值更新為3。

在一個(gè)具體的實(shí)施例中,所述升級(jí)模塊204,具體用于:

確定外部存儲(chǔ)器中的固件文件的標(biāo)志位的值;

若標(biāo)志位的值為2,則確定外部存儲(chǔ)器中對(duì)應(yīng)的固件文件為升級(jí)用的固件文件;

基于確定的升級(jí)用的固件文件進(jìn)行固件升級(jí)。

在一個(gè)具體的實(shí)施例中,該設(shè)備還包括:處理模塊,用以當(dāng)確定標(biāo)志位的值為0時(shí),通過(guò)外部存儲(chǔ)器重新接收固件文件;

當(dāng)確定標(biāo)志位的值為1時(shí),啟動(dòng)APP固件區(qū)以執(zhí)行正常功能;

當(dāng)確定標(biāo)志位的值為3時(shí),生成報(bào)警信息并發(fā)送給指定的設(shè)備。

在一個(gè)具體的實(shí)施例中,所述網(wǎng)絡(luò)透?jìng)髂K具體包括:無(wú)線網(wǎng)絡(luò)透?jìng)髂K。

與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例提出了一種固件升級(jí)的方法和設(shè)備,用于對(duì)STM32單片機(jī)的固件進(jìn)行升級(jí),其中,該方法包括:通過(guò)移動(dòng)終端獲取升級(jí)用的固件文件,并通過(guò)網(wǎng)絡(luò)透?jìng)髂K將升級(jí)用的固件文件發(fā)送至bootloader;通過(guò)所述bootloader將獲取到的固件文件緩存在RAM中;通過(guò)所述RAM不斷將所獲取到的固件文件轉(zhuǎn)移至外部存儲(chǔ)器中;利用外部存儲(chǔ)器中的升級(jí)用的固件文件進(jìn)行固件升級(jí)。以此,通過(guò)外部大容量的外部存儲(chǔ)器,實(shí)現(xiàn)了更大的適用范圍,可以應(yīng)對(duì)更大容量固件文件的升級(jí),且通過(guò)網(wǎng)絡(luò)透?jìng)髂K進(jìn)行固件文件的傳輸,方便了操作。

本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施場(chǎng)景的示意圖,附圖中的模塊或流程并不一定是實(shí)施本發(fā)明所必須的。

本領(lǐng)域技術(shù)人員可以理解實(shí)施場(chǎng)景中的裝置中的模塊可以按照實(shí)施場(chǎng)景描述進(jìn)行分布于實(shí)施場(chǎng)景的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施場(chǎng)景的一個(gè)或多個(gè)裝置中。上述實(shí)施場(chǎng)景的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。

上述本發(fā)明序號(hào)僅僅為了描述,不代表實(shí)施場(chǎng)景的優(yōu)劣。

以上公開(kāi)的僅為本發(fā)明的幾個(gè)具體實(shí)施場(chǎng)景,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
波密县| 汝南县| 禄劝| 那坡县| 西和县| 苍梧县| 元阳县| 尼木县| 双桥区| 黔东| 新竹市| 循化| 兴文县| 崇阳县| 洞头县| 富裕县| 绍兴县| 贡嘎县| 彭水| 浙江省| 邵阳市| 宣汉县| 罗田县| 沅陵县| 远安县| 济源市| 布尔津县| 赤峰市| 东丰县| 新化县| 循化| 蕉岭县| 克拉玛依市| 荔浦县| 海丰县| 凤翔县| 南部县| 阳东县| 崇礼县| 天柱县| 郧西县|