mbed uvisor 上的全局变量

global variables on mbed uvisor

我在带有 ARM Mbed OS 的 K64F 板上有一个应用 运行ning。我利用了 RTOS 功能,并 运行nign 一些不同的线程来执行各种操作。线程之间的通信是使用在代码的第一部分定义为全局变量的队列完成的(如 RTOS 示例中所定义)。

MemoryPool<cMsg, 16> NMPool;
Queue<cMsg, 16> NMQueue;

这样每个线程都可以访问队列。

我想将这些线程转换为 uvisor 隔离框。我以这种方式成功地 运行 独立线程,但我没有找到在不同盒子之间共享公共变量的方法。我没有找到关于如何使变量对使用 uvisor 编译为单个项目的 box 文件中定义的代码可用的参考。任何想法,例子或帮助?

你不能在盒子之间共享内存,uVisor 盒子 运行 在独立的内存空间(这是使用 uVisor 的全部意义)。

框之间通信的唯一方法是通过 RPC 通道。请参阅 'Expose public secure entry points to the secure box' 部分下的 this article

认为您只能通过 RPC 通道传递原语和结构(因为它们的大小是固定的),但这值得一试。