Кто из практически писавших - не подскажете процедуру: что требуется и где можно это скачать-купить для разработки своего модуля? Про EDK с tianocore.org - понятно, а что ещё?
Поддерживает архитектуры IA-64, x86, x86_64.
Внимание я пробовал только с IA-64 (Itanium)-машинкой.
Сейчас лень доставать, вспоминать, но там все ОЧЕНЬ просто.
В ридми описано. Позволяет девелопить на обычном C, компиляет
соответственно твикнутым gcc. Все что отличается, так это имя
процедуры точки входа, efi_main() или как-то так
Кстати, под ia64 в риалтайме никак не поотлаживаешь, без загрузки
в родную среду, tiancore не умеет ia64 трогать. Максимум - вывод
objdump'а в виде итаниумного ассемблера, все
Вот и задание, напиши в качестве модуля интерактивный отладчик
2 goose:
Я не пробовал gnu-efi. А в чем выигрыш от его использования? EDK так же написан на Си, в спеке описаны все его функции. Билдить под конкретную платформу микрософтовскими или интеловскими компиляторами и отлаживать все-равно нужно с конкретным железом. Года два назад я пытался найти симулятор для разразботки БИОСа, но ничего не нашел - когда приходит новое железо, то симулятора для него точно еще никто не написал. Так что остается только In-Target режим для отладки, и хорошо когда есть ITP.
19 Фев 2009 - 14:49 goose
2 ТоварищЪ:
А я и не говорил про конкретную выгоду.
Я описал специфическую ситуацию.
Я игрался на Itanium, и мне поставить туда бесплатный дистрибутив GNU/Linux с доступными хотя и слишком упрощенными утилитами было куда проще чем поставить Win2003 и ждать когда у него исчерпается триал (про обходные пути молчу). Это глупая отмазка.
А настоящая в том что MS VC++ насколько я знаю не существует в нативном виде под ia64-архитектуру. Покрайней мере мне его достать не удалось. Для работы понадобится отдельно компилятор на Itanium'ной машине и мостик, чтобы можно было управлять процессом неспосредственно из IDE (MS VC++, но на x86-машине).
Т.к. ни о какой интерактивной отладке или просто проверке работы приложения без загрузки в среду ia64efi - такой набор точно не дал бы никаких преимуществ. Все что можно было себе позволить - листинг ассемблера.
Есть такая студия с ia64, но по большему счету все-равно какой компилятор ей подсунуть x86, ia64 или ARM. Скомпилировать можно все что душе угодно, другое дело отладка. А что gnu-efi имеет интерактивный отладчик ia64 или о чем речь?
1 Мар 2009 - 12:44 goose
2 ТоварищЪ:
Речь зашла в тупик
> А что gnu-efi имеет интерактивный отладчик ia64
Я уже говорил, конечно нет.
Более того даже интерактивная отладка во многих случаях не помогла, если бы такая и была бы воплощена.
Потому что в основном что свои модули что чужие чаще нужны для работы с конкретным железом. А т.к. документация у той же HP закрыта на такие вещи, и сам ничего не отреверсишь, то и толку нет.
Подниму тему. Ситуация такая: Не сочтите за глупость, но не могли бы вы мне объяснить как пользоваться исходниками EFI? Дело в том что сигнатурный поиск выдает только файлы с объявлениями структур и дефайнов... а где код?
Короче говоря, ее мы смогли обойти, но довольно радикальный способом, поэтому если кто нибудь знает что является причиной подскажите пожалуйста.
2. Не разрешимая, на ней сейчас стоим.
Если радикально разобраться с файлом GenCRC32Section то вместо него ошибка будет ссылаться на GenDepex, короче так будет до конца всех перечисленных файлов, далее опять компилим и получаем:
Конфигурация системы:
WinXP sp3 (На самом деле не зависит от ОС, пробовали и на 7 и на разных sp ХР)
Visual Studio 2003 .Net (аналогичные ошибки с VS2010).
Что не ясно в переводе "expanded command line .... too long"?
P.S. Подозреваю, среда компиляции криво настроена, путей к include в командной строке явно перебор.
Если бы было все так просто. Дело в том что это ошибка переходит от одного файла к другому. Т.е. я ее исправляю и она теперь ссылается на другой файл. Без "expanded command line .... too long" вылезает ошибка
, а далее тупик. Ладно, это я собирал TianoEDK, а тут попробовал Интеловоской.
После некоторого шаманства, EDK от Intel заработала и закомпилила мне все что было указано.
Но тут встаёт вопрос, что делать дальше? У меня есть EFI совместимый модуль, есть образ, я умею вклеивать модуль в образ, который корректно распознаётся BIOSPаtcher, а как объяснить оболочке, что этот модуль надо запустить? Ведь должно быть типа таблицы модулей или они как то вызываются последовательно или еще что.
Спасибо.
Инженеры из Phoenix Tech сделали очень хороший Wiki ресурс по UEFI: wiki.phoenix.com/wiki/index.php/UEFI
Очень удобно - вся информация "под рукой".
Если есть слюникс, то все еще проще.
gnu-efi.sourceforge.net/
Поддерживает архитектуры IA-64, x86, x86_64.
Внимание я пробовал только с IA-64 (Itanium)-машинкой.
Сейчас лень доставать, вспоминать, но там все ОЧЕНЬ просто.
В ридми описано. Позволяет девелопить на обычном C, компиляет
соответственно твикнутым gcc. Все что отличается, так это имя
процедуры точки входа, efi_main() или как-то так
Кстати, под ia64 в риалтайме никак не поотлаживаешь, без загрузки
в родную среду, tiancore не умеет ia64 трогать. Максимум - вывод
objdump'а в виде итаниумного ассемблера, все
Вот и задание, напиши в качестве модуля интерактивный отладчик
2 goose:
Я не пробовал gnu-efi. А в чем выигрыш от его использования? EDK так же написан на Си, в спеке описаны все его функции. Билдить под конкретную платформу микрософтовскими или интеловскими компиляторами и отлаживать все-равно нужно с конкретным железом. Года два назад я пытался найти симулятор для разразботки БИОСа, но ничего не нашел - когда приходит новое железо, то симулятора для него точно еще никто не написал. Так что остается только In-Target режим для отладки, и хорошо когда есть ITP.
2 ТоварищЪ:
А я и не говорил про конкретную выгоду.
Я описал специфическую ситуацию.
Я игрался на Itanium, и мне поставить туда бесплатный дистрибутив GNU/Linux с доступными хотя и слишком упрощенными утилитами было куда проще чем поставить Win2003 и ждать когда у него исчерпается триал (про обходные пути молчу). Это глупая отмазка.
А настоящая в том что MS VC++ насколько я знаю не существует в нативном виде под ia64-архитектуру. Покрайней мере мне его достать не удалось. Для работы понадобится отдельно компилятор на Itanium'ной машине и мостик, чтобы можно было управлять процессом неспосредственно из IDE (MS VC++, но на x86-машине).
Т.к. ни о какой интерактивной отладке или просто проверке работы приложения без загрузки в среду ia64efi - такой набор точно не дал бы никаких преимуществ. Все что можно было себе позволить - листинг ассемблера.
Есть такая студия с ia64, но по большему счету все-равно какой компилятор ей подсунуть x86, ia64 или ARM. Скомпилировать можно все что душе угодно, другое дело отладка. А что gnu-efi имеет интерактивный отладчик ia64 или о чем речь?
2 ТоварищЪ:
Речь зашла в тупик
> А что gnu-efi имеет интерактивный отладчик ia64
Я уже говорил, конечно нет.
Более того даже интерактивная отладка во многих случаях не помогла, если бы такая и была бы воплощена.
Потому что в основном что свои модули что чужие чаще нужны для работы с конкретным железом. А т.к. документация у той же HP закрыта на такие вещи, и сам ничего не отреверсишь, то и толку нет.
Пример? Доступ к настройкам fan'ов компьютера.
Подниму тему. Ситуация такая: Не сочтите за глупость, но не могли бы вы мне объяснить как пользоваться исходниками EFI? Дело в том что сигнатурный поиск выдает только файлы с объявлениями структур и дефайнов... а где код?
При сборке EFI выпадает 2 ошибки:
в файле makefile и содержит следующей текст:1. Разрешимая, сслылается на строку
Короче говоря, ее мы смогли обойти, но довольно радикальный способом, поэтому если кто нибудь знает что является причиной подскажите пожалуйста.
2. Не разрешимая, на ней сейчас стоим.
Если радикально разобраться с файлом GenCRC32Section то вместо него ошибка будет ссылаться на GenDepex, короче так будет до конца всех перечисленных файлов, далее опять компилим и получаем:
Помогите разобраться.
Конфигурация системы:
WinXP sp3 (На самом деле не зависит от ОС, пробовали и на 7 и на разных sp ХР)
Visual Studio 2003 .Net (аналогичные ошибки с VS2010).
Спасибо.
Что не ясно в переводе "expanded command line .... too long"?
P.S. Подозреваю, среда компиляции криво настроена, путей к include в командной строке явно перебор.
А кому счас легко...
Если бы было все так просто. Дело в том что это ошибка переходит от одного файла к другому. Т.е. я ее исправляю и она теперь ссылается на другой файл. Без "expanded command line .... too long" вылезает ошибка
, а далее тупик. Ладно, это я собирал TianoEDK, а тут попробовал Интеловоской.
После некоторого шаманства, EDK от Intel заработала и закомпилила мне все что было указано.
Но тут встаёт вопрос, что делать дальше? У меня есть EFI совместимый модуль, есть образ, я умею вклеивать модуль в образ, который корректно распознаётся BIOSPаtcher, а как объяснить оболочке, что этот модуль надо запустить? Ведь должно быть типа таблицы модулей или они как то вызываются последовательно или еще что.
Спасибо.
Отправить комментарий