? ? ? ? 在網上看的關于stm32mp157的開發教程太少了,于是乎寫一篇踩坑筆記,僅供學習參考
大概流程:在虛擬機通過stm32cubeprogrammer燒錄鏡像,然后燒錄成功之后,給stm32mp157連接網線,使得開發板有ip地址,然后通過scp復制把文件拷貝到開發板,然后在開發板上運行qt代碼,就部署成功了!!!
這個不僅僅是stm32mp157的開發流程,也是linux開發板的一篇教程,基本都是,虛擬機安裝ubuntu,然后通過ssh連接燒錄,把對應可執行文件放到開發板,然后就運行
由于stm32mp157的開發資料較少,所以我們可以參考正點原子的stm32mp157開發板資料,或者華清遠見的抑或是百問嵌入式的,雖然開發板不一樣,但是資料都是可以互通的,可以使用配套資料里面的虛擬機和鏡像,方便很多,并且也有很多工具和資料
鏈接;
正點原子:STM32MP157開發板 — 正點原子資料下載中心 1.0.0 文檔
華清遠見:華清遠見STM32MP157 Linux開發板 - 華清遠見研發中心
百問網:🎫100ASK_STM32MP157_PRO開發板 — 百問網資料下載中心 3.0 文檔
ok啊兄弟們,有資料就是事半功倍了呀
也可以參考這篇教程:STM32MP157使用記錄:OpenSTLinux試用與開發體驗-CSDN博客
1.第一步:安裝虛擬機
原因:可以使用虛擬機安裝stm32cubeprogrammer,下載安裝鏡像,而且qt的開發也可以用虛擬機來安裝,然后部署到開發板,虛擬機好處多多,window也能做,只不過會比較慢
步驟:下載安裝VMware,并且安裝Ubuntu鏡像
安裝過程不再敘述,你隨便在上面找一個里面都有詳細的教程
2.在虛擬機中,安裝基本環境
sudo apt update
sudo apt install -y build-essentialsudo apt install -y gawk git-core diffstat texinfo gcc-multilib chrpath socat cpio python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 pylint xterm
sudo apt install -y xsltproc docbook-utils fop dblatex xmlto
sudo apt install -y libmpc-dev libgmp-dev
sudo apt install -y libncurses5 libncurses5-dev libncursesw5-dev libssl-dev linux-headers-generic u-boot-tools device-tree-compiler bison flex libyaml-dev libmpc-dev libgmp-dev
sudo apt install -y python-is-python3# 設置使MMC支持分為16個分區
echo 'options mmc_block perdev_minors=16' > /tmp/mmc_block.conf
sudo mv /tmp/mmc_block.conf /etc/modprobe.d/mmc_block.conf
硬件連接:
注意有些usb線質量不行,供電電流遲遲達不到,建議使用品質較好的usb線,手機充電線就很不錯。
?3.在虛擬機安裝stm32cubeprogrammer,并且下載鏡像openstlinux
燒錄是通過 USB OTG 那個口進行的(DFU模式)。需要注意的是燒錄過程中設備會斷開重新連接,如果使用虛擬機的話需要把這個USB設備設置為自動轉到虛擬機或是在重新連接的過程中手動轉到虛擬機。
注意:燒錄鏡像的時候,要保證開發板背后的倆個開關全部關閉,撥桿到off,倆個都是,等到燒錄結束之后,再打開到on,不然虛擬機的stm32cubeprogrammer一直檢測不到usb的DFU,我原本以為是沒下載好dfu的驅動,其實是這個撥桿的問題
STM32CubeProgrammer用來將系統二進制文件燒錄到TF卡或eMMC中,可以從下面選擇合適的版本下載:
https://www.st.com/en/development-tools/stm32cubeprog.html
我這里通過Ubuntu自帶的瀏覽器下載,得到的 en.stm32cubeprg-lin_v2-10-0.zip 文件位于 ~/Downloads/ 目錄下。也可以使用window下載,下載之后,復制到虛擬機就可以
cd ~/Downloads/
unzip en.stm32cubeprg-lin_v2-10-0.zip
./SetupSTM32CubeProgrammer-2.10.0.linux
?當然我也建議使用windows來安裝stm32cubeprogrammer,然后使用windows來下載也可以。
問題的關鍵是在燒錄什么的鏡像,這里我們燒錄openstlinux
鏡像鏈接:?OpenSTLinux BSP 軟件包在哪里下載呢
上面這個是鏡像下載:
下面這個是工具下載,交叉編譯器的工具
?下載好鏡像之后
連接設備,打開下面目錄中對應的燒錄配置文件(.tsv):
~/mp157/ecosystem/starter/stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17/images/stm32mp1/flashlayout_st-image-weston/(里面還有一層,找到)
?注意的是,這個里面有幾個開發板的鏡像,請選擇正確對應開發板的鏡像源
然后二進制文件路徑選擇下面這個:
~/mp157/ecosystem/starter/stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17/images/stm32mp1/(這個路徑選文件夾)
最后點擊 Download 進行燒錄即可
?等待十幾分鐘之后,就可以燒錄進去了,這就是燒錄后的顯示
4.qt的安裝和編譯
我們需要在虛擬機中安裝qt,并且把qt的工程編譯,然后把編譯后的工程放到開發板
安裝qt,這里也不敘述,網上資料很多,而且前面的資料鏈接里面也有對qt的安裝和部署
這一步最重要的是安裝交叉編譯器,這里我們使用st提供的交叉編譯器,
這里就是交叉編譯器的下載位置?
我們應該下載mp1-dev-x86這個交叉編譯器,因為arm那個編譯器是專門給arm架構的編譯器,我們虛擬機是x86架構,所以使用x86架構的
cd ~/Downloads/
tar xvf en.SDK-x86_64-stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17.tar.xz# 建立SDK安裝目錄
mkdir -p ~/mp157/ecosystem/developer/SDK
# 執行腳本安裝SDK
chmod +x stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17/sdk/st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1.11-openstlinux-5.10-dunfell-mp1-21-11-17.sh
./stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17/sdk/st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1.11-openstlinux-5.10-dunfell-mp1-21-11-17.sh -d $HOME/mp157/ecosystem/developer/SDK# 設置SDK
# 下面方式是臨時的,每次打開終端都需要重新設置
cd ~/mp157/ecosystem/developer/
source SDK/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
# echo $ARCH
# echo $CROSS_COMPILE
# $CC --version
# echo $OECORE_SDK_VERSION
使用 make 進行編譯。編譯得到的二進制文件可以通過網絡傳輸到開發板中(比如使用 scp gtk_hello_world root@<board ip address>:/usr/local 方式),然后在開發板中運行(比如通過串口終端來運行)。運行運行上面程序會在開發板的屏幕上出現一個帶有按鈕的窗體:
?然后在開發板就能運行,這個頁面了
問題:怎么設置開發板連接到筆記本來共享網絡
解決方案:
一、設置電腦為WLAN共享模式
1、在桌面右鍵wifi圖標,選擇--打開網絡和Internet設置。
2、選擇更改適配器選項
3、右擊WLAN選擇屬性?
4、設置WLAN共享設置(家庭網絡連接設置為,你開發板和電腦有線連接,用的是哪個網卡,就選擇哪個)
?5、跳出電腦提示,電腦自動分配網關,開發板通過該ip上網(記住網關:192.168.137.1)
?二、設置以太網IP
1、選擇以太網屬性
2、 雙擊lnternet協議版本4(TCP/IPv4)屬性
3、查看lnternet協議版本4的ip地址是否為共享WLAN所對應的ip(若不是,則需要自己設置)
?
參考文章:開發板上網(保姆級教程)_開發板聯網-CSDN博客
以上就是mp157,設計頁面設置的一個教程了