MCU快速入门指南
范围
本章节概述了 RDK-S100 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,实现低功耗休眠功能。

开发环境
交叉编译是指在主机上开发和构建软件,然后把构建的软件部署到开发板上运行。主机一般拥有比开发板更高的性能和更多的内存,可以高效完成代码的构建,可以安装更多的开发工具。