天天看點

痞子衡嵌入式:把玩i.MXRT1062 TencentOS Tiny EVB_AIoT開發闆(1) - 開發環境搭建與點燈

  大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是i.MXRT1062 TencentOS Tiny EVB_AIoT開發闆環境搭建與點燈。

  騰訊 TencentOS 團隊于2021年12月8日聯合恩智浦半導體、安謀科技發起了一個線上開發者活動 - TencentOS Tiny AIoT 應用創新大賽。為了這個大賽,騰訊 TencentOS 團隊聯合恩智浦半導體、厚德物聯網設計了一款高性能 AIoT 評估闆,用于 TencentOS tiny 基礎核心和 AIoT 應用功能體驗和評估。

大賽首頁:https://cloud.tencent.com/developer/competition/introduction/10032

  痞子衡受邀為這個大賽準備一場直播課程(12月30日晚7點),主題是闆載主要恩智浦 i.MXRT1062 晶片快速開發指南,由于課程時間限定在40分鐘,要講的内容又比較多,注定隻能走馬觀花,是以這個系列文章就圍繞 EVB_AIoT 開發闆給這場直播做一個鋪墊和補充。本文是第一篇,我們講講基礎開發環境搭建以及最簡單的點燈程式:

  要跑點燈程式,首先你得有一塊 EVB_AIoT 開發闆,如下圖所示,闆卡采用最近比較流行的子主機闆設計,子闆上主要型号為 MIMXRT1062CVL5B。如果報名參加了這個比賽,騰訊會将闆卡寄給你。

痞子衡嵌入式:把玩i.MXRT1062 TencentOS Tiny EVB_AIoT開發闆(1) - 開發環境搭建與點燈

  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,點此下載下傳

  在開始移植點燈程式到 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,下面是痞子衡下載下傳的開發包具體版本資訊:

痞子衡嵌入式:把玩i.MXRT1062 TencentOS Tiny EVB_AIoT開發闆(1) - 開發環境搭建與點燈

  如果你細心觀察,這個 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 調試器是正常的。

痞子衡嵌入式:把玩i.MXRT1062 TencentOS Tiny EVB_AIoT開發闆(1) - 開發環境搭建與點燈

  萬事俱備,現在我們開始移植點燈代碼,需要用到 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 元件:

痞子衡嵌入式:把玩i.MXRT1062 TencentOS Tiny EVB_AIoT開發闆(1) - 開發環境搭建與點燈

  在 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)》)

痞子衡嵌入式:把玩i.MXRT1062 TencentOS Tiny EVB_AIoT開發闆(1) - 開發環境搭建與點燈

  修改完 LED 管腳代碼後,為了調試友善,我們在工程屬性裡勾選上 Link application to RAM 選項,即将代碼全部連結到 i.MXRT1062 内部 TCM 裡,然後編譯工程。這裡不明白的話詳見痞子衡舊文 《MCUXpresso IDE下工程連結檔案配置管理與自動生成機制》。在内部 RAM 裡調試不涉及 Flash 下載下傳算法,過程比較簡單,适用于早期代碼評估。

痞子衡嵌入式:把玩i.MXRT1062 TencentOS Tiny EVB_AIoT開發闆(1) - 開發環境搭建與點燈

  工程編譯結束後,還差最後一步,就是在左下角 Debug your project 視窗裡點選 Debug 按鈕,這時候 IDE 會自動發現目前可用的調試器 DAPLink CMSIS-DAP,選中它便可以進入調試界面,這時斷點應該停在 main 函數裡,按 F8(Resume) 鍵程式便直接跑起來,主機闆上的藍色 LED 燈(D8)此時應該在對你眨眼。

痞子衡嵌入式:把玩i.MXRT1062 TencentOS Tiny EVB_AIoT開發闆(1) - 開發環境搭建與點燈

  至此,i.MXRT1062 TencentOS Tiny EVB_AIoT開發闆環境搭建與點燈痞子衡便介紹完畢了,掌聲在哪裡~~~

文章會同時釋出到我的 部落格園首頁、CSDN首頁、知乎首頁、微信公衆号 平台上。

微信搜尋"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機上第一時間看了哦。

痞子衡嵌入式:把玩i.MXRT1062 TencentOS Tiny EVB_AIoT開發闆(1) - 開發環境搭建與點燈

  最後歡迎關注痞子衡個人微信公衆号【痞子衡嵌入式】,一個專注嵌入式技術的公衆号,跟着痞子衡一起玩轉嵌入式。

痞子衡嵌入式:把玩i.MXRT1062 TencentOS Tiny EVB_AIoT開發闆(1) - 開發環境搭建與點燈
痞子衡嵌入式:把玩i.MXRT1062 TencentOS Tiny EVB_AIoT開發闆(1) - 開發環境搭建與點燈
痞子衡嵌入式:把玩i.MXRT1062 TencentOS Tiny EVB_AIoT開發闆(1) - 開發環境搭建與點燈

  衡傑(痞子衡),目前就職于恩智浦MCU系統部門,擔任嵌入式系統應用工程師。

  專欄内所有文章的轉載請注明出處:http://www.cnblogs.com/henjay724/

  與痞子衡進一步交流或咨詢業務合作請發郵件至 [email protected]

  可以關注痞子衡的Github首頁 https://github.com/JayHeng,有很多好玩的嵌入式項目。

  關于專欄文章有任何疑問請直接在部落格下面留言,痞子衡會及時回複免費(劃重點)答疑。

  痞子衡郵箱已被私信擠爆,技術問題不推薦私信,堅持私信請先掃碼付款(5元起步)再發。