STM32F429-Discovery默认带有STLink,可以在Linux环境下使用。我用的是VM CenOS 6.6。
编译:stlink-1.2.0
下载最新的或是stlink-1.2.0 release
https://github.com/texane/stlink
解压缩。
在配置安装前,需要安装环境需要的工具软件:
libusb-1.0或更高 与 pkgconfig-0.17.2
安装完后,进入stlink目录下。
# ./autogen.sh (会提示上面的两个工具软件是否正常安装)
# ./configure
# make
# make install (安装后,可以在shell下直接使用st-util st-flash 等命令)
如果出现错误,可能是RTEMS 4.11工具链影响的,可以切一个低版本的试下。我就遇到过这个问题。
安装好stlink ,就可以使用st-util 开启调试服务器(open ocd)
然后进行需要调试的程序的目录下,如调试hello.exe
打开一个新的控制台,运行st-util。
然后:
# arm-rtems4.11-gdb hello.exe
#target remote:4242
#load (注意flash 链接时的映射地址)
# s (gdb 命令:单步)
# c 为直接运行。 (gdb命令)
如果load(下载程序)提示错误,可能是映射地址错误,stm32f429的flash地址为:0x08000000,rtems链接脚本里为:0x00000000。可以把0x00000000改为:0x08000000 ,这样就可以直接load了。
(3)关于图形界面的调试,可以安装ddd 。
ddd --debugger arm-rtems4.11-gdb
然后:target remote:4242。注意先运行(st-util)。
(4)可以在windows下安装source insight 进行rtems 内核源码的阅读。然后在Linux下使用vi gedit 等修改源码。
这样,就进入了STM32F429 + RTEMS的世界了。。
不断的熟悉内核源码与熟悉如何使用RTEMS,是一个长期的过程。