Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1495759
  • 博文数量: 267
  • 博客积分: 3010
  • 博客等级: 少校
  • 技术积分: 3089
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-05 17:09
个人简介

尊天命,尽人事

文章分类

全部博文(267)

文章存档

2017年(6)

2015年(4)

2014年(27)

2013年(52)

2012年(59)

2011年(120)

分类: Android平台

2014-03-10 09:57:12

转自:  http://blog.csdn.net/forestcell/article/details/15341239

万事开头难,本以为所有的HelloWorld都是很简单的。下载了TZ的HelloWorld才知道。比想象的要困难很多。

DS-5的下载地址,需要注册ARM官网。注册个ARM账号,没有XX版本。

TrustZone的HelloWorld的

 

需要背景知识:

1.arm汇编(中级)

2.了解如何制作linux的boot,kernel

3.了解文件在flash布局与开发

4.了解TrustZone相关硬件设置方法

5.软件开发以及混合编程(中级)

6.Makefile使用方法

7.基于eclipse的DS-5的使用

 

假定你拥有了上面的知识,了解这个程序应该简单一些。不过ARM官方的东西,注释还是比较多的。如果你只是想编译通过,了解其中几项也是没问题的。

这个程序告诉我们什么?或者说通过这个程序我们学到了什么?

1.安全区先启动

2.Monitor必须在安全区启动

3.如何实现SMC(TZ的切换)跳转

4.需要硬件TZPC支持

 

这是个基础,稍后我们会慢慢研究这个东西的。

Program execution flow

The flow of program execution is shown below:
  secureStart     startup_secure.s: Initialization of Secure world
       |
    __main        ARM library initialization
       |
     main         main_secure.c: Enable caches and configure TZPC
       |
  monitorInit     monitor.s: initialize Monitor
       |
     main         main_secure.c: Print message and execute SMC
       |
     S -> NS
       |
  normalStart     startup_normal.s: Initialization of Normal world
       |
    __main        ARM library initialization
       |
     main         main_normal.c: Enable caches, print message and execute SMC
       |
    NS -> S
       |
  SMC_Handler     monitor.s: Perform context switch from NS to S
       |
     main         main_secure.c: Print message and execute SMC
       |
  SMC_Handler     monitor.s: Perform context switch from S to NS
       |
     S -> NS
       |
     main         main_normal.c: Print message and execute SMC
       |
    NS -> S
       |
  SMC_Handler     monitor.s: Perform context switch from NS to S
       |
     main         main_secure.c: Print message and execute SMC
阅读(3514) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~