当前位置:   article > 正文

基于electronbot作品bootLoader设计_稚晖君electronbot源码

稚晖君electronbot源码

文章目录


前言

说到electronbot,不得不提及稚晖君,本人一直以来也想做一个能动,有声音,有显示,能遥控等功能的玩具,投入成本和懒散一直搁浅,看了稚晖君electronbot后,感觉是入手不错的选择,模具和结构也不用考虑了,同时被他这种全栈式开发精神所打动!

看了该视频演示,第一个想法就是小人装配好之后,如果有新的固件更新,再打开就显得麻烦,所以借用usb通道进行固件更新显得很必要。


一、芯片程序区规划和流程

1、flash区规划

boot和electronbot两个区在flash中划分如下图所示:

 2、两区运行流程

3、bootLoader代码体现 

STM32F405RGTx_FLASH.ld 里修改:

跳转应用区代码判断:

startup_stm32f405xx.s里

   

  1. void early_start_checks(void) {
  2. uint32_t _reboot_cookie;
  3. _reboot_cookie=*(uint32_t *)0x8008188;
  4. if(_reboot_cookie == 0xcafebeef)
  5. {
  6. // __set_MSP((uintptr_t)&_estack); //没有ucos 不需要此行代码
  7. // printf("tttt begin...\r\n");
  8. __set_MSP(*(uint32_t *)0x8008000);
  9. void (*electronbotApp)(void) = (void (*)(void))(*((uint32_t *)0x8008004));
  10. electronbotApp();
  11. }
  12. }

 4、electronbot代码体现:

 STM32F405RGTx_FLASH.ld 里修改:

makefile里 增加宏定义:

system_stm32f4xx.c里修改 VECT_TAB_OFFSET 为 0x8000

 应用区代码标志 startup_stm32f405xx.s里 在程序收到pc上位机通知下载程序时,改写该地址的值后,再复位,即可进入bootLoader代码主流程。

至此,框架方面的事宜已经完成。 

二、bootLoader代码设计

1.下载程序步骤

框图如下:

2.通讯协议格式

usb通信数据包为了兼容electronbot代码,在收发缓存机制保持一致,格式如下:

 

 三、libusb开发及需要注意的事情

1、bootLoader复合设备

bootLoader复合设备为CDC+WINUSB  接口有三个,CDC占了两个,winusb占了一个

所以electronbot native interface 索引为2

第一次枚举后,需要用zadig-2.7.exe 软件替换驱动,才能与上位机libusb开发进行通讯

 2、electronbot复合设备

 electronbot复合设备为MSC+WINUSB  接口有两个,MSC占了一个,winusb占了一个

所以electronbot native interface 索引为1

 第一次枚举后,需要用zadig-2.7.exe 软件替换驱动,才能与上位机libusb开发进行通讯

3、注意的事情

由于boot区与electronbot区枚举的复合设备不相同,防止电脑识别冲突,故采用了不同的vid 和pid

所以在两区进行跳转时,pc端上位机需要重新进行连接,该过程中要作好资源回收和重建。

四、成功演示

electronbot _bootLoader演示

总结

整个过程还是比较顺利的,需要注意的就是pc端重连策略和延时处理上,以及两区跳转时遇到一个问题就是electronbot区进行jump bootloader时没有成功,可能与freertos有关系,没有进行深究,用了NVIC_SystemReset() 替代解决了。

整个代码均已上传到github:https://github.com/wenyezhong/electronbot

branch :  electronbot_bootLoader_design_branch

测试代码:
boot代码:2.Firmware/bootLoader(HS)
应用代码:2.Firmware/electronbot_testBootLoader
上位机 :  pc

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/964323
推荐阅读
相关标签
  

闽ICP备14008679号