[發(fā)明專利]一種基于國產(chǎn)單片機GD32的軟件升級方法在審
| 申請?zhí)枺?/td> | 202111126036.0 | 申請日: | 2021-09-24 |
| 公開(公告)號: | CN113885910A | 公開(公告)日: | 2022-01-04 |
| 發(fā)明(設(shè)計)人: | 王雨龍 | 申請(專利權(quán))人: | 天津津航計算技術(shù)研究所 |
| 主分類號: | G06F8/65 | 分類號: | G06F8/65 |
| 代理公司: | 中國兵器工業(yè)集團公司專利中心 11011 | 代理人: | 劉二格 |
| 地址: | 300308 天津*** | 國省代碼: | 天津;12 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 國產(chǎn) 單片機 gd32 軟件 升級 方法 | ||
1.一種基于國產(chǎn)單片機GD32的軟件升級方法,其特征在于,包括以下步驟:
S1:設(shè)計CAN總線通訊應(yīng)用層協(xié)議,設(shè)計數(shù)據(jù)處理過程中的CAN消息結(jié)構(gòu)體CAN_RECV_DATA,并對CAN總線29位擴展幀ID進行配置;
S2:對單片機系統(tǒng)進行初始化操作,配置時鐘信息以及中斷信息,配置總線通訊速率信息,總線ID的掩碼值以及過濾器值,定義所使用的變量以及乒乓緩沖區(qū);
S3:在CAN總線中斷回調(diào)函數(shù)CAN0_RX0_IRQHandler中,將接收到的CAN總線數(shù)據(jù)依次存入到乒乓緩沖區(qū)中;
S4:根據(jù)步驟1定義CAN總線通訊協(xié)議對CAN總線數(shù)據(jù)進行解析,將獲取到的數(shù)據(jù)幀的ID值賦值到接收幀標識變量RecvID,將獲取到的數(shù)據(jù)長度賦值到接收幀長度變量RecvDLC,將獲取到的最多8個數(shù)據(jù)值賦值到接收數(shù)據(jù)指針RecvData;
S5:在主函數(shù)中對收到的CAN總線數(shù)據(jù)進行解析,將解析后得到的數(shù)據(jù)提取出來,使用寫入閃存函數(shù)WriteFlash()將更新后的固件信息寫入到Flash中;讀取應(yīng)用程序啟動地址APP_ADDR_FLASH并判斷該地址所存儲的數(shù)據(jù)最高位是否為1,為1則表示已成功將固件寫入到Flash中標識升級成功;
S6:獲取APP_ADDR_FLASH地址偏移4個字節(jié)地址所存儲的值并轉(zhuǎn)化為函數(shù)指針類型,使用初始化堆棧指針函數(shù)set_MSP()函數(shù),參數(shù)為APP_ADDR_FLASH初始化用戶的堆棧指針;運行pFunction函數(shù)指針所指的實體進行程序跳轉(zhuǎn),完成啟動程序到應(yīng)用程序的跳轉(zhuǎn),完成程序升級。
2.如權(quán)利要求1所述的基于國產(chǎn)單片機GD32的軟件升級方法,其特征在于,所述步驟S1中,CAN總線通訊應(yīng)用層協(xié)議包括兩個字節(jié)的幀頭、兩個字節(jié)的幀長度、一個字節(jié)的目的地址、一個字節(jié)的源地址、一個字節(jié)的升級文件總幀數(shù)、一個字節(jié)的當(dāng)前幀序號、1K字節(jié)的YMODEM協(xié)議升級文件內(nèi)容、兩個字節(jié)CRC校驗;幀頭兩個字節(jié)分別為0x55、0xAA。
3.如權(quán)利要求2所述的基于國產(chǎn)單片機GD32的軟件升級方法,其特征在于,所述步驟S1中,CAN消息結(jié)構(gòu)體CAN_RECV_DATA包括①擴展幀ID值ExtID,類型為無符號長整形;②數(shù)據(jù)長度DLC,類型為無符號短整形;③數(shù)組Data,長度為8,類型為無符號字符型。
4.如權(quán)利要求3所述的基于國產(chǎn)單片機GD32的軟件升級方法,其特征在于,所述步驟S1中,CAN總線29位擴展幀ID中,第14位到21位共8位作為CAN總線源節(jié)點域,第22位到29位共8位作為CAN總線目的節(jié)點域;定義CAN總線源節(jié)點ID值為SRCID,目的節(jié)點ID值為DSTID,將SRCID值和DSTID值分別賦值到CAN總線的目的節(jié)點域和源節(jié)點域。
5.如權(quán)利要求4所述的基于國產(chǎn)單片機GD32的軟件升級方法,其特征在于,所述步驟S2中,使用初始化函數(shù)SystemInit()對GD32板卡進行基本功能初始化操作,配置過程包括使用系統(tǒng)時鐘配置函數(shù)SetSysClock()函數(shù)對系統(tǒng)時鐘進行初始化操作,使能片外高速時鐘HSE,配置時鐘分頻因子,打開鎖相環(huán)PLL時鐘,配置中斷向量NVIC;對CAN總線進行初始化設(shè)置,包括波特率設(shè)置為1M,幀類型設(shè)置為擴展幀;使能CAN總線中斷,設(shè)置CAN設(shè)備的掩碼值CAN_Mask為0x1FE00000,設(shè)置CAN設(shè)備的過濾器值CAN_Filter為SRCID,將幀類型設(shè)置為數(shù)據(jù)幀;時鐘分頻因子包括AHB高速總線分頻因子、APB1低速總線分頻因子、APB2低速總線分頻因子。
6.如權(quán)利要求5所述的基于國產(chǎn)單片機GD32的軟件升級方法,其特征在于,所述步驟S2中,乒乓緩沖區(qū)Rx_CAN_Buffer為二維數(shù)組,類型為無符號字符型,數(shù)組的行數(shù)為乒乓緩沖區(qū)個數(shù),列數(shù)為緩沖區(qū)的長度Buffer_Size,同時定義Rx_CAN_Ptr用來寫入緩沖區(qū)數(shù)據(jù)的位置,初值設(shè)置為0;定義當(dāng)前幀長度Cur_Len,初值設(shè)置為0,接收完成標志Recv_Flag,初始值設(shè)置為0。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于天津津航計算技術(shù)研究所,未經(jīng)天津津航計算技術(shù)研究所許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111126036.0/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 一種刀片服務(wù)器的國產(chǎn)處理器類型的識別檢測方法
- 國產(chǎn)化涂料在燃氣輪機中溫部件防護過程中的應(yīng)用
- 一種基于國產(chǎn)密碼算法的數(shù)據(jù)加密存儲的方法
- 基于國產(chǎn)64位ARM處理器的服務(wù)器及安全設(shè)計方法
- 一種電力企業(yè)信息系統(tǒng)中間件、數(shù)據(jù)庫的國產(chǎn)化遷移方法
- 國產(chǎn)化設(shè)備運維數(shù)據(jù)的智能采集方法及系統(tǒng)
- 國產(chǎn)化安全局域網(wǎng)絡(luò)設(shè)備
- 一種用于國產(chǎn)自主計算機安全管控系統(tǒng)的密碼卡
- 一種全國產(chǎn)化SSD存儲盤
- 一種國產(chǎn)平臺人工智能環(huán)境適配方法及兼容性測試方法





