Мне нужен способ отправить некоторые данные в ucontroller через Trace32. Я слышал, что это возможно, но я не знаю, с чего начать.
То, что я на самом деле пытаюсь сделать, - запустить кусок кода на UC-контроллере Aurix TC297 для выполнения некоторых измерений (время выполнения, оперативная память и т. Д.). Этот кусок кода на самом деле является фильтром Калмана, который требует ввода вектора структур, который я тоже отправляю с компьютера через Trace32. Пожалуйста помоги !Как отправить данные на целевой трассировщик Trace32?
ответ
«Способ отправки некоторых данных в ucontroller через Trace32» немного расплывчато. Существуют различные возможности в зависимости от того, что вы на самом деле пытаетесь достичь, а также могут зависеть от используемого семейства процессоров и целевой ОС. Во всяком случае один из следующих может работать:
- Просто писать некоторые исходные данные для целевой памяти может быть достигнуто с помощью команды
Data.Set
. - Для переноса большого количества данных (или даже целого приложения) из файла в целевую память команды Data.LOAD могут быть правильным выбором. Например.
Data.LOAD.Binary
команда для необработанного двоичного файла. - Чтобы установить переменные в приложении или даже инициировать массивы данных в стиле C, используйте команду
Var.Set
. - Для записи данных в флэш-память NOR или флэш-память onchip вам понадобится команда
FLASH.AUTO
в дополнение к ранее упомянутым командам (после объявления флэш-памяти TRACE32). - Чтобы записать данные в NAND, SPI или другую серийную флеш-память, вероятно, вам следует использовать команду
FLASHFILE.Set
(после инициализации системы программирования FLASHFILE). - Для передачи данных от TRACE32 к вашей цели при запуске ЦПУ вам может потребоваться правильно настроить
SYStem.MemAccess
и использовать префикс класса доступа к памяти «E».
.Data.Set E:<addr> <data>
илиVar.Set %E <expression>
. - Вы можете использовать
FDX
для двунаправленной передачи данных между отладчиком и запущенным целевым приложением. - Чтобы включить целевое приложение для открытия и чтения файлов с компьютера под управлением TRACE32, вам необходимо скомпилировать ваше приложение с подходящим кодом для полуохвата и инициировать полуохость в TRACE32 с командой
TERM.GATE
.
Спасибо за ответ! Извините за неопределенный вопрос. То, что я на самом деле пытаюсь сделать, - запустить кусок кода на Ucontroller Aurix TC297, чтобы выполнить некоторые измерения (время выполнения, оперативная память и т. Д.). Этот кусок кода на самом деле является фильтром Калмана, который требует ввода вектора структур, который я тоже отправляю с компьютера через Trace32. Из того, что вы сказали, я хотел бы объявить мою структуру в коде, а затем установить ее с помощью Var.Set. Я никогда не использовал Trace32. Действительно ли Var.Set лучший способ пойти на то, чего я хочу достичь? –
Var.Набор - это, безусловно, самое простое решение для установки вектора, объявленного как struct. Однако вам, вероятно, потребуется несколько вызовов Var.Set для инициализации всех элементов вашей структуры и всех структур вашего массива. Поэтому я рекомендую сделать это с помощью скрипта PRACTICE: Создайте текстовый файл с суффиксом «.cmm» и поместите туда все необходимые команды Var.Set. Вы также можете использовать цикл WHILE в этом скрипте или использовать команды OPEN/READ/CLOSE в скрипте для первого чтения данных из простого текстового файла. См. Также http://www.lauterbach.com/reference_card_web.pdf – Holger
Спасибо святой Хольгер !! –
Ответ на этот вопрос, вероятно, зависит от вашей конкретной цели и инструментальной цепочки - вы должны добавить эту информацию, если хотите надеяться на получение ответа, а не на голосование или закрытие. Вероятно, вам нужно будет найти в документации отладчика и/или инструментальной документации информацию, относящуюся к * "semihosting" * - это позволяет использовать I/O на хосте отладчика для цели. – Clifford
Что значит «отправлять данные»? Просьба уточнить. – Lundin
Извините за неопределенный вопрос. То, что я на самом деле пытаюсь сделать, - запустить кусок кода на Ucontroller Aurix TC297, чтобы выполнить некоторые измерения (время выполнения, оперативная память и т. Д.). Этот кусок кода на самом деле является фильтром Калмана, который требует ввода вектора структур, который я тоже отправляю с компьютера через Trace32. –