大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是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 灯此时应该在对你眨眼。
至此,i.MXRT1062 TencentOS Tiny EVB_AIoT开发板环境搭建与点灯痞子衡便介绍完毕了,掌声在哪里~~~
欢迎订阅
文章会同时发布到我的 博客园主页、CSDN主页、知乎主页、微信公众号 平台上。
微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。