痞子衡嵌入式:MCUXpresso Config Tools初体验(Pins, Clocks, Peripherals)
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是MCUXpresso Config Tools三大件(Pins, Clocks, Peripherals)。
不知道大家有没有这样的感受,现在的 MCU 芯片复杂度越来越高了,引脚上百个,时钟系统让人眼花缭乱,外设寄存器更是一大堆,芯片参考手册长达几千页,对于软件开发工程师来说,底层开发难度真的越来越大(说到这,有没有怀念 AT89C51 启蒙单片机的单纯)。
当然大型 MCU 厂商一般都会同步推出 SDK 包来缓解软件开发工程师的焦虑,但是这也不能覆盖全部的项目需求,软件工程师还是避免不了要基于 SDK 里跟项目需求最相近的例程做二次开发,因此查引脚、配时钟、看外设这些必备底层技能该会的一个都不能少。
有没有什么工具能进一步提升软件开发工程师的底层开发效率呢?当然有!MCUXpresso Config Tools 就是恩智浦软件团队倾注很大心血研发的辅助底层开发小工具集合。今天痞子衡带大家初步体验下 MCUXpresso Config Tools 中最核心的三大组件:引脚初始化配置工具、时钟初始化配置工具、外设初始化配置工具。
一、准备开发环境
首先需要准备好环境,包含必要的软件,痞子衡的环境如下:
二、软件基本机制
MCUXpresso Config Tools 目前主要由如下七大组件组成,除了 SDK Builder 和 Project Updater 是通用服务型组件外,其余五个用蓝圈框起来的就是面向底层开发的功能型组件:
Clocks - 辅助时钟初始化配置
Peripherals - 辅助外设初始化配置
Pins - 辅助引脚初始化配置
DCD - 辅助生成由 BootROM 处理的 DCD 启动头
TEE - 辅助安全特性配置
更具体来说 MCUXpresso Config Tools 就是为了辅助生成下图蓝框中标出的代码源文件 pin_mux.c/h、clock_config.c/h、dcd.c/h 等,这些文件里的代码都是芯片底层基础初始化相关代码,这些源文件存在于 SDK 包里任何一个例程中,当然也能直接用于实际项目工程中。
三、导入SDK工程编辑
3.1 使用 MCUXpresso Config Tools
安装好 MCUXpresso Config Tools 软件,首次打开会让你选择开发方式,一共有四种,最推荐的就是默认的第一种,即以官方 SDK 包为基础,从 SDK 包里导出一个例程来进行二次编辑。
SDK 包里每个例程文件夹中都有一个同名的 .mex 文件(比如下图标出的 iled_blinky.mex),这个文件就是 MCUXpresso Config Tools 的配置文件,有了它,MCUXpresso Config Tools 就能获取选中 SDK 例程的全部信息。
在 MCUXpresso Config Tools 中 SDK Path 里先指定解压后的 SDK 包路径,然后选择你心仪的 Toolchain (IAR/MDK/GCC均可,但从 SDK 包导入方式下不推荐 MCUXpresso IDE,下一节会专门介绍 MCUXpresso IDE 下使用 Config Tools 的方法),接着找一个跟实际项目最相近的 SDK Example(这里用 iled_blinky 示例),最后设好 workspace 路径即可(这里仿照 MCUXpresso IDE 风格,在同目录下创建了MCUX_CFG_V10 文件夹专门存放工程)。
上一步完成后 MCUXpresso Config Tools 便会根据 SDK 包里 iled_blinky.mex 配置文件从 SDK 里导出完整的工程包到 \MCUX_CFG_V10\iled_blinky_cm7 文件夹下,这个文件夹下包含了全部的 iled_blinky 工程源文件,此时我们就进入了 MCUXpresso Config Tools 的工程编辑模式。
3.2 使用 MCUXpresso IDE
如果是在 MCUXpresso IDE 下开发项目,是可以不用单独安装 MCUXpresso Config Tools 工具的,IDE 里直接集成了 Config Tools。按 《MCUXpresso IDE下SDK工程导入与workspace管理机制》 一文先导出例程并打开,然后直接在菜单栏 ConfigTools 或者右上角快捷图标里进入即可,此时 IDE 界面会立刻切换到 Config Tools 编辑界面。
四、体验三大件(Pins, Clocks, Peripherals)
4.1 引脚初始化配置工具 - Pins Tool
先来看引脚初始化工具 - Pins,在这个小工具里直接勾选设置(按 I/O 名或者按功能进行分配),很快就能完成项目里全部的引脚分配,完全不用去查看芯片参考手册,而且主界面里还提供了封装引脚视图,能非常直观地看到了当前全部引脚使用情况。配置完成点击菜单栏里的 Update Code 按钮,\MCUX_CFG_V10\iled_blinky_cm7\board\pin_mux.c/.h 文件就直接被更新了。
4.2 时钟初始化配置工具 - Clocks Tool
再来看时钟初始化工具 - Clocks,在这个小工具里也是一通勾选设置,很快就能完成项目里全部的外设时钟分配,这个工具最大的好处是能非常直观地让你看到完整时钟链路,比你对手册去查找设置要高效 n 倍,而且最终外设时钟频率值都是实时显示的,分频系数调整起来也非常方便。配置完成点击菜单栏里的 Update Code 按钮,\MCUX_CFG_V10\iled_blinky_cm7\board\clock_config.c/.h 文件就直接被更新了。
4.3 外设初始化配置工具 - Peripherals Tool
最后来看外设初始化工具 - Peripherals,在这个小工具里可以通过勾选的方式完成全部的外设功能设置(即 SDK 包里外设驱动库中 xxPeripheral_config_t 型初始化结构体的赋值),部分外设还会提供更进阶的面向应用的配置,需要大家慢慢去发掘。配置完成点击菜单栏里的 Update Code 按钮,\MCUX_CFG_V10\iled_blinky_cm7\board\peripherals.c/.h 文件就直接被更新了。
至此,MCUXpresso Config Tools初体验(Pins, Clocks, Peripherals)痞子衡便介绍完毕了,掌声在哪里~~~
欢迎订阅
文章会同时发布到我的 博客园主页、CSDN主页、知乎主页、微信公众号 平台上。
微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

痞子衡嵌入式:MCUXpresso Config Tools初体验(Pins, Clocks, Peripherals)的更多相关文章
- 痞子衡嵌入式:把玩i.MXRT1062 TencentOS Tiny EVB_AIoT开发板(1) - 开发环境搭建与点灯
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1062 TencentOS Tiny EVB_AIoT开发板环境搭建与点灯. 腾讯 TencentOS 团队于2021年1 ...
- 痞子衡嵌入式:飞思卡尔i.MX RT系列MCU启动那些事(4)- Flashloader初体验(blhost)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的Flashloader. 在上一篇文章 Serial Downloader模式(sdphost, mf ...
- 痞子衡嵌入式:恩智浦机器视觉模块OpenMV-RT那些事(1)- 初体验
大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是机器视觉模块OpenMV-RT初体验. 近些年机器视觉应用一直是个很火的方向,想象一下机器如果能长上"眼睛",是不 ...
- 痞子衡嵌入式:走进二维码(QR Code)的世界(2)- 初体验(PyQt5.11+MyQR2.3+ZXing+OpenCV4.2.0)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是走进二维码(QR Code)的世界专题之初体验. 接上篇 <走进二维码(QR Code)的世界(1)- 引言> 继续更文,在 ...
- 痞子衡嵌入式:MCUXpresso IDE下设置代码编译优化等级的几种方法
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是MCUXpresso IDE下设置代码编译优化等级的几种方法. 最近公司芯片设计团队正在开发一款全新的基于 Cortex-M33 内核的 ...
- 痞子衡嵌入式:MCUXpresso IDE下在线调试时使用不同复位策略的现象总结
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是MCUXpresso IDE下在线调试时使用不同复位策略的现象总结. 本篇实际上是<IAR在线调试时设不同复位类型可能会导致i.M ...
- 痞子衡嵌入式:MCUXpresso IDE下SDK工程在Build配置上与IAR,MDK差异
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MCUXpresso IDE下SDK工程在Build配置上与IAR,MDK差异. 恩智浦 SW 团队每个季度都会公布 SDK.Tool ...
- 痞子衡嵌入式:MCUXpresso IDE下将源码制作成Lib库方法及其与IAR,MDK差异
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是MCUXpresso IDE下将源码制作成Lib库方法及其与IAR,MDK差异. 程序函数库是一个包含已经编译好代码和数据的函数集合,这 ...
- 痞子衡嵌入式:第一本Git命令教程(1)- 准备(init/config/.gitignore)
今天是Git系列课程第一课,痞子衡给大家要讲的是创建仓库的准备工作. 1.建仓库git init 第一步是创建一个空仓库,这是一切操作的前提. // 打开git bash命令行,切换到指定目录下 ja ...
随机推荐
- SSH远程端口转发实战详解
问题 前段时间在外地没有在实验室,随身携带了一个笔记本电脑.但是笔记本性能不够,想用SSH远程连接实验室的电脑.问如何连接?现有以下设备 设备 IP 备注 系统 实验室电脑C1 192.168.0.2 ...
- 大数据学习(20)—— Zookeeper介绍
ZooKeeper是什么 就像相声大师冯巩每次出场都说:"亲爱的观众朋友们,我想死你们啦"一样,我再强调一次,学习大数据官网很重要.Zookeeper官网看这里ZooKeeper ...
- 【PTA|Python】浙大版《Python 程序设计》题目集:第二章
前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 自我介绍 ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计 ...
- NTP\rsync+inotify
NTP网络时间协议 NTP(Network Time Protocol)网络时间协议基于UDP,用于网络时间同步的协议,使网络中的计算机时钟同步到UTC(世界统一时间),再配合各个时区的偏移调整就能实 ...
- 字节跳动Android面试凉凉,挥泪整理面筋,你不看看吗?
想在金九银十找工作的现在可以开始准备了,这边给大家分享一下面试会遇到的问题. 找工作还是需要大家不要担心,由于我们干这一行的接触人本来就不多,难免看到面试官会紧张,主要是因为怕面试官问的答不上来,答不 ...
- 2021大厂Android面试高频100题最新汇总(附答案详解)
前言 现在越来越多的人应聘工作时都得先刷个几十百来道题,不刷题感觉都过不了面试. 无论是前后端.移动开发,好像都得刷题,这么多人通过刷题过了面试,说明刷题对于找工作还是有帮助的. 不过这其中有一个问题 ...
- Bootstrap Blazor 更新版本 5.6.0
Bootstrap Blazor 是一款基于 Bootstrap 的 企业级 Blazor UI 组件库,目前内置近 90 个组件,欢迎大家尝试使用.本次更新全面升级支持 Bootstrap V5.6 ...
- A Telnet Client Using Expect
The following expect script achieves a simple telnet client: login -> send command -> exit. Th ...
- PrismWPF网盘
技术点 文件分片上传与下载 Vue 正在努力中.... 客户端 采用 WPF:Net5+Prism8+RestSharp 客户端基本结构如下 模块说明 Model: 主要放置Prism模块 ZFile ...
- 基于SpringBoot的药店管理系统java药房管理系统(源码+数据库文件+文档)
注意:该项目只展示部分功能,如需了解,评论区咨询即可. 1.开发环境 开发语言:Java 后台框架:SpringBoot 前端技术:HTML+CSS+JavaScript+Bootstrap+jQue ...