ARM裸機開發(fā)篇1:Cortex-A7開發(fā)環(huán)境搭建
寫在前面:
本文章為《ARM Cortex-A7裸機開發(fā)篇》系列中的一篇,全系列總計11篇。筆者使用的開發(fā)平臺為華清遠見FS-MP1A開發(fā)板(STM32MP157開發(fā)板)。
針對FS-MP1A開發(fā)板,除了Cortex-A7裸機開發(fā)篇外,還包括其他多系列教程,包括Cortex-M4開發(fā)篇、FreeRTOS篇、Linux基礎及應用開發(fā)篇、Linux系統(tǒng)移植篇、Linux驅(qū)動開發(fā)篇、硬件設計篇、人工智能機器視覺篇、Qt應用編程篇、Qt綜合項目實戰(zhàn)篇等。歡迎關注,更多stm32mp157開發(fā)教程及視頻,可加技術交流Q群459754978,感謝關注。
FS-MP1A開發(fā)板詳情介紹:https://item.taobao.com/item.htm?id=622457259672
Cortex-A7開發(fā)環(huán)境搭建
本章節(jié)主要介紹windows下的開發(fā)環(huán)境搭建。推薦使用win10 64bit系統(tǒng)進行安裝。我們將安裝以下軟件。
Xshell 6(免費版)
STM32CubeProgrammer
Xshell 6安裝
由于在后續(xù)的實驗中需要使用到串口調(diào)試終端和ssh登陸Linux操作系統(tǒng),因此需要 安裝一個 調(diào)試工具 ,這里以xshell為例 ,讀者也可以根據(jù)自己的個人習慣選擇。
Xshell 6免費版安裝包可以從xshell官方網(wǎng)站https://www.netsarang.com/zh/通過郵件申請免費版本,也可以使用資料光盤中【華清遠見-FS-MP1A開發(fā)資料\01-工具軟件】的Xshell-6.0.0197p.exe安裝包進行安裝。

雙擊安裝包后會先檢查當前系統(tǒng)環(huán)境,如果系統(tǒng)依賴不滿足則會自動安裝缺失的部分。

環(huán)境安裝完成后將會出現(xiàn)如下界面

點擊“下一步”

點擊“我接收許可協(xié)議中的條款”

這里直接點擊“下一步”

選擇要安裝的默認目錄后點擊“下一步”

點擊“安裝”

安裝完成會出現(xiàn)如下界面

安裝完成后第一次啟動需要指定一個配置文件默認保存路徑,這里一般默認即可。

然后出現(xiàn)如下界面,由于是免費版本所以直接點擊“關閉”即可。

隨后會彈出如下界面,點擊“確定”

至此,xshell 6(免費版),就安裝成功了。
STM32CubeProgrammer安裝
STM32CubeProgrammer是STMicroelectronics的官方工具,用于在STM32平臺上的Flash設備中創(chuàng)建分區(qū)并對各個分區(qū)進行鏡像燒錄。
可以使用STM32CubeProgrammer來燒錄STM32 MPU板上支持的所以Flash設備。后續(xù) 鏡像燒錄將會用STM32CubeProgrammer工具進行eMMC和SDCsrd的鏡像更新。
STM32CubeProgrammer安裝包可以從xshell官方網(wǎng)站https://www.st.com/en/development-tools/stm32cubeprog.html通過郵件申請最新版本,也可以使用資料光盤中【華清遠見-FS-MP1A開發(fā)資料\01-工具軟件】的en.stm32cubeprog_v2-4-0.zip安裝包進行安裝。
首先需要將安裝包解壓,解壓完成后得到如下文件。

雙擊“SetupSTM32CubeProgrammer-2.4.0.exe”允許安裝向?qū)А?/p>

點擊“Next”

點擊“Next”

點擊“I accept the terms of this license agreement”

這里選擇安裝路徑,筆者可以自行指定。點擊Next之后會提示,將要創(chuàng)建一個安裝目錄。

勾選STM32TrustePackageCreator選項

Next之后會進程序安裝。

在安裝的過程中會彈出如下界面,安裝相關的驅(qū)動程序。
點擊“下一步”

程序?qū)詣影惭b所需的驅(qū)動程序,安裝完成后會彈出如下界面。

點擊“完成”

切換到“STM32CubeProgrammer”界面后點擊“Next”,創(chuàng)建桌面快捷鍵。

安裝完成界面

出現(xiàn)上述界面后點擊“Done”。至此STM32CubeProgrammer就安裝完成了。
CORTEXA7相關工具安裝
安裝GCC編譯工具
雙擊【資料光盤\華清遠見-FS-MP1A開發(fā)資料-2020-11-06\01-工具軟件\Yagarto工具包】目錄下的yagarto-bu-2.21_gcc-4.6.2-c-c++_nl-1.19.0_gdb-7.3.1_eabi_20111119.exe進行安裝

點擊 Next

繼續(xù)點擊Next



點擊Install

點擊Next

點擊Finish,完成安裝
安裝Yagarto工具包
雙擊【資料光盤\華清遠見-FS-MP1A開發(fā)資料-2020-11-06\01-工具軟件\Yagarto工具包】目錄下的yagarto-tools-20100703-setup.exe進行安裝

點擊Next

點擊Next

點擊Next

選擇安裝路徑,然后點擊Next

點擊Install進行安裝


點擊Finish,完成安裝
安裝JRE
雙擊【資料光盤\華清遠見-FS-MP1A開發(fā)資料-2020-11-06\01-工具軟件】目錄下的文件jre-6u7-windows-i586-p-s.exe進行安裝

點擊“接受”,過程可能需要一段時間

點擊“完成”即完成安裝
Eclipse for ARM 安裝與使用
選擇路徑:【資料光盤\華清遠見-FS-MP1A開發(fā)資料-2020-11-06\01-工具軟件\eclipse\ eclipse-cpp-helios-SR1-win32.zip】文件解壓后,然后運行eclipse.exe文件。
Eclipse for ARM是一個標準的窗口應用程序,可以單擊程序按鈕開始運行,打開后需先指定一個工程存放路徑,如圖所示。


第一次打開后出現(xiàn)這種界面,點擊“workbench”進入工程界面,可以彈出工作界面

創(chuàng)建一個C工程
進入主界面后,選擇“File、New、C Project”命令,Eclipse將打開一個標準對話框,輸入你新建工程的名字然后單擊“Finish”按鈕即可創(chuàng)建一個新的工程。

創(chuàng)建成功后,會在工程工作界面中有你創(chuàng)建的工程名,之后添加工程必要文件。
新建一個Makefile文件
選擇“File、New、Other”命令,在彈出的對話框New中的“General”下單擊File,然后單擊Next,選擇所要指定的工程后,在文件名文本框中輸入文件名Makefile,然后單擊“Finish”按鈕。


新建一個腳本文件
選擇“File、New、Other”命令,在彈出的對話框New中的“General”下單擊File,然后單擊Next,選擇所要指定的工程后,在文件名文本框中輸入文件名STM32MP1.init,然后單擊“Finish”按鈕。

新建一個鏈接腳本文件
選擇“File、New、Other”命令,在彈出的對話框New中的“General”下單擊File,然后單擊Next,選擇所要指定的工程后,在文件名文本框中輸入文件名led.lds,然后單擊“Finish”按鈕。

新建一個匯編源文件
選擇“File、New、Other”命令,在彈出的對話框New中的“General”下單擊File,然后單擊Next,選擇所要指定的工程后,在文件名文本框中輸入文件名led_light.S,然后單擊“Finish”按鈕。

新建一個main文件
選擇“File、New、Other”命令,在彈出的對話框New中的“General”下單擊File,然后單擊Next,選擇所要指定的工程后,在文件名文本框中輸入文件名main.c,然后單擊“Finish”按鈕。

至此工程及所需文件已經(jīng)基本創(chuàng)建完成,為了能夠?qū)崿F(xiàn)工程的相關功能,還必須在對應文件中添加相應的代碼,在這一步時,你可以參考已有工程的文件。
所有文件編譯完成后,保存文件,創(chuàng)建好的工程如圖所示

點擊如下圖所示的編譯圖標進行編譯

編譯完成后顯示結(jié)果如圖所示,表示編譯沒有問題

此時工程下所有文件如下

導入一個已有工程
本文提供了相關項目實驗源碼,在實驗中可以直接導入相應工程即可。
1. 打開 打開 Eclipse 開發(fā)工具,在Project Explorer 中添加 LED 工程
(注意:工程要放在英文路徑下 ,不能有中文路徑 )
拷貝【 資料光盤\華清遠見-FS-MP1A開發(fā)資料-2020-11-06\02-程序源碼\03-ARM體系結(jié)構與接口技術\Cortex-A7\c_led】 到 eclipse 工作目錄下。
如:C:\Users\FSARSIGHT-IOT-01\Desktop\eclipse-example目錄。
(注意:如果從光盤介質(zhì)直接拷貝出來的目錄可能會出現(xiàn)文件有只讀屬性的情況,建議查看文件夾的只讀屬性是否選中,確保在未勾選的狀態(tài)下)

如圖所示,在 Project Explorer 窗口中右擊鼠標,選擇“Import…”,如下圖所示

選擇“Import…”后,出現(xiàn)如下圖所示的窗口,選中“Existing Projects Into Workpace”然
后點擊“Next”

選擇“Next”后出現(xiàn)如下窗口,點擊“Browse…”后出現(xiàn)“瀏覽文件夾”窗口,在“瀏覽文件
夾”窗口中選中實驗“c_led”后點擊“確定”

點擊“確定”后出現(xiàn)如下窗口,直接點擊“Finish”即可。

添加成功后可以在“ Project Explorer ”中看到“c_led”工程成功導入。


工程成功導入后,如暫時不使用該工程時我們可以Close project,下次使用時再Open project(同時只能有一個工程是打開的),該工程相關配置不變。

openOCD使用
由于在后續(xù)的實驗中需要使用到openOCD調(diào)試軟件,可以從資料光盤中【華清遠見-FS-MP1A開發(fā)資料-2020-11-06\01-工具軟件】下載OpenOCD-STM32MP1.zip壓縮包。進行解壓后,進入bin目錄下,按住Shift鍵,右擊鼠標,如圖所示

點擊“在此處打開Powershell窗口”選項,然后可以出現(xiàn)如下窗口

Eclipse Debug調(diào)試
準備完畢,在Eclipse進行Debug調(diào)試時,在window PowerShell窗口中輸入如下指令
.\openocd.exe -s .\scripts\ -f board\stm32mp15x_fsmp1a.cfg
點擊回車,顯示結(jié)果如下

打開Xshell 6軟件后,連接MP1,如圖所示


此時按一下開發(fā)板復位鍵,在倒計時到0之前按下回車,最終顯示界面如下

在Eclipse 中首先進行Debug調(diào)試配置,點擊

按鈕,然后選擇“Debug Configurations..”,點擊,然后出現(xiàn)如下界面

然后雙擊“Zylin Embedded debug(Native)”,可以出現(xiàn)所創(chuàng)建的工程,配置如下

在紅框內(nèi)選擇所建工程中生成的elf文件


配置完成后點擊Apply,然后再點擊Debug,會出現(xiàn)如下提示框

點擊Yes,然后進入Debug調(diào)試界面,如圖所示

點擊

按鈕,程序開始運行,首次會卡住在main處,然后再次點擊

按鈕,程序全速運行,此時可以發(fā)現(xiàn)LED燈正常閃爍。

當點擊

按鈕后,程序結(jié)束運行,如圖所示


當退出Debug界面時,選中上圖紅框中內(nèi)容,按下Del鍵刪除掉,此一步主要防止出現(xiàn)不知名錯誤。
另外,在測試時,由于沒有關閉看門狗,程序運行32秒后,會自動進行復位。
硬件平臺:華清遠見FS-MP1A開發(fā)板(STM32MP157)
部分開發(fā)教程下載:加QQ群459754978,群文件里有。
部分視頻課程收看:華清遠見研發(fā)中心的個人空間_嗶哩嗶哩_Bilibili
淘寶購買鏈接:https://item.taobao.com/item.htm?id=622457259672
手機淘寶分享碼:復制本行文字打開手淘?T4FPXn3YYJ2?