[活动专区] 【AT-START-F425测评】AT32F425的XBOOT移植

[复制链接]
1124|2
 楼主| imdx 发表于 2022-3-7 15:12 | 显示全部楼层 |阅读模式
本帖最后由 imdx 于 2022-3-7 15:13 编辑

XBOOT是自用的bootloader名称,默认通过USART1来提供用户命令行,完成固件升级等任务。对于带USB的MCU,除了使用物理串口,还可以使用USB虚拟串口。之前已经在AT32F415上完整实现了XBOOT的代码,拿到AT-START-F425以后,只需要移植代码即可。
F415和F425的USB都叫做OTGFS,整体上实现非常像,都支持主机和设备,然而还是有细微的差别。主要是F425的可用端点数量从F415的4个增加到了8个。
另外一个重要的更新是F425支持VBUSIGNORE功能,这个功能是在AT32F415的C版本芯片中才实现的。具体到代码实现中,注意要定义如下的宏:
  1. /**
  2.   * [url=home.php?mod=space&uid=247401]@brief[/url] ignore vbus detection, only available in at32f415xx revision C.
  3.   *        at32f415xx revision B: (not support)
  4.   *        the vbus detection pin (pa9) can not be used for other functionality.
  5.   *        vbus pin must kept at VBUS or VDD.
  6.   *
  7.   *        at32f415xx revision C: (support)
  8.   *        ignore vbus detection, the internal vbus is always valid.
  9.   *        the vbus pin (pa9) can be used for other functionality.
  10.   */
  11. #define USB_VBUS_IGNORE
F415和F425另外一个重要的差异就是GPIO,F425和F421是一样的,代码中要增加pin-mux的设置。
  1. #if defined(AT32F425C8T7)
  2.         gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE9,  GPIO_MUX_1);
  3.         gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE10, GPIO_MUX_1);
  4. #endif
其它部分差异不是很大,包括USB库的代码都是相同的,AT32F415和AT32F425完全可以使用同一套代码,使用预编译指令对细微的差别进行分别操作。
更新hex文件成功,帖一下实验结果。
2022-03-07_145439.jpg

以下为更新固件视频,注意视频中使用的是物理串口,实际操作和USB虚拟串口完全相同。
https://www.bilibili.com/video/BV1yJ41177A1/
huquanz711 发表于 2022-3-7 20:43 来自手机 | 显示全部楼层
XBOOT是不是就是IAP
七毛钱 发表于 2022-3-11 10:07 来自手机 | 显示全部楼层
最近雅特力论坛里的搞测评的人很多,正好可以借此机会学习了解一下这个开发板
您需要登录后才可以回帖 登录 | 注册

本版积分规则

124

主题

907

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部
0