我使用了Keolabs Ride7来生成一个intel十六进制文件以及一些STM32F205RG基本代码的二进制文件。 dfu-utils也可以工作(我可以使用原始固件对智能手表进行编程)。但是,考虑到二进制/十六进制文件,我得到了从哪里开始。我从你的固件dfu文件中注意到你将代码放在闪存中的几个地方。是0x0800C000我应该放在哪里,除了初始化我想要使用的外围设备之外,还有什么应该在该代码中。
此致 古斯塔夫
答案 0 :(得分:1)
首先,您需要使用重映射中断表从起始地址偏移(默认情况下指向0x08000000)并将偏移量添加到链接描述文件以进行更正。我没有SmartWatch,也不知道切入点。它可能是偏移量0xC000或其他的默认复位中断向量。只需使用JTAG并查看原始固件的反汇编代码。
答案 1 :(得分:0)
使用toolchain和外围资源库Arduino
针对STM32F2xx_StdPeriph_Driver
进行了开源GNU Tools for ARM Embedded Processors(GCC)调整。
它创建了一个固件,在屏幕上显示一些不错的信息作为概念证明。如果您执行SmartWatch
并安装了make program
,它甚至会将固件闪烁到dfu-util
。
您应该能够轻松分叉该makefile并构建自己的应用程序。