Карта памяти для RTOS - PullRequest
       44

Карта памяти для RTOS

0 голосов
/ 02 марта 2012

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

Любые идеи, которые могут помочь мне отладить несколько сбоев, связанных с памятью для встроенной системы, будут полезны.

Ответы [ 4 ]

4 голосов
/ 02 марта 2012

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

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

Детали действительно зависят от того, какую встроенную систему вы строите. Если вы предоставите более подробную информацию, люди могут дать лучшие ответы.

2 голосов
/ 08 марта 2012

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

Карта памяти также описывает, как вы собираетесь выделять средства на ограниченные ресурсы, такие как ОЗУ, ПЗУ или Flash, при проектировании системы.

Например, если запущено несколько задач, ОЗУ может быть отображено так, чтобы у каждой задачи была своя собственная выделенная область ОЗУ.

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

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

2 голосов
/ 03 марта 2012

Я не уверен, что понимаю вопрос.Похоже, вы предполагаете, что «карта памяти» является чем-то уникальным для встраиваемых систем или что это материальный программный компонент.Это ни то, ни другое;это просто описание схемы использования памяти приложением.

Все приложения будут иметь карту памяти независимо от платформы, разница в том, что обычно во встроенной системе приложение связано как единый монолитный объект, так что результирующий макет памяти относится ко всей системе, а неотдельный процесс, как в приложении на платформе GPOS.

Это компоновщик и скрипт компоновщика, который определяет отображение памяти, и ваш компоновщик сможет выводить файл отчета карты, который описывает макет и распределениеприменяется.Это справедливо для встраиваемых и настольных приложений независимо от ОС или архитектуры.

0 голосов
/ 18 сентября 2014

Карта памяти - это расположение памяти системы. Он присутствует как во встроенных системах, так и в обычных приложениях. Хотя он присутствует в обычных приложениях, его использование хорошо ценится во встроенных системах из-за системных ограничений.

Карта памяти управляется с помощью сценариев компоновщика или командных файлов компоновщика. Он отображает ресурсы, такие как флэш-память или внутреннее ОЗУ (L1P, L1D, L2, L3) или внешнее ОЗУ (DDR) или ПЗУ или периферийные устройства (порты, последовательный порт, параллельный порт, USB и т. Д.) Или регистры определенных устройств или порты ввода-вывода с соответствующими фиксированными адресами. в пространстве памяти системы.

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

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

Карта памяти также может помочь в определении общей памяти, которая может играть ключевую роль в многопоточных приложениях, а также в многоядерных приложениях.

Сбои могут быть отлажены путем обратной трассировки адреса сбоя и сопоставления его с памятью системы, чтобы получить общее представление о возможной библиотеке или объекте, вызывающем проблему.

...