ARM Linux内核启动要求

发布者:RadiantJourney最新更新时间:2016-08-01 来源: eefocus关键字:ARM  Linux内核  启动要求 手机看文章 扫描二维码
随时随地手机看文章
这篇文章英文原版“ARM Linux Kernel Boot Requirements”,是ARM Linux内核的维护者Russell King写的。在此我将其简易的翻译成中文,方便大家学习下。

原版:http://www.arm.linux.org.uk/developer/booting.php

Author: Russell King
Initial date: May 18, 2002

Revision: 1 - 17 September 20042 - 30 September 2004

 

为了启动ARM Linux,首先,你需要一个bootloader,它是一个很小的程序(在内核运行之前启动)。bootloader的第一阶段作用就是初始化各种硬件设备,最后,就是调用内核,并且将第一阶段的各种参数传递给内核。

  本质上将,bootloader程序应提供(最小限度)如下几个方面:

1、设置和初始化化RAM

2、初始化一个串口

3、检测机器类型

4、设置内核启动需要的标记列表

5、调用内核镜像

 

1、设置和初始化RAM

现有的bootloader:强制性的(必须的)

新的bootloader:强制性的(必须的)

bootloader被用来去找到并初始化所有内核将用于非易失性数据存储系统中使用的内存。它完成那些动作都是在机器依赖的方式下完成的。(它可能采用内部算法来自动定位和分类所有的RAM,或者它可能采用特定机器的RAM的相关知识,或者任何其它的、设计者认为合适的方法)。

2、初始化一个串口

现有的bootloader:可选的,推荐使用的

新的bootloader:可选的,推荐使用的

bootloader在这个过程应该以初始化、使能一个串口设备为目标。这使得内核的串行驱动程序自动检测哪一个串口应该被用来作为内核的控制台。(一般用于调试或者通信的目的)。

可供选择的,通过特定的串口标记列表,bootloader可以向内核传递诸如“console=”相关的参数,还可以传递一些串口格式的参数,比如在linux/Documentation/kernel-parameters.txt中描述的。

3、检测机器ID

现有的bootloader:可选的

新的bootloader:强制性的(必须的)

bootloader必须创建和初始化内核标记列表。一个有效的标记列表开始于ATAG_CORE这个标记,结束于ATAG_NONE,ATAG_CORE可能会是空的,或者也可能不是。一个空ATAG_CORE标记的大小被设置为'2' (0x00000002),ATAG_NONE这个标记的大小必须设置为0。

任何号码的标记都可以放置在这个标记列表中。但是,重复的标记是否附加到前面的标记所携带的信息中,或者它是否会取代完整的信息,这些都是不确定的。

The boot loader must pass at a minimum the size and location ofthe system memory, and root filesystem location,因此,最小的标记列表如下:

 

	+-----------+
base ->	| ATAG_CORE |  |
	+-----------+  |
	| ATAG_MEM  |  | increasing address
	+-----------+  |
	| ATAG_NONE |  |
	+-----------+  v
这个标记列表应该存放在系统的RAM中。

 

这个标记列表必须放置在一块内存区中,这块内存区内核既不能解压,临时的文件系统也不能覆盖它。一般推荐的这个内存位置为RAM的第一个16KB大小处。

5、调用内核镜像

现有的bootloader:强制性的(必须的)

新的bootloader:强制性的(必须的)

bootloader在调用内核的时候提供了连个选项。如果zImage镜像存储在Flash中,并且它被正确的链接为从Flash中启动,那么,bootloader直接从Flash调用zImage就是合法的(有效的)。

zImage还可能放置在系统的RAM(RAM的任何位置)中,并且在那里被调用。请注意,内核使用内核镜像下的16KB RAM来存放页表。所以,这个页表推荐放置在RAM的第32KB处。

在上述的两种情况下,必须满足以下条件:

●CPU 寄存器设置

  ★ r0=0;

  ★ r1=机器ID(上述第三步中发现的)

  ★ r2=标记列表在RAM的物理地址

●CPU 模式

  ★ 所有的中断必须禁用

  ★ CPU必须设置为SVC模式(操作系统保护模式),

● 高速缓存、MMUs

  ★ 关MMU(内存映射)

  ★指令缓存可以设为开或者关

  ★ 必须关数据缓存,并且其中不能含有“脏数据”

● 设备

   ★ 不响应DMA设备

● bootloader通过直接跳转到内核镜像的第一条指令来最终实现内核的调用。

关键字:ARM  Linux内核  启动要求 引用地址:ARM Linux内核启动要求

上一篇:ARM初始化程序分析
下一篇:ARM-Thumb 过程调用标准

推荐阅读最新更新时间:2024-03-16 15:02

arm芯片的浮点运算
微软MSDN上关于ARM芯片浮点运算的资料 勿使用浮点运算 ARM 处理器并不支持浮点运算 (Floating Point Math)。所有的浮点运算都是在浮点运算模拟器上进行,因此特别缓慢。需要浮点运算的函式,常要耗费数千个循环才能执行完毕。这就是为何游戏开发时,通常都使用定点 (Fixed Point) 格式的运算。定点运算实际上是使用整数,但指定固定数目的位元做為数值的分数部份。就好像是指定某一数字,其千位数以下為分数。若要表示 0.500,只要乘以 1000,便得到 500 这个数值。 比较困难的部份,是开发人员必须随时想像这个隐形的小数点。加法与减法比较没有问题: 500 + 500
[单片机]
Exosite/ARM携手提供极致安全物联网解决方案
远景科技(Exosite)宣布与ARM携手合作为安全的产品开发提供完整的解决方案。 两家公司目前将Exosite的企业级物联网云端平台Murano,以及用于物联网设备管理的可扩展式解决方案 ARM mbed Cloud进行整合。 该组合产品为客户提供了通过标准化、安全的芯片到云端设备管理解决方案及垂直解决方案模板与物联网平台功能可简化并加速连网产品开发。 ARM的物联网业务销售及市场营销副总裁 Michael Horne表示,以可信赖的方式将数据从连网设备安全地传输到云端是加速物联网导入的关键,对许多OEM客户而言是一大挑战。 ARM和Exosite Murano云端平台间的合作,为客户提供了一种简化、便捷的方式进行联网产品与设备
[半导体设计/制造]
基于ARM的数字调压控制系统设计详解
内容摘要:随着电子信息技术和半导体技术的深入发展,嵌入式系统的应用日趋广泛,在控制领域之中更多的使用了高性能微处理器,以满足各方面越来越多的控制应用需求。基于ARM嵌入式平台的数字调压控制系统,克服了传统上以旋钮或滑变式变阻器对交流电压进行模拟控制的弊端。本系统以嵌入式技术为基础,在嵌入式平台上利用ARM微处理器实时控制数模信号的转换,以控制正弦波调压模块对交流电压的大小调节。本文中通过对本系统的实际测试,验证了数字调压控制系统的功能特性,并且定量测试得出了本系统可以实现对交流电压进行线性调节的结论。数字调压控制系统可作为对电压的智能调节装置应用于家庭、医疗及工业自动化等领域,并且具有调节精度高、调节线性度好,易于操作等特性
[单片机]
基于<font color='red'>ARM</font>的数字调压控制系统设计详解
ARM与联华电子达成最新的28HPC POP工艺合作
ARM 宣布,从即日起全球晶圆专工领导者联华电子(UMC)的28纳米28HPCU工艺可采用ARM Artisan 物理IP平台和ARM POP IP。 此举将扩大ARM在 28纳米IP的领先地位,使得ARM的生态合作伙伴能够通过所有主要的晶圆代工厂获得最广泛的28纳米基础IP。该全面性平台包括标准元件库(standard cell libraries)和记忆编译器(memory compilers)以及POP技术,可支持获业界广泛采用的64位ARM Cortex -A53,以及应用于超过10亿部手机的高能效ARM Cortex-A7。 ARM物理设计事业部总经理Will Abbey表示: 对于越来越多要求低功耗的应用来说
[半导体设计/制造]
采用1GHz ARM Cortex-A8 的 Sitara微处理器单元
日前,德州仪器 (TI) 宣布推出两款采用 1GHz ARM Cortex-A8 的 Sitara 微处理器单元 (MPU) AM3715 与 AM3703,其更快的系统响应时间与启动时间以及更长的电池使用寿命可为开发人员提供极大的便利。这些 MPU 可满足各种应用需求,如便携式数据终端、便携式医疗设备、家庭与楼宇自动化、导航系统、智能显示屏以及人机接口 (HMI) 工业应用等。AM3703 适用于不需要图形功能的应用。AM3715 可提供比前代 Sitara 器件高 2 倍的图形性能,支持流畅复杂的 3D 渲染、完美的视觉效果以及增强型图形用户界面 (GUI) 等功能。AM3715 与 AM3703 均可将 ARM 性能提
[嵌入式]
采用1GHz <font color='red'>ARM</font> Cortex-A8 的 Sitara微处理器单元
安森美推出首款ARM内核MCU
应用于高能效电子产品的首要高性能硅方案供应商安森美半导体(ON Semiconductor,美国纳斯达克上市代号:ONNN)推出用于精密测量及监测的混合信号微控制器(MCU新系列)的首款产品Q32M210。高集成度Q32M210设计用于便携感测应用,基于ARM Cortex-M3处理器构建而成,独特地结合了高精度性能、可预测工作及优异的电源能效。 高精度感测 Q32M210特别设计用于要求高精度的便携感测应用。这器件集成了2个16位模数转换器(ADC)、高精度电压参考、3个10位数模转换器(DAC)和32位内核。超低噪声(ADC)提供真正的16位性能,不同于非线性和噪声可能减少有效位数的常规转换器。 可预测工作
[单片机]
FARO Platinum Arm 在卡车厂焊装车间工件测量上的应用
一汽解放汽车有限公司(简称一汽解放公司)成立于2003年1月18日,是中国第一汽车集团公司以原第一汽车厂主体专业厂为基础,按照“1、2、3、3”的核心竞争力标准(即一个开发中心,采购和销售两个网络,焊装、涂装和总装三大工艺以及发动机、底盘、变速箱三大总成),以一汽技术中心为依托重新组建的中重型载重车制造企业,是一汽集团公司的全资子公司。 一汽解放公司的主导产品是解放系列品牌的中重型系列载重汽车。该系列产品现在具有从5吨到30吨的普通载货汽车、自卸车、牵引车、半挂车、搅拌车、邮政车等500多个品种。一汽的服务理念是“用户第一”,而赢得用户的关键就是靠质量说话,找到先进的质控手段成为现代制造工业检测的主流要求。 卡车厂焊装车间的典型
[测试测量]
基于ARM嵌入式系统的RFID驱动程序设计
RFID具有读取速度快、读取距离远、储存信息量大、标签上数据可加密、使用寿命长、工作环境适应性强等多种优点,已经在各领域广泛应用 。 将RFID技术与嵌入式系统相结合,将射频识别模块嵌入到嵌入式系统中,在嵌入式Linux下通过设计驱动程序实现射频模块的收发功能。嵌入式RFID系统增加了RFID技术的通用性和可移植性,丰富了嵌入式系统通信接口外设功能,提升了嵌入式技术在无线通信领域的发展空间。 当前的嵌入式系统中并不支持RFID系统,所以要进行硬件和软件两方面的扩展。硬件方面主要根据nRF905无线收发器的电气特性进行接口扩展,利用基于ARM9嵌入式平台的扩展口对nRF905进行控制;软件方面利用Linux内核良好的移植性和
[单片机]
基于<font color='red'>ARM</font>嵌入式系统的RFID驱动程序设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved