一点点arm bootloader的理解
来源:互联网 发布:杭州点告网络 编辑:程序博客网 时间:2024/05/07 07:34
最简单的bootloader需完成两个主要任务
1.memory的重新映射
2.下载kernel到sdram
系统上电之后首先执行的是物理地址0x0的代码,所以一般情况bootloader的代码要烧录在0x0的地址处,一般为flash存储器,
例如:
有2段存储器flash和sdram,分别在0x0-0x4000000 64M, 0x4000000-0x80000000 64Msdram,板子上电后只有flash可用,先不考虑片内内存,所以要做一下几个工作
1.初始化sdram,根据system manager寄存器,把sdram map到 0x4000000-0x80000000,使得flash和sdram在物理上连续,现在程序时在flash里面运行的。
2.把flash里面的bootloader拷贝到sdram的最低端。
4.通过system manager寄存器设置,重新map这两段内存,把flash映射到0x4000000-0x80000000 ,把sdram映射到0x0-0x4000000 ,此时程序时在sdram里面运行的。
5. LDR pc, =load_kernel,转到c语言处,load nernel进sdram的设定位置。
如要支持网络下载,需要添加tcp/ip协议栈
- 一点点arm bootloader的理解
- Enum的一点点理解
- 一点点指针的理解
- maven的一点点的理解
- 对jsp的一点点理解
- 关于latch的一点点理解
- 有关KMP的一点点理解
- 对指针的一点点理解
- 对static的一点点理解
- 对Thrift的一点点理解
- 对Thrift的一点点理解
- 对Dijkstra的一点点理解。
- SVM算法的一点点理解
- GCD死锁的一点点理解
- 基于ARM的通用bootloader的设计
- 一个最简单的arm linux bootloader
- 对于KMP算法的一点点理解(仅仅就是一点点)
- BootLoader理解
- ARX与ADS中修改实体的属性
- 原创 : 在Ubuntu 9.04 Server版下源代码安装Nginx+Mysql+PHP笔记[第二版]
- 利用Newtonsoft.Json序列化,反序列化,读取,写入
- session过期时间控制的一些常用方法
- 开通了博客,自己先顶一个吧!
- 一点点arm bootloader的理解
- J2EE学习中一些值得研究的开源项目
- AS3.0中Matrix类的学习经验
- JIRA+Confluence 安装(整合安装)[转帖]
- asp.net 页面事件执行顺序
- JVM
- ASP.NET网络编程中常用到的27个函数集
- c#自定义函数注释 调用为什么时没有提示?
- 成功投资的秘诀