Подтвердить что ты не робот

Как получить код ARM для реального устройства, JTAG? Можно ли сделать Impromptu JTAG с Arduino?

Хорошо, я немного запутался в программировании для процессоров ARM. Заклинание вопросов:

  • Как получить скомпилированную двоичную копию в ARM-процессор?
  • Является ли JTAG обычным методом (я думаю, это то, что показали мои исследования...)?
  • Это единственный метод?
  • Если это допустимый метод, как именно вы используете его таким образом?
  • Если это не так, то что мне делать/как это сделать?

Кроме того, можно создать нечто вроде Arduino для создания интерфейса impromptu JTAG (если это действительно то, что необходимо для программирования устройств ARM).,.

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

Я в основном спрашиваю: является ли JTAG устройством-программистом мира ARM? Могу ли я подделать один с Arduino (Arduino wiggler Clone o.o)? Если JTAG нет, что есть, и могу ли я его подделать?

О... И мне может понадобиться лучшее объяснение того, как работает JTAG.

Теперь за небольшую справочную информацию:
У меня есть старое устройство Palm (LifeDrive), у которого есть процессор Xacale PXA270. Похоже, что никакого активного развития сообщества больше не происходит, и у меня мало пользы для этого, поэтому я просто хочу играть с ним. В принципе, это может быть хорошим способом пообщаться с тем, что по существу является массой датчиков, и другими различными входами и выходами, а также привыкнуть к ARM Assembly.

Не стесняйтесь говорить мне, если я принимаю неправильный подход, но по крайней мере предлагаю альтернативы (хотя я довольно настроен на беспорядок с LifeDrive в частности, если я просто хотел бы играть со встроенным программированием, я бы сделал это на мой Ардуино.)

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

4b9b3361

Ответ 1

Это много вопросов! Вот несколько ответов:

Как получить скомпилированный двоичный файл в ARM-процессор?

Он варьируется в зависимости от ряда факторов.

Является ли JTAG обычным методом (я думаю, это то, что показали мои исследования...)?

Большинство (возможно, все) современных устройств на базе ARM включают в себя интерфейс JTAG (возможно, soft-core на FPGA). Обычно это можно использовать для программирования встроенной или внешней вспышки или загрузки непосредственно в ОЗУ. Интерфейс JTAG также является интерфейсом для встроенных функций отладки и трассировки. Некоторые устройства имеют дополнительные интерфейсы отладки/программирования, например ARM SWD.

Это единственный метод?

В некоторых случаях. Некоторые микроконтроллеры на базе ARM включают в себя встроенное ПЗУ с загрузчиком, которое может поддерживать последовательный, USB, NAND Flash или другие средства программирования встроенной вспышки. Иногда такое средство очень простое и предназначено только для загрузки и запуска дополнительного загрузчика, который выполняется из ОЗУ и выполняет фактическое программирование вспышки.

Если это допустимый метод, как именно вы используете его таким образом?

Используя соответствующее хост-программное обеспечение. JTAG - очень простой интерфейс, и он не определяет какую-либо конкретную функциональность, а только средство передачи данных. Как правило, программному обеспечению необходимо знать, с каким устройством оно взаимодействует, и если флэш-память не встроена, ему необходимо знать флеш-устройство и его адрес. Часто инструментарий разработки включает поддержку программирования устройств, особенно для устройств с встроенной памятью. Если вы используете инструментальную цепочку GNU, вы можете использовать OpenOCD как для программирования устройства, так и для интерфейса отладчика GNU.

Если это не то, что это/как это сделать?

Если ваша цель - COTS, она может включать загрузчик, который уже позволяет обновлять программное обеспечение по USB, serial или Ethernet для пример.

Кроме того, может быть что-то вроде Arduino использоваться для создания импровизированного интерфейса JTAG (если это действительно то, что необходимо для программирования ARM-устройств).,.

Возможно, поскольку я сказал, что сам JTAG тривиально прост в реализации, проблема заключается в том, что он совместим с любым используемым программным обеспечением хоста (или совместимым с ним программным обеспечением). Простейший " wiggler" Адаптеры JTAG реализованы с использованием параллельного порта ввода/вывода ПК - не особенно быстрые, но функциональные.

Я в основном спрашиваю: является ли JTAG устройством-программистом мира ARM?

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

Могу ли я подделать один с Arduino (Arduino wiggler Clone o.o)? Если JTAG нет, что есть, и могу ли я его подделать?

Это не вопрос "спуфинга", интерфейс может быть реализован многими способами. Как вы имплементируете его, прежде всего, влияет на скорость интерфейса. 16 MHz может быть достигнута, но более простой параллельный порт-вигглер, вероятно, будет поддерживать не более 500 кГц. Это синхронный интерфейс, поэтому переменные тактовые частоты не являются проблемой.

О... И мне может понадобиться лучшее объяснение того, как работает JTAG.

Я уверен, что я не могу сделать лучше, чем объяснение в Википедии JTAG. Но для реализации на вашем целевом устройстве вы должны обратиться к руководству по спецификации детали/к спецификации.

У меня есть старое устройство Palm (LifeDrive), у которого есть XScale PXA270, который я считаю.

"Верить", вероятно, недостаточно; вам нужно будет знать. Являются ли контакты JTAG даже выставлены на доске? Обычно на потребительском продукте будет отсутствовать фактический разъем JTAG. Даже если он есть, он, скорее всего, будет проприетарным коннектором и коннектором (сам JTAG не определяет ни одного, и для ARM определено несколько, но то, что вы можете найти на доске разработки, может не включаться в конечный потребительский продукт.

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

Вероятно, лучше получить плату разработки с открытыми выводами и интерфейсами ввода/вывода. На потребительском продукте могут отображаться только те контакты, которые требуются целевому приложению, и даже тогда они могут быть недоступны, если они подключены к BGA. Кроме того, XScale находится на сложном конце устройств ARM (падая примерно между ARM9 и ARM11), если вы не знакомы с такими устройствами и вещами, такими как управление синхронизацией PLL, управление и синхронизация SDRAM, а также конфигурация MMU, вы можете посмотреть на что-то более простое. Не только это, но так как Flash и RAM будут отключены, вам потребуются детали адресного сопоставления памяти и других внешних устройств, а также необходимые данные синхронизации SDRAM. Будучи потребительским устройством, такие детали могут быть недоступны, кроме как при обратном проектировании.

Теперь, говоря о более раннем комментарии о загрузчиках, Palm предоставляет установочное обновление для пользователя на ПК для устройства, поэтому оно должно иметь загрузчик. Однако вам понадобятся детали формата файла изображения и протокола передачи данных. Они вряд ли будут опубликованы и, вероятно, сложно перепроектировать.

Если бы я просто хотел играть со встроенным программированием, я бы сделал это на моем Arduino.)

Существует множество недорогих плат разработки ARM. Попробуйте Olimex например: у них даже есть низкая стоимость "Wiggler" клон JTAG-адаптера.

Ответ 2

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

Он может быть таким же простым, как бит бит-бит (извивальник) или дорогостоящее аппаратное обеспечение сборки. Я бы купил небольшое USB-устройство, чтобы начать работу следующим образом один. Этот парень использовал его с PXA270.

Для всех OpenOCD, связанных с go здесь. Это поможет с отладкой и программированием, и они перечисляют все виды простого оборудования JTAG.

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

Ответ 3

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

Таким образом, вам понадобится способ флэш-информации на носителе, который может запустить ваш Palm, или вам понадобится эмулятор программного обеспечения для тестирования. Мне жаль, что я больше не знаю о Palm, но я больше на стороне разработки игр:) Похоже, что JTAG может быть каким-то эмулятором x86, поэтому я, вероятно, начну там.