AGX平臺MCU升級過程分析2014.10.3

目的:瞭解wince下AGX平臺的mcu升級過程,然後移植到android下升級!(X代表某個代號)

   

一  App請求升級過程

ARM發送升級請求0xFF00   //NAVI發送升級請求,MCU收到後準備發送數據

ARM收到0x0605 //MCU準備重啓


ARM發送0x0606給MCU重啓 


ARM收到SYS_POWEROFF


重啓


ComClsUI::Hand發送握手信息0x0602


收到握手成功0x0604


ARM發送0xFE03 確認導航可以進行CB軟件升級    (每次上電都會發送。。如果沒有反饋。。就直接進入系統界面)


收到0xFF00   //CB發送升級請求,NAVI收到後準備發送數據


反初始化串口

MCUUpdate()啓動升級軟件CBUpdate.exe


接下來就是CBUpdate升級過程執行流了


二 CBUpdate升級過程執行流如下

創建CBUpdateThread線程

  ↓

實例化CUpdateManager對象

 ↓

實例化ComClsUI對象

 ↓

打開COM4 波特率設置爲115200

 ↓

創建ComClsUI::Hand,ComClsUI::Work,ComClsUI::CanMsgThread線程處理串口數據

 ↓

ComClsUI::Hand發送握手信息0x0602

 ↓

收到 0xDD00 設定6秒定時器請求MCU重啓 0x0501  //其中0xDD00  爲8900與CB的串口通信異常信息

 ↓

再次發送ComClsUI::Hand發送握手信息0x0602

 ↓

收到0x0604   //0x0604給導航握手 表示握手成功

開始CBUpdateStart

 ↓

創建CUpdateManager::UpdateThread線程

 ↓

獲取RdDnl.upg文件的總幀數GetFileLineTotals

 ↓

發送幀SendFrameData ->CANSendMsgToCB(m_UpdateFrameID,(char*)frameBuf,len);

 ↓

mcu反饋0xFF01  (下一幀)取消設定6秒定時器請求MCU重啓 0x0501 //CB升級每一幀確認

 ↓

發送下一幀CANSendMsgToCB(m_UpdateFrameID,(char*)frameBuf,len);

 ↓

循環

 ↓

mcu反饋0xFF03  //升級完成信息


ARM收到SYS_POWEROFF 消息


MCU 重啓Reset



















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章