关于车机中的升级流程小结(SOC、MCU、4G升级流程)

文章目录

  • [1. SOC升级流程](#1. SOC升级流程)
  • [2. Recovery流程](#2. Recovery流程)
  • [3. 4G 升级流程](#3. 4G 升级流程)

本文总结了工作中使用的 soc 、mcu、 4g升级的主要流程,主要是思路记录,方便日后复盘用。

1. SOC升级流程

2. Recovery流程

3. 4G 升级流程

BH 在Android下升级N725-CA模块的升级流程:

1、确保模块处于正常开机状态,判断方法:发送lsusb 返回PID:VID:2949:7252

2、确保模块正常枚举ttyACM0端口,可通过ls /dev/ttyACM查看
3、往/dev/ttyACM0口发送进入下载模式指令AT M Y D O W N L O A D = 1 让模式进入下载模式,使用 e c h o 方式发送是: e c h o − e ′ A T MYDOWNLOAD=1让模式进入下载模式,使用echo方式发送是:echo -e 'AT MYDOWNLOAD=1让模式进入下载模式,使用echo方式发送是:echo−e′ATMYDOWNLOAD=1\r\n' > /dev/ttyACM0 ,也可以使用串口工具发送。
4、检查模块是否成功进入下载模式,可使用lsusb指令查询,返回PID VID:2ecc 3001 表示模块正常进入下载模式。如果没有进入下载模式,需要返回第三步重新尝试。
5、运行fbfdownloader_cross升级工具进行升级,指令格式为:./fbfdownloader_cross -b BinFile.bin,升级过程中不能断电,等待升级完成,一般为30-40S,完成后会打印Burn Successfully 等关键字。
6、升级完成后模块会自动重启,lsusb查询返回PID:VID:2949:7252 , ls /dev/ttyACM
返回ttyACM0端口。

7、发送AT+CGMR指令查询模块软件版本,使用echo方式命令为:echo -e "AT+CGMR\r\n" > /dev/ttyACM0 ,需要正常查询到软件版本,如果一次没有返回,需要重试。

8、给模块发送echo -e "ATPROD=0\r\n" > /dev/ttyACM0 指令让模块退出产线模式。需要返回OK,没有返回需要重试。
9、重启模块,因为AT
PROD=0命令 重启生效。


1、BH Android下面发N725进入升级的指令格式:

echo -e 'AT$MYDOWNLOAD=1\r\n' > /dev/ttyACM0 (客户目前使用这个)

echo -e "AT$MYDOWNLOAD=1\r\n" > /dev/ttyACM0

2、BH 客户Android下运行./fbfdownloader_cross升级工具打印如下:

C:\Users\hkx\Desktop>adb shell

rk3568_s:/ $

rk3568_s:/ $

rk3568_s:/ $ su

rk3568_s:/ #

rk3568_s:/ # cd /cache/

rk3568_s:/cache #

rk3568_s:/cache #

rk3568_s:/cache # ./fbfdownloader_cross -b B

BinFile.bin-open BinFile.bin-stand

rk3568_s:/cache # ./fbfdownloader_cross -b BinFile.bin-stand

fbfdownloader version: 5.0.0.1

fbfdownloader date: 2023-10-17

BinFilePath is :BinFile.bin-stand

Open BinFile.bin Successed!

Read from File Value is 1adb1f4

Convert Value is 1adb1f4

Offset of Map is 28160500

Size of Map is 8

Find image name:C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\0x08080xFFFF_FBF_h.bin

Find image name:C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\0x08080xFFFF_FBF_timheader.bin

Find image name:C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\0x09040xFFFF_FBF_h.bin

Find image name:C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\0x09040xFFFF_FBF_timheader.bin

Find image name:C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\0x0D040xFFFF_FBF_h.bin

Find image name:C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\0x0D040xFFFF_FBF_timheader.bin

Find image name:C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\DKB_timheader.bin

Find image name:C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\Dkb.bin

BinFileWtp_InitParameter2 Success!

AppPath is :/cache

Init C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\0x08080xFFFF_FBF_h.bin

Init C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\0x08080xFFFF_FBF_timheader.bin

Init C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\0x09040xFFFF_FBF_h.bin

Init C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\0x09040xFFFF_FBF_timheader.bin

Init C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\0x0D040xFFFF_FBF_h.bin

Init C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\0x0D040xFFFF_FBF_timheader.bin

Init C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\DKB_timheader.bin

Init C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\Dkb.bin

DKB_timheader is C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\DKB_timheader.bin DKB is C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\Dkb.bin

VendorDDRId:0x0808 FlashInfo:0xFFFF

FBF:C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\0x08080xFFFF_FBF_h.bin

FBF head:C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\0x08080xFFFF_FBF_timheader.bin

VendorDDRId:0x0904 FlashInfo:0xFFFF

FBF:C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\0x09040xFFFF_FBF_h.bin

FBF head:C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\0x09040xFFFF_FBF_timheader.bin

VendorDDRId:0x0D04 FlashInfo:0xFFFF

FBF:C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\0x0D040xFFFF_FBF_h.bin

FBF head:C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\0x0D040xFFFF_FBF_timheader.bin

Open BinFile.bin Successed!

MasterBlkHeader.SizeOfBlock=1000

deviceHeaderBuf.DeviceFlags=0

SWD Path is /cache

Begin to initialize WTPTPDownload parameter

Prepared download image

Parse DKB Tim image.

Open BinFile.bin Successed!

TIMH=0x54494d48 dwTimId=0x54494d48 le32toh(dwTimId)=0x54494d48

Open BinFile.bin Successed!

TIMH=0x54494d48 dwTimId=0xea00001e le32toh(dwTimId)=0xea00001e

Number of Images listed in TIM: 2

Parse FBF Tim image.

Open BinFile.bin Successed!

TIMH=0x54494d48 dwTimId=0x54494d48 le32toh(dwTimId)=0x54494d48

Open BinFile.bin Successed!

TIMH=0x54494d48 dwTimId=0x7672614d le32toh(dwTimId)=0x7672614d

Number of Images listed in TIM: 2

Open BinFile.bin Successed!

TIMH=0x54494d48 dwTimId=0x54494d48 le32toh(dwTimId)=0x54494d48

Open BinFile.bin Successed!

TIMH=0x54494d48 dwTimId=0x7672614d le32toh(dwTimId)=0x7672614d

Number of Images listed in TIM: 2

Open BinFile.bin Successed!

TIMH=0x54494d48 dwTimId=0x54494d48 le32toh(dwTimId)=0x54494d48

Open BinFile.bin Successed!

TIMH=0x54494d48 dwTimId=0x7672614d le32toh(dwTimId)=0x7672614d

Number of Images listed in TIM: 2

Complete to Initilize parameter

Begin to detect wtptp device...

init_hotplug_sock

BaseDevPath=/dev/bus/usb

add DevName:/dev/bus/usb/002/002

LogFileName is:/cache/wtp_dev_bus_usb_002_002.log

Getting type of Device...

Open dev OK

Check ifc_id OK!

DevName is /dev/bus/usb/002/002, PipeIn is 129, PipeOut is 2, hDevHandle is 0x6

|Open an BootRom Device: /dev/bus/usb/002/002 |

Get type of device successfully

|/dev/bus/usb/002/002:Add an device |

Open device successfully

Open existing USB device number 0

Enter into WTPTPDownLoad

|Enter into WTPTPDownLoad...: /dev/bus/usb/002/002 |

|Start Image Downloading...: /dev/bus/usb/002/002 |

|Begin DownloadImage...: /dev/bus/usb/002/002 |

|download file name is C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\DKB_timheader.bin: /dev/bus/usb/002/002 |

|Completed DownLoad file: C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\DKB_timheader.bin: /dev/bus/usb/002/002 |

|Begin DownloadImage...: /dev/bus/usb/002/002 |

|download file name is C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\Dkb.bin: /dev/bus/usb/002/002 |

|Completed DownLoad file: C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\Dkb.bin: /dev/bus/usb/002/002 |

|Finish to disconnect: /dev/bus/usb/002/002 |

WTPTP dev: /dev/bus/usb/002/002 was closed!

CloseUsbPort devName = ...

remove DevName:/dev/bus/usb/002/002

add DevName:/dev/bus/usb/002/003

LogFileName is:/cache/wtp_dev_bus_usb_002_003.log

Getting type of Device...

Open dev fail, hDevHandle=0xFFFFFFFF

open: No such file or directory

Retry openning

Open dev OK

Check ifc_id OK!

DevName is /dev/bus/usb/002/003, PipeIn is 129, PipeOut is 2, hDevHandle is 0x6

|Open an BootLoader Device: /dev/bus/usb/002/003 |

Get type of device successfully

Thread creation BootLoaderTypeThread

|/dev/bus/usb/002/003:Add an device |

Open device successfully

Enter into BootLoaderIOThread

Enter into WTPTPDownLoad

|Enter into WTPTPDownLoad...: /dev/bus/usb/002/003 |

|Start Image Downloading...: /dev/bus/usb/002/003 |

|Begin DownloadImage...: /dev/bus/usb/002/003 |

|download file name is C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\0x08080xFFFF_FBF_timheader.bin: /dev/bus/usb/002/003 |

|Completed DownLoad file: C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\0x08080xFFFF_FBF_timheader.bin: /dev/bus/usb/002/003 |

|Begin DownloadImage...: /dev/bus/usb/002/003 |

|download file name is C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\0x08080xFFFF_FBF_h.bin: /dev/bus/usb/002/003 |

|Completed DownLoad file: C:\Users\202210~1\AppData\Local\Temp\SWD4535.tmp\temp\0x08080xFFFF_FBF_h.bin: /dev/bus/usb/002/003 |

|Begin Burning flash...: /dev/bus/usb/002/003 |

remove DevName:/dev/bus/usb/002/003 percentage is:100 |

|Finish to disconnect: /dev/bus/usb/002/003 |

|/dev/bus/usb/002/003:Burn Successfully |

TerminateBL...

BootLoader Thread Completed A!

BootLoader Thread Completed B!

BootLoader Thread Completed C!

BootLoader Thread Completed E!

WTPTP dev: /dev/bus/usb/002/003 was closed!

CloseUsbPort devName = ...

Quit from detect device...

please wait ...

FBFDownloader EXIT...

rm: /cache: Read-only file system

DelCWtptpDownLoad

kl_destroy(stifl, me->ImageFileList);

kl_destroy(stifl, me->ImageFileList);

kl_destroy(stifl, me->ImageFileList);

kl_destroy(stifl, me->ImageFileList);

rk3568_s:/cache #

over~

相关推荐
圆山猫2 分钟前
[Virtualization](三):RISC-V H-extension 与 Guest 执行模式
android·java·risc-v
爱笑鱼23 分钟前
Binder(七):getCallingUid() 读到的是谁?clearCallingIdentity() 又清掉了什么?
android
Freak嵌入式3 小时前
版本混乱 / 依赖缺失?uPyPi:MicroPython 版 PyPI,彻底解决库管理混乱
linux·服务器·数据库·单片机·嵌入式硬件·性能优化·依赖倒置原则
2501_915909066 小时前
iOS 应用反调试技详解术 检测调试器的原理与防护实践
android·ios·小程序·https·uni-app·iphone·webview
Lvan的前端笔记6 小时前
AndroidX 完全入门指南
android·androidx
游戏开发爱好者87 小时前
TraceEagle 代理抓包详解,无感代理、去证书绑定与 HTTP/3 解密能力解析
网络协议·计算机网络·网络安全·ios·adb·https·udp
帅次7 小时前
Android 应用高级面试:Window 近1年高频追问 18 题
android·面试·职场和发展
总捣什么乱17 小时前
MySQL MySQL是怎么保证主备一致的?
android·mysql·adb
zzm6288 小时前
精读 HinDroid:基于异构信息网络的安卓恶意软件检测
android
爱喝水的鱼丶8 小时前
SAP-ABAP:SAP 实战笔记:BAPI_OUTB_DELIVERY_CONFIRM_DEC 详解——外向交货单过账的利器
运维·性能优化·sap·abap·经验交流