Zephyr版本號:2.2.0
開發(fā)板:STM32F429IGT6(野火STM32F429挑戰(zhàn)者 V2開發(fā)板)
開發(fā)環(huán)境:Windows 7 64位
這里選擇的是Zephyr當(dāng)前最新的Release版本2.2.0進(jìn)行說明的。
1、修改代碼
前面文章的操作,雖然在Windows下能夠成功的編譯STM32F429的工程,但是卻不能在野火挑戰(zhàn)者V2開發(fā)板上運行,因為Zephyr代碼中的STM32F429硬件和野火的外圍硬件不一樣(其實CPU也有一些差異)。主要體現(xiàn)在外部晶振,時鐘的配置以及MPU上面(野火挑戰(zhàn)者V2開發(fā)板使用的CPU是STM32F429IGT6,不帶MPU功能)。
進(jìn)入到 boards/arm/stm32f429i_disc1 文件夾中,然后修改文件 stm32f429i_disc1_defconfig,需要修改的內(nèi)容如下:
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=180000000 CONFIG_ARM_MPU=n CONFIG_CLOCK_STM32_HSE_CLOCK=25000000 CONFIG_CLOCK_STM32_PLL_M_DIVISOR=25 CONFIG_CLOCK_STM32_PLL_N_MULTIPLIER=360
在 stm32f429i_disc1_defconfig 文件的末尾,添加如下的內(nèi)容(該內(nèi)容的含義是編譯出的代碼不進(jìn)行優(yōu)化,這樣便于調(diào)試):
CONFIG_NO_OPTIMIZATIONS=y
修改文件 board.cmake,需要修改的內(nèi)容如下:
board_runner_args(jlink"--device=STM32F429IG""--speed=4000")
2、編譯HelloWorld應(yīng)用
確定命令提示符的路徑在Zephyr2.2.0源代碼目錄中,執(zhí)行下述命令:
westbuild-pauto-bstm32f429i_disc1samples/hello_world
編譯成功的輸出信息如下:
3、下載程序到開發(fā)板
確保Windows中安裝了JLink驅(qū)動,并且將JLink驅(qū)動的路徑(JLink.exe所在的路徑)添加到系統(tǒng)環(huán)境變量的Path中。我這里安裝的是Jlink V6.48a,其路徑為:C:Program Files (x86)SEGGERJLink_V648a。
如果沒有將JLink驅(qū)動的路徑添加到環(huán)境變量中,下載程序時會出現(xiàn)類似的錯誤:FATAL ERROR: required program JLink.exe not found; install it or add its location to PATH。
將開發(fā)板上電,連接好JLink調(diào)試器,連接好串口線并且打開串口調(diào)試助手,然后執(zhí)行下述命令將程序燒寫到開發(fā)板中:
westflash--runnerjlink
程序下載成功之后,會在串口調(diào)試助手中打印出信息,如下圖所示:
4、使用GDB調(diào)試程序
程序下載成功之后,執(zhí)行命令:west debug --runner jlink(該命令會自動打開JLink GDB Server,不需要提前手動打開JLink GDB Server),可以使用GDB調(diào)試Zephyr,先前的鏡像不能成功打印信息,我也是通過這個命令來調(diào)試Zephyr,最終定位時鐘參數(shù)問題的。
接下來的一篇文章,會講述如何使用Eclipse來調(diào)試Zephyr,雖然也是使用的GDB,但是調(diào)試更加的方便,能夠手動添加斷點,添加觀察的變量,隨意切換文件,總之下面一篇文章很OK,敬請關(guān)注。
-
cpu
+關(guān)注
關(guān)注
68文章
11034瀏覽量
216001 -
WINDOWS
+關(guān)注
關(guān)注
4文章
3608瀏覽量
90932 -
編譯
+關(guān)注
關(guān)注
0文章
676瀏覽量
33747 -
STM32F429
+關(guān)注
關(guān)注
0文章
40瀏覽量
11219 -
Zephyr
+關(guān)注
關(guān)注
0文章
35瀏覽量
6233
原文標(biāo)題:4、使用GDB調(diào)試程序
文章出處:【微信號:嵌入式那些事,微信公眾號:嵌入式那些事】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
在STM32F429上怎樣去運行HelloWorld
【STM32F429開發(fā)板用戶手冊】第13章 STM32F429啟動過程詳解

【STM32F429開發(fā)板用戶手冊】第21章 STM32F429的NVIC中斷分組和配置(重要)

【STM32F429開發(fā)板用戶手冊】第1章 初學(xué)STM32F429的準(zhǔn)備工作

【STM32F429開發(fā)板用戶手冊】第8章 STM32F429的終極調(diào)試組件Event Recorder

【STM32F429開發(fā)板用戶手冊】第19章 STM32F429的GPIO應(yīng)用之按鍵FIFO

【STM32F429開發(fā)板用戶手冊】第14章 STM32F429的電源,復(fù)位和時鐘系統(tǒng)

調(diào)試 STM32F429 + USB3300

AN4658_從STM32F429、439系列到STM32F446系列的應(yīng)用移植

ES0206_STM32F427/437 和 STM32F429/439 線路限制

評論