社区
驱动开发/核心开发
帖子详情
两阶段bootloader, 什么时候在内存中运行?
Cline
2012-10-23 04:51:50
1.reset后从0x00000000运行.
2.....
3.Copy代码(自己/第二阶段)到内存中.
4.....
5.ldr pc, _start_armboot
6.运行于内存中?
难道就是因为_start_armboot的link 地址在_TEXT_BASE 之后?
...全文
271
9
打赏
收藏
微信扫一扫
点击复制链接
分享
下载分享明细
分享
举报
写回复
9 条
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
阿晔sir
2012-10-30
ldr pc, _start_armboot
这是位置相关代码。前面的都是位置无关的,前面的是的SRAM里或者norflash里面(地址为0x0开始)运行,然后遇到位置相关代码就根据 链接脚本里的 链接地址 处接着运行代码(一般是sdram ,比如0x30000000)
打赏
举报
回复
赞
zhengmeifu
2012-10-24
顶4楼的。各个CPU的启动过程都不一样。
打赏
举报
回复
赞
Cline
2012-10-24
我的板子是TQ2240.
打赏
举报
回复
赞
codeos
2012-10-24
我大概跟LZ有相同的问题,也在探索中,
我用的是三星的S3C2450,关于开机后 从IROM到step stone到外部SDRAM的跳转过程以及他们各自的内存编址感觉很困惑,发了帐帖子:http://topic.csdn.net/u/20121024/09/d223b0a2-62f6-4601-8702-d11698a481a7.html?85149
希望大侠赐教
打赏
举报
回复
赞
chinayangbo2011
2012-10-23
像我用的LPC3250的开发板,当上电启动后会有一个映射,是把IROM映射到地址0x0000000还是把IRAM映射到地址0x0000000,默认都是IROM,然后会拷贝flash里面的程序到RAM中,之后跳转到RAM中去执行,这个是LPC3250的开发板启动过程和别的可能不太一样。
像S3c6410上电就把flash里面前4K的程序考到RAM中,然后跳转到RAM中,1.reset后从0x00000000运行的东西并不是RAM的地址。
打赏
举报
回复
赞
wanghuanabc
2012-10-23
不知道你说的是哪一个片子,在S5pv210中无论是NAND还是SD卡启动,都依赖于CPU中的一段内部代码进行过度启动,这段代码存在于iROM中。iROM有64K被映射到boot区,而96K的iRAM就是用于过渡启动的内部缓存区,与iROM一起被映射到iROM的后面。iROM会将第一段的启动代码从外部存储介质拷贝到iRAM这个这个区域中。(第一阶段的Bootloader是从0xD0020010处开始执行的)
打赏
举报
回复
赞
曹大夯
2012-10-23
_start_armboot指向哪了?是你自己的代码么?
感觉你理解没问题啊,将pc指向新的内存地址,CPU开始跑_start_armboot指向的代码段。
打赏
举报
回复
赞
Cline
2012-10-23
正在学习。有些地方想不明白。
上电后跑Flash中代码(0x00000000), 最后为什么跳到主存中执行? 因为ldr pc, _start_armboot?
打赏
举报
回复
赞
曹大夯
2012-10-23
不太理解你碰到的问题。
bootloader跑出错拉,需要修改?
还是你在学习某个开发板?
打赏
举报
回复
赞
相关推荐
bootloader
的
两
个
阶段
bootloader
一般都是分为
两
个
阶段
的,第一个
阶段
使用汇编来实现,它完成一些依赖于CPU体系结构的初始化,并调用第二
阶段
的代码;第二
阶段
则通常使用C语言来实现,这样可以实现更复杂的功能,而且代码会有更好的可读性...
BootLoader
有什么作用?
BootLoader
有什么作用? 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录
BootLoader
有什么作用?前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加...
浅析嵌入式系统之
bootloader
在
嵌入式操作系统
中
,
BootLoader
是
在
操作系统内核
运行
之前
运行
。可以初始化硬件设备、建立
内存
空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。
BootLoader
介绍
1.
BootLoader
的引入 2.
BootLoader
的启动方式 3.
BootLoader
的结构和启动过程 4.自己写一个
BootLoader
uboot研读笔记 | 00 - 嵌入式Linux系统
中
Bootloader
的作用和基本
运行
原理
软件程序开发
中
,从下往上每一次的作用依次为:
Bootloader
:将硬件初始化,并将内核引导起来; Linux Kernel:定制、裁剪之后的Linux内核; 根文件系统:提供文件系统,更好的使用存储空间; 设备驱动:完成设备...
发帖
驱动开发/核心开发
加入
微信扫一扫
点击复制链接
分享社区
下载分享明细
2.1w+
社区成员
2.1w+
社区内容
硬件/嵌入开发 驱动开发/核心开发
社区管理员
申请成为版主
帖子事件
创建了帖子
2012-10-23 04:51
社区公告
暂无公告