社区
驱动开发/核心开发
帖子详情
两阶段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 之后?
...全文
370
9
打赏
收藏
两阶段bootloader, 什么时候在内存中运行?
1.reset后从0x00000000运行. 2..... 3.Copy代码(自己/第二阶段)到内存中. 4..... 5.ldr pc, _start_armboot 6.运行于内存中? 难道就是因为_start_armboot的link 地址在_TEXT_BASE 之后?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
阿晔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
详解(源码+实验)研究BOOT必读
Bootloader
在嵌入式系统开发
中
扮演着至关重要的角色,它是系统启动过程
中
的第一个程序,负责系统的初始化并引导操作系统
运行
。对于嵌入式开发者来说,深入理解
Bootloader
的工作原理及其内部结构是非常必要的。 **1....
STM32 IAP之
bootloader
协议采用YMODEM
在STM32的开发过程
中
,
Bootloader
是一个至关重要的部分,它负责在系统启动时加载应用程序到
内存
中
执行。本文将重点讲解STM32 IAP(In-Application Programming)以及如何结合YModem协议实现一个
bootloader
。 IAP,...
BootLoader
为什么要分
阶段
?
跨硬件平台的支持:不同的...2. 装载和初始化:第一
阶段
的
BootLoader
通常是在计算机上电后首先执行的,它负责硬件初始化、加载第二
阶段
BootLoader
或操作系统内核到
内存
中
,从而为接下来的引导过程创建必要的条件。
BootLoader
有什么作用?
BootLoader
有什么作用? 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录
BootLoader
有什么作用?前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加...
系统入门(1):安卓系统
bootloader
模式是什么?如何进入
bootloader
在嵌入式操作系统
中
,
BootLoader
是在操作系统内核
运行
之前
运行
。可以初始化硬件设备、建立
内存
空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统
中
,...
驱动开发/核心开发
21,619
社区成员
21,708
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章