大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是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. 洛谷 P5902 [IOI2009]salesman(dp)

    题面传送门 题意: 有 \(n\) 个展销会,每个展销会给出它的时间 \(t_i\),举办展销会的位置 \(l_i\),和参加这个展销会你能得到的收益 \(m_i\). 你现在在位置 \(s\),你可 ...

  2. 洛谷 P5471 - [NOI2019] 弹跳(二维线段树优化建图+堆优化存边)

    题面传送门 一道非常有意思的题(大概可以这么形容?) 首先看到这类一个点想一个区域内连边的题目可以很自然地想到线段树优化建图,只不过这道题是二维的,因此需要使用二维线段树优化建图,具体来说,我们外层开 ...

  3. 【讲座】朱正江——基于LC-MS的非靶向代谢组学

    本次课程主题为<基于LC-MS的非靶向代谢组学>,主要分为代谢组学简介.代谢组学技术简介.非靶向代谢组学方法和数据采集.非靶向代谢组学数据分析和代谢物结构鉴定几个方面. 一.代谢组简介 基 ...

  4. 出现NoClassDefFoundError,始终无法引入jar的解决

    在拉取代码后,项目的部分版本与本地存在的不一定一致,所以IDEA会自动下载并引入,但是在启动时可能存在java.lang.NoClassDefFoundError这个报错 比如引入marshallin ...

  5. MapReduce02 序列化

    目录 MapReduce 序列化 概述 自定义序列化 常用数据序列化类型 int与IntWritable转化 Text与String 序列化读写方法 自定义bean对象实现序列化接口(Writable ...

  6. 大数据学习day35----flume01-------1 agent(关于agent的一些问题),2 event,3 有关agent和event的一些问题,4 transaction(事务控制机制),5 flume安装 6.Flume入门案例

    具体见文档,以下只是简单笔记(内容不全) 1.agent Flume中最核心的角色是agent,flume采集系统就是由一个个agent连接起来所形成的一个或简单或复杂的数据传输通道.对于每一个Age ...

  7. windows下 apache 二级域名相关配置 【转】

    转至: http://www.th7.cn/Program/php/201306/141305.shtml 今天给大家总结下 windows 下 apache的二级域名的相关配置 下面就利用本地127 ...

  8. 【Netty】最透彻的Netty原理架构解析

    这可能是目前最透彻的Netty原理架构解析 本文基于 Netty 4.1 展开介绍相关理论模型,使用场景,基本组件.整体架构,知其然且知其所以然,希望给大家在实际开发实践.学习开源项目方面提供参考. ...

  9. 侵入式&非侵入式

    侵入式设计 引入了框架,对现有的类的结构有影响:即需要实现或继承某些特定类. 例如:Struts框架 非侵入式设计 引入了框架,对现有的类结构没有影响. 例如:Hibernate框架 / Spring ...

  10. html标签设置contenteditable时,去除粘贴文本自带样式

    在一个div标签里面加了可编辑的属性,从别的地方复制了一串文本,只想把文本内容存到接口里面,结果发现文本自带的标签和样式都会存进去. $(".session-new-name"). ...