关于车机中的升级流程小结(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~

相关推荐
私人珍藏库1 小时前
【Android】Soul v5.86.0 内置模块版
android·app·工具·软件·多功能
千里马学框架2 小时前
aosp新增窗口层级 Type 完整实现方案(有源码)-wms需求和面试题
android·智能手机·架构·wms·aaos·车机
我是一颗柠檬5 小时前
【MySQL全面教学】MySQL性能优化实战Day13(2026年)
数据库·后端·sql·mysql·性能优化·database
峥嵘life7 小时前
Android 蓝牙设备连接广播详解-2026
android·python·学习
MusingByte10 小时前
别再裸用 Claude Code 了!安卓开发者必装 13 个官方推荐插件,效率翻 3 倍省 70% token
android
_李小白10 小时前
【android opencv学习笔记】Day 29: 滤波算法之Sobel 边缘检测
android·opencv·学习
java_cj11 小时前
数据库范式化设计与性能优化全攻略
数据库·后端·性能优化·架构·开源
Dxy123931021611 小时前
Python 操作 MySQL 事务:从入门到避坑
android·python·mysql
峥嵘life12 小时前
Android getprop 属性限制详解:User 版本属性获取问题分析
android·开发语言·python·学习
之歆13 小时前
Day24_JavaScript正则表达式与性能优化实战:从入门到精通
javascript·性能优化·正则表达式