社区
驱动开发/核心开发
帖子详情
两阶段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 之后?
...全文
323
9
打赏
收藏
两阶段bootloader, 什么时候在内存中运行?
1.reset后从0x00000000运行. 2..... 3.Copy代码(自己/第二阶段)到内存中. 4..... 5.ldr pc, _start_armboot 6.运行于内存中? 难道就是因为_start_armboot的link 地址在_TEXT_BASE 之后?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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必读
1、了解
BootLoader
的基本概念和框架结构 2、了解
BootLoader
引导操作系统的过程 3、掌握
bootloader
程序的编译方法 4、掌握
BootLoader
程序的使用方法 (1)、Boot Loader 的
阶段
1 通常主要包括以下步骤: 硬件设备初始化; 拷贝Boot Loader 的程序到RAM 空间
中
; 设置好堆栈; 跳转到
阶段
2 的C 入口点。 (2)、Boot Loader 的
阶段
2 通常主要包括以下步骤: 初始化本
阶段
要使用到的硬件设备; 系统
内存
映射(memory map); 将kernel 映像和根文件系统映像从Flash 读到RAM 空间
中
; 为内核设置启动参数; 调用内核 …………………………………………………………
stm32
BootLoader
简单跳转
BootLoader
简单的跳转功能,理解基本原理,
BootLoader
简单的跳转功能,理解基本原理
STM32 IAP之
bootloader
协议采用YMODEM
stm32 iap
bootloader
ymodem协议,如果大家反响不错的话,我会推出自定义协议,并且带上位机支持的
bootloader
。
BootLoader
为什么要分
阶段
?
跨硬件平台的支持:不同的计算机架构和硬件平台可能需要不同的引导过程,因此分
阶段
的设计允许为不同的硬件平台创建不同的引导加载程序。
BootLoader
(引导加载程序)分
阶段
的设计主要是为了实现系统的启动和引导过程的可靠性、可维护性和灵活性。这种分
阶段
的设计允许引导加载程序执行不同的任务,并在不同的环境下工作。2. 装载和初始化:第一
阶段
的
BootLoader
通常是在计算机上电后首先执行的,它负责硬件初始化、加载第二
阶段
BootLoader
或操作系统内核到
内存
中
,从而为接下来的引导过程创建必要的条件。
BootLoader
有什么作用?
BootLoader
有什么作用? 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录
BootLoader
有什么作用?前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工
驱动开发/核心开发
21,616
社区成员
21,711
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章