文章目录
- [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、重启模块,因为ATPROD=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~