社区的各位好友,你们好!
刚接触optee,对其不是很了解。想问下:在optee_os源码中lib/libutee下实现了许多GP TEE的规范接口。这些API如TEE_WriteObjectData通过调用系统服务函数utee_storage_obj_write转到内核层中的syscall_storage_obj_write来实现的。这中间是怎么跳转的,即utee_storage_obj_write是怎么连接到syscall_storage_obj_write的?以这个API为例帮忙分析下这些API从用户层被调用具体是怎么一步步实现其功能的?
谢谢
Hi Cwb,
通过系统调用(SVC)指令,切换到特权模式,以AArch32为例,请参考下面的链接
optee_os/utee_syscalls_asm.S at master · OP-TEE/optee_os · GitHub
optee_os/utee_syscalls.h at master · OP-TEE/optee_os · GitHub
optee_os/utee_syscalls_a32.S at master · OP-TEE/optee_os · GitHub
thread_svc_handler
optee_os/thread_a32.S at master · OP-TEE/optee_os · GitHub
tee_svc_handler
optee_os/arch_svc.c at 194d0ae8f7a20e06bd722f43ef5892638b2d249a · OP-TEE/optee_os · GitHub
跟踪下代码,希望对你有用
谢谢,我试下
Hello ethanzhang
我是在ubuntu下使用qemu模拟器来编译运行OP-TEE的,这个要跟踪代码,用什么工具呀,麻烦推荐下?