关于ST公司的BootLoader流程的总结

最近在公司处理关于BootLoader的一些升级细节,使用了一个星期左右,使用了官方的flash down load的软件。

当时看了A2602和AN3155有关于botlooder的描述,但是在编程的时候依旧遇到了很多问题了。

比如用官方提供的代码,在升级程序完成的时候时无法得到read memory的反馈的
if(HAL_UART_Transmit(&huart2, (uint8_t*)*p_read_address, bytes_number, 0xFFFF)!= HAL_OK)
// {
// while(1)
// {
// }
// }

这段代码是无法得到host的回应的

流程如下:
1、GET_CMD host端发送,muc端发送软件的版本号,和支持的指令/
2、GID_CMD host端发送,muc端将芯片的ID发送出去,
3、RM_CMD 这个指令在官方的BootLoader里是可以的,但是的在自己的的升级程序中是不行的,具体原因也不知道是为什么。 (所以自己的BootLoader关键就是处理这一部分,来模拟官方的数据,包括芯片的型号和容量)
4、 ER_CMDhost端发送,是用来清除flash的。会发送需要清除的page,更具page和datasheet来自己清除内部的flash。
5、WM_CMD 是用来写入flash的。更具keil的设置,会发送特定的地址,用来写入程序。
6、GO_CMD这个指令是用来跳转的,但是在官方的软件里是不支持的,没有接收到过。

以上是对bootloader的总结,使用的方式是,用原程序来,接串口来检测数据的发送,然后自己的程序来模拟发送相同的指令。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值