需要设备
电脑一台(我的是ubuntu14.04)、
树莓派3B(op-tee支持的版本)包括电源、USB转串口模块(例CP2102模块)

一、在电脑上编译OP-TEE

安装需要的包:

$sudo apt-get install git android-tools-adb android-tools-fastboot autoconf automake bc bison build-essential cscope curl flex ftp-upload gdisk libattr1-dev libc6:i386 libcap-dev libfdt-dev libftdi-dev libglib2.0-dev libhidapi-dev libncurses5-dev libpixman-1-dev libssl-dev libstdc++6:i386 libtool libz1:i386 make mtools netcat python-crypto python-serial python-wand unzip uuid-dev xdg-utils xterm xz-utils zlib1g-dev $sudo apt-get install ccache minicom

我们安装ccache原因如下:
ccache isfaqa tool that caches build object-files etc locally on the disc and can speed up build time significantly in subsequent builds. On Debian-based systems (Ubuntu, Mint etc) you simply install it by running:
$ sudo apt-get install ccache
The makefiles in build.git are configured to automatically find and use ccache if ccache is installed on your system, so other than having it installed you don’t have to think about anything.
我们下面用minicom来进行串口通信
安装repo:

$mkdir ~/bin
$PATH=~/bin:$PATH
$curl https://storage.googleapis.com/git-repo-downloads/repo > $~/bin/repo
$chmod a+x ~/bin/repo

git需要指定你的用户名和邮箱:


$git config --global user.name "yourname"
$git config --global user.email "youremail"

下载op-tee源码,repo sync执行时间会比较长

$mkdir -p $HOME/devel/optee
$cd $HOME/devel/optee
$repo init -u https://github.com/OP-TEE/manifest.git -m rpi3.xml -b master
$repo sync

下载交叉编译器,一共有三个,时间会比较长,因为很大:
gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu.tar.xz :94M
gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf.tar.xz : 88M
gcc-linaro-aarch64-linux-gnu-4.9-2014.08_linux.tar.xz : 45M

$cd build
$make toolchains

以上参考:
https://github.com/OP-TEE/build
下面参考:
https://github.com/OP-TEE/optee_os/blob/15fba47dc88c0698c7882852c275b6b26f1778c2/documentation/rpi3.md


$make all run
$make update_rootfs

下面是把OS和文件系统下载到SD卡,把SD卡插入电脑先运行

$sudo fdisk -l

查看SD卡位置,我的是sdb1与sdb2,df -hl 查看下sdb1,sdb2是否已经自动挂载了,我的Ubuntu就是自动挂载了,所以先umount 一下。
然后运行:


$make img-help会出现:
run the following as root$ mkfs.vfat -F16 -n BOOT /dev/sdx1$ mkdir -p /media/boot$ mount /dev/sdx1 /media/boot$ cd /media$ gunzip -cd /home/ck/devel/optee/build/../gen_rootfs/filesystem.cpio.gz | sudo cpio -idmv "boot/*"$ umount bootrun the following as root$ mkfs.ext4 -L rootfs /dev/sdx2$ mkdir -p /media/rootfs$ mount /dev/sdx2 /media/rootfs$ cd rootfs$ gunzip -cd /home/ck/devel/optee/build/../gen_rootfs/filesystem.cpio.gz | sudo cpio -idmv$ rm -rf /media/rootfs/boot/*$ cd .. && umount rootfs

按照要求运行上面命令就OK了,注意是在root命令下。到此烧写完成。

二、树莓派连接电脑

连接3个GPIO接口,TXD、RXD、GND(注意:串口模块的TXD连接板子GPIO的RXD,模块的RXD连接树莓派GPIO的TXD,GND连接GND,不用连接电源接口,意思是不用串口供电,而是用树莓派上的microUSB供电),然后把串口模块USB那端插入电脑。
我们用minicom调试板子:

$sudo minicom -s

我们选择第三个 Serial port setup,enter键进入,按键盘a,选择第一项,修改为:/dev/ttyUSB0,按键盘f,修改为NO。然后选择save setup as dfl。然后选择Exit退出.
然后我们给树莓派加电,从minicom控制台就可以看到系统启动信息,按enter键进入shell.

三、运行xtest

驱动是直接加好的,我们直接运行命令:

xtext 1001

我们再运行helloworld

 hello_world

打印信息如下:

root@RPi3:/ hello_world
DEBUG:   [0x0] TEE-CORE:tee_ta_init_pseudo_ta_session:227:    Lookup for pseudob
DEBUG:   [0x0] TEE-CORE:init_session_with_signed_ta:679:    Load dynamic TA
DEBUG:   [0x0] TEE-CORE:ta_load:460: ELF load address 0x40001000
DEBUG:   [0x0] TEE-CORE:init_session_with_signed_ta:685:       dyn TA : 8aaaf20b
DEBUG:   USER-TA:TA_CreateEntryPoint:41: has been called
FLOW:    USER-TA: tee_user_mem_alloc:343: Allocate: link:[0x400130a0], buf:[0x4]
DEBUG:   USER-TA:TA_OpenSessionEntryPoint:79: Hello World!
Invoking TA to increment 42
DEBUG:   USER-TA:inc_value:103: has been called
DEBUG:   USER-TA:inc_value:107: Got value: 42 from NW
DEBUG:   USER-TA:inc_value:109: Increase value to: 43
TA incremented value to 43
DEBUG:   [0x0] TEE-CORE:tee_ta_close_session:318: tee_ta_close_session(0x847bea)
DEBUG:   [0x0] TEE-CORE:tee_ta_close_session:337:    ... Destroy session
DEBUG:   USER-TA:TA_CloseSessionEntryPoint:92: Goodbye!
FLOW:    USER-TA: tee_user_mem_free:442: Free: link:[0x400130a0], buf:[0x400130]
DEBUG:   USER-TA:TA_DestroyEntryPoint:51: has been called
DEBUG:   [0x0] TEE-CORE:tee_ta_close_session:361:    ... Destroy TA ctx

OPTEE运行成功!!

树莓派3B运行OP-TEE相关推荐

  1. 树莓派3B运行srsLTE

    树莓派3B运行srsLTE 一.添加SIM卡的配置信息 二.修改enb配置信息 三.修改epc配置信息 四.修改手机SIM卡配置信息 五.运行srsLTE 六.升级srsLTE 七.升级libboos ...

  2. 树莓派3B+运行arm_computer_library

    参考:https://community.arm.com/graphics/b/blog/posts/cartoonifying-images-on-raspberry-pi-with-the-com ...

  3. 使用qemu在windows系统下搭建树莓派3b环境运行RT-Thread

    需要下载的资源 表1 下载资源 序号 资源名称 下载地址 说明 1 raspi3b_run_rt_thread_in_Qemu.rar https://download.csdn.net/downlo ...

  4. gpio引脚介绍 树莓派3b_如何让LabVIEW程序运行在树莓派3B(此处有坑)

    上次转载了LabVIEW部署树莓派的文章后,很多小伙伴很兴趣,一个个都说要把压箱底的树莓派拿出来清下灰尘,也不知道到底拿出来没有. 放个之前文章链接如下: 零基础上手树莓派+免费正版LabVIEW C ...

  5. Vxworks7运行在树莓派 3B/3B+

    在树莓派3B+ 上SDK搭建vxworks7 环境 介绍 配置开发环境软件 主机 树莓派3B/3B+ HELLOWORLD 应用程序开发(RTP) DKM程序HelloWorld 参考: 介绍 VxW ...

  6. 树莓派3b写PHP代码可以吗,如何让LabVIEW程序运行在树莓派3B(此处有坑)

    原标题:如何让LabVIEW程序运行在树莓派3B(此处有坑) 上次转载了LabVIEW部署树莓派的文章后,很多小伙伴很兴趣,一个个都说要把压箱底的树莓派拿出来清下灰尘,也不知道到底拿出来没有. 放个之 ...

  7. 树莓派3B+使用0.96 oled 屏幕(附完整可运行代码)

    树莓派3B+使用 0.96寸oled 屏幕(附完整可运行代码) 一.基本配置 先阅读以下博客较为详解,完成基本配置以及相关代码的说明 0.96寸OLED 使用树莓派的I2C协议调用wiringPiI2 ...

  8. 树莓派3b+目标检测: tflite 运行 mobilenet ssd

    1. 硬件环境:树莓派3b+和USB摄像头 2. 操作系统:2019-09-26-raspbian-buster.zip https://downloads.raspberrypi.org/raspb ...

  9. 64位树莓派运行linux,树莓派3B+安装64位debian GUN/Linux系统

    经过前段时间的努力,已经成功的将debian的ARM64版本跑在了树莓派3B+上.独乐乐不如众乐乐,所以将自己努力的成果分享,并详细介绍安装教程,希望能为树莓派爱好者做出些许贡献. 我已经制作好了镜像 ...

最新文章

  1. TreeSet HashSet
  2. linux和java_java内存和linux关系
  3. UIBezierPath和CAShapeLayer画直线、CGContextRef画直线两种方案
  4. cssd拉起oracle,oracle rac /etc/init.d/init.cssd startcheck
  5. 三十四、深入Java中的泛型(上篇)
  6. jdk中的设计模式_JDK中的设计模式
  7. [css] 如何让表格单元格等宽显示
  8. 发生了未经处理的异常
  9. 程序员面试金典——11.5找出字符串
  10. Linux启动时 Error 15: File not found 问题解决方法
  11. 深度学习去雨论文代码_将深度学习研究论文转换为有用的代码
  12. 客户细分是客户关系管理的重要手段
  13. 阿里云acp证书有用吗?阿里云acp证书考试内容有哪些?
  14. 【干货】S7-PLCSIM Advanced V3.0 无法下载组态(搜索到设备地址为红色)问题解决方法
  15. NI Multisim元件库:在Multisim中创建自定义元器件
  16. iqoo手机可以刷鸿蒙系统吗,华为老机型可以更新鸿蒙系统么-华为哪些老机型支持鸿蒙系统...
  17. xpath解析最全攻略
  18. 【每日面试】2021CVTE后端Java二面
  19. linux yum 安装的路径在哪,yum 下载软件的存放位置
  20. 东京奥运会能如期举办吗?带你用数据看120年奥运变迁史

热门文章

  1. R语言 : 层次聚类分析
  2. Android 65K问题之65K来源探究
  3. 51单片机串行口程序c语言编程,单片机C语言编程串行口通讯.ppt
  4. img的title和Alt有什么区别?
  5. 如何抓取微博https Java,java如何爬取微博信息,或者通过接口获取微博信息
  6. IAR工程名修改方法
  7. 【CSS】响应式图片
  8. Golang实现Kafka消息发送、接收
  9. 9000字通俗易懂的讲解下Java注解,你还看不明白?
  10. iPic 又双叒叕支持一个图床,还是国产的:腾讯云 COS