痞子衡嵌入式: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主页、知乎主页、微信公众号 平台上。
微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。
最后欢迎关注痞子衡个人微信公众号【痞子衡嵌入式】,一个专注嵌入式技术的公众号,跟着痞子衡一起玩转嵌入式。
衡杰(痞子衡),目前就职于某全球顶级半导体原厂MCU系统部门,担任高级嵌入式系统应用工程师。
专栏内所有文章的转载请注明出处:http://www.cnblogs.com/henjay724/
与痞子衡进一步交流或咨询业务合作请发邮件至 hengjie1989@foxmail.com
可以关注痞子衡的Github主页 https://github.com/JayHeng,有很多好玩的嵌入式项目。
关于专栏文章有任何疑问请直接在博客下面留言,痞子衡会及时回复免费(划重点)答疑。
痞子衡邮箱已被私信挤爆,技术问题不推荐私信,坚持私信请先扫码付款(5元起步)再发。