QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1333|回复: 0

嵌入式设备上的 Linux

[复制链接]
发表于 2004-4-29 17:13:37 | 显示全部楼层 |阅读模式
引导装载程序通常是在任何硬件上执行的第一段代码。在象台式机这样的常规系统中,
通常将引导装载程序装入主引导记录(Master Boot Record,(MBR))中,或者装入 Li
nux 驻留的磁盘的第一个扇区中。通常,在台式机或其它系统上,BIOS 将控制移交给引
导装载程序。没有 BIOS 的嵌入式设备上解决这个问题有两种常规技术:专用软件和微
小的引导代码(tiny bootcode)。专用软件可以直接与远程系统上的闪存设备进行交互
并将引导装载程序安装在闪存的给定位置中。闪存设备是与存储设备功能类似的特殊芯
片,而且它们能持久存储信息 — 即,在重新引导时不会擦除其内容。
这个软件使用目标(在嵌入式开发中,嵌入式设备通常被称为目标)上的 JTAG 端口,
它是用于执行外部输入(通常来自主机机器)的指令的接口。JFlash-linux 是一种用于
直接写闪存的流行工具。它支持为数众多的闪存芯片;它在主机机器(通常是 i386 机
器 — 本文中我们把一台 i386 机器称为主机)上执行并通过 JTAG 接口使用并行端口
访问目标的闪存芯片。当然,这意味着目标需要有一个并行接口使它能与主机通信。Jf
lash-linux 在 Linux 和 Windows 版本中都可使用,可以在命令行中用以下命令启动它
:Jflash-linux
某些种类的嵌入式设备具有微小的引导代码 — 根据几个字节的指令 — 它将初始化一
些 DRAM 设置并启用目标上的一个串行(或者 USB,或者以太网)端口与主机程序通信
。然后,主机程序或装入程序可以使用这个连接将引导装载程序传送到目标上,并将它
写入闪存。在安装它并给予其控制后,这个引导装载程序执行下列各类功能:
初始化 CPU 速度
初始化内存,包括启用内存库、初始化内存配置寄存器等
初始化串行端口(如果在目标上有的话)
启用指令/数据高速缓存
设置堆栈指针
设置参数区域并构造参数结构和标记(这是重要的一步,因为内核在标识根设备、页面
大小、内存大小以及更多内容时要使用引导参数)
执行 POST(加电自检)来标识存在的设备并报告任何问题
为电源管理提供挂起/恢复支持
跳转到内核的开始
嵌入式设备上一些流行的并可免费使用的 Linux 引导装载程序有 Blob、Redboot 和 B
ootldr
工具链由一套用于编译、汇编和链接内核及应用程序的组件组成
Binutils — 用于操作二进制文件的实用程序集合。它们包括诸如 ar、as、objdump、
objcopy 这样的实用程序。
Gcc — GNU C 编译器。
Glibc — 所有用户应用程序都将链接到的 C 库。避免使用任何 C 库函数的内核和其它
应用程序可以在没有该库的情况下进行编译。'
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-21 23:00 , Processed in 0.043080 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表