请选择 进入手机版 | 继续访问电脑版
查看: 261|回复: 1

嵌入式软件底层开发效率直线提升之道 - MCUXpresso Config Tools

[复制链接]
  • TA的每日心情
    开心
    2021-9-17 11:00
  • 签到天数: 107 天

    [LV.6]常住居民II

    2093

    主题

    3986

    帖子

    0

    金豆

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    19553
    最后登录
    2021-10-15
    发表于 2021-9-6 13:01:27 | 显示全部楼层 |阅读模式
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是MCUXpresso Config Tools三大件(Pins, Clocks, Peripherals)。


    不知道大家有没有这样的感受,现在的 MCU 芯片复杂度越来越高了,引脚上百个,时钟系统让人眼花缭乱,外设寄存器更是一大堆,芯片参考手册长达几千页,对于软件开发工程师来说,底层开发难度真的越来越大(说到这,有没有怀念 AT89C51 启蒙单片机的单纯)。


    当然大型 MCU 厂商一般都会同步推出 SDK 包来缓解软件开发工程师的焦虑,但是这也不能覆盖全部的项目需求,软件工程师还是避免不了要基于 SDK 里跟项目需求最相近的例程做二次开发,因此查引脚、配时钟、看外设这些必备底层技能该会的一个都不能少。


    有没有什么工具能进一步提升软件开发工程师的底层开发效率呢?当然有!MCUXpresso Config Tools 就是恩智浦软件团队倾注很大心血研发的辅助底层开发小工具集合。今天痞子衡带大家初步体验下 MCUXpresso Config Tools 中最核心的三大组件:引脚初始化配置工具、时钟初始化配置工具、外设初始化配置工具。


    一、准备开发环境
    首先需要准备好环境,包含必要的软件,痞子衡的环境如下:


    软件版本:MCUXpresso Config Tools v10,点此下载
    软件开发包:SDK_2.10.0_EVK-MIMXRT1170,点此下载
    二、软件基本机制
    MCUXpresso Config Tools 目前主要由如下七大组件组成,除了 SDK Builder 和 Project Updater 是通用服务型组件外,其余五个用蓝圈框起来的就是面向底层开发的功能型组件:
    1. Clocks      - 辅助时钟初始化配置
    2. Peripherals - 辅助外设初始化配置
    3. Pins        - 辅助引脚初始化配置
    4. DCD         - 辅助生成由 BootROM 处理的 DCD 启动头
    5. TEE         - 辅助安全特性配置
    复制代码
    13.png
    更具体来说 MCUXpresso Config Tools 就是为了辅助生成下图蓝框中标出的代码源文件 pin_mux.c/h、clock_config.c/h、dcd.c/h 等,这些文件里的代码都是芯片底层基础初始化相关代码,这些源文件存在于 SDK 包里任何一个例程中,当然也能直接用于实际项目工程中。
    14.png
    三、导入SDK工程编辑
    3.1 使用 MCUXpresso Config Tools
    安装好 MCUXpresso Config Tools 软件,首次打开会让你选择开发方式,一共有四种,最推荐的就是默认的第一种,即以官方 SDK 包为基础,从 SDK 包里导出一个例程来进行二次编辑。


    SDK 包里每个例程文件夹中都有一个同名的 .mex 文件(比如下图标出的 iled_blinky.mex),这个文件就是 MCUXpresso Config Tools 的配置文件,有了它,MCUXpresso Config Tools 就能获取选中 SDK 例程的全部信息。
    15.png
    在 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 文件夹专门存放工程)。
    16.png
    上一步完成后 MCUXpresso Config Tools 便会根据 SDK 包里 iled_blinky.mex 配置文件从 SDK 里导出完整的工程包到 \MCUX_CFG_V10\iled_blinky_cm7 文件夹下,这个文件夹下包含了全部的 iled_blinky 工程源文件,此时我们就进入了 MCUXpresso Config Tools 的工程编辑模式。
    17.png
    3.2 使用 MCUXpresso IDE
    如果是在 MCUXpresso IDE 下开发项目,是可以不用单独安装 MCUXpresso Config Tools 工具的,IDE 里直接集成了 Config Tools。按 《MCUXpresso IDE下SDK工程导入与workspace管理机制》 一文先导出例程并打开,然后直接在菜单栏 ConfigTools 或者右上角快捷图标里进入即可,此时 IDE 界面会立刻切换到 Config Tools 编辑界面。
    18.png
    四、体验三大件(Pins, Clocks, Peripherals)
    4.1 引脚初始化配置工具 - Pins Tool
    先来看引脚初始化工具 - Pins,在这个小工具里直接勾选设置(按 I/O 名或者按功能进行分配),很快就能完成项目里全部的引脚分配,完全不用去查看芯片参考手册,而且主界面里还提供了封装引脚视图,能非常直观地看到了当前全部引脚使用情况。配置完成点击菜单栏里的 Update Code 按钮,\MCUX_CFG_V10\iled_blinky_cm7\board\pin_mux.c/.h 文件就直接被更新了。
    19.png
    4.2 时钟初始化配置工具 - Clocks Tool
    再来看时钟初始化工具 - Clocks,在这个小工具里也是一通勾选设置,很快就能完成项目里全部的外设时钟分配,这个工具最大的好处是能非常直观地让你看到完整时钟链路,比你对手册去查找设置要高效 n 倍,而且最终外设时钟频率值都是实时显示的,分频系数调整起来也非常方便。配置完成点击菜单栏里的 Update Code 按钮,\MCUX_CFG_V10\iled_blinky_cm7\board\clock_config.c/.h 文件就直接被更新了。
    20.png
    4.3 外设初始化配置工具 - Peripherals Tool
    最后来看外设初始化工具 - Peripherals,在这个小工具里可以通过勾选的方式完成全部的外设功能设置(即 SDK 包里外设驱动库中 xxPeripheral_config_t 型初始化结构体的赋值),部分外设还会提供更进阶的面向应用的配置,需要大家慢慢去发掘。配置完成点击菜单栏里的 Update Code 按钮,\MCUX_CFG_V10\iled_blinky_cm7\board\peripherals.c/.h 文件就直接被更新了。
    21.png
    至此,MCUXpresso Config Tools初体验(Pins, Clocks, Peripherals)痞子衡便介绍完毕了,掌声在哪里~~~







    跟着日天混,天天饱九顿
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    昨天 14:50
  • 签到天数: 662 天

    [LV.9]以坛为家II

    191

    主题

    6511

    帖子

    64

    金豆

    超级版主

    Rank: 8Rank: 8

    积分
    34374
    最后登录
    2021-10-16
    发表于 2021-9-6 20:45:05 | 显示全部楼层
    效率还是有,不过有感觉加载和编译速度慢了一些 TS1 - 副本 (2).jpg TS1 - 副本 (4).jpg TS1 - 副本 (3).jpg TS1 - 副本 (5).jpg TS1 - 副本 (9).jpg TS1 - 副本 (8).jpg TS1 - 副本 (7).jpg TS1 - 副本 (6).jpg TS1 - 副本 (10).jpg TS1.jpg
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2021-10-17 02:38 , Processed in 0.070029 second(s), 15 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表