我已经使用 Keolabs Ride7 为 STM32F205RG 生成了一个英特尔十六进制以及一些基本代码的二进制文件。dfu-utils 也可以(我可以使用原始固件对智能手表进行编程)。但是,鉴于二进制/十六进制文件,我知道我该从哪里开始。我从您的固件 dfu 文件中注意到,您将代码放置在闪存中的多个位置。是 0x0800C000 我应该把我的放在哪里,是否有任何东西(除了初始化我想使用的外围设备)应该在该代码中。
问候,古斯塔夫
我已经使用 Keolabs Ride7 为 STM32F205RG 生成了一个英特尔十六进制以及一些基本代码的二进制文件。dfu-utils 也可以(我可以使用原始固件对智能手表进行编程)。但是,鉴于二进制/十六进制文件,我知道我该从哪里开始。我从您的固件 dfu 文件中注意到,您将代码放置在闪存中的多个位置。是 0x0800C000 我应该把我的放在哪里,是否有任何东西(除了初始化我想使用的外围设备)应该在该代码中。
问候,古斯塔夫
首先,您需要使用重新映射中断表来从起始地址偏移(默认情况下它指向 0x08000000)并将偏移量添加到链接描述文件以进行更正。我没有 SmartWatch,也不知道入口点。它可能是偏移量 0xC000 或其他位置上的默认复位中断向量。只需使用 JTAG 并查看原始固件的反汇编代码。
有一个开源工具链(GCC) 适配旨在Arduino
使用GNU Tools for ARM Embedded Processors和外设库STM32F2xx_StdPeriph_Driver
。
它创建了一个固件,在屏幕上显示一些不错的信息作为概念证明。SmartWatch
如果您执行make program
并已dfu-util
安装,它甚至会刷新固件。
您应该能够分叉该 makefile 并轻松构建自己的应用程序。