YTM32B1MD14 UDS CAN FBL公版操作指南
-
本方案基于YT Config Tool开发,使用Vscode+Cmake+Ozone工具链开发编译调试;基于Demo板硬件搭建实施;使用同星科技TC1012P CAN/LIN工具及同星科技TSmaster软件。

- 烧录Bootloader
新建YTM32B1MD14的JFLASH工程

找到Bootloader编译的烧程文件

加载Bootloader文件

擦除芯片(或者快捷键F4)


烧录程序(或者快捷键F6)


- 上下电运行Bootloader
拔掉JLINK烧录器,重新上下电后,板子重新工作,LED按照100ms快速闪烁,程序工作在Bootloader里面。 - 升级上位机配置
将FlashDriver文件、Application文件、SeedAndKey.dll几个文件放到升级上位机目录下。

打开升级上位机工程(如上图中.TSProj_x86文件)配置收发ID

配置TP时间参数,配置加密dll

配置FlashDriver和Application和校验方式

配置自动诊断流程

4. 执行升级
4.1 从Bootloader升级

升级完成后,LED灯1000ms闪烁,运行在Application程序中。
4.2 从Application升级
从Bootloader升级成功运行到Application后,再次点击运行,从Application升级。

升级完成后,LED灯1000ms闪烁,运行在Application程序中。
4.3 StayInBoot升级
从Application升级中,是有升级请求标识的(KeepInBootVar变量)。
本方案设计上认为:
运行到Bootloader以后,如果通讯一半断开未发生升级服务(擦除芯片/请求下载/数据传输/下载退出等UDS服务),则即使有升级请求,可以超时退出重新跳转到Application运行;反之则必须StayInBoot等待重新升级。
4.3.1 未发生升级流程请求
升级一半,拔掉CAN线模拟通讯断开,升级失败

通讯断开超时后,Bootloader重新进入Application运行,Demo板上LED灯1000ms闪烁。
4.3.2 已发生升级流程请求
执行到升级流程后,拔掉CAN线模拟通讯断开,升级失败

通讯断开超时后,Boootloader不能进入Application,执行StayInBoot(重新复位或者上下电等均保持StayInBoot)。
重新执行升级

升级成功,Demo板上LED灯1000ms闪烁。
5. 附件代码
uds_can_fbl_md14_release_20250530_2.zip - 烧录Bootloader
-
G ganyongchao 在 中 引用了 这个主题
-
G ganyongchao 在 中 引用了 这个主题
-
ganyongchao 在 YTM32B1MD14 UDS CAN FBL公版操作指南 中说:
SeedAndKey.dll
请教一下,这里的SeedAndKey.dll是用于27加密解密吗?是否有可能自行生成,进而控制加密加密算法,用于自定义刷新方案。如果可行,麻烦给出相关搜索关键字或者大致方案。
-
我这边使用下载的.s19烧录进板子是能进行同星刷新的,但是用了上位机生成了keil5代码后,烧录后刷新就卡在第五步flashdriver那里了
-
ganyongchao 在 YTM32B1MD14 UDS CAN FBL公版操作指南 中说:
本方案基于YT Config Tool开发,使用Vscode+Cmake+Ozone工具链开发编译调试;基于Demo板硬件搭建实施;使用同星科技TC1012P CAN/LIN工具及同星科技TSmaster软件。

- 烧录Bootloader
新建YTM32B1MD14的JFLASH工程

找到Bootloader编译的烧程文件

加载Bootloader文件

擦除芯片(或者快捷键F4)


烧录程序(或者快捷键F6)


- 上下电运行Bootloader
拔掉JLINK烧录器,重新上下电后,板子重新工作,LED按照100ms快速闪烁,程序工作在Bootloader里面。 - 升级上位机配置
将FlashDriver文件、Application文件、SeedAndKey.dll几个文件放到升级上位机目录下。

打开升级上位机工程(如上图中.TSProj_x86文件)配置收发ID

配置TP时间参数,配置加密dll

配置FlashDriver和Application和校验方式

配置自动诊断流程

4. 执行升级
4.1 从Bootloader升级

升级完成后,LED灯1000ms闪烁,运行在Application程序中。
4.2 从Application升级
从Bootloader升级成功运行到Application后,再次点击运行,从Application升级。

升级完成后,LED灯1000ms闪烁,运行在Application程序中。
4.3 StayInBoot升级
从Application升级中,是有升级请求标识的(KeepInBootVar变量)。
本方案设计上认为:
运行到Bootloader以后,如果通讯一半断开未发生升级服务(擦除芯片/请求下载/数据传输/下载退出等UDS服务),则即使有升级请求,可以超时退出重新跳转到Application运行;反之则必须StayInBoot等待重新升级。
4.3.1 未发生升级流程请求
升级一半,拔掉CAN线模拟通讯断开,升级失败

通讯断开超时后,Bootloader重新进入Application运行,Demo板上LED灯1000ms闪烁。
4.3.2 已发生升级流程请求
执行到升级流程后,拔掉CAN线模拟通讯断开,升级失败

通讯断开超时后,Boootloader不能进入Application,执行StayInBoot(重新复位或者上下电等均保持StayInBoot)。
重新执行升级

升级成功,Demo板上LED灯1000ms闪烁。
5. 附件代码
uds_can_fbl_md14_release_20250530_2.zip我把demo的工程进行keil5打开烧录后,就卡在这里了,连续帧后续没有响应,请问一下这个具体是什么情况

- 烧录Bootloader
-

你如果还是用的之前的DEMO 里的flash driver的话,看起来是长度不对,如果没做改动可以先检查一下设置。如果还不行可以打断点调试看看是哪里卡住了。 -
limanjiang 在 YTM32B1MD14 UDS CAN FBL公版操作指南 中说:

你如果还是用的之前的DEMO 里的flash driver的话,看起来是长度不对,如果没做改动可以先检查一下设置。如果还不行可以打断点调试看看是哪里卡住了。我这边进行了相应的调试,发现程序在进行这里TX_DL赋值时候一直为长度6

我重新把函数里面的内容修改添加了一下

如果小于8的情况下直接返回8字节,就能实连续帧的响应和往下面刷新。这个出现长度为6的情况是怎么回事,可是我这边是开启填充功能的

-
yt0503 在 YTM32B1MD14 UDS CAN FBL公版操作指南 中说:
z123456111 接收的帧长度一直为6还是在接收最后一帧的时候TX_DL的长度为6
这个6的长度是根据连续帧变的

-
z123456111 在 YTM32B1MD14 UDS CAN FBL公版操作指南 中说:
yt0503 在 YTM32B1MD14 UDS CAN FBL公版操作指南 中说:
z123456111 接收的帧长度一直为6还是在接收最后一帧的时候TX_DL的长度为6
这个6的长度是根据连续帧变的

如果是 10 0A TX_DL的长度为5,10 0C TX_DL长度为7



-

我只要把TX_DL的长度一直为8,就能刷新成功 -

你这个代码逻辑和直接在论坛下载的好像有点区别,你现在TX_DL小于8会对cnt-1,把最后一帧报文应该丢掉了;改成8之后跳过去了所以没问题;
我在论坛直接下载的逻辑如下,TX_DL 小于8 也不会使cnt-1的,TX_DL 小于8 也没有问题的。
-
limanjiang 在 YTM32B1MD14 UDS CAN FBL公版操作指南 中说:

你这个代码逻辑和直接在论坛下载的好像有点区别,你现在TX_DL小于8会对cnt-1,把最后一帧报文应该丢掉了;改成8之后跳过去了所以没问题;
我在论坛直接下载的逻辑如下,TX_DL 小于8 也不会使cnt-1的,TX_DL 小于8 也没有问题的。
能不能把你这个代码发我或者发一份最新的DEMO,我这边对比修改,调试试试
-
我就是在这个贴子里下载的,你重新下载一下对比看看呢
-

就是截图这个位置的
快速上手云途开发生态
发帖前请查看
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...
