网站大量收购独家精品文档,联系QQ:2885784924

友坚4412开发板在Linux平台下UT4412BV03裸机开发指南(三).ppt

友坚4412开发板在Linux平台下UT4412BV03裸机开发指南(三).ppt

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
友坚4412开发板在Linux平台下UT4412BV03裸机开发指南(三)

Linux平台下UT4412BV03裸机开发指南(三) 友坚4412开发板 友坚UT4412BV03开发板 友坚4412开发板 第一章 Exynos 4412的启动过程 友坚4412开发板 做实验时我们是把bin文件烧入SD卡。是谁把这些指令从SD卡读出来执行?是固化在芯片内部ROM上的代码──它被称为iROM,iROM是厂家事先烧写在芯片上的,无源码。 iROM把启动设备上特定位置处的程序读入片内内存(iRAM),并执行它。这个程序被称为BL1(Bootloader 1),BL1是三星公司提供的,无源码。BL1又把启动设备上另一个特定位置处的程序读入片内内存,并执行它。这个程序被称为BL2(Bootloader 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的启动过程。 第一章 Exynos 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的启动过程 友坚4412开发板 图5.9 BL1/BL2在iRAM中的存储位置 第一章 Exynos 4412的启动过程 友坚4412开发板 BL1位于SD卡偏移地址512字节处,iROM从这个位置读入8K字节的数据,存在iRAM地址0置处。所以BL1不能大于8K。 BL2位于SD卡偏移地址(512+8K)字节处,BL1从这个位置读入14K字节的数据,存在iRAM地址0。BL2不能大于(14K –4)字节,最后4字节用于存放较验码。 如果我们的程序大于(14K –4)字节,那么需要截取前面(14K –4)字节用来制作BL2并烧入SD卡偏移地址16K字节处。当BL2启动后,由它来将存放在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 iflag=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.bl1.bin(BL1)是由三星原厂提供,没有源码,它的作用在前面稍有介绍; bl2.bin是通过mkbl2工具处理源文件得到,具体实现如下: ./my_mkbl2 leds_on

文档评论(0)

麻将 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档