大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是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 內部 DTCM 里,然后編譯工程。這里不明白的話詳見痞子衡舊文 《MCUXpresso IDE下工程鏈接文件配置管理與自動生成機制》。在內部 RAM 里調試不涉及 Flash 下載算法及 BootROM 啟動,過程比較簡單,適用於早期代碼評估。
工程編譯結束后,還差最后一步,就是在左下角 Debug your project 窗口里點擊 Debug 按鈕,這時候 IDE 會自動發現當前可用的調試器 DAPLink CMSIS-DAP,選中它便可以進入調試界面,這時斷點應該停在 main 函數里,按 F8(Resume) 鍵程序便直接跑起來,母板上的藍色 LED 燈(D8)此時應該在對你眨眼。
至此,i.MXRT1062 TencentOS Tiny EVB_AIoT開發板環境搭建與點燈痞子衡便介紹完畢了,掌聲在哪里~~~
歡迎訂閱
文章會同時發布到我的 博客園主頁、CSDN主頁、知乎主頁、微信公眾號 平台上。
微信搜索"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機上第一時間看了哦。