2013-06-18 162 views
0

我已经使用Keolabs Ride7来产生intel hex以及STM32F205RG的一些基本代码的二进制文件。 dfu-utils也可以工作(我可以使用原始固件对smartwatch进行编程)。但是,考虑到二进制/十六进制文件,我有从哪里去。我从你的固件dfu-file注意到你将代码放在闪存中的几个地方。是0x0800C000,我把它放在我的地方,并且有什么(除了初始化我想使用的外设)应该在该代码中。SmartWatch黑客入侵

问候, 古斯塔夫

回答

1

对于第一,你的代码开始,你需要使用重映射中断向量表从起始地址(它的点在默认情况下0x08000000)偏移,并添加偏移链接脚本进行校正。我没有SmartWatch,也不知道切入点。它可能是偏移量为0xC000或其他的默认复位中断向量。只需使用JTAG并查看原始固件的反汇编代码即可。

+1

谢谢。如果STM从0x08000000执行自定义代码,事情会变得简单。第一个16k是只读的,我猜他们是由他们自己的dfu处理(以及显示一个带有移动点的绿色条):)我需要一个偏移量。好像我不得不做一些反汇编。 –

+0

你也需要玩振荡器配置。索尼公司不会发布SmartWatch中使用的振荡器,MCU内部或外部使用的振荡器,以及外部使用的是什么频率。 – exception13

+0

是的,我想我现在只用HSI或LSI来开始。 –

0

有一个开放源代码toolchain(GCC)适用于Arduino使用GNU Tools for ARM Embedded Processors和外围库STM32F2xx_StdPeriph_Driver

它创建一个固件在屏幕上显示一些不错的信息作为概念验证。如果您执行make program并且安装了dfu-util,它甚至会将固件闪烁到SmartWatch

你应该能够轻松地创建makefile并构建自己的应用程序。