Flexible Safety RTOS是基于μC/OS-II+MPU的安全RTOS,基于MPU机制实现进程运行空间隔离,使μC/OS-II运行在独立的进程内存空间,不受任务内存区域的影响,保护应用程序的内存不受其它组件的影响。
本文中,我们了解一下Flexible Safety RTOS的进程间通信(IPC)实现。
Flexible Safety RTOS结构
Flexible Safety RTOS确保任务内存不会被其它任务扰乱或损坏。这种保护称为“空间保护”。图1的应用示例中,展示了包含3个进程的空间保护实现。
图1 基于Flexible Safety RTOS的应用示例
其中,μC/OS-II的内部变量和系统任务位于系统进程#0中,应用进程#1包含两个线程,应用进程#2包含3个线程,进程#3包含2个线程,进程#2和进程#3共享一段内存区域。
IPC通信实现
IPC(Inter Process Communication)服务将数据从一个线程传输到另一个线程,或者同步线程之间的执行。μC/OS-II内核提供了多种通信机制,在基于进程的多任务设计中,常用的通信服务: