optee的共享記憶體的介紹

2021-10-23 14:20:53 字數 1046 閱讀 9063

1、共享記憶體的介紹

share memory是一塊記憶體區域, 用於non-secure world和secure world的通訊.

optee支援兩種share memory: 連續的buffer,非連續的buffer

optee是按照buffer來管理共享記憶體的,而不是按照pool來管理的. 每乙個buf需要配置如下屬性:

buffer的起始位址和size

該buffer的cache屬性

如果是被map到非連續的buf,則列出它所有的塊(chunk)

配置成連續的share buffer

cfg_core_reserved_shm=y

cfg_shmem_start and cfg_shmem_size 定義起始位址和size

該memory的type是mem_area_nsec_shm

在non-secure world需要呼叫optee_smc_get_shm_config來獲取:

share memory的實體地址和size

share memory的cached屬性

非連續的share memory(動態註冊的)

cfg_core_dyn_shm=y

在使用share memory之前,ree需要呼叫optee_msg_cmd_register_shm註冊share memroy, 在optee中share memroy最小的chunk單位是4k bytes;

共享記憶體是在linux driver中分配的,linux kernel需支援config_generic_allocation 來分配/釋放記憶體物理塊. optee的linux driver依賴於linux核心dma-buf支援(config_dma_shared_buffer)來跟蹤共享記憶體緩衝區引用

2、共享記憶體的使用

teec_allocatesharedmemory(…) 在linux中分配記憶體

teec_registersharedmemory(…) 到optee中註冊該記憶體

(還會繼續更?????????)

共享記憶體的使用

http download1.csdn.net down3 20070529 29183222619.chttp download1.csdn.net down3 20070529 29183246962.chttp download1.csdn.net down3 20070529 2918324...

共享記憶體的使用

共享記憶體mmap使用 date tue apr 8 14 53 43 cst 2014 include extern c using namespace std define sem file sem lock int main int argc,char argv 開啟訊號量 int count...

記憶體的介紹

一 記憶體的作用與原理 從功能上理解,我們可以將記憶體看作是記憶體控制器與cpu之間的橋梁或倉庫。顯然,記憶體的容量決定 倉庫 容量的大小。而記憶體的速度則決定 橋梁 的寬窄,兩者缺一不可,這也就是我們常說的 記憶體容量 與 記憶體速度 當cpu需要記憶體中的資料時,它會發出乙個由記憶體控制器所執行...