2017-01-06 8 views
-2

Мне нужен способ отправить некоторые данные в ucontroller через Trace32. Я слышал, что это возможно, но я не знаю, с чего начать.
То, что я на самом деле пытаюсь сделать, - запустить кусок кода на UC-контроллере Aurix TC297 для выполнения некоторых измерений (время выполнения, оперативная память и т. Д.). Этот кусок кода на самом деле является фильтром Калмана, который требует ввода вектора структур, который я тоже отправляю с компьютера через Trace32. Пожалуйста помоги !Как отправить данные на целевой трассировщик Trace32?

+1

Ответ на этот вопрос, вероятно, зависит от вашей конкретной цели и инструментальной цепочки - вы должны добавить эту информацию, если хотите надеяться на получение ответа, а не на голосование или закрытие. Вероятно, вам нужно будет найти в документации отладчика и/или инструментальной документации информацию, относящуюся к * "semihosting" * - это позволяет использовать I/O на хосте отладчика для цели. – Clifford

+0

Что значит «отправлять данные»? Просьба уточнить. – Lundin

+0

Извините за неопределенный вопрос. То, что я на самом деле пытаюсь сделать, - запустить кусок кода на Ucontroller Aurix TC297, чтобы выполнить некоторые измерения (время выполнения, оперативная память и т. Д.). Этот кусок кода на самом деле является фильтром Калмана, который требует ввода вектора структур, который я тоже отправляю с компьютера через Trace32. –

ответ

2

«Способ отправки некоторых данных в 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.
+0

Спасибо за ответ! Извините за неопределенный вопрос. То, что я на самом деле пытаюсь сделать, - запустить кусок кода на Ucontroller Aurix TC297, чтобы выполнить некоторые измерения (время выполнения, оперативная память и т. Д.). Этот кусок кода на самом деле является фильтром Калмана, который требует ввода вектора структур, который я тоже отправляю с компьютера через Trace32. Из того, что вы сказали, я хотел бы объявить мою структуру в коде, а затем установить ее с помощью Var.Set. Я никогда не использовал Trace32. Действительно ли Var.Set лучший способ пойти на то, чего я хочу достичь? –

+0

Var.Набор - это, безусловно, самое простое решение для установки вектора, объявленного как struct. Однако вам, вероятно, потребуется несколько вызовов Var.Set для инициализации всех элементов вашей структуры и всех структур вашего массива. Поэтому я рекомендую сделать это с помощью скрипта PRACTICE: Создайте текстовый файл с суффиксом «.cmm» и поместите туда все необходимые команды Var.Set. Вы также можете использовать цикл WHILE в этом скрипте или использовать команды OPEN/READ/CLOSE в скрипте для первого чтения данных из простого текстового файла. См. Также http://www.lauterbach.com/reference_card_web.pdf – Holger

+0

Спасибо святой Хольгер !! –