半导体行业内上演了很多的并购案,其中最大的一个是2016年飞思卡尔半导体与恩智浦半导体的合并,两者同时为其客户群提供基于Eclipse的IDE。 于是,公司并购引发了IDE的合并,并且恩智浦上周发布了其全新的开发环境:MCUXpresso IDE。
概述
MCUXpresso基本上是“开挂的LPCXpresso”,支持NXP Kinetis和LPC器件(ARM Cortex-M0(+)/ M4 / M7),它基于LPCXpresso的功能集。 它从LPCXpresso继承了Pro版本选项(IDE电子邮件支持和扩展跟踪功能),并且和Kinetis Design Studio一样,它是免费使用的,并且无代码大小限制。 对于现有的LPCXpresso IDE用户,它增加了无代码大小限制功能(免费的LPCXpresso IDE的代码大小限制为256 KB),除了这些,还包含一些其他功能,如支持MCUXpresso SDK。
在大学,我们通常会一起使用到CodeWarrior for MCU 10.x、Kinetis Design Studio v3.2和LPCXpresso v8.2。 因为新的IDE支持Kinetis和LPC器件,我打算将LPCXpresso和Kinetis Design Studio课程资料迁移到新的MCUXpresso IDE。 在这篇文章中,我简要介绍一些认为非常有用的主要功能。 除此之外,我认为以下信息对于计划从LPCXpresso或Kinetis Design Studio升级到新的NXP Eclipse IDE的任何人都是有用的。
安装
该IDE可以从http://www.nxp.com/mcuxpresso/ide获得。下载软件需要恩智浦的用户帐户,但免费和代码大小无限制版本不需要其他的注册或激活。
和Kinetis Design Studio和LPCXpresso一样,免费版本的支持是基于社区(https://community.nxp.com/community/mcuxpresso/mcuxpressoide)的。 有一个Pro版本可以添加一年IDE电子邮件支持和扩展跟踪支持(现有的LPCXpresso Pro许可证也被MCUXpresso IDE认可)。
我使用的是版本10.0.0(Build 344):
与其他IDE相比,下载大小相当小(Windows上为576 MB),并且可以在Mac和Linux上使用(我到目前为止已成功安装在Windows 7和10上)。它安装所有的调试驱动程序。
快速启动面板
和LPCXpresso一样,MCUXpresso IDE包括一个快速启动面板,从这里可以访问最常用的功能:
学生通常会很难在Eclipse中找到项目设置,或者不知道如何进行构建/调试。 使用该面板将使他们很轻松地找到。
它包含一个“蓝色”调试按钮启动调试会话,这是启动调试器的推荐方法。 “蓝色”调试按钮也存在于工具栏中。
还有Eclipse的默认“绿色”调试图标,但是只有配置了调试连接(启动配置)才可以使用,而“蓝色”调试按钮可以自动检测调试器并自动进行配置(稍后会详细介绍)。
MCUXpresso SDK
IDE提供了对LPC设备的传统LPCOpen支持。其他一切都是通过添加MCUXpresso(以前的Kinetis)SDK来驱动的。
需要从https://mcuxpresso.nxp.com/使用SDK Builder下载某个器件的SDK:
当构建一个新的SDK/配置时,请确保选择了MCUXpresso IDE,使得其可以与IDE一起使用:
SDK Package Manager
在IDE中,有一个SDK Package Manager,位于Window> Show View> MCUXpresso IDE:
导入SDK的最简单方法是将SDK zip文件拖放到该视图中:
SDK包不仅包括驱动程序源文件,还包括示例工程和IDE需要知道的关于器件的其他内容,例如工具链支持和调试器信息。
默认情况下,SDK作为zip文件使用。这样,IDE从zip中提取文件,并将文件复制到工程中。 有一个工作区选项来解压文件以允许项目中的“链接文件”,但我不建议在项目中使用这样的链接文件。
从“Installed SDK”视图中,我可以使用工具栏按钮直接打开Config和Builder页面:
新项目
可以创建项目(“New Project...”)或从SDK示例导入项目:
对于新的项目,可以在SDK Wizard中选择使用的器件或者是开发板。
在接下来的对话框中,我可以选择在工程里面我想使用什么:
在接下来的Advanced Projects设置中,选择库和内存设置选项。除了通常的Newlib和Newlib-nano之外,我可以选择Redlib,这是一种针对嵌入式设备进行了优化的专有库:
导入示例项目非常相似,不同的是我可以选择导入哪个示例:
构建系统
MCUXpresso IDE使用的是GNU Tools for ARM Embedded Processors第5版(2016年第3季度版本)。 IDE使用与LPCXpresso相同的项目文件格式/构建设置,因此可以轻松导入旧版LPC项目。 现有的Kinetis Design Studio可以使用一些迁移/移植步骤。
在项目设置中有一个“MCU Setting”面板,告诉IDE与内存映射一起使用的器件:
此信息用于托管链接描述文件:默认情况下,IDE创建并维护GNU链接描述文件,并使用其他设置来管理库、堆和栈设置:
我可能会禁用托管链接描述文件功能:GNU链接器文件真的不是很难读/写/使用,并且隐藏链接器脚本在该生成器后面使得对象分配不是很透明。 但对于没有经验的用户来说,这当然是一个有用的功能。
调试器
IDE支持P&E调试器(Multilink,...)、SEGGER调试器(J-Link、...)和LPC-Link / LPC-Link2(CMSIS-DAP)调试器。 因此,Kinetis Freedom和Tower开发板上的恩智浦嵌入式OpenSDA电路支持P&E、Segger和CMSIS-DAP固件,SEGGER和P&E商业调试器,恩智浦嵌入式LPC-Link和LPC-Link2调试器。使用不同的Tower、Freedom和LPC开发板和调试器, IDE正常工作:
对于Kinetis Design Studio用户来说,新功能是:它支持LPC-Link2调试器,可以加载CMSIS-DAP或Segger固件(LPC)。 KDS的CMSIS-DAP真的从未运行良好,所以现在我可以使用LPC-Link2和CMSIS-DAP来调试机器人上的Kinetis K22:
所以这将是一个非常实惠的调试器选项,因为LPC-Link2的价格是20美元。
要调试项目,重要的是使用蓝色调试图标(而不是正常的绿色!)。
或者快速启动面板中的调试选项:
probe discovery真的很酷:当我开始调试项目时,它可以让我挑选任何一个检测到的调试器:
这样,它会自动在项目根文件夹中创建启动配置文件。
开发者视图
和LPCXpresso一样,MCUXpresso提供了一个开发者视图:
在正常的Eclipse中我需要在C/C++和Debug视图间进行切换,与这个不同,在MCUXpresso中我可以一直留在开发者视图中。
全局变量
普通的Eclipse有一个问题,它并没有显示正常的全局变量。 相反,必须使用表达式视图。 MCUXpresso提供了一个Global Variables View,解决了该问题。我可以浏览并添加全局变量到该特殊视图:
Peripherals+视图
Kinetis Design Studio包含了EmbSysRegView,其工作运行良好,但并未自动使用目标设备的SVD文件。 在MCUXpresso IDE中有“Peripherals +”视图,它基本上扩展了内存视图:
FreeRTOS
我真正喜欢的是在IDE中对FreeRTOS的支持:-)。 所有调试连接(P&E、Segger和CMSIS-DAP)都包括了FreeRTOS线程感知:
此外,IDE还包括NXP FreeRTOS Kernel 视图,用于任务、堆、计时器和队列:
总结
MCUXpresso IDE结合了Kinetis Design Studio和LPCXpresso的功能。对于LPC用户,新增了无代码大小限制,添加了Segger和FreeRTOS支持。对于Kinetis用户,它添加了CMSIS-DAP、跟踪支持、自动调试器发现,但没有包括Processor Expert。对于Kinetis和LPC,它提供了一个统一和现代的IDE和构建系统,通用的SDK和漂亮的项目创建,并增加了很友好的调试功能。