使用云途uds_pc_tool对单片机进行升级,在DownloadFile最后一包数据时报错
-
使用云途uds_pc_tool对单片机进行升级,在DownloadFile最后一包数据时报错。报错信息如下:
我在uds_can的代码中插入打印信息,证实了确实是在最后一包数据写FLASH时返回了-1。打印信息如下:
我将0x21400地址的数据读出来和BIN文件对比,发现数据是写入成功了的。请问我应该如何解决这个问题? -
看起来是在这一行返回的负响应,打个断点调试一下看看,前面的写flash操作为什么失败了:
-
是的,程序是在这一行返回了负响应。我查看了FLASH的内容,数据写入是成功了的。我的板子硬件是5V供电的,还有一些外部电源和隔离的扩展接口,没法打断点调这部分代码。请问这个问题是pc_tool还是uds_can引起的?
-
前面写flash的参数提供一下勒。用到是什么系列的芯片,编译器和优化等级也最好提供一下
-
不能打断点意思是不能debug?这个问题看起来不太像是pc_tool的问题,不过需要根据调用flash driver的参数才能进一步确认。
-
我们这个项目是使用的YTM32B1MC0ЗH0MLHT芯片。用的是GCC+VS+JLINK开发环境。我打印信息是加在这里的:
我把调用FLASH写入函数时把输入的参数打印出来了的。 -
flash driver的bin文件发来对比一下.还有uds的版本提供一下
-
这是我的uds_can版本:
这是我的代码:
uds_can.zip
由于bootloader增加了功能,因此我改动了FLASH的布局。pc_tool我也重新进行了配置,请帮忙看看是不是改对了的。flash driver在这个压缩文件里。 -
jiankang_wang 在 使用云途uds_pc_tool对单片机进行升级,在DownloadFile最后一包数据时报错 中说:
不能打断点意思是不能debug?这个问题看起来不太像是pc_tool的问题,不过需要根据调用flash driver的参数才能进一步确认。
是的,因为要板子是5V供电,并且5V上还有隔离电源供给隔离CAN。用JLINK的3.3V供电CAN的收发器不能运行,所以不能debug。
-
️问题出在你的配置上。
你修改了writeAppInfo服务的地址到flash上,并且将App的起始地址改为了 0xB600
但是并没有修改Flash擦除的地址,这就导致在进行下载App的时候,指擦除了 0xB400~0xB400 + AppSize区间的 flash。但是实际下载App的时候是写入到 0xB600~0xB600 + AppSize。所以最后一帧没有擦到,导致写的时候失败了。
解决方式
方式一:可以通过新增一个服务,擦除AppInfo区域的flash,起始地址为0xB400,大小可以简单的设置为0x0200。然后修改擦除AppFlash区域的服务起始地址为0xB600。测试是可以正常下载了
方式二:可以通过修改脚本,增加flash地址擦除的大小:
前面提到的数据写入是成功了的,是由于第一次写入了App的数据,这一次是擦除了芯片的,所以是可以正常写入。第二次下载的时候,由于第一次写入的数据还在,所以看起来是写入成功了
-
J jiankang_wang 被引用 于这个主题
发帖前请查看
帮助没办法联网的电脑使用YCT
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...