大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是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初体验(Pins, Clocks, Peripherals)-LMLPHP

  更具体来说 MCUXpresso Config Tools 就是为了辅助生成下图蓝框中标出的代码源文件 pin_mux.c/h、clock_config.c/h、dcd.c/h 等,这些文件里的代码都是芯片底层基础初始化相关代码,这些源文件存在于 SDK 包里任何一个例程中,当然也能直接用于实际项目工程中。

痞子衡嵌入式:MCUXpresso Config Tools初体验(Pins, Clocks, Peripherals)-LMLPHP

三、导入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初体验(Pins, Clocks, Peripherals)-LMLPHP

  在 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初体验(Pins, Clocks, Peripherals)-LMLPHP

  上一步完成后 MCUXpresso Config Tools 便会根据 SDK 包里 iled_blinky.mex 配置文件从 SDK 里导出完整的工程包到 \MCUX_CFG_V10\iled_blinky_cm7 文件夹下,这个文件夹下包含了全部的 iled_blinky 工程源文件,此时我们就进入了 MCUXpresso Config Tools 的工程编辑模式。

痞子衡嵌入式:MCUXpresso Config Tools初体验(Pins, Clocks, Peripherals)-LMLPHP

3.2 使用 MCUXpresso IDE

  如果是在 MCUXpresso IDE 下开发项目,是可以不用单独安装 MCUXpresso Config Tools 工具的,IDE 里直接集成了 Config Tools。按 《MCUXpresso IDE下SDK工程导入与workspace管理机制》 一文先导出例程并打开,然后直接在菜单栏 ConfigTools 或者右上角快捷图标里进入即可,此时 IDE 界面会立刻切换到 Config Tools 编辑界面。

痞子衡嵌入式:MCUXpresso Config Tools初体验(Pins, Clocks, Peripherals)-LMLPHP

四、体验三大件(Pins, Clocks, Peripherals)

4.1 引脚初始化配置工具 - Pins Tool

  先来看引脚初始化工具 - Pins,在这个小工具里直接勾选设置(按 I/O 名或者按功能进行分配),很快就能完成项目里全部的引脚分配,完全不用去查看芯片参考手册,而且主界面里还提供了封装引脚视图,能非常直观地看到了当前全部引脚使用情况。配置完成点击菜单栏里的 Update Code 按钮,\MCUX_CFG_V10\iled_blinky_cm7\board\pin_mux.c/.h 文件就直接被更新了。

痞子衡嵌入式:MCUXpresso Config Tools初体验(Pins, Clocks, Peripherals)-LMLPHP

4.2 时钟初始化配置工具 - Clocks Tool

  再来看时钟初始化工具 - Clocks,在这个小工具里也是一通勾选设置,很快就能完成项目里全部的外设时钟分配,这个工具最大的好处是能非常直观地让你看到完整时钟链路,比你对手册去查找设置要高效 n 倍,而且最终外设时钟频率值都是实时显示的,分频系数调整起来也非常方便。配置完成点击菜单栏里的 Update Code 按钮,\MCUX_CFG_V10\iled_blinky_cm7\board\clock_config.c/.h 文件就直接被更新了。

痞子衡嵌入式:MCUXpresso Config Tools初体验(Pins, Clocks, Peripherals)-LMLPHP

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)-LMLPHP

  至此,MCUXpresso Config Tools初体验(Pins, Clocks, Peripherals)痞子衡便介绍完毕了,掌声在哪里~~~

欢迎订阅

文章会同时发布到我的 博客园主页CSDN主页知乎主页微信公众号 平台上。

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

痞子衡嵌入式:MCUXpresso Config Tools初体验(Pins, Clocks, Peripherals)-LMLPHP

09-04 09:42