使用 Intel® Edison 板的 MCU SDK 创建应用程序。
本指南包含使用 MCU SDK 为 Intel® Edison 板上的通用微控制器单元 (MCU) 创建、构建和调试应用程序的步骤。
获取全新的 Intel® IoT Developer Kit,这是一个完整的硬件和软件解决方案,让开发者能够使用 Intel® Galileo 和 Intel® Edison 板创建激动人心的新解决方案。请访问 Intel® 物联网开发者中心。
本指南包含使用 MCU SDK 为 Intel® Edison 板上的通用微控制器单元 (MCU) 创建、构建和调试应用程序的步骤。MCU SDK 是一个基于 Eclipse* 的软件开发套件,支持 Windows*、Mac* OS X* 和 Linux*,用于创建 MCU 应用程序。它与 Intel® Atom™ 处理器 Eclipse SDK 是分开的。MCU 的组件包括
- 用于设置环境变量、下载程序二进制文件、监视 MCU 设备跟踪等的脚本和工具
- MCU API 的文档。MCU API 与用于编程 Intel Atom 处理器的 API 是分开的
- 用于运行 Eclipse 和应用 MCU SDK 更新的启动器
- Cygwin,用于在 Windows 上运行 Linux 脚本
MCU 由主机 CPU 和 MCU 本身组成。MCU 为开发者提供了简单且实时的外设控制功能,支持 GPIO、UART 和 I2C 接口。对于 Intel Edison 设备,主机 CPU 是运行 Linux 的 Intel Atom 处理器,而 MCU 是一个运行 Viper*(一个 Wind River 实时操作系统 (RTOS))的 Minute Intel® 架构 CPU,Viper* 提供基本的操作系统功能支持,包括线程调度、内存管理、中断分发等。
MCU 应用程序作为应用程序运行在 Viper 内核之上,并独立控制连接到 MCU 的外设。例如,它可以管理 GPIO 端口、控制和收集传感器数据,并与主机 Intel Atom 处理器通信。MCU 还可以通过使板上的 Intel Atom 处理器保持睡眠状态,并在需要时唤醒处理器来节省电力。
MCU 驱动程序提供 IPC 协议支持,并允许您将 MCU 应用程序下载到您的设备。
MCU 子系统
MCU 子系统包含一个低功耗的 Minute Intel 架构 (IA) 486 CPU 系统,具有 Intel® Pentium® 架构兼容性、I/O(IPC、I2C、GPIO、HSU、DMA)和 SRAM。MCU 子系统的功能包括
- Minute Intel 架构基于 486,并增加了 Pentium IA ISA 兼容性。
- 在完全活动的 D0 设备电源状态下,CPU 频率为 100 MHz;在 S0ix“活动空闲”睡眠状态下,CPU 频率降至 38.4 MHz。
- SRAM:192 KB SRAM,用于代码和数据。
- IPC:MCU 提供了一个 IPC 机制,允许子系统控制以及 MCU 和 Intel 架构核心之间的基于线程的通信。
- I2C:系统控制器单元 (SCU) 集群中的 I2C8 和 I2C9 被分配给 MCU 使用。
- UART:MCU 可以访问 UART1 和 UART2,它们也可以用作 Linux* 内核控制台。
- GPIO:MCU 可以访问所有 GPIO 端口。
- MCU 与主机 Intel 架构共享所有 GPIO。
- PWM:MCU 与主机 Intel 架构共享所有 PWM。
- MCU 提供了一个微秒级 (1 µs) 高精度延迟 API。有关详细信息,请参阅 辅助 API 部分。
- MCU 提供了一个具有不同日志级别的跟踪功能,用于调试目的。
- MCU SDK 是一个基于 Eclipse 的 SDK,供用户在 Windows、Mac OS X 和 Linux 等多种操作系统上创建、构建、下载和调试 MCU 应用程序。
如果您正在设计整个系统,请确保主机系统和 MCU 在访问硬件资源时不会发生冲突。
MCU SDK 的组件如下图所示
其中
- JRE 是 Java 运行时环境
- Cygwin 用于在 Windows 上运行 Linux 脚本
- 工具链 是用于 Intel® Edison Linux* 操作系统的 gcc 交叉编译工具链
- 启动器 是 MCU SDK 启动器用户界面
- 脚本和工具 用于设置环境变量、下载二进制文件、获取设备跟踪等
MCU 应用程序
Intel Edison 板的 MCU 应用程序是运行在 Viper*(Wind River 提供的实时操作系统)上的用户应用程序。MCU 应用程序的二进制文件存储在 Linux* RootFS 中,并在 Linux* 内核启动时由 MCU 驱动程序下载。MCU 应用程序可以独立控制 GPIO 和 UART,收集和预处理传感器数据,并与主机 CPU(Intel Edison 板上的 Intel Atom 处理器)通信,在 MCU 运行时,主机 CPU 可以进入低功耗状态。Intel 提供 MCU SDK 和一套 API 来帮助您开发 MCU 应用程序。
主机端接口
TTY 通道和下面列出的几个 sysfs 节点被定义并公开给用户空间 Linux 应用程序,以便与 MCU 端通信。
TTY 接口
- /dev/ttymcu0:主机和 MCU 之间的消息/数据传输通道。主机应用程序可以通过此接口与 MCU 发送和接收数据,MCU 应用程序可以通过 host_send 和 host_receive API 与主机通信。
- /dev/ttymcu1:此通道被定义为获取 MCU 日志消息的接口。
Sysfs 接口
- /sys/devices/platform/intel_mcu/control:一个仅写控制节点,用于加载 MCU 应用程序。目前此节点仅供内部使用。
- /sys/devices/platform/intel_mcu/fw_version:用于构建 MCU 应用程序的 MCU SDK 版本。
- /sys/devices/platform/intel_mcu/log_level:一个读/写节点,用于设置和获取当前的 MCU 应用程序日志级别。支持的输入字符串包括 fatal、error、warning、info 和 debug。
MCU SDK
MCU SDK 包含一个用于 MCU 应用程序开发的 Eclipse 插件。它包含了用于构建、下载和调试 MCU 应用程序的预构建工具。模板源代码已包含在内,并在创建项目时部署。MCU SDK 的主要功能包括
- 创建 MCU 项目
- 构建 MCU 应用程序
- 将 MCU 应用程序下载到目标设备
- 显示调试消息
已知限制
以下是关于 Intel® Edison 平台 MCU 实现的已知限制
- 目前 CPU 和 MCU 之间的进程间通信的最大消息大小限制为 255 字节。
- 当前的 Viper OS 版本不支持在 MCU 用户应用程序加载后卸载它。用户必须重新启动设备才能卸载下载的二进制文件。
- MCU 应用程序更新需要 Linux 重启。
- 目前 MCU 二进制文件的最大大小限制为 120 KB。
- 由于当前 Viper OS 版本的限制,MCU OS 滴答值为 10 ms。
- 您无法将 SDK 安装在任何路径名包含空格的目录中。(例如,不允许使用 Program Files 或 My Documents。)
- MCU 中没有浮点支持。(您可以使用 MCU 构建浮点代码,但它将生成运行时异常。)
- MCU 限制为 2xI2C。
- MCU 应用程序限制为单线程使用。
- 您无法在未首先启动 Linux 的情况下引导 MCU。
- Intel Atom 处理器和 MCU 之间没有访问协调。两者都可以同时配置相同的 I/O。这可能会导致冲突,必须由用户管理。
- MCU SDK (Eclipse) 与 Intel Atom 处理器的 C/C++ Eclipse SDK 不同且分开。
- MCU I/O API 与 Intel Atom 处理器的 API 不一致。您必须重写代码才能从 Intel Atom 处理器迁移到 MCU。
- MCU 没有看门狗定时器。
- 目前,MCU 不支持 SPI 功能。
- 由于 Eclipse 或 Cygwin 的限制,在某些网络配置下,在 Windows 上启动 MCU SDK 可能需要很长时间。
- 在启动 MCU 之前,必须通过 Linux 接口完成引脚复用(Arduino 扩展板配置)。有关详细信息,请参阅 设置 Intel® Edison 板以测试片上系统 (SoC) GPIO。
- 为了访问 PWM 模块,必须从 Linux 端禁用 PWM 运行时电源管理。有关详细信息,请参阅 控制 PWM 端口。
- MCU 上没有可编程定时器中断。
立即开始创新!Intel® 物联网开发者计划提供知识、工具、套件以及专家社区,助您快速轻松地将您的创新想法转化为物联网解决方案。
使用适用于 Intel® Edison 和 Intel® Galileo 平台的 Intel® IoT Developer Kit,实现您的梦想,构建您的项目。这些套件功能强大、性能优化且完全集成,可提供端到端的物联网解决方案,支持各种编程环境、工具、安全、云连接和硬件。
如需更多资源并了解新的 Intel® 物联网开发者套件 v1.0 如何帮助您简化物联网项目
- 下载 Intel® 物联网开发者套件
- 访问 Intel® 物联网开发者中心
- 参加我们的 Roadshows,获取创建您自己的物联网项目的实践培训