Экспорт потока трассировки BMC через Trace32 - PullRequest
0 голосов
/ 28 марта 2019

Я работаю с двумя платформами HW, которые включают два процессора ARM:

  • Cortex-A15 и
  • Cortex-R5.

Я хотел бы экспортировать через Lauterbach Trace32 смешанную трассировку, состоящую из потока программы и значений BMC (счетчики производительности / счетчики производительности). Чтобы прояснить свои намерения, я приведу следующий синтетический пример:

Instruction | Cache Misses | ... |
------------+--------------+------
 0x1234     | 1            | 0
 0x1235     | 1            | 0
 0x1236     | 2            | 0 

Я попытался использовать следующие команды для правильной настройки трассировщика:

bmc.PMN0 DCMISS
bmc.export ON
bmc.trace ON
bmc.select PMN0

К сожалению, я не могу экспортировать трассу, содержащую установленный BMC. Я уже пробовал с некоторыми из команд trace.export, но мне это никогда не удавалось.

Кто-нибудь знает, как произвести такой след? Благодаря.

1 Ответ

1 голос
/ 01 апреля 2019

На Cortex-A и Cortex-R счетчики производительности (также называемые "Счетчики BenchMark (BMC)") обычно не могут передаваться через трассировку CoreSight.
(Кстати: некоторые Cortex-M могут экспортировать BMC через CoreSight ITM. Список этих процессоров приведен в этой таблице , столбец DWT).

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

Для выборки счетчиков производительности во время выполнения активируйте SNOOPer с помощью SNOOP.OFF и SNOOP.AutoArm ON и выберите счетчики BMC с помощью SNOOPer.Mode BMC. Просмотрите результаты с помощью SNOOPer.List.

Чтобы сохранить результаты на жестком диске для последующего анализа, вы можете использовать SNOOPer.SAVE * и перезагрузить его позже с помощью SNOOPer.LOAD *

...