Это много вопросов!Вот несколько ответов:
Как получить скомпилированный двоичный файл в процессор ARM?
Это зависит от ряда факторов.
Является ли JTAG нормальным методом (я думаю, именно на это указывает мое исследование ...)?
Большинство (возможно, все) современных устройств на базе ARM включают интерфейс JTAG (программные ядра).на ПЛИС возможно исключен).Обычно это можно использовать для программирования встроенной или внешней флэш-памяти или загрузки непосредственно в оперативную память.Интерфейс JTAG также является интерфейсом для функций отладки и трассировки на кристалле.Некоторые устройства имеют дополнительные интерфейсы отладки / программирования, например, ARM SWD.
Это единственный метод?
В некоторых случаях.Некоторые основанные на ARM микроконтроллеры включают встроенное ПЗУ загрузчика, которое может поддерживать последовательный интерфейс, USB, NAND Flash или другие средства программирования встроенной флэш-памяти.Иногда такое средство очень просто и предназначено только для загрузки и запуска вторичного загрузчика, который выполняется из ОЗУ и выполняет фактическое программирование флэш-памяти.
Если это допустимый метод, как именно вы его используете?таким образом?
Используя соответствующее программное обеспечение хоста.JTAG - это очень простой интерфейс, и он не определяет какую-либо конкретную функциональность, а только средство передачи данных.Как правило, программному обеспечению необходимо знать, с каким устройством оно обменивается данными, и если флэш-память не находится на кристалле, ему необходимо знать флэш-устройство и его адрес.Часто в набор инструментов разработки входит поддержка программирования устройств, особенно для устройств с встроенной памятью.Если вы используете цепочку инструментов GNU, вы можете использовать OpenOCD для программирования устройства и интерфейса отладчика GNU.
Если это не так, что / как мне сделатьсделать это?
Если ваша цель - COTS , она вполне может включать в себя загрузчик, уже позволяющий обновлять ПО, например, через USB, последовательный порт или Ethernet.
Кроме того, можно ли использовать что-то вроде Arduino для создания импровизированного интерфейса JTAG (если это действительно то, что нужно для программирования устройств ARM).,.?
Вероятно, как я уже говорил, сам JTAG тривиально прост в реализации, проблема в том, чтобы сделать его совместимым с любым программным обеспечением хоста, которое вы будете использовать (или сделать программное обеспечение совместимым с ним).Простейшие JTAG-адаптеры " wiggler " реализованы с использованием параллельного порта ввода-вывода ПК - не особенно быстро, но функционально.
Я в основном спрашиваю: является ли JTAG программистом устройства?мира ARM?
Первоначально он был определен как интерфейс проверки границы сканирования , но в настоящее время широко используется в большинстве микропроцессоров и микроконтроллеров, которые включают в себя отладку и программирование на кристалле.
Могу ли я подделать один с Arduino (Arduino wiggler Clone oo)?Если JTAG нет, что это такое, и могу ли я его подделать?
Это не вопрос "подмены", интерфейс может быть реализован многими способами.То, как вы это реализуете, в первую очередь влияет на скорость интерфейса.Можно достичь 16 МГц, но более простой вигглер с параллельным портом, вероятно, выдержит не более 500 кГц.Это синхронный интерфейс, поэтому переменные тактовые частоты не являются проблемой.
О ... И мне может понадобиться лучшее объяснение того, как именно работает JTAG.
Я уверен, что я не могу сделать лучше, чем объяснение в Википедии JTAG .Но для реализации на вашем целевом устройстве вы должны обратиться к справочному руководству / техническому описанию детали.
У меня есть старое устройство Palm ( LifeDrive ), которое имеет XScale PXA270 процессор, как мне кажется.
"Верить", вероятно, недостаточно; вам нужно будет знать Пины JTAG даже выставлены на плате? На потребительском продукте было бы обычным опустить фактический JTAG-разъем. Даже если он есть, он, скорее всего, будет проприетарным разъемом и распиновкой (сам JTAG не определяет ни того, ни другого, а определен для ARM, но то, что вы можете найти на плате разработки, может не быть включено в конечный потребительский продукт.
По сути, это может быть хорошим способом поиграться с тем, что по сути представляет собой массу датчиков и других разных входов и выходов, а также привыкнуть к языку ассемблера ARM.
Вероятно, лучше получить готовую плату для разработки с открытыми выводами ввода / вывода и интерфейсами. В потребительском продукте могут быть доступны только те контакты, которые требуются целевому приложению, и даже в этом случае они могут быть недоступны, если они подключены к устройствам BGA . Кроме того, XScale находится на сложном конце устройств ARM (приблизительно между ARM9 и ARM11 ), если вы не знакомы с такими устройствами и такими вещами, как управление часами PLL, управление SDRAM и время и конфигурация MMU, вы можете посмотреть на что-то более простое. Не только это, но и то, что и флэш-память, и оперативная память будут работать вне кристалла, вам потребуются подробные сведения об отображении адресов памяти и других внешних устройств, а также необходимые сведения о синхронизации SDRAM. Будучи потребительским устройством, такие детали могут быть недоступны, кроме как путем обратного инжиниринга.
Теперь, что касается более раннего комментария о загрузчиках, Palm предоставляет устанавливаемое пользователем обновление ROM для устройства, поэтому оно должно иметь загрузчик. Тем не менее, вам все равно потребуются детали формата файла изображения и протокола передачи данных. Они вряд ли будут опубликованы, и, вероятно, их трудно будет реконструировать.
если бы я просто хотел поиграть со встроенным программированием, я бы сделал это на своем Arduino.)
Существует множество недорогих плат разработки ARM. Попробуйте, например, Olimex : у них даже есть недорогой клоновый JTAG-адаптер Wiggler .