华为海思 A² MCU 的极简调度器主要支持 C 和 C++ 语言。
C 语言因其接近硬件的特性,可用于直接控制硬件,能高效地处理复杂的计算和数据处理任务,常用于开发海思硬件所依赖的底层系统软件。C++ 语言的面向对象特性则有助于更好地组织和管理代码,适用于较为复杂的项目开发。此外,在对性能要求极高的场景下,还可能会用到汇编语言进行代码优化。
华为海思 A² MCU 的极简调度器主要通过提供多任务开发框架、支持混合部署模式以及集成 C++ 开发环境等方式来支持 C++ 语言,具体如下:
- 提供多任务开发框架:极简调度器能够提供多任务的开发框架,该框架可简化开发过程,提升开发工程师对代码的开发和维护效率。在处理复杂的 C++ 项目时,开发者可以利用该框架更方便地组织和管理多任务代码,使不同任务之间能够有序运行,这对于使用 C++ 实现各种复杂功能的家电等设备开发来说非常重要。
- 支持混合部署模式:通过与 openEuler 的联合创新,极简调度器实现了 UniProton+BareMetal(无 OS 裸跑)混合部署方案。该方案对硬件资源需求极低,最小 4KB RAM 和 4KB Flash 即可运行。一方面,可保持高实时性任务的优先级和实时性,使其能直接在 BareMetal 环境运行;另一方面,针对实时性要求不高的任务,可通过调度器进行多线程的任务管理,方便开发者使用 C++ 语言编写不同实时性要求的任务代码。
- 集成 C++ 开发环境:海思的开发环境集成了 C++ 环境,kernel 也默认编进去了 C++ 的库。开发者可以在 Makefile 中进行相关设置,如添加 “CXX=aarch64 - himix100 - linux - g++”,即可方便地进行 C++ 代码编写和编译,还能实现 C++ 与 C 的混编,便于利用 C++ 的特性进行更复杂的功能开发,同时兼容已有的 C 代码。