大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是 MCUXpresso IDE 下 SDK 工程导入与 workspace 管理机制。

 

MCUXpresso IDE 是恩智浦软件团队倾注很大心血研发的免费集成开发环境,基本上一般 MCU 开发 IDE 有的功能它都有,一般 IDE 没有的功能它也有。但是酒香也怕巷子深,网上关于 MCUXpresso IDE 教程太少,很多人连 MCUXpresso IDE 基本操作都不熟练,也就更谈不上去接触它功能强大的一面,工具推广任重道远,痞子衡且去做这个布道师吧。

 

今天痞子衡要介绍的是 MCUXpresso IDE 联合官方 SDK 软件包的 workspace 管理机制,算是 MCUXpresso IDE 入门第一步。

 

一、准备开发环境

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

 

  • 集成开发环境:MCUXpresso IDE v11.2.1_4149,点此下载软件开发包:SDK_2.8.0_EVK-MIMXRT595_PRC(Toolchain 需包含 MCUXpresso IDE),点此下载

 

二、Workspace 机制

第一次打开 MCUXpresso IDE,首先会让你选一个 Workspace 路径,如果不主动选,会有一个默认的路径。Workspace 其实是所有基于 Eclipse 的工具的通用概念,对于嵌入式工程来说,它主要用于集中放置项目的所有资源,包括工程源文件以及 MCUXpresso IDE 本身的配置等。现在你对 Workspace 作用可能还没深刻感受,没关系,咱们继续往下看。

 

 

三、导入 SDK 工程

选好 Workspace 路径便会进入 MCUXpresso IDE 主界面,在左侧 Quickstart Panel 有三种进入工程的方法,第一种是从零开始创建全新工程(这个痞子衡不推荐),后面两种导入工程方式才是比较推荐的,因为基于一个现有工程去改,会让你更快地得到你想要的工程。

 

  • Import SDK example(s):从恩智浦 SDK 包里导入示例工程 Import project(s) from file system:从本地直接导入已有工程。

 

 

那么对于恩智浦 SDK 包来说,两种导入工程方式有什么区别呢?咱们以下载好的 SDK_2.8.0_EVK-MIMXRT595_PRC.zip 包为例。

 

3.1 Import SDK example(s)

先来看第一种 Import SDK example,默认 Installed SDKs 界面框里没有 RT500,我们直接将 SDK_2.8.0_EVK-MIMXRT595_PRC.zip 包(解压亦可)拖到 Installed SDKs 界面框中。

 

 

这时候 Installed SDKs 界面框里可以看到 RT500 的 SDK 包,选中它继续操作来导入 SDK 包里的 example,我们就选 demo_apps 下的 hello_world 例程。

 

 

导入完成后,在 workspace 路径下,你可以看到多了一个名为 evkmimxrt595_hello_world 文件夹,这个文件夹下既有 MCUXpresso IDE 的工程文件(.project/.cproject),也有 SDK 包里 hello world 例程所需的全部源文件。是的,Import SDK example 操作会从 SDK 包里拷贝出全部必要的文件组成一个独立的项目文件夹,从此这个项目文件夹将不再依赖原始的 SDK 包。

 

 

上述操作得以实现,主要依赖 SDK 包里存放的如下 xml 描述文件,这些 xml 会指示 MCUXpresso IDE 在导入过程中创建工程文件,以及重组独立文件夹。

 

\SDK_2.8.0_EVK-MIMXRT595_PRC\EVK-MIMXRT595_manifest_v3_6.xml
\SDK_2.8.0_EVK-MIMXRT595_PRC\boards\evkmimxrt595\demo_apps\hello_world\hello_world.xml

 

3.2 Import project(s) from file system

再来看第二种 Import project(s) from file system,这是从本地直接导入现有工程,那么解压后的 SDK_2.8.0_EVK-MIMXRT595_PRC 包里有没有工程呢?我们试着导入看看瞧:

 

 

我们发现 SDK 包里仅有 dsp 相关的例程,并没有上一种 Import SDK example 方式看到的那么多基础例程,这是为何?其实如果你认真看过 SDK 包里 \boards\evkmimxrt595\demo_apps\hello_world 文件夹下的内容,你会发现存在 IAR/MDK 工程文件,但时并没有 MCUXpresso IDE 的工程文件。因此这种导入方式,并不适用原始 SDK 包,它更适合经过上一种 Import SDK example 方式导入后生成的独立项目文件夹(文件夹里要包含 .project/.cproject 文件)。

 

 

最后再提一下上图中红框标起来的 Copy projects into workspace 选项,对于一个放置在本地的包含 .project/.cproject 文件的独立项目文件夹,导入过程中如果勾选这个选项,那么 workspace 路径下也会被复制一份项目,这样 workspace 路径与 project 路径是一致的。如果不勾选这个选项,则两个路径不一致,这会在工程编译时受影响,因为默认工程 MCU C Compiler/Includes 选项里用得路径就是基于 workspace_loc 路径,关于这个会在后面文章继续讲。

 

 

至此,MCUXpresso IDE 下 SDK 工程导入与 workspace 管理机制痞子衡便介绍完毕了,掌声在哪里~~