TEE OS中使用secure timer

我们知道Arm的架构设计中,timer这一块是有缺陷的:Timer的TVAL功能不能同时给EL3和S-EL1使用,这是硬件的设计。在ATF和TEE OS的代码中,只能有一处使用,并且也需要设计者实现提前约定好。
好在大多数的TEE OS 都不会去使用Timer TVAL功能,这也就避免了冲突。
TEE OS中使用secure timer_第1张图片

在TEE OS中,一般情况下,只是使用counter和frequency值,计算出一个时间。并不会使用该timer的定时(TVAL)功能。 如下便是一个获取时间函数的底层接口。仅仅读conter和频率即可。
TEE OS中使用secure timer_第2张图片

在optee os也提供了timer TVAL功能的使用接口,如果您想使用直接调用该接口即可。如下便是plat-synquacer平台的一个使用的参考示例。
TEE OS中使用secure timer_第3张图片

(core/arch/arm/plat-synquacer/main.c)
TEE OS中使用secure timer_第4张图片

你可能感兴趣的:(TEE从入门到精通,TEE,Trustzone,ATF,TA,timer)