3.OP-TEE+qemu的编译--工程编译target依赖关系

      

完成了自主添加CA和TA并成功运行之后,始终有一个疑问就是,整个工程是如何编译出来的,linux kernel在什么时候被编译,OP-TEE OS image是怎么编译出来的,TA和CA是如何编译出来的等等。查看工程的Makefile和相关的mk文件以及其他编译相关的文件终于弄明白了,本文将大致讲述使用qemu+OP-TEE的编译过程。

  OP-TEE的编译是从build/目录下的makefile开始的,然后按照target的依赖关系进行编译。完整的target依赖关系如下:

展开之后,整个工程的大致依赖关系如下:

整个工程的编译始于build目录中的Makefile或者对应板级的xxx.mk文件。本文以qemu.mk为例,下面说明上述主要目标的作用

qemu目标会切换到qemu目录,并获取qemu的配置文件,然后执行make命令来编译qemu

soce-term目标会编译soc-term目录,生成一个soc-term的binary

bios-qemu目标依赖于update_rootfs和optee-os,完成之后会调用bios-qemu-comm宏定义的指令,该宏会编译bios_qemu_tz_arm目录,该目录编译完成之后,会生成启动是需要的bios镜像

optee-os-common目标将编译optee_os目录,该目录编译完成之后将会生成tee.bin以及其他的lib库文件

busybox目标将编译linux目录和busybox目录,生成linux kernel image和制作rootfs需要的相关文件

filelist-tee目标将生成tee功能相关的文件需要挂载到rootfs中的映射图,然后与系统的其他文件的挂载映射一起被保存到了filelist-final.txt文件中,用于生成filesystem.cpio.gz文件。

update_rootfs-common目标依赖于busybox和filelist-tee目标,上述两个target编译完成之后,将会切换到gen_rootfs目录中,调用gen_init_cpio命令生成在启动是需要使用的filesystem.cpio.gz文件

helloworld目标,该目标分为两个部分:TA部分和CA部分,编译完成之后,会生成对应的TA image和CA binary

optee-client目标,该目标将对optee_client目录进行编译,生成一系列的库文件和binary,启动库文件提供了optee在linux端的接口,将被CA调用,tee-supplicant目标将会编译生成一个tee_supplicant的可执行文件,该执行文件提供了optee_os访问文件系统,加载具体的TA image的功能

xtest目标,该目标将会编译optee_test目录,生成在xtest集合中使用到的TA image和xtest可执行文件。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值