1. 程式人生 > >Linux下編譯、燒寫RT-Rhread,基於STM32微控制器(二)

Linux下編譯、燒寫RT-Rhread,基於STM32微控制器(二)

上一篇文章主要描述了Linux安裝JLink驅動的過程,由於要關心國足的比賽停了一天,今天國足終於不出意外的輸給勒伊朗,所以工科小屌又來寫部落格了。

PC:Ubuntu14(32位),開發板STM32F103RE,JLink V8,RT_Thread V2.0

既然JLInk驅動裝好了,就開始除錯、燒寫程式碼勒。

1,第一步安裝交叉編譯器, 直接命令列輸入 apt-get install gcc-arm-none-eabi

2,安裝完成後,輸入arm-none-eabi- 然後TAB鍵,可以看到好多東西,說明已經安裝成功了

3,git下載rt-thread程式碼,此處就不詳細講解下載過程了,我下載的版本是V2.0,開啟程式碼路徑,找到 rt-thread->bsp->stm32f103x資料夾,看到裡面有如下檔案(忽略圖中綠色的

可執行檔案,那是我後續編譯生成的,原始碼裡是沒有這兩個檔案的)

4,開始編譯啦,首先需要配置 rtconfig.py檔案, vim 編譯器開啟,修改如下地方,因為我們是在Linux下開發,所以也沒KEIL、IAR什麼事情,利用第一步安裝的交叉編譯環境

編譯程式碼,CROSS_TOOL = 'gcc'

PREFIX = 'arm-none-eabi-'

儲存修改,然後退出 vim

5,開始正式編譯勒,rt-thread->bsp->stm32f103x 目錄下執行 sudo scons ,開始編譯程式碼,第一遍編譯比較慢,後續會發現修改內容編譯後比KEIL環境下快很多,編譯結束後出現執行檔案大小等內容,此時檢視rt-thread->bsp->stm32f103x 目錄下會出現圖中綠色可執行檔案, .bin就是我們下一步需要燒寫的檔案

6,然後回到昨天的JLINK連線開發板內容,找到SEEGER目錄下執行 ./JLinkExe ,然後connect開發板,選擇晶片、除錯模式、下載速度等

不清楚的同學可以檢視上一篇部落格內容


7,然後可以開始下載二進位制程式碼啦,執行 loadbin /home/saffron/RTT/rt-thread-2.1.0/bsp/stm32f10x/rtthread.bin 0x8000000 命令,其中 loadbin 是命令字,然後是執行程式碼的地址,最後是stm32的falsh起始地址,輸入命令後,可以看到燒寫過程,有falsh對比、擦出、寫入、驗證四個過程,燒寫速度很快,體驗非常贊,顯示 OK後燒寫完成,復位 處理器以後程式就開始運行了。


8,燒寫完成後,怎麼判斷程式已經正常運行了呢,對了,這就需要運到RTT最讚的功能勒, finish元件,開啟minicom終端,串列埠設定下圖所示

可以看到出現finish》》標示,不要小看這個,相當於RTT作業系統的 shell ,功能強大,可以通過串列埠檢視各種資訊,還可以自己新增功能,非常

好用,強烈推薦,以後有機會詳細介紹。

9,有的同學沒有usb轉串列埠,看不到 finish 元件,也沒有關係,因為此時我們已經可以修改程式,燒寫程式碼了,RTT的例程時自帶一個閃爍LED的,但是需要簡單的修改一下

和自己的電路板對應,我的mini103開發板LED對應PA8、PD2,在驅動程式碼中簡單修改以下下載就可以看到燈一閃一閃啦。

總結,本文介紹瞭如何在Linux環境下編譯和燒寫RTT作業系統,也可以適用於常規的 ARM 開發流程,總結一下自己的學習過程,希望可以幫助到有需要的同學