TrustZone初探 (三)
来源:互联网 发布:房屋装修效果图软件 编辑:程序博客网 时间:2024/05/20 10:57
ARM网站上有个trustzone helloworld的例子,据说可以在fast model上模拟运行。我没去试,而是直接拿过来移植到自己的平台上,在u-boot下实现了。
代码在这:.
代码在这:.
在我的例子里,u-boot本身就是在安全世界下运行的,所以我只要实现一个命令来做安全初始化,再写一个小的normal程序,先load normal程序到DDR,在执行这个命令设置安全环境,然后直接跳转至normal运行,normal跳回安全环境后打印再smc跳回,如此反复。几点经验:
1. 准备jtag调试器,否则寸步难行。
2. 这个例子虽然代码不多,但是信息量巨大,已经涵盖了ARM Secure extension的基本知识点,想成功在其他环境跑起来并非易事。
Description
============
Execution flow
---------------
3. 这个例子埋了两个坑
a. movs pc,lr
这个指令是arm的中断返回指令,在改pc之前先把当前模式的spsr替换cpsr,是模式转换的重要指令。
但是一旦cpsr的值有点问题,那么等待你的就是奇怪的data abort。原来的例子代码这里可能会有一个坑,取决于你之前secure world的设置。
b. sp指针的上下文切换
两个世界可是共享sp_svc和sp_usr寄存器的,所以要保护好,那么问题来了,进到monitor模式以后sp已经是sp_mon,怎么拿到原来的sp? 原来的代码没实现,又是另外一个坑。
0 0
- TrustZone初探 (三)
- trustZone初探(一)
- TrustZone初探(一)
- TrustZone初探(一)
- TrustZone初探 (二)
- TrustZone初探 (二)
- trustzone
- COM初探(三)
- tolua++初探(三)
- Scala初探(三)
- Oracle初探(三)
- 初探UiAutomator(三)
- 异常初探(三)
- 多线程初探(三)
- 集合初探(三)
- java 初探(三)
- webcollector 初探(三)
- Lottie初探(三)
- 小白学习android
- ping-pong
- (未写完)Zookeeper学习(六):利用Zookeeper实现配置管理
- asp.net 的过滤机制
- JS中关于clientWidth offsetWidth scrollWidth 等的含义
- TrustZone初探 (三)
- dom对象模型简介
- 部署.NET Webservice
- html元素的分类
- Libevent源码分析(五)--- evbuffer的基本操作
- 夯实基础——类、抽象类和接口的关系
- 集合数组排序之冒泡
- java Date加一天(往后加一天)
- HDU 2099 整除的尾数(格式易题)