Advertisement

2024年C C++最新TEE中TA和CA的编译_tee ta(2),2024年最新2024最新C C++常用开源库总结

阅读量:
img
img

丰富的网络学习资源层出不穷;然而,在所学知识未能形成系统性的情况下,在遇到技术难题时仅停留在表面了解;无法深入探究其本质原理;因此难以实现实质性的技术进步。

请有需要的朋友们访问该链接获取系统化的资料。

一个人就能走得很快,但群体往往能够走得更远!无论你是正在从事IT行业的老鸟或是对IT行业感兴趣的新手,都欢迎加入我们的圈子(这是一个集技术交流、学习资源分享、职场吐槽与大厂内推于一体的平台;在这里你不仅能接触到最前沿的技术动态与学习资源,在线交流还能让你畅所欲言,在职场中遇到的问题也能得到专业的解答;此外我们还有专业的内推渠道帮助你进入理想的公司,并提供详细的面试辅导服务)。让我们携手共创未来!

1.源代码及相关目录准备

第一步,为方便操作,首先复制hello_world目录为my_test

在第二步中, 我对my_test/ta目录中的Makefile进行了调整, 并新增了属于自己的TA部分的代码.

上述目录文件说明如下:

Makefile文件:编译TA时使用的makefile文件

该.c文件主要用于存储TA模块的相关入口函数。当CA发送commond请求时,该系统将通过调用TA_InvokeCommandEntryPoint函数来处理。

my_test_handle.c文件:存放具体响应CA的commond请求的功能函数

sub.mk文件:定义该TA中需要被编译的source code。

user_ta_header_defines.h文件:定义UUID等相关宏

include/my_test_handle.h文件:定义了该TA需要使用到的类型

include/my_test_ta.h文件:定义了UUID的宏以及与CA对应的commond ID宏

2.修改TA目录中的代码和makefile

更新sub.mk文件,在其中将属于该TA的所有.c文件纳入编译列表

2.定义UUID值和commond ID的值

对编译操作进行说明:进行编译操作以处理include/my_test_ta.h文件,并对该测试代理(TA)程序的唯一标识符(UUID)进行配置。具体而言,在CMakeLists.txt中声明该测试代理(TA)程序的唯一标识符(UUID)为TA_MY_TEST_UUID,并同步配置commons ID相关的宏变量。其中链接用于生成与CA部分一致的commons ID,并在生成时需满足以下约束条件:

3.修改user_ta_header_defines.h文件

将my_test_ta.h文件include到该文件中以便获取UUID的定义

4.修改Makefile文件

修改Makefile文件,将变量BINARY的值修改成新增TA的UUID值

复制代码
    CFG_TEE_TA_LOG_LEVEL ?= 4
    CPPFLAGS += -DCFG_TEE_TA_LOG_LEVEL=$(CFG_TEE_TA_LOG_LEVEL)
    
    # The UUID for the Trusted Application
    BINARY=9269fadd-99d5-4afb-a1dc-ee3e9c61b04c
    
    include $(TA_DEV_KIT_DIR)/mk/ta_dev_kit.mk

5.添加该TA需要处理的逻辑代码

具体说明该TA相关代码的实现方案,并指出其应完成的功能模块,在本例子中将这部分代码存放于my_test_handle.c文件内。此外,请查看source code一章以获取全部相关TA及CA的完整信息,并请通过邮件联系:shuaifengyun@126.com获取进一步指导。以下是关于该TA所设计的功能逻辑描述:

3.CA部分代码的修改和编写

1.CA部分的代码存放在my_test/host目录中,文件结构体如下:

main.c文件:该文件主要是用于在Linux系统中被CA可执行文件所调用并包含其主函数的程序

改写说明

Makefile文件:编译CA可执行文件使用的makefile文件

更新Makefile,重点调整BINARY和OBJ变量。当CA模块包含多个.c源文件时,请确保所有生成的.o目标文件被包含在OBJS变量中。其中,BINARY变量记录的是最终编译完成后生成的目标Binary文件名称。

4.尝试编译TA和CA代码

位于my_test目录中的一个build_ta_mytest_qemu.sh源码文件。运行此脚本将可独立编译TA及CA源码。此脚本与位于helloworld目录下的build_ta_hello_world.sh类似。

完成修改后,在my_test子目录中运行build_ta_mytest_qemu.sh工具脚本。如果出现错误信息,则按照错误提示重新调整配置。运行完成后,在ta目录中会创建相应的ta image文件。

5.将TA image和CA binary集成到rootfs和全局的makefile中。

该步骤需要修改build/common.mk文件和build/quem.mk文件

1.修改build/common.mk文件

为了整合TAimage和CA binary至fs中,必须对file-tee-common目标的内容进行调整(其中的主要内容涉及生成启动时的文件脚本)。具体操作如下:

添加my_test的依赖目标:

定义my_test目标需要的路径变量:

2.修改build/qemu.mk文件,添加该TA模块的targe编译目标

6.将添加的TA和CA编译到整个工程中

完成后,在build目录中可以直接进行操作(编译时需确保Makefile连接至qemu.mk文件),也可选择使用make -f qemu.mk的方式进行编译。

img
img

丰富的网上资源层出不穷。然而,在所学知识未能系统化的情况下,在遇到问题时往往停留在表面层次,并不进行深入探究,则难以实现真正的技术进步。

如需获得这一份系统化的资料,请您点击链接here,并仔细阅读相关说明文档。

一个人可以移动得很快,但一个团队才能走得更远!不论你是正在从事IT行业的资深从业者还是对IT行业充满热情的新手,我们都热忱欢迎你的加入!让我们一起在技术交流中进步,在学习资源中成长,在职场吐槽中获取智慧,在大厂内推中积累经验,在面试辅导中提升自我!

到真正的技术提升。**

如果需要一份条理清晰的学习材料,请访问该链接获取

一个人的速度很快,但群体的力量能够走得更远!无论你是已经在这行深耕的老手还是刚开始对科技领域充满热情的新手,都欢迎加入我们的圈子(技术交流群组|学习资源分享|职场吐槽区|大厂内推机会|面试辅导服务),让我们共同进步成长!

全部评论 (0)

还没有任何评论哟~