- 45.QT boot工具导入xml动态创建状态机--Apple的
- 基于stm32的uds Boot调试成功--Apple的学习笔记
- 46.QT boot工具添加udsTP协议--Apple的学习笔
- kernel5.4版本gpu DRM驱动入门--Apple的学习
- FreeRTOS的第一个任务跳转源码分析—Apple的学习笔记
- 使用STM32CubeMX搭建MDK、IAR工程
- ubuntu下ffmpeg的vscode调试环境搭建--Appl
- 用ozone调试stm32的boot跳APP的问题--Apple
- 44.QT boot工具添加hex解析--Apple的学习笔记
- Mcal SPI调试--Apple的学习笔记
一,前言
之前说找个周末调试下boot中移植过来的uds协议。那么我用原来单片机代码配对的上位机来进行调试。还是比较顺利的,3个小时调试完成。
二,遇到的问题
- 外部flash下载不成功。
原因我外部flash制作错误,生成hex的地址应该是ram地址,因为外部flash用来copy到内容ram区域来用的。链接存放地址修改为ram地址了。
LR_IROM1 0x20001000 0x1000 { ; load region size_region
ER_IROM1 0x20001000 0x1000 { ; load address = execution address
*.o (.flashVar, +First)
.ANY (.flashFunction)
.ANY (+RO)
}
RW_IRAM1 0x20002000 0x0001E000 { ; RW data
.ANY (+RW +ZI)
}
}
-
34传入的长度后返回NRC
原因是PC端boot工具中填写的地址不能加上首地址,反正需要配对,哪里有负响应码,就去哪个DID函数中调试即可。问题瞬间解决。 -
flash擦除成功,但是crc检查错误
直接查flash区间的内容,发现没有写入,区间内容都是0xff。原因是我自己写的flash驱动write函数没有添加解锁,导致无法写入。 -
刷新完成后没有复位
原因是我一开始注释掉了最后11复位功能,而且初始化上电检查有效性后直接跳转到app也被我注释掉了,添加上这部分的stm32的驱动代码即可。
三,效果
顺利跳转到app,哈哈~用canalzyer录制了报文。刷新流程的step2的头部及尾部的一些命令如下

四,小结
boot UDS的单片机端通过先移植协议及框架然后修改驱动,很快就完成了。
网友评论