使用命令行工具来构建应用程序是一项巨大的工程。 但是如果我可以使用标准的Eclipse环境以及GNU工具,生产力就会提高。 本教程主要介绍关于如何使用标准并且免费的GNU和Eclipse工具在i.MX7上为ARM Cortex-M4构建我的FreeRTOS应用程序。
概述 在我之前的文章中(参见“教程:在NXP i.MX7Dual Cortex-M4F上运行FreeRTOS”),我使用cmake、cygwin和ARM Launchpad GNU工具链构建了一个演示应用程序。这很好,但为了真正有效,首选一个像Eclipse这样的IDE。恩智浦和Toradex为IAR Embedded Workbench和ARM DS-5提供了一些示例。 IAR IDE和工具链是专有的(不是Eclipse)并且非常昂贵(有一个免费的32k字节版本)。另一方面,ARM DS-5是基于Eclipse的,但也是非常昂贵。恩智浦提供了无限制且免费的基于Eclipse的 Kinetis Design Studio(KDS),但由于未知原因,恩智浦并没有为i.MX器件提供任何示例项目:-(因此您需要花费很多的钱,或者只使用命令行工具。 在本教程中我使用的是KDS V3.2.0,它使用GNU ARM Eclipse插件和GCC ARM Embedded(启动)工具。比较棒的是,因为KDS使用标准组件,我可以自己使用工具链和插件构建这样的IDE(请参阅“进入Mars:为ARM嵌入式微控制器构建DIY Eclipse IDE”)。 我将在后续步骤中展示“hello world”项目所需的项目设置。这个项目可以在我的GitHub网站上找到:https://github.com/ErichStyger/freertos-toradex/tree/colibri-imx7-m4-freertos-v8/ 准备工作 ■ 用于ARM开发的基于Eclipse的IDE(例如Kinetis Design Studio V3.2.0) ■ GCC ARM嵌入式工具链(launchpad)工具链(包含在KDS中) ■ GNU ARM Eclipse插件(包含在KDS中) ■ 用于i.MX的带FreeRTOS的BSP(可以从Toradex或从我的GitHub获得)
创建项目 使用向导创建一个新的C / C ++项目,使用标准设置:
文件 将FreeRTOS和应用程序文件添加到项目中。 下面显示了'hello world'演示应用程序的文件,其中我使用了Eclipse虚拟组和链接文件。 但是,当然你也可以复制这些文件。
项目设置 在项目设置中,将目标处理器配置为带有硬件浮点单元的ARM Cortex-M4:
在优化选项设置中,打开以下项:
■ -ffunction-section
■ -fdata-sections
■ -ffreestanding
■ -fno-builtin
编译器 在编译器预处理器设置中,添加了以下两个定义: 对于“发布版本”的构建,可以使用__NDEBUG而不是__DEBUG。
为了让编译器找到头文件,请指定所需的所有路径。 如何指定它们取决于如何组织源文件。 对于'hello world'演示程序,我使用的是项目目录({$ ProjDirPath})的相对路径。 您可以复制并覆盖以下路径: - ${ProjDirPath}/../../../../../examples/imx7_colibri_m4/demo_apps/hello_world
- ${ProjDirPath}/../../../../../examples/imx7_colibri_m4
- ${ProjDirPath}/../../../../../platform/CMSIS/Include
- ${ProjDirPath}/../../../../../platform/devices
- ${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup
- ${ProjDirPath}/../../../../../platform/devices/MCIMX7D/include
- ${ProjDirPath}/../../../../../platform/drivers/inc
- ${ProjDirPath}/../../../../../platform/utilities/inc
- ${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include
- ${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F
复制代码
链接器 在链接器设置中,指定要与-T选项一起使用的链接器文件(我用的是下面的使用紧耦合存储器(TCM)的连接器文件):
链接器文件的路径使用-L选项指定: - "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc"
复制代码
使用带有nosys选项(-specs = nosys.specs)的newlib-nano library:
二进制文件 使用u-boot我们加载bin(二进制)文件。 要创建它,请在工具链选项卡下启用“创建Flash映像”。 按下“应用”按钮。
返回Tool Settings,指定创建的原始二进制文件:
构建 构建该应用程序,你应该会得到二进制文件,可以用u-boot进行加载(参见教程:在NXP i.MX7Dual Cortex-M4F上运行FreeRTOS)。
总结
使用商业IDE会花费大量的金钱,相反我们可以使用免费的开源工具在恩智浦i.MX上建立ARM Cortex-M4的FreeRTOS应用程序。 它需要的只是一个基本的项目设置,使用本文中提到的GNU ARM Eclipse插件可以很容易地来完成。
参考链接: ■ Tutorial: First Steps with NXP i.MX7 and Toradex Colibri Board ■ Tutorial: Running FreeRTOS on NXP i.MX7Dual Cortex-M4F ■ Tutorial: Updating Embedded Linux on Toradex i.MX7 Colibri Module using SD Card ■ 所有文件的GitHub存储库:https://github.com/ErichStyger/freertos-toradex ■ Toradex NXP i.MX7D 模块: https://www.toradex.com/computer ... /nxp-freescale-imx7 ■ Going to Mars: Building a DIY Eclipse IDE for ARM Embedded Microcontrollers ■ GNU ARM Eclipse插件: http://gnuarmeclipse.github.io ■ GNU/GCC ARM Embedded: https://launchpad.net/gcc-arm-embedded ■ Eclipse: http://www.eclipse.org/
|