复位向量在现代处理器中的意义

时间:2013-02-22 18:23:25

标签: c assembly reset boot bios

我试图了解计算机的启动方式非常详细。

我遇到了两件令我更好奇的事情   1. RAM位于ROM的底部,以避免Z80处理器中的存储孔   2.使用复位向量,它将处理器带到ROM中的存储器位置,其内容指向处理器实际开始执行指令(POST指令)的实际位置(再次是ROM)。为什么这样?

如果您仍然无法理解我,此链接会简要解释一下, http://lateblt.tripod.com/bit68.txt

2 个答案:

答案 0 :(得分:1)

处理器逻辑通常是刚性且固定的,因此称为硬件。软件是可以改变,模塑等的东西,因此称为软件。

硬件需要启动一些方法,两种基本方法,

1)读取处理器内存空间中逻辑中硬编码的地址,该值是开始执行代码的地址

2)在逻辑中硬编码的地址是处理器开始执行代码的地方

当处理器本身与其他硬件集成时,任何东西都可以映射到任何地址空间。你可以把ram放在地址0x1000或0x40000000或两者。您可以将外设映射到0x1000或0x4000或0xF0000000或以上所有。它是系统设计人员的选择,也是工程师团队的组合。一个重要因素是一旦重置被关闭,系统将如何启动。由于其架构,处理器的引导是众所周知的。设计师经常选择两条路径:

1)根据处理器的引导方法将rom放入包含复位向量或入口点的内存空间(无论哪种架构都有第一个地址或第一个读取的地址块及其内容驱动处理器的启动)。该软件将代码或向量表或两者放在此ROM中,以便处理器启动并运行。

2)将ram放入内存空间,以便某些主机可以将程序下载到该ram中,然后在处理器上释放重置。然后处理器遵循其硬编码的引导过程并执行软件。

第一个是最常见的,第二个是在一些外围设备,鼠标和网卡以及类似的东西中找到的(例如,/ usr / lib / firmware /中的一些固件用于此)。

但最重要的是,处理器通常采用一种引导方法设计,这是一种固定方法,因此为该处理器编写的所有软件都可以符合这一种方法,而不必继续改变。此外,处理器在设计时并不知道其目标应用程序,因此需要通用解决方案。目标应用程序通常定义内存映射,处理器内存空间中的位置,以及该分配中的任务之一是该产品的引导方式。从那里编译和放置软件,使其符合处理器规则和产品硬件规则。

答案 1 :(得分:0)

它完全因架构而异。尽管核心可能想要这样做有几个原因。嵌入式内核(根据ARM和Microblaze的思路)倾向于在具有单个地址空间的片上系统机器中使用。这种体系结构可以在整个地方具有多个存储器,并且倾向于仅指示存储器的底部区域(即0x00)包含中断向量。然后允许程序员轻松指定从哪里启动。在Microblaze上,你可以在XPS中的任何地方附上记忆。

此外,它还可用于轻松支持引导加载程序。这些通常用作进行一些初始化的小程序,然后从无法简单访问的介质(例如USB或以太网)中获取更大的程序。在这些情况下,引导加载程序通常将自身复制到高内存,在其下方取出然后跳转到那里。复位向量只允许程序员绕过第一步。