Эльфийский файл BDM против обычного эльфийского файла - PullRequest
1 голос
/ 15 июля 2010

Какое преимущество имеет файл 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 dРаспределяется между отладчиком Trace32 и памятью ECM, так как один из форматов ELF выгоден друг другу, поскольку оба используются только для целей отладки.Обратите внимание, что когда речь идет о выпуске приложения / программного обеспечения для клиента, мы публикуем в формате FLS, который клиент вводит в свой ECM.

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

Ответы [ 3 ]

1 голос
/ 16 июля 2010

ОК, я попробую еще раз:

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

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

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

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

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

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

Это может помочьОбщая информация ELF: http://blog.ksplice.com/tag/elf/

0 голосов
/ 15 июля 2015

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

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

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

0 голосов
/ 15 июля 2010

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...