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,是一個長期的過程。