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需要記憶體中的資料時,它會發出乙個由記憶體控制器所執行...