全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 接口/总线/驱动 >

安全驱动示例代码和实现

时间:2023-10-30 16:07

人气:

作者:admin

标签: 代码  驱动  内存 

导读:示例代码获取和集成 本示例中的驱动只实现了对内存的读写操作,并提供了测试使用的TA和CA。 读者可使用如下指令从GitHub上获取到示例源代码: git clone https://GitHub.com/shuaifengyun/opente...

示例代码获取和集成

本示例中的驱动只实现了对内存的读写操作,并提供了测试使用的TA和CA。

读者可使用如下指令从GitHub上获取到示例源代码:

git clone https://GitHub.com/shuaifengyun/opentee_driver.git

下载完代码后就需要将该TA和CA集成到OP-TEE中,需修改OP-TEE源代码build目录下的qemu.mk(开发者板级对应的mk文件)和common.mk文件,同时也需要将安全驱动集成到OP-TEE的内核中。

然后编译整体OP-TEE后就能够使用该份示例代码来验证本书提供的安全驱动示例是否运行正常。

获取到示例代码后将opentee_driver/my_test目录全部复制到op-tee的根目录下,再切换到根目录的build目录中,然后使用git apply命令合入补丁文件后就可完成测试使用的TA和CA集成到OP-TEE,合入全部补丁的操作步骤如下:

1)将示例代码中的my_test_common_3.0.0.patch文件和my_test_qemu_3.0.0.patch文件复制到build目录中,将0001-Integrate-secure-driver-test-into-op-tee.patch文件复制到optee_os目录中。

2)切换到build目录,使用如下命令合入补丁:

git apply my_test_common_3.0.0.patch
        git apply my_test_qemu_3.0.0.patch

3)切换到optee_os目录,使用如下命令合入安全驱动在内核中的补丁:

git am 0001-Integrate-secure-driver-test-into-op-tee.patch

将补丁合入完成后就可使用make -f qemu.mk all编译整个工程,然后使用make -f qemu.mk run-only来启动OP-TEE,在启动的正常世界状态的终端执行secStorTest命令就能实现该示例的CA对TA的调用。示例代码的运行效果如图22-3所示。

图片

3.2 驱动实现

开发一个安全驱动时,需要在optee_os/core/drivers目录中建立该安全驱动的源文件,在源文件中实现驱动的初始化函数、操作设备的接口函数(read、write、ioctl),具体的接口函数由开发者自行定义。

若该驱动需要在系统启动过程中执行一些初始化操作则可使用driver_init宏进行定义, 编译完成后需要被执行的内容将会被保存到镜像文件的initcall段中, 这些使用driver_init宏定义的内容将在OP-TEE启动时被调用。 (相当于提前为驱动的调用准备了环境与初始条件)

示例源代码中的driver_test.c文件需要放在optee_os/core/drivers目录中,然后修改optee_os/core/drivers目录下的sub.mk文件,将driver_test.c文件添加编译系统中。在sub. mk文件中添加如下内容:

srcs-y += driver_test.c

若需要使用宏的方式来控制该驱动的编译,可将添加到sub.mk的内容修改成“srcs-$(CFG_XXX) += driver_test.c”,然后在optee_os/mk/config.mk文件中定义CFG_XXX变量,通过将CFG_XXX变量赋值成y或n来控制该驱动是否需要被编译进系统。 (这个还是蛮有用的)

该驱动对应的头文件driver_test.h文件需保存到optee_os/core/inlcude/drivers目录中,该文件中声明了该驱动暴露给外界调用的接口和相关结构体。

实现完驱动接口实现,现在来实现添加系统服务

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信