友坚4412开发板在Linux平台下UT4412BV03裸机开发指南(三)_第1页
友坚4412开发板在Linux平台下UT4412BV03裸机开发指南(三)_第2页
友坚4412开发板在Linux平台下UT4412BV03裸机开发指南(三)_第3页
友坚4412开发板在Linux平台下UT4412BV03裸机开发指南(三)_第4页
友坚4412开发板在Linux平台下UT4412BV03裸机开发指南(三)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Linux平台下UT4412BV03裸机开发指南(三)友坚4412开发板友坚UT4412BV03开发板友坚4412开发板第一章 Exynos 4412的启动过程友坚4412开发板 做实验时我们是把bin文件烧入SD卡。是谁把这些指令从SD卡读出来执行?是固化在芯片内部ROM上的代码它被称为iROM,iROM是厂家事先烧写在芯片上的,无源码。 iROM把启动设备上特定位置处的程序读入片内内存(iRAM),并执行它。这个程序被称为BL1(Bootloader 1),BL1是三星公司提供的,无源码。BL1又把启动设备上另一个特定位置处的程序读入片内内存,并执行它。这个程序被称为BL2(Bootloa

2、der 2),是我们编写的源码。注:本章的内容来自韦东山老师的嵌入式Linux系统开发完全手册_基于4412_上册,因为老师这部分已经讲的非常好了,没必要再写了。iROM、BL1更细致的启动过程如下:(1) iROM:图5.6是iROM启动流程图。图5.6 iROM启动流程第一章 Exynos 4412的启动过程友坚4412开发板简单地说,就是先设置程序运行环境(比如关看门狗、关中断、关MMU、设置栈、启动PLL等等);然后根据OM引脚确定启动设备(NAND Flash/SD卡/其他),把BL1从里面读出存入iRAM;最后启动BL1。(2) BL1:图5.7是BL1的启动过程。第一章 Exyn

3、os 4412的启动过程友坚4412开发板图5.7 BL1启动流程简单地说,也是设置程序运行环境(初始化中断、设置栈等等);然后从启动设备上把BL2读入iRAM;最后启动它。有几个问题需要解决:在启动设备上哪个位置存放BL1、BL2?把BL1、BL2读到iRAM那个位置? BL1、BL2大小是?怎么保证BL1、BL2程序的完整性(即读出程序时没有错误)?第一章 Exynos 4412的启动过程友坚4412开发板假设启动设备为SD卡,如图5.8、图5.9所示:第一章 Exynos 4412的启动过程友坚4412开发板图5.8 BL1/BL2在SD卡上的存储位置第一章 Exynos 4412的启动

4、过程友坚4412开发板图5.9 BL1/BL2在iRAM中的存储位置第一章 Exynos 4412的启动过程友坚4412开发板BL1位于SD卡偏移地址512字节处,iROM从这个位置读入8K字节的数据,存在iRAM地址0 x02021400位置处。所以BL1不能大于8K。 BL2位于SD卡偏移地址(512+8K)字节处,BL1从这个位置读入14K字节的数据,存在iRAM地址0 x02023400处。BL2不能大于(14K 4)字节,最后4字节用于存放较验码。 如果我们的程序大于(14K 4)字节,那么需要截取前面(14K 4)字节用来制作BL2并烧入SD卡偏移地址16K字节处。当BL2启动后,

5、由它来将存放在SD卡另外位置的、完整的程序读入内存。 对于其他启动设备,可以参考Android_Exynos4412_iROM_Secure_Booting_Guide_Ver.1.00.00.pdf 第一章 Exynos 4412的启动过程友坚4412开发板板子一上电,首先执行iROM,iROM依次尝试从第1个SD卡、NAND Flash、第2个SD卡、SPI Nor Flash上把程序读入内存中,一旦从某个设备上成功读出程序就会去启动它。在前面的实验过程中,我们都是通过sd_fusing.sh这个脚本文件,一键烧写程序到SD卡中。我们分析该脚本程序,发现其核心命令就3条:01 dd ifl

6、ag=dsync oflag=dsync if=/work/4412/tools/E4412_N.bl1.bin of=$1 seek=$signed_bl1_position 02 dd iflag=dsync oflag=dsync if=./bl2.bin of=$1 seek=$bl2_position 03 sync 第一章 Exynos 4412的启动过程友坚4412开发板第1行的命令用于将E4412_N.bl1.bin烧写到SD卡的第1个扇区(扇区从0编号);第2行的命令用于将bl2.bin烧写到SD卡的第17个扇区;第3行的命令用于将内存缓冲区内的数据写入磁盘。E4412_N.

7、bl1.bin(BL1)是由三星原厂提供,没有源码,它的作用在前面稍有介绍;bl2.bin是通过mkbl2工具处理源文件得到,具体实现如下:./my_mkbl2 leds_on.bin bl2.bin 14336 mkbl2是用来生成bl2.bin的工具,通过编译V310-EVT1-mkbl2.c文件(源程序位于/work/4412/hardware/my_mktools目录下)得到,具体如下:gcc -o my_mkbl2 my_mktools.c第一章 Exynos 4412的启动过程友坚4412开发板通过分析my_mktools.c源码,我们可以知道,它主要做了这些工作:1).从源文件中读取14K的数据到Buf当中;2).处理Buf中前14332字节的数据,得到4字节的checksum;3).组装Buf中前14332字节的数据和4字节的checksum,得到一个新的14K的Buf数据;4).将

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论