Как получить код ARM к фактическому устройству, JTAG? Можно сделать импровизированный JTAG с Arduino?
хорошо, я немного запутался в программировании для процессоров ARM. Шквал вопросов время:
- как получить скомпилированный двоичный файл в процессор ARM?
- является JTAG нормальным методом (я думаю, что это то, что показало мое исследование ...)?
- это единственный способ?
- Если это действительный метод, как именно вы используете его таким образом?
- Если это не так, то что/как мне сделать это?
кроме того, может ли что-то вроде Arduino использоваться для создания экспромт интерфейс JTAG (если это действительно то, что необходимо для программирования устройств ARM). . .?
Я уже установил в QEMU для тестирования кода и тому подобного, но я не уверен, как приступить к фактическому получению моего кода в физическую область.
Я в основном спрашиваю: является ли JTAG программистом устройства мира ARM? Могу ли я подделать один с Arduino (Arduino wiggler клон о. о)? Если JTAG нет, то что есть, и могу ли я его подделать?
3 ответов
Это много вопросов! Вот несколько ответов:
Как получить скомпилированный двоичный файл в процессор ARM?
Он варьируется в зависимости от ряда факторов.
является JTAG нормальным методом (я думаю, что это то, что показало мое исследование ...)?
большинство (возможно, все) современных устройств на базе ARM включают интерфейс JTAG (возможно, за исключением программных ядер на FPGA). Это, как правило, могут быть использованы для программируйте на-обломок или внешнюю вспышку или нагрузку сразу в RAM. Интерфейс JTAG также является интерфейсом для отладки на чипе и трассировки функций. Некоторые устройства имеют дополнительные интерфейсы отладки / программирования, такие как рука SWD, например.
Это единственный способ?
в некоторых случаях. Некоторые микроконтроллеры на базе ARM включают загрузчик на чипе, который может поддерживать последовательный, USB, NAND Flash или другие средства программирования на чипе flash. Иногда такой объект очень прост и предназначен только для загрузки и запуска вторичного загрузчика, который выполняется из ОЗУ и выполняет фактическое Программирование flash.
Если это действительный метод, то как именно вы его используете?
с помощью соответствующего программного обеспечения хоста. JTAG-это очень простой интерфейс, и он не определяет какой-либо конкретной функциональности, а только средство передачи данных. Как правило, программное обеспечение программирования должно знать, что устройство, с которым он общается, и если флэш-память не находится на чипе, ему нужно будет знать флэш-устройство и его адрес. Часто toolchain развития будет включать поддержку для программирования прибора, специально для приборов с памятью на-обломока. Если вы используете GNU toolchain, вы можете использовать OpenOCD для программирования устройства и интерфейса отладчика GNU.
Если это не то, что/как мне это сделать?
Если ваша цель Детские кроватки, он может также включать загрузчик, уже позволяющий обновлять программное обеспечение через USB, последовательный или Ethernet, например.
кроме того, может ли что-то вроде Arduino использоваться для создания импровизированного интерфейса JTAG (если это действительно необходимо для программирования устройств ARM). . .?
вероятно, как я уже сказал, сам JTAG тривиально прост в реализации, проблема в том, чтобы сделать его совместимым с любым хост-программным обеспечением, которое вы будете использовать (или делать совместимое с ним программное обеспечение). Самый простой"вигглер" переходники JTAG снабжены используя I/O параллельного порта ПК-не особенно быстрый, но функциональный.
Я в основном спрашиваю: является ли JTAG программистом устройства мира ARM?
первоначально он был определен как интерфейс теста сканирования границ, но теперь широко использовано на большинств микропроцессорах и микроконтроллерах которые включают отладку на-обломока и программирование.
могу ли я подделать один с Arduino (Arduino wiggler Clone o.о)? Если JTAG нет, то что есть, и могу ли я его подделать?
речь не идет о "спуфинге", интерфейс может быть реализован многими способами. Как вы implemnt это в первую очередь влияет на скорость интерфейса. 16 МГц можно получить, но более простой параллельный порт wiggler, вероятно, выдержит не более 500 кГц. Это синхронный интерфейс, поэтому переменные тактовые частоты не являются проблема.
Olimex например: они даже имеют низкую стоимость " Wiggler " клон JTAG адаптер.
JTAG-самый простой способ попасть на доску для выполнения из ОЗУ или вспышки. Это инструмент отладки, который позволяет читать и писать все внутренние регистры процессора, а также контролировать все контакты ввода-вывода. Большинство современных процессоров поддерживают JTAG.
Это может быть так же просто, как параллельный портовый бит (wriggler) или дорогостоящее оборудование для сборки. Я бы купил небольшое USB-устройство, чтобы начать работу так один. этой парень использовал его с Pxa270 в.
все OpenOCD связанные go здесь. Это поможет с отладкой и программированием, и они перечисляют все виды простого оборудования JTAG.
заметка о процессоре, который у вас есть. Он, похоже, не пользуется широкой поддержкой. Возможно, вам стоит взглянуть на недорогую плату разработки с более широко поддерживаемым процессором.
Я не могу помочь вам конкретно, но я работаю с оружием. Это с компиляторами и компоновщиками ARM и тестированием с отладчиками, специально разработанными для устройства, а затем код мигает на носители, которые устройство запускает изначально.
поэтому вам понадобится способ передачи информации на носитель, который может работать на вашей ладони, или вам понадобится эмулятор программного обеспечения для тестирования. Хотел бы я знать больше о Palm, но я больше на стороне разработки игр :) Похоже, JTAG может быть своего рода эмулятором x86, поэтому я, вероятно, начну там.