7.5.2 MCU 快速入门指南
范围
本章节概述了 MCU 系统,旨在帮助读者快速了解并掌握相关内容,以便开展 MCU1 的开发工作。因为 MCU0负责启动 Acore、MCU1以及电源管理等功能,这部分不建议客户自行修改,默认不释放源码,提供地瓜验证过的 bin 文件。章节中仅对可能与 MCU1 发生冲突的部分进行简要说明,旨在帮助用户在开发过程中规避 MCU0 与 MCU1 之间的资源竞争问题。
基础信息
- MCU 编译工具链为 GCC 工具链,版本为 gcc-arm-none-eabi-10.3~2021.10
- MCU 核为 ARM R52+,可以用 ARM R52 technical reference manual 文档作为参考:官网链接
- MCU 运行的操作系统均为 FreeRTOS,版本为 FreeRTOS Kernel V10.0.1
- MCU 主要分为两部分:MCU0和 MCU1。MCU0主要负责启动 Acore、MCU1以及电源管理等功能,目前不开源;MCU1主要负责跑业务等功能,开源,客户可根据自己需求进行修改
MCU 框架
MCU0是板子启动的开始,也是重中之重。因为 MCU0负责启动 Acore、MCU1以及电源管理等功能。Acore 所运行的 linux 操作系统是客户开发功能的重要载体,而 MCU1运行的 FreeRTOS 操作系统为客户的实时任务进行保驾护航。 MCU1通过 linux 的 remoteproc 框架实现,在 Acore 的 sysfs 通过向 MCU0发送通知,从而控制 MCU1的启动和关闭。同时在 RDK-S100的休眠模式下,也是通知 Acore 通知 MCU0从而操作 MCU1,实现低功耗休眠功能。
MCU0是板子启动的开始,也是重中之重。因为 MCU0负责启动 Acore、MCU1以及电源管理等功能。Acore 所运行的 linux 操作系统是客户开发功能的重要载体,而 MCU1运行的 FreeRTOS 操作系统为客户的实时任务进行保驾护航。 MCU1通过 linux 的 remoteproc 框架实现,在 Acore 的 sysfs 通过向 MCU0发送通知,从而控制 MCU1的启动和关闭。同时在 RDK-S600的休眠模式下,也是通知 Acore 通知 MCU0从而操作 MCU1,实现低功耗休眠功能。
开发环境
交叉编译是指在主机上开发和构建软件,然后把构建的软件部署到开发板上运行。主机一般拥有比开发板更高的性能和更多的内存,可以高效完成代码的构建,可以安装更多的开发工具。