关于车机中的升级流程小结(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 小时前
AOSP源码隐藏状态栏
android·aosp
一孤程1 小时前
PerfDog性能测试实战——从入门到性能优化全覆盖
性能优化·性能测试·测试·perfdog
没有了遇见1 小时前
AI Agent 是什么?—— 一文理解 LLM、Memory、Skills、Tools、MCP、Workflow,Context
android·前端·程序员
御坂嘀喵2 小时前
Speed Tools:一套低侵入的 Android 插件化 + 动态换肤 + 字体切换框架
android·gitee
浮江雾2 小时前
Flutter第三节----Dart中的数据类型
android·开发语言·学习·flutter·入门·函数
风和先行2 小时前
Android 数据库相关学习总结
android·数据库·学习
杉氧2 小时前
Compose 渲染内核 (3):Slot Table 与 Gap Buffer —— 极速重组的数学艺术
android·架构·android jetpack
阿巴斯甜3 小时前
ContentObserver的使用:
android
casual_clover3 小时前
【Android 控件】使用 Navigation 实现底部导航功能时左右滑动退出页面功能
android·底部导航滑动退出
urkay-4 小时前
Kotlin Flow分类
android·开发语言·kotlin