uds bootloader

uds bootloader下载新程序的时候,新程序是不是也要包含之前的uds内容啊,这样才能实现更新程序后还能使用uds对吗,还有就是在请求下载数据的时候,我是使用什么将要刷写的程序传输给我的单片机呢,我已经实现了非uds的bootloader,编写了上位机,我在uds传输的时候是要怎么传输呢,一条一条s19文件的发送吗,请问大家这个地方怎么处理?

喜欢的话请采纳我,这样我才有动力继续回答
在 UDS bootloader 中更新程序的过程中,不需要将之前的 UDS 内容包含在新程序中。这是因为 UDS bootloader 可以在运行时单独提取和加载 UDS 所需的模块,无需将其直接编译到新程序中。

在请求下载数据时,可以将要刷写的程序传输给单片机。在 UDS 协议中,请求下载数据消息(0x34)的第 4 个字节定义数据格式。在该字节中,您可以使用以下常量之一来指示数据格式:

  • 00:二进制数据格式(默认值)
  • 01:SREC 数据格式
  • 02:扩展线性地址格式
  • 03:线性地址格式

如果您已经编写了上位机,那么您可以使用其来将程序发送给单片机。但是,如果您使用 UDS 协议来传输程序,则需要将其分成较小的块并使用 UDS 请求下载数据消息一次发送一个块。可以使用 SREC 格式将程序转换为适合发送的文本格式,并在每个块的末尾添加校验和以确保接收到正确的数据。