上個月,意法半導體推出了新一代64位Cortex-A35內核,主頻高達1.5GHz的STM32MP2x系列微處理器(MPU),這讓STM32MP系列處理器又上了一個新的臺階。
最近,收到了一套米爾基于STM32MP135核心板及開發板,首次接觸STM32MPx處理器,體驗了一下,感覺還不錯。
STM32MP135與普通STM32單片機在性能、價格、應用場景等各方面都有差異。同時,STM32MP135并非局限于裸機、RTOS,而是定位于更高的Linux操作系統平臺。
下面就結合【米爾基于STM32MP135核心板及開發板】給大家講解一下STM32MP135強悍的性能以及開發入門等相關的內容。
硬件平臺介紹
STM32MP135的開發板有很多,這里就以米爾的【米爾基于STM32MP135核心板及開發板】為例來給大家講述。 1、STM32MP135處理器 STM32MP135內核采用Cortex-A7,主頻高達1.0GHz,屬于入門級的MPU,擁有超高的性價比。 官網鏈接:
https://www.st.com/en/microcontrollers-microprocessors/stm32mp135.html
2、米爾基于STM32MP135核心板 米爾基于STM32MP135核心板主控位STM32MP135處理器,搭載DDR3L內存、標配4GB eMMC / 256MB Nand FLASH,以及32KB EEPROM,接口類型為郵票孔148PIN,尺寸37mm x 39mm。 ? 應用方向:充電樁、電池管理、能源管理的方向。 米爾基于STM32MP135核心板介紹鏈接:
https://www.myir.cn/shows/110/57.html
3、米爾基于STM32MP135底板 米爾基于STM32MP135底板的外設資源以及接口就比較豐富和多樣了。 這里直接給出官方的信息:
輕松入門
早在2019年,ST就推出了STM32MP1系列MPU,其強大的性能吸引了不少人的關注。但由于當時配套的開發資料以及生態不夠完善,入手學習也難住了一大批人。 米爾設計這款米爾基于STM32MP135開發板時就考慮到了這個問題,在推出開發板的同時就推出了配套的開發資料。
米爾基于STM32MP135開發板配套開發資料鏈接: http://down.myir-tech.com/MYD-YF13X/ STM32MP1芯片資料可以參看ST官方鏈接: https://www.st.com/en/microcontrollers-microprocessors/stm32mp1-series.html (提示:公號不支持外鏈接,請復制鏈接到瀏覽器打開) 在STM32MP135(MYD-YF13X)平臺上跑Linux相比于普通STM32跑RTOS要復雜一點,需要具備一定的相關基礎知識才行。 當然,米爾也針對新手提供了配套的手把手教程,能讓你快速入門。 0、開發介紹 MYD-YF13X 搭載基于 Linux 5.15.67 版本內核的操作系統,提供了豐富的系統資源和其他軟件資源。 Linux 系統平臺上有許多開源的系統構建框架,米爾核心板基于Yocto 構建和定制化開發。 1、開發環境
Linux開發主機:Debian, Ubuntu, RHEL等。
ST配套工具:STM32CubeProg、STM32CubeMX
安裝米爾定制的 SDK
2、構建開發板鏡像 第1步:獲取源碼 可以從米爾提供鏈接獲取源碼。 http://down.myir-tech.com/MYD-YF13X/ 也可以從github在線獲取源碼。
PC$ mkdir $HOME/github PC$ cd $HOME/github PC$ repo init -u https://github.com/MYiR-Dev/myir-st-manifest.git --no-clone-bu ndle --depth=1 -m myir-stm32mp1-kirkstone.xml -b develop-yf13x PC$ repo sync
第2步:快速編譯鏡像
這里我們需要使用米爾提供的 envsetup.sh 腳本進行環境變量的設置
PC$: DISTRO=openstlinux-weston MACHINE=myd-yf13x-emmc source layers/meta-myir-st/scripts/envsetup.sh然后,構建 myir-image-full 鏡像。注意,選擇構建不同的系統鏡像,需使用不同的 bitbake 命令參數(具體命令參數可以參看提供的文檔)。 第3步:構建 SDK 米爾已經提供較完整的 SDK 安裝包,用戶可直接使用。 3、燒錄系統鏡像 這里使用ST官方的STM32CubeProg 工具進行燒寫,可以在Windows平臺,也可以在Linux平臺。 提示:燒錄的時間可能有點久,需要耐心等待一會兒。 當然,如果覺得慢,也可以用SD卡啟動(燒寫)。 4、修改板級支持包 這一節應該是相對比較重要的,也是相對比較難的,包括U-boot、 kernel等相關內容的編譯與更新。 a.板載 TF-A 編譯與更新 獲取 TF-A 源代碼:
PC$ cd /home/work PC$ tar -jxvf MYiR-STM32-tf-a.tar.bz2 PC$ cd MYiR-STM32-tf-a配置和編譯源代碼:加載 SDK 環境變量到當前 shell:
PC$ source /opt/st/myir-yf13x/4.0.4-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi進入源代碼目錄:
PC$ cd myir-st-arm-trusted-firmware配置與編譯源代碼:
PC$ make -f $PWD/../Makefile.sdk all以上是在獨立的交叉編譯環境下編譯 TF-A,也可以在 Yocto 項目下編譯 TF-A。 更新 TF-A:編譯好之后,將 TF-A 鏡像燒錄進 Micro SD 卡,然后使用 dd 命令將鏡像燒錄到 SD 卡指定分區:
PC$: dd if=tf-a-myb-stm32mp135x-512m-sdcard.stm32 of=/dev/mmcblk0p1 conv=fdatasync PC$: dd if=tf-a-myb-stm32mp135x-512m-sdcard.stm32 of=/dev/mmcblk0p2 conv=fdatasyncb.板載 u-boot 編譯與更新 在獨立的交叉編譯環境下編譯 u-boot,和上面編譯 TF-A 類似,也是和常規的編譯u-boot 方法類似。 c.板載 Kernel 編譯與更新 加載 SDK 環境變量:
PC$ source /opt/st/myir-yf13x/4.0.4-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi配置內核:
PC$ make ARCH=arm O="$PWD/../build" myir_stm32mp135x_defconfig編譯內核:
PC$ make ARCH=arm uImage vmlinux dtbs LOADADDR=0xC2000040 O="$PWD/../build" PC$ make ARCH=arm modules O="$PWD/../build"這個配置可能相對比較復雜,編譯時間也相對較長,具體可以參看官方手冊。 5、適配硬件平臺 這一節就是芯片底層相關的適配(驅動),包括創建設備樹、利用STM32CubeMX 配置GPIO、外設時鐘等,以及配置自己用到的管腳。 然后,就是添加自己的一些應用了。到此,基本達到入門這一步了。
最后
如果你想從STM32單片機裸機、RTOS進階到Linux,這款STM32MP135【MYC-YF13X開發板】是一個不錯的選擇。同時,也會用到一些熟悉的生態工具。
責任編輯:彭菁
-
單片機
+關注
關注
6032文章
44514瀏覽量
632943 -
微處理器
+關注
關注
11文章
2247瀏覽量
82310 -
開發板
+關注
關注
25文章
4943瀏覽量
97188
原文標題:STM32也能輕松跑Linux了
文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論