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

相关推荐
恋猫de小郭12 分钟前
compose_skill 和 android skills,对 Android 项目提升巨大的专家 AI Skills
android·前端·flutter
我命由我1234527 分钟前
Android Jetpack Compose - ModalNavigationDrawer、NavigationRail、PullToRefreshBox
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
侠客工坊1 小时前
大模型落地移动端:解析侠客工坊端侧 Agent 的零拷贝(Zero-Copy)屏幕感知与空间映射
android·人工智能
北漂Zachary1 小时前
Laravel7.x核心特性全解析
android
Grackers1 小时前
Android Perfetto 系列 8:深入理解 Vsync 机制与性能分析
android
xinhuanjieyi2 小时前
php给30支NBA球队添加logo图标,做好对应关系
android·开发语言·php
jian110582 小时前
Android studio会自动下载高版本的tools
android·ide·android studio
Trouvaille ~2 小时前
【MySQL篇】内外连接:多表关联的完整指南
android·数据库·mysql·面试·后端开发·dql·内外连接
Zender Han3 小时前
VS Code 开发 Flutter 常用快捷键和插件工具详解
android·vscode·flutter·ios
wfsm3 小时前
安卓环境配置
android