RT-Thread調試(基於keil5)基本環境搭建的調試過程


1、工程移植

   為了讓RT_Thread在自己的板子上跑起來,首先應該進行工程移植,但作為初學者,連整個操作系統概念都還不是特別明白的時候,自己去移植無疑是巨大困難,也打擊信心。最直接的方式是打開現有的工程,在已有工程上做小小修改,讓自己工程能跑起來,程序能簡單控制板子上的設備。

  移植的時候,選用的是stm32f407ZGT6。這個芯片正好和正點原子出品的stm32f407-Discovery開發板一致。但是板子上沒有SRAM和Flash,只有一個32芯片和基本電路。有一個LED燈在PE5口。這些都不影響移植。

  首先在RT-Thread官網下載源代碼:https://www.rt-thread.org/page/download.html。本次使用的是4.02版本的。同時在官網下載系統說明手冊《RT-THREAD 編程指南》:https://www.rt-thread.org/document/site/um4003-rtthread-programming-manual.pdf做備用。

  源碼下載后解壓。得到工程源碼。進入路徑:RT_THread->bsp->stm32->stm32f407-Discovery。在里面找到對應的工程,雙擊打開。進入工程后,不做其他任何改動,首先全局編譯工程。原子的代碼還是挺給力,一次通過(ps:另一個F07開發板代碼編譯有錯誤!未深入研究!)。

  不管工程代碼如何,對板子進行了啥操作,直接進行程序下載(ps:本次使用的板子外設少,不管程序怎么作用,均不會造成物理損壞)。

  以上就是程序移植的前期步驟,意在確定如下事項:

A、程序代碼是可編譯的:如果代碼都不能編譯通過。對剛接觸操作系統的小白來說,簡直是不可克服的困難,后面的事也不用考慮做了。

B、程序目標代碼是可下載的:程序目標代碼不能在板子上運行是沒有任何意義的。

確定這兩點后,后面的移植才有進行下去的可能。

2、程序下載(板子已經確認好的)

  本次驗證選擇的BSP代碼,編譯正常通過。同時生成了.hex文件。下載器為經典的20Pin的J-link。因板子為別人開發的,上面只留了SWD下載接口。這無所謂,在網上查找一下,使用杜邦線連接一下就行。引出線如圖所示:

  各個連線接好,確認各電路模塊正常。在Keil中完成相關設置,然后進行程序下載。懷着無比激動的心情,本以為程序一次下載成功。結果下載到一半,彈出了如下提示:

瞬間心情不美了,但問題還是要解決。找萬能的百度,發現還不止我遇到了這種情況。有兩個經典的講解:

https://blog.csdn.net/yufengzheyang/article/details/76954121

https://blog.csdn.net/LeonSUST/article/details/85225142

看了后大概明確問題點了。要么程序有問題,要么下載線有問題。那怎么辦?一個個驗證吧!

驗證過程:驗證程序問題,確定板子、下載器、下載設置是好的!怎么驗證?還是扒正點原子的代碼,在正點原子官網下載:http://www.openedv.com/thread-13912-1-1.html。找到f407的最簡單的demo-LED,直接打開,編譯並下載。發現問題一樣。很明顯。問題不在程序上了。猜測多半是下載問題。根據查找資料,將下載速率調整一下試試:將速率從5MHZ調整為200kHz,點擊下載,成功!!將下載速率調整為500KHz,下載失敗。問題解決。因為使用杜邦線的原因,下載速率不能太高。后期將下載線整理加固了下500K時也能正常使用了。

2、下載后無反應

  為了穩妥點,還是先將LED-Demo程序下載進去。程序下載進去后無反應。這在預料之中,因為實際使用的LED口都不一樣嘛。將LED口更改過來后,程序正常運行。OK!到此證明了板子基本工作條件可以了。下面進行操作系統的移植。

  首先還是從點亮一個LED燈開始。進入程序的main函數中,直接修改燈的接口,編譯下載,一切順利,但是燈沒反應!!又來問題了。把程序核對了一遍,都沒問題,查找半天,發現是Debug中有個下載后Reset選項未勾選。勾選上后,燈閃爍,程序正常運行!

3、串口調試

  燈亮了,說明操作系統移植成功了。連接串口,查看log一下。但是串口沒有輸出(串口工具使用的是正點原子的Xcom)。一樣的思路,直接使用正點原子標准串口代碼。直接下載運行(PS:本次使用板子引出了串口一使用的是PA9、PA10引腳,和下載代碼對應的板子一樣,故直接使用)。下載程序后,板子打印出信息。說明板子串口和串口工具,以及波特率設置均沒問題。問題在哪?只能是下載的操作系統程序!因系統log是默認串口,故需深入了解一下,有個經典的博客:連接如下:https://blog.csdn.net/qq_40452910/article/details/102522054

在該博客中詳細講解了串口的啟動過程。對比代碼以及stm32串口的啟動配置過程。初步懷疑串口引腳配置錯誤,因串口1可以掛載到PA9、PA10,也可掛在PB6、PB7引腳上。但這引腳是在哪定義的呢?分析程序源碼,深入理解博客內容后,定位為文件:stm32f4xx_hal_msp.c。

直接在工程中查找該文件。打開源碼,印證了猜想!修改引腳后,程序運行正常,串口打印正常。

 

至此,基本環境搭建完成!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM