Файл BDM elf против обычного файла elf

В чем преимущество файла BDM ELF по сравнению с обычным файлом ELF с точки зрения используемой памяти?

Я знаю следующее об обоих:

  1. Файл BDM ELF можно использовать для отладки с помощью любых инструментов отладчика, таких как Trace32, путем подключения JTAG. Обычный ELF-файл также можно использовать для целей отладки, при условии, что у нас есть соответствующий FLS-файл (Flash-файл), который необходимо прошить в область ПЗУ ECM.
  2. Файлы BDM ELF загружаются в область ОЗУ ECM (электронного модуля управления), тогда как обычные файлы ELF и соответствующие им файлы FLS загружаются в ПЗУ ECM.
  3. Файлы ELF (как BDM, так и обычные) не загружаются целиком в память ECM (я понял это из размера памяти ECM, которую мы используем для загрузки ELF, что в пересчете на КБ по сравнению с огромным размером ELF, выраженный в мегабайтах), некоторая часть файла ELF (такие символы, как типы, переменные, функции и т. д.) хранится в памяти Trace32.

Вышеизложенное было моим основным пониманием использования ELF, я знаю, что вы, люди, поможете мне исправить себя, если я что-то неправильно интерпретировал.

Я надеюсь понять, как содержимое файла BDM ELF распределяется между отладчиком Trace32 и памятью ECM, как один из форматов ELF выгоднее друг друга, поскольку оба используются только для целей отладки. Обратите внимание, что когда дело доходит до выпуска приложения/программного обеспечения для клиента, мы выпускаем его в формате FLS, который клиент прошивает в своем ECM.

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация, чтобы продолжить ответ на мой вопрос.


person wrapperm    schedule 15.07.2010    source источник


Ответы (3)


Хорошо, я попробую еще раз:

Как содержимое файла BDM ELF распределяется между отладчиком Trace32 и памятью ECM?

Файл ELF может содержать информацию об отладочных символах (относящую ячейки памяти и регистры к функциям и переменным), которую trace32 использует для облегчения отладки. Информация об этих символах хранится в файле trace32 и используется для декодирования вывода BDM с чипа (в основном значения регистров) и предоставления полезной информации помимо простой сборки.

Чем один из форматов ELF лучше другого, поскольку оба используются только для целей отладки?

Это зависит от вашего инструмента отладки и цепочки инструментов разработки. Как я уже сказал в своем другом ответе, ELF - это просто стандартный формат. Будет ли он использоваться для линейного программирования, зависит от того, что делает ваш инструмент разработки во время компоновки. Поскольку вы не говорите мне, какова ваша цепочка инструментов, я могу только строить догадки.

Если ваше устройство имеет плоскую модель памяти и встроенное ПЗУ (большинство 32-разрядных устройств с меньшим объемом памяти), то для программирования устройства необходим только один файл. Поскольку ОЗУ и внутренняя флэш-память адресуются одинаково, адрес просто должен соответствовать желаемому месту назначения.

Если, с другой стороны, у вас есть два места, где хранится ПЗУ (что, как я подозреваю, имеет место в вашем продукте), и они не адресованы одинаково, то могут потребоваться два файла. Это было бы так, если бы был ECU, который взаимодействовал с внешней микросхемой флэш-ПЗУ (или SD-картой или чем-то подобным). В этом случае для записи во внешнее хранилище потребуется отдельный образ, поскольку адреса, вероятно, будут перекрываться (ELF предполагает уникальный адрес для фрагмента данных). Таким образом, в вашем случае необходимы два файла ELF: один указывает настройку отладки, которая должна быть загружена в ОЗУ для запуска устройства в режиме отладки, другой указывает информацию о символах для ОС и другие данные, запрограммированные во внешней микросхеме флэш-памяти. Файлы FLS, вероятно, содержат информацию, которую программист использует для обращения к внешней флэш-памяти, отсутствующей в ELF, но это зависит от архитектуры (я не знаком с тем, как Nokia проектирует свое оборудование).

Это может помочь получить общую информацию об ELF: http://blog.ksplice.com/tag/elf/< /а>

person Adam Shiemke    schedule 16.07.2010

Способность BDM ELF состоит в том, чтобы просматривать изменения в ячейках памяти и отображаемых в памяти регистрах во время выполнения кода и без необходимости его остановки.

Используя BDM ELF, мы можем иметь аппаратные точки наблюдения или точки останова. Это полезно, так как вы можете остановиться на изменении значения, не влияя на скорость выполнения. Как только отладчик сломается, мы можем использовать метод «Отладка ядра и приложений вместе», чтобы точно определить, в какой именно строке это произошло.

Вы не можете устанавливать точки останова в пользовательских программах из отладчика BDM. Это связано с тем, что он вставляет инструкции «остановки», которые могут быть выполнены только кодом ядра. Драйвер BDM можно изменить, чтобы разрешить отладку пользовательских приложений через интерфейс BDM.

person Dinesh Goyal    schedule 15.07.2015

В вашем вопросе нет вопросительных знаков. Таким образом, я не уверен, что полностью отвечаю на то, что вы спрашиваете.

Эта информация в значительной степени получена из использования файлов ELF поверх BDM, а не из фактической документации:

ELF — это спецификация файла, поэтому все файлы ELF должны быть одинаковыми. Файл ELF создается компоновщиком и содержит информацию о символах, а также исполняемый код, организованный в разделы. Когда пользователь программирует ECM, отладчик/программист читает файл ELF, выбирает адреса секций и связанный с ними код, а затем записывает их по желанию.

Записывается ли исполняемый файл в ОЗУ или ПЗУ, зависит либо от адресов разделов в ELF (обычно настраиваемых через файл конфигурации, прочитанный компоновщиком), либо от настроек программиста, когда программа «запрограммирована». У большинства отладчиков есть возможность загрузить образ либо в ПЗУ, либо в ОЗУ. Единственная разница в образах программ — расположение кода и переменных.

В ситуации, которую вы описываете, ваш программист, похоже, не может вытащить исполняемые данные из файла elf. Я предполагаю, что ваш файл fls представляет собой файл необработанного изображения, который можно дословно записать на целевое оборудование.

person Adam Shiemke    schedule 15.07.2010
comment
Я думаю, что вы не знакомы с термином FLS-файл или расширением файла .fls... позвольте мне попытаться объяснить вам это на примере мобильных телефонов... - person wrapperm; 16.07.2010
comment
Файлы с расширением .FLS представляют собой программные флэш-файлы для использования с некоторыми мобильными телефонами Nokia. Цель "Flash" или, точнее, цель "Flashing" - изменить операционную систему или прошивку мобильного телефона. Операционная система мобильных телефонов не хранится на жестком диске, а хранится во «флэш-памяти» — энергонезависимой памяти компьютера, которую можно электрически стереть и перепрограммировать. Формат файлов .FLS может зависеть от программного обеспечения, используемого для создания определенной версии файла .FLS. Использование неправильного программного обеспечения может привести к повреждению операционной системы. Аналогичная концепция используется во всех ECM. - person wrapperm; 16.07.2010
comment
Все, что вы упомянули, абсолютно верно, и я осведомлен об упомянутой выше информации. Но мои вопросы так и остались без ответа. - person wrapperm; 16.07.2010