大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是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。如果报名参加了这个比赛,腾讯会将板卡寄给你。
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,下面是痞子衡下载的开发包具体版本信息:
如果你细心观察,这个 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 调试器是正常的。
万事俱备,现在我们开始移植点灯代码,需要用到 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)》)
修改完 LED 管脚代码后,为了调试方便,我们在工程属性里勾选上 Link application to RAM 选项,即将代码全部链接到 i.MXRT1062 内部 TCM 里,然后编译工程。这里不明白的话详见痞子衡旧文 《MCUXpresso IDE下工程链接文件配置管理与自动生成机制》。在内部 RAM 里调试不涉及 Flash 下载算法,过程比较简单,适用于早期代码评估。
工程编译结束后,还差最后一步,就是在左下角 Debug your project 窗口里点击 Debug 按钮,这时候 IDE 会自动发现当前可用的调试器 DAPLink CMSIS-DAP,选中它便可以进入调试界面,这时断点应该停在 main 函数里,按 F8(Resume) 键程序便直接跑起来,板子上的 LED 灯此时应该在对你眨眼。
至此,i.MXRT1062 TencentOS Tiny EVB_AIoT开发板环境搭建与点灯痞子衡便介绍完毕了,掌声在哪里~~~
文章会同时发布到我的 博客园主页、CSDN主页、知乎主页、微信公众号 平台上。
微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。