我目前正在使用 Keil 开发 STM32 探索板。我的项目即将完成,我想迁移到基于 Linux 的构建环境。我一直在使用预配置的刷机工具和 Windows 的 STLink 驱动程序来刷机,我得到了 keil 来导出一个 bin 文件,我设法使用qSTLink2在我的 Linux 机器上刷机。到目前为止,一切都很好。
现在我被困在构建整个项目的过程中。具体来说:
如何将我的 .uvproj 移植到 makefile,同时考虑“startup_stm32l1xx_md.s”启动文件之类的内容?
我目前正在使用 Keil 开发 STM32 探索板。我的项目即将完成,我想迁移到基于 Linux 的构建环境。我一直在使用预配置的刷机工具和 Windows 的 STLink 驱动程序来刷机,我得到了 keil 来导出一个 bin 文件,我设法使用qSTLink2在我的 Linux 机器上刷机。到目前为止,一切都很好。
现在我被困在构建整个项目的过程中。具体来说:
如何将我的 .uvproj 移植到 makefile,同时考虑“startup_stm32l1xx_md.s”启动文件之类的内容?
搞定了。我想我会分享我的结果,以便其他人可以使用它。谢谢大家的时间。
我使用这个 ARM 工具链来构建我的项目,并使用该工具附带的texane/stlink库./st-flash将二进制文件闪存到我的 STM32L1。虽然 texane/stlink 带有 GDB,但我发现没有它我可以完成构建+闪烁过程。
我的 Makefile 最终看起来像这样。它不是很漂亮或抽象,但它完成了工作。
all:
arm-none-eabi-gcc -T stm32l1xx.ld -mthumb -mcpu=cortex-m3 -D STM32L1XX_MD -D USE_STDPERIPH_DRIVER startup_stm32l1xx_md.s system_stm32l1xx.c main.c [ sources ] -lm --specs=nosys.specs -o Project.elf
其中:
arm-none-eabi-gcc-T stm32l1xx.ld-mthumb -mcpu=cortex-m3-D STM32L1XX_MD -D USE_STDPERIPH_DRIVERstartup_stm32l1xx_md.ssystem_stm32l1xx.c main.c [ sources ]-lmMath.h( L ib数学)--specs=nosys.specs_exit.-o Project.elf有一个 Gnu ARM 工具链(arm-none-eabi),据说 openOCD 可以与 gdb 一起使用(尽管我在 Win7 下无法做到这一点 - openOCD 可以连接到 STM32F4disco 板,但是 gdb 在连接到 openOCD 时有问题)。
在这里进行一些挖掘,您会发现工具链、openOCD 和包含启动源的示例项目的链接。