ARM中Steppingstone启动
1.在板子上电的一开始,首先自动判断是否是autoboot模式(这是由硬件设计阶段,由硬件工程师对mcu的引脚连线决定的),我所使用的 s3c2410是带有nandflash的,并切被设置成autoboot,从nandflash开始启动.
2.在判断是autoboot模式后,mcu内置的nandflash控制器自动将nandflash的最前面的4k区域(这4k区域存放着 bootloader的最前面4k代码)拷贝到samsung所谓的"steppingstone"里面(steppingstone是在S3C2440 中,实际上是一块4k大小的SRAM,).
3.在拷贝完前4k代码后,nandflash控制器自动将"steppingstone"映射到arm地址空间0x00000000开始的前4k区域.
4.在映射过程完成后.nandflash控制器将pc指针直接指向arm地址空间的0x00000000位置,准备开始执 行"steppingstone"上的代码.
5.而"steppingstone"上从nandflash拷贝过来的4k代码,是程序员写的bootloader的前4k代码.这个 bootloader在之前写好,并已经被烧写到nandflash的0x00000000开始的最前面区域..而这"steppingstone"上的 4k代码就是bootloader的前4k代码.
6.在pc指向arm地址空间的0x00000000后,系统就开始执行指令代码.这4k代码的任务是:初始化硬件,设置中断向量表,设置堆栈,然后一个 很重要的任务是,将nandflash的最前面区域的bootloader(包含4k启动代码)拷贝到SDRAM中去,bootloader代码的大小是 写好bootloader就确定的.然后只需要确定bootloader想映射到SDRAM的起始位置就ok.
7.在完成对nandflash上的bootloader搬移后,找到4k代码的搬移代码最后一个指令的下一个指令在SDRAM的bootloader的 地址,然后跳转到该位置,继续执行bootloader的剩余代码(引导系统).
注意:S3C2440先从nandflash上启动的,而不是SDRAM上!
ARM中Steppingstone启动相关推荐
- ARM linux的启动部分源代码简略分析
ARM linux的启动部分源代码简略分析 以友善之臂的mini2440开发板为平台,以较新的内核linux-2.6.32.7版本为例,仅作说明之用. 当内核映像被加载到RAM之后,Bootloade ...
- ARM linux的启动部分源代码简略分析【转】
转自:http://www.cnblogs.com/armlinux/archive/2011/11/07/2396784.html ARM linux的启动部分源代码简略分析 以友善之臂的mini2 ...
- arm linux内核启动过程,ARM64的启动过程之(一):内核第一个脚印
ARM64的启动过程之(一):内核第一个脚印 作者:linuxer 发布于:2015-10-10 15:06 分类:ARMv8A Arch 一.前言 kernel的整个启动过程涉及的内容很多,不可能每 ...
- ARM中C语言和汇编语言互相调用以及实例
1.内联汇编 在C语言中内嵌汇编注意事项: 不能直接向PC寄存器赋值,程序跳转要使用B或者BL指令 在使用物理寄存器时,不要使用过于复杂的C表达式(比如ADD y,R0 ,x/y(无形中就是c语言表达 ...
- PC的ARM的安全启动
其实还是很不习惯将PC和ARM联系起来,当然主要是因为我刚刚接触嵌入式没有多久,更别说服务器.PC端了. 脑子里固化了的X86. 于是这一篇学习一下,基于ARM的PC,是怎么利用这个ATF框架,进行安 ...
- ARM芯片上电启动流程
下图是大多数开发板所有的一个存储单元框架,接下来以此图为基础描述ARM芯片的上电启动流程. 我们首先来了解几个关键词: IROM (Internal ROM):芯片内部固化存储代码的存储器 IRAM ...
- Arm芯片上电启动流程剖解
关键字: stepping stone:(可以看做是Internal RAM) IROM (Internal ROM):固化在CPU内部ROM里的一段代码,它的运行叫做BL0. IRAM: 因为IRO ...
- 织女星开发板能移植linux吗,织女星开发板启动模式修改——从ARM M4核启动
前言 刚开始玩织女星开发板的时候,想先从熟悉的ARM核入手,连上Jlink,打开MDK版本的Demo程序,编译OK,却检测不到芯片,仔细看了一下文档,原来RV32M1芯片默认从RISC-V核启动,如果 ...
- mssql 无法启动调试器 数据为空_织女星开发板启动模式修改——从ARM M4核启动
织女星开发板启动模式修改--从ARM M4核启动 前言 刚开始玩织女星开发板的时候,想先从熟悉的ARM核入手,连上Jlink,打开MDK版本的Demo程序,编译OK,却检测不到芯片,仔细看了一下文档, ...
最新文章
- CISCO路由器的恢复方法
- 招银网络笔试java_最新!!招银网络科技Java面经,整理附答案
- 积极向上,努力工作,提高能力,提高战斗力,保持热情,保持创业热情。
- Go 的 Contex 是线程安全的吗?
- leetcode 190 python
- .net 获取xml里面的值_Java-XML技术
- vscode过滤pyc文件
- JUnit4教程+实践
- 交通标志识别系统(TSR)
- ERP企业管理系统与CRM客户关系管理系统集成套路
- 中华传统文化网页作业报告
- html5怎么唤起支付宝支付,H5唤起支付宝支付
- 随记 C#读取TXT文件乱码
- 《Effective Java》读书笔记五(枚举和注解)
- Android工作日志
- ubuntu20 从wine安装到微信3的使用(解决微信乱码、无法输入)
- GlassFish主配置文件domain.xml介绍
- 系统设定工具(网络、打印机)与硬件侦测
- 少儿编程Scratch学习教程5--基本操作(二)动画例子
- DANN:利用神经网络算法评估变异位点的有害程度
热门文章
- ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象...
- Jquery学习笔记:获取jquery对象的基本方法
- mysql中的innodb_flush_log_at_trx_commit参数的意义
- APScheduler —— Python化的Cron
- ZOJ 3471 压缩状态DP
- Unity3D Input按键系统
- ASP.NET AJAX + JSON 实现对象调用
- 继承练习 :开发一个系统时 	需要对员工进行建模 员工包含3个属性 姓名 工号 工资 功能 work
- if 需求:小于或等于18未成年,小于或等于30青年人,其余都是老年人
- sqlmap报错注入