博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
嵌入式开发学习(持续记录)
阅读量:6096 次
发布时间:2019-06-20

本文共 1141 字,大约阅读时间需要 3 分钟。

草稿式记录,以后整理为一个系列。:)

学习时用的是讯为的4412(SOP)开发板和配套视频。非常感谢?

(1)安装工具(在Ubuntu下面的工具)

  1.安装交叉编译工具链 https://www.veryarm.com/arm-none-linux-gnueabi-gcc 在这个里面可以下载一个

  2.安装mkimage 输入:  sudo apt install u-boot-tools; make_ext4fs 输入:sudo apt install android-tools-fsutils

  3.串口助手cutecom 输入 sudo apt-get install cutecom

  4.   相关工具需要用的时候再添加

(2)bootloader相关

  1. 为什么要有bootloader:有人说是为了加载操作系统内核,可以这么说。但是可以这么想,如果写内核的时候完全可以把这部分代码一起写进内核,还需要吗?那么肯定是因为什么原因才把这层代码分类开的;原因就是现在的设备硬件的各不相同,这层代码需要做的事情应该是对应各不相同的硬件的。那么这层代码就要bootloader,常用的bootloader是u-boot。universal bootloader(通用的启动代码)方便移植平台:)

  2.以Exynos 4412 为例子,了解板子的启动流程:

4412 可以选择启动程序介质,有nano flash,SD,eMMC,USB。在上面写了iROM是在启动或者被唤醒的时候跑的第一段程序。

iROM在内部ROM(64KB)里面,作用就是初始化时钟和栈(IRQ中断、SVC超级用户模式、ZI、RW等),从上述存储介质中加载BL1(三星的bootloader,加密的)校验解密后存到内部SRAM中。

BL1的程序再从上述的存储介质中校验加载BL2到SRAM(iRAM)中,(在其他博客可以看见,SRAM就是刚刚设置栈的空间,需要证实),此时转到BL1的程序,从存储介质中校验加载BL2(uboot spl的代码,SPL是Secondary Program Loader的简称)到iRAM,转到BL2代码。

BL2程序初始化SRAM控制器并将完整的uboot程序从存储介质中加载到DRAM中并校验bootloader的完整性,最终uboot加载操作系统到RAM中,启动。

这张图就可以清楚的知道iROM和BL1还有BL2干的事情。

   

0x2020000 地址是iRAM的起始地址,可以看见iRAM里面到底放了什么。

(持续修改中...2018年10月22晚)

转载于:https://www.cnblogs.com/mrAAron/p/9813807.html

你可能感兴趣的文章
jquery的冒泡和默认行为
查看>>
Check failed: error == cudaSuccess (7 vs. 0) too many resources requested for launch
查看>>
USACO 土地购买
查看>>
【原创】远景能源面试--一面
查看>>
B1010.一元多项式求导(25)
查看>>
10、程序员和编译器之间的关系
查看>>
前端学习之正则表达式
查看>>
配置 RAILS FOR JRUBY1.7.4
查看>>
AndroidStudio中导入SlidingMenu报错解决方案
查看>>
http://www.blogjava.net/pdw2009/archive/2007/10/08/151180.html
查看>>
hadoop(6)---mapred-site.xml 详解以及常用配置。
查看>>
修改GRUB2背景图片
查看>>
Ajax异步
查看>>
好记性不如烂笔杆-android学习笔记<十六> switcher和gallery
查看>>
JAVA GC
查看>>
codeforce 599B Spongebob and Joke
查看>>
3springboot:springboot配置文件(外部配置加载顺序、自动配置原理,@Conditional)
查看>>
9、Dubbo-配置(4)
查看>>
前端第七天
查看>>
BZOJ 2190[SDOI2008]仪仗队
查看>>