Самотестирование при включении - PullRequest
2 голосов
/ 03 мая 2009

Есть ли хорошее место, чтобы узнать о POST и о том, как его спроектировать и написать? Я программист на C ++ и довольно озадачен этим термином.

Спасибо

Ответы [ 5 ]

3 голосов
/ 03 мая 2009

Возможно, вы захотите взглянуть на код coreboot , проекта BIOS с бесплатным программным обеспечением (с открытым исходным кодом), который работает на множестве различных типов оборудования.

2 голосов
/ 05 июня 2009

EFI BIOS с открытым исходным кодом, с документацией и спецификациями (хороший способ изучения):

https://www.tianocore.org/

Фон В июне 2004 года Intel объявил, что выпустит «Учредительный кодекс» его следующего Технология прошивки поколения - это преемник BIOS компьютера - под лицензия с открытым исходным кодом позже в этом году. Кодекс Фонда, разработанный Intel как часть кода проекта с именем Тиано, предпочтительнее Intel реализация "Расширяемого Интерфейс прошивки (EFI) Спецификация. Код, который будет выпущен включает в себя ядро ​​фонда Код, а также разработка драйверов Комплект. Выполнить его намерения выпустить код как открытый источник, Intel сотрудничает с Collabnet, лидер отрасли в предоставление инструментов и услуг для поддержать инициативу с открытым исходным кодом, чтобы создать сообщество для этого усилия. Результатом этого партнерства является Сайт с открытым исходным кодом.

Так как есть больше проектов, которые Работа на основе EFI параллельно с Кодекс фонда было решено выпустить приложение EFI Shell и тест EFI Self Certification (SCT) проект для сообщества open source.

2 голосов
/ 04 мая 2009

BIOS? Это не так часто встречается во встроенном мире, где люди все еще пишут сообщения POST. Как правило, они происходят до запуска самой ОС или, альтернативно, при запуске ОС.

Цель состоит в том, чтобы выяснить, может ли устройство работать, работать в ухудшенном режиме или должно сигнализировать о неисправности. Типичная последовательность - это тестирование процессора и флэш-памяти XIP, затем памяти, фиксированного оборудования и затем дополнительного оборудования. Вы определяете серию тестов. Тест имеет функцию запуска и функцию проверки. Функции запуска запускают тест; проверка опроса, чтобы увидеть, если результат уже доступен. У тестов есть зависимости, и тестовый контроллер запускает те тесты, для которых эти зависимости пройдены (процессор и ОЗУ являются особыми случаями, если они не работают, иметь хороший тестовый контроллер не представляется возможным).

Поскольку вы можете сделать вывод из тестов ЦП и ОЗУ, вы не можете позволить себе роскошь C ++. Вы даже не можете предположить, что можете использовать все C. Во время первой части POST у вас может даже не быть стека (!)

2 голосов
/ 03 мая 2009

Вы можете оформить заказ на OpenBIOS проект.

У них есть информация о многочисленных реализациях BIOS и прошивок с открытым исходным кодом. Будучи открытым исходным кодом, вы можете получить код из SVN или прочитать его в Интернете для всех из них.

1 голос
/ 03 мая 2009

POST (Power On Self Test) является частью Bios, и написание POST, но не других частей BIOS, действительно кажется странной задачей. Раздел документации на сайте производителя процессоров будет хорошим началом для программирования BIOS. Я помню, как писал BIOS 80186 и POST давно, и я работал исключительно со спецификациями Intel.

И, кстати, вы будете делать это в Ассемблере, а не в С ++.

...