大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是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 接口,也可用于给板卡供电。

  板卡通过 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主页知乎主页微信公众号 平台上。

微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

痞子衡嵌入式:把玩i.MXRT1062 TencentOS Tiny EVB_AIoT开发板(1) - 开发环境搭建与点灯的更多相关文章

  1. 痞子衡嵌入式:把玩i.MXRT1062 TencentOS Tiny EVB_AIoT开发板(2) - 在Flash调试及离线启动

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1062 TencentOS Tiny EVB_AIoT开发板在Flash调试与离线启动. 腾讯 TencentOS 团队于 ...

  2. 痞子衡嵌入式:记录i.MXRT1060驱动LCD屏显示横向渐变色有亮点问题解决全过程(提问篇)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT1060上LCD横向渐变色显示出亮点问题的分析解决经验. 痞子衡前段时间在支持一个i.MXRT1060客户项目时遇到了LCD ...

  3. 痞子衡嵌入式:基于恩智浦i.MXRT1060的MP4视频播放器(RT-Mp4Player)设计

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是基于i.MXRT1062的MP4播放器参考设计. i.MXRT1062是恩智浦i.MXRT四位数系列的中端型号,外设搭配上很均衡,辅以6 ...

  4. 痞子衡嵌入式:利用i.MXRT1xxx系列内部DCP引擎计算Hash值时需特别处理L1 D-Cache

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是利用i.MXRT1xxx系列内部DCP引擎计算Hash值时需特别处理L1 D-Cache. 关于i.MXRT1xxx系列内部通用数据协处 ...

  5. 痞子衡嵌入式:改动i.MXRT1xxx里IOMUXC_GPR寄存器保留位可能会造成系统异常

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是改动i.MXRT1xxx里IOMUXC_GPR寄存器保留位可能会造成系统异常. 痞子衡的嵌入式技术交流群里有一位非常活跃的朋友(网名:文 ...

  6. 痞子衡嵌入式:在串口波特率识别实例里逐步展示i.MXRT上提升代码执行性能的十八般武艺

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是在串口波特率识别实例里逐步展示i.MXRT上提升代码执行性能的十八般武艺. 恩智浦 MCU SE 团队近期一直在加班加点赶 SBL 项目 ...

  7. 痞子衡嵌入式:浅析IAR下调试信息输出机制之硬件UART外设

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是IAR下调试信息输出机制之硬件UART外设. 在嵌入式世界里,输出打印信息是一种非常常用的辅助调试手段,借助打印信息,我们可以比较容易地 ...

  8. 痞子衡嵌入式:超级好用的可视化PyQt GUI构建工具(Qt Designer)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是PyQt GUI构建工具Qt Designer. 痞子衡开博客至今已有好几年,一直以嵌入式开发相关主题的文章为主线,偶尔穿插一些其他技术 ...

  9. 痞子衡嵌入式:极易上手的可视化wxPython GUI构建工具(wxFormBuilder)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是wxPython GUI构建工具wxFormBuilder. 一.手工代码布局GUI界面的烦恼 如果你曾经设计过上位机软件GUI界面,初 ...

随机推荐

  1. Atcoder Grand Contest 023 E - Inversions(线段树+扫描线)

    洛谷题面传送门 & Atcoder 题面传送门 毒瘤 jxd 作业-- 首先我们不能直接对所有排列计算贡献对吧,这样复杂度肯定吃不消,因此我们考虑对每两个位置 \(x,y(x<y)\), ...

  2. FVCOM编译过程详解

    本文目的旨在介绍fvcom编译的全过程,顺便介绍linux中make命令的文件写法和一般的编程过程简述一下. 1.编程过程 编程,一般就是编写可执行程序过程.这个过程主要是源文件生成中间代码文件,再到 ...

  3. Mysql优化,ICP、BNL算法、BKA算法、MMR算法

    ICP(Index Condition Pushdown,索引条件下推)是MySQL5.6版本中的新特性,是一种在存储引擎层使用索引过滤数据的一种优化方式. 出现原因:ICP出现Mysql5.6以前, ...

  4. 利用elliipse做相关图

    参考资料:<数据探掘 R语言实战> p65-P68 install.packages("rattle") # 获取实验数据集 install.packages(&quo ...

  5. SpringBoot整合Shiro 一:搭建环境

    Java项目的安全框架一般使用 shiro 与 spring security 具体怎么选择可以参考文章:安全框架 Shiro 和 Spring Security 如何选择 我这里选择使用Shiro ...

  6. Hive(三)【DDL 数据定义】

    目录 一.DDL数据定义 1.库的DDL 1.1创建数据库 1.2查询数据库 1.3查看数据库详情 1.4切换数据库 1.5修改数据库 1.6删除数据库 2.表的DDL 2.1创建表 2.2管理表(内 ...

  7. HDFS【hadoop3.1.3 windows开发环境搭建】

    目录 一.配置hadoop3.1.3 windows环境依赖 配置环境变量 添加到path路径 在cmd中测试 二.idea中的配置 创建工程/模块 添加pom.xml依赖 日志添加--配置log4j ...

  8. Shell学习(五)—— awk命令详解

    一.awk简介   awk是一个非常好用的数据处理工具,相对于sed常常作用于一整个行的处理,awk则比较倾向于一行当中分成数个[字段]处理,因此,awk相当适合处理小型的数据数据处理.awk是一种报 ...

  9. linux shell中的条件判断语句

    http://bbs.chinaunix.net/thread-396805-1-1.html shell 判断语句 流程控制 "if" 表达式 如果条件为真则执行then后面的部 ...

  10. Linux 设置时区

    一.查看和修改Linux的时区 1. 查看当前时区命令 : "date -R" 2. 修改设置Linux服务器时区方法 A命令 : "tzselect" 方法 ...