大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是i.MXRT1062 TencentOS Tiny EVB_AIoT開發板環境搭建與點燈。
騰訊 TencentOS 團隊於2021年12月8日聯合恩智浦半導體、安謀科技發起了一個線上開發者活動 - TencentOS Tiny AIoT 應用創新大賽。為了這個大賽,騰訊 TencentOS 團隊聯合恩智浦半導體、厚德物聯網設計了一款高效能 AIoT 評估板,用於 TencentOS tiny 基礎核心和 AIoT 應用功能體驗和評估。
痞子衡受邀為這個大賽準備一場直播課程(12月30日晚7點),主題是板載主控恩智浦 i.MXRT1062 晶片快速開發指南,由於課程時間限定在40分鐘,要講的內容又比較多,註定只能走馬觀花,所以這個系列文章就圍繞 EVB_AIoT 開發板給這場直播做一個鋪墊和補充。本文是第一篇,我們講講基礎開發環境搭建以及最簡單的點燈程式:
一、開發環境搭建
1.1 硬體平臺TencentOS Tiny EVB_AIoT開發板
要跑點燈程式,首先你得有一塊 EVB_AIoT 開發板,如下圖所示,板卡採用最近比較流行的子母板設計,子板上主控型號為 MIMXRT1062CVL5B。如果報名參加了這個比賽,騰訊會將板卡寄給你。
1.2 整合開發環境MCUXpresso IDE
EVB_AIoT 開發板主控晶片 MIMXRT1062CVL5B 基於的是 ARM Cortex-M7 核心,我們知道面向 Cortex-M 微控制器的整合開發環境有很多,比如經典的 GCC/IAR/Keil,這幾個軟體是通用的(與具體 MCU 廠商無關)。除了通用的 IDE 外,一些有實力的 MCU 廠商也會推出自己設計的 IDE,專用於自家的 MCU,恩智浦半導體就推出了適用 i.MXRT 系列的免費 IDE,它就是 MCUXpresso IDE ,這個 IDE 功能很完備,能夠滿足日常開發需求,不妨試一下。
- 整合開發環境: MCUXpresso IDE v11.4.0_6224,點此下載
1.3 官方軟體開發包MCUXpresso SDK
在開始移植點燈程式到 EVB_AIoT 開發板之前,我們需要先有一個 i.MXRT1062 的基礎模板工程,當然我們可以對著晶片資料手冊自己從頭寫一個,但是這裡痞子衡推薦使用恩智浦官方軟體開發包。
註冊並登入恩智浦官網,來到 MCUXpresso SDK Builder 頁面,在 "Select Development Board" 裡選擇 EVK-MIMXRT1060 後點選 Build MCUXpresso SDK 後跳轉到下一個頁面,在 "Developer Environment Settings" 裡選擇全部 Toolchain 以及 Component 並點選 Download SDK 後便可得到 SDK_2.10.1_EVK-MIMXRT1060.zip,下面是痞子衡下載的開發包具體版本資訊:
二、從點燈開始
2.1 確認板載DAP-Link偵錯程式正常
如果你細心觀察,這個 EVB_AIoT 開發板上不止一顆主控晶片,除了子板上的 i.MXRT1062 外,母板上還有一顆 MKL26Z128VLH4,這顆 KL26 便是板載 DAP-Link 偵錯程式主控,關於恩智浦 DAP-Link 偵錯程式細節詳見痞子衡舊文 《玩轉板載OpenSDA,Freelink偵錯程式》。
因為有板載 DAP-Link 偵錯程式,所以我們就不需要再外接偵錯程式(很遺憾板卡並沒有留出外接偵錯程式接頭,如果你實在想用 J-Link 偵錯程式,需要在母板與子板接頭裡找出 DAP_SWCLK 和 DAP_SWDIO 訊號,並飛線出來連到你的 J-Link 偵錯程式上),現在讓我們用一根 Type-C 線將 PC 和母板 J1 口連線起來,這個 J1 口既是板載偵錯程式 USB 介面,也可用於給板卡供電。
- Note: PC最好是Win10系統,如果是Win10以下系統需要手動安裝好 serial port driver,注意要連線板卡安裝驅動,詳見 安裝注意事項。
板卡通過 J1 口供電後,如果你可以看到如下三處地方(新增名為 RT1060-EVK 碟符、裝置管理器裡新增 mbed Serial Port 串列埠號、mbed Composite Device USB 控制器),說明板載 DAP-Link 偵錯程式是正常的。
2.2 開始移植SDK led_blinky例程
萬事俱備,現在我們開始移植點燈程式碼,需要用到 1.3 小節裡下載到的 SDK_2.10.1_EVK-MIMXRT1060.zip 包。如果你是用 IAR/Keil 環境,直接將包解壓即可,包裡面有完整的模板工程檔案:
- IAR 模板工程:\SDK_2.10.1_EVK-MIMXRT1060\boards\evkmimxrt1060\demo_apps\led_blinky\iar
- Keil 模板工程:\SDK_2.10.1_EVK-MIMXRT1060\boards\evkmimxrt1060\demo_apps\led_blinky\mdk
不過今天痞子衡更想和大家介紹的是 MCUXpresso IDE 環境下的工程移植,SDK_2.10.1_EVK-MIMXRT1060.zip 包裡並沒有 MCUXpresso IDE 工程檔案,因為 MCUXpresso IDE 是一種全新的 SDK 匯入方式,詳見痞子衡舊文 《MCUXpresso IDE下SDK工程匯入與workspace管理機制》。
當我們從 SDK 包裡匯出一個完整 led_blinky 的 MCUXpresso IDE 工程後(預設在 \Documents\MCUXpressoIDE_11.4.0_6224\workspace\evkmimxrt1060_iled_blinky 路徑),現在開始修改程式碼。SDK 裡原始程式碼主要是適配恩智浦官方 MIMXRT1060-EVK 開發板的,官方開發板上連線 LED 的管腳是 GPIO_AD_B0_09(即 GPIO1[9]),而我們 EVB_AIoT 開發板上連線 LED 的管腳是 GPIO_SD_B1_02,我們現在來修改這個管腳配置,在 MCUXpresso IDE 下有更便捷的修改方式,那就是藉助 MCUXpresso Config Tool 裡的 Pin Tool 元件:
在 Pin Tool 元件左側 Pins 視窗裡將原來 GPIO_AD_B0_09 勾選去掉,重新選擇 GPIO_SD_B1_02,並且配置為 GPIO3_IO02,然後在下面 Routing Details 視窗裡進一步配置其 PAD 屬性為 Output,操作過程中可以實時看到 pin_mux.c 原始檔裡的程式碼變化,最後點選上方 Update Code 按鈕,程式碼會自動更新,至此程式碼改動就完成了。(關於 MCUXpresso Config Tool 原理詳見痞子衡舊文 《MCUXpresso Config Tools初體驗(Pins, Clocks, Peripherals)》)
2.3 在 RAM 裡除錯 led_blinky例程
修改完 LED 管腳程式碼後,為了除錯方便,我們在工程屬性裡勾選上 Link application to RAM 選項,即將程式碼全部連結到 i.MXRT1062 內部 TCM 裡,然後編譯工程。這裡不明白的話詳見痞子衡舊文 《MCUXpresso IDE下工程連結檔案配置管理與自動生成機制》。在內部 RAM 裡除錯不涉及 Flash 下載演算法,過程比較簡單,適用於早期程式碼評估。
工程編譯結束後,還差最後一步,就是在左下角 Debug your project 視窗裡點選 Debug 按鈕,這時候 IDE 會自動發現當前可用的偵錯程式 DAPLink CMSIS-DAP,選中它便可以進入除錯介面,這時斷點應該停在 main 函式裡,按 F8(Resume) 鍵程式便直接跑起來,母板上的藍色 LED 燈(D8)此時應該在對你眨眼。
至此,i.MXRT1062 TencentOS Tiny EVB_AIoT開發板環境搭建與點燈痞子衡便介紹完畢了,掌聲在哪裡~~~
歡迎訂閱
文章會同時釋出到我的 部落格園主頁、CSDN主頁、知乎主頁、微信公眾號 平臺上。
微信搜尋"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機上第一時間看了哦。