开机自检

时间:2009-05-03 14:17:16

标签: c++ c operating-system hardware bios

了解POST以及如何设计和编码POST的好地方?我是一名C ++程序员,对这个术语非常感兴趣。

由于

5 个答案:

答案 0 :(得分:3)

您可能需要查看coreboot的代码,这是一个在许多不同类型的硬件上运行的免费软件(开源)BIOS项目。

答案 1 :(得分:2)

您可以结帐OpenBIOS项目。

他们拥有关于大量开源BIOS /固件实现的信息。 作为开源,您可以从svn获取代码或在线阅读所有这些代码。

答案 2 :(得分:2)

BIOS?这在嵌入式世界中并不常见,人们仍在编写POST的地方。通常,它们在OS本身启动之前发生,或者在OS启动时发生。

目标是确定设备是否可以运行,以降级模式运行,还是应该发出故障信号。典型的顺序是测试CPU和XIP闪存,然后是内存,固定硬件,然后是可选硬件。您定义了一系列测试。测试具有启动功能和检查功能。启动功能开始测试;检查轮询以查看结果是否已经可用。测试具有依赖性,测试控制器启动依赖性已经过的那些测试(CPU和RAM是特殊情况,如果它们被破坏,那么拥有一个不错的测试控制器是不可行的。)

正如您可以从CPU和RAM测试中推断出的那样,您没有C ++的奢侈品。你甚至不能假设你可以使用所有的C.在POST的第一部分,你甚至可能没有堆栈(!)

答案 3 :(得分:2)

开源EFI BIOS,包含文档和规范(学习的好方法):

https://www.tianocore.org/

  

背景2004年6月英特尔   宣布将发布   其下一个“基础代码”   生成固件技术 - a   PC BIOS的继任者 - 在   今年晚些时候的开源许可证。   基础代码,由...开发   英特尔作为项目代码的一部分命名   Tiano,是英特尔的首选   实施“可扩展的   固件接口(EFI)   规格。要发布的代码   包括基金会的核心   代码以及驱动程序开发   套件。跟进它   意图将代码公开   来源,英特尔与...合作   Collabnet,行业领导者   提供工具和服务   支持开源计划,以支持   为这项工作创建一个社区。   这种伙伴关系的结果就是这样   开源网站。

     

因为有更多的项目   基于EFI的工作与   基金会代码,决定   发布EFI Shell应用程序和   EFI自我认证测试(SCT)   项目开源社区。

答案 4 :(得分:1)

POST(开机自检)是Bios的一部分,编写POST但不是BIOS的其他部分,看起来确实是一项奇怪的任务。 处理器制造商网站的文档部分将是BIOS编程的良好开端。我记得很久以前写过80186 BIOS和POST,我只使用英特尔规格。

顺便说一句,你将在汇编程序中执行此操作,而不是使用C ++。