uVisor的资料太少了,我想问一下,这块安全机制的具体细节。
当我们设置一个secure BOX的时候,相当于新建了一个线程,并分配了一些专属的内存空间以及外设资源。
如:
typedef struct {
uint32_t number;
int RECV_BUFFER_SIZE ;
const char *DRBG_PERS = "mbed TLS helloword client";
} my_box_context;
mbedtls_ssl_context _ssl;
UVISOR_BOX_NAMESPACE("client_a");
UVISOR_BOX_HEAPSIZE(20*1024);
UVISOR_BOX_MAIN(my_box_main, osPriorityNormal, 4*1024);
UVISOR_BOX_CONFIG(my_box, acl, 1024, my_box_context);
define uvisor_ctx ((my_box_context *) __uvisor_ctx)
其中像uvisor_ctx
这些存储在secure BOX专属内存空间的数据是安全的,
但是在secure BOX中会调用一些函数,其中函数中有一些局部变量,是在使用时才会静态分配内存空间的,他们的内存空间来自于哪儿呢,是否来自于UVISOR_BOX_MAIN中给线程分配的内存,还是UVISOR_BOX_HEAPSIZE()中分配的内存空间?这些局部变量是存储在 专属的内存空间么?