Перейти к содержанию
    

JTAG-программатор для прошивки приборов без компа

Всем здравствуйте.

 

Для прошивки приборов (на базе LPC2132) на производстве есть необходимость сделать JTAG-программатор, в котором бы уже находилась рабочая прошивка, и который бы самостоятельно (по нажатию допустим кнопки) записывал бы ее в контроллер (подключенный по JTAGу).

 

В связи с этими возник вопрос - "как?" :)

Скачал из инета "ARM7TDMI-S (rev 4) Technical Reference Manual" (ARM DDI 0234A), где вроде бы (все еще не осилил, только бегло просмотрел) описана работа с ядром ARM7TDMI-S через JTAG interface.

Однако, там в основном речь о том как "дебажить", и ничего не говорится о собственно записи программы во флэш контроллера.

 

Если кто нибудь делал что то подобное, или просто "в курсе дела", буду благодарен за советы.

 

 

П.С. В принципе, в качестве альтернативы можно "заливать" прошивку и по УАРТу через встроенный бутлоадер. Команды ISP и работа с встроенным загрузчиком достаточно подробно описаны в ЮзерМануале на чип, но тем не менее хотелось бы разобраться с JTAG-ом...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На PC достаточное количество программ, позволяющих залить firmware через jtag. В чем необходимость какого-то отдельного устройства? А в чем прелесть jtag для этих целей?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...но тем не менее хотелось бы разобраться с JTAG-ом...

Думаю, что никто не реализовывал у серийного девайса JTAG только для заливки оного неким прибором. Странно смотрится... Кроме того, внутренний Flash LPC Вы не запрограммируете ввиду отсутствия документированной процедуры программирования, которая в свою очередь осложняется 128битовостью и патентованым MAМ. Хотите, можно грузить в RAM программатор который будет через тот-же ISP шить...

Только зачем все эти приключения на свою голову?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На PC достаточное количество программ, позволяющих залить firmware через jtag. В чем необходимость какого-то отдельного устройства? А в чем прелесть jtag для этих целей?

 

На производстве народ не желает разбираться с каким бы то ни было firmware и напрягать мозг. Он хочет - подключил к разъему на плате некую коробочку, нажал кнопку - и она запрограммировала.

"А в чем прелесть jtag для этих целей?" - если честно не знаю, просто уже были сделаны подобные программаторы для AVR.

 

 

Хотите, можно грузить в RAM программатор который будет через тот-же ISP шить...

Только зачем все эти приключения на свою голову?

 

Не, таких приключений нам не надо :wacko: , остановимся наверное на прошивке по УАРТу через встроенный загрузчик :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...просто уже были сделаны подобные программаторы для AVR.

AVR? Автономно через JTAG?! Смысл??

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

AVR? Автономно через JTAG?! Смысл??

А смысл в том, что для серийного производства не надо иметь:

1. Комп + Венда + Программатор + Софт + еще какая-нибудь хрень == равносильно достаточно богато-укомплектованному рабочему месту.

2. Работника, который имеет соответствующий уровень подготовки.

 

При наличие коробочки с одной кнопочкой "Пуск" и двумя ЛЭДами (красный -- "брак", зеленый - "ОК") можно садить чела вообще без подготовки. Полчаса инструктажа и работа налажена. Разумеется, сложные вопросы программирования изделий такой работник-программаторист не должен решать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

сама идея программировать AVR чарез JTAG кажется странной.

Именно так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Именно так.

Да, согласен. Для программирования в AVR имеются более другие интерфейсы, которые намного проще JTAG. Действительно, странно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На производстве народ не желает разбираться с каким бы то ни было firmware и напрягать мозг. Он хочет - подключил к разъему на плате некую коробочку, ...

Коробочка ASUS900 Называется ;).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для прошивки приборов (на базе LPC2132) на производстве есть необходимость сделать JTAG-программатор, в котором бы уже находилась рабочая прошивка, и который бы самостоятельно (по нажатию допустим кнопки) записывал бы ее в контроллер (подключенный по JTAGу).

 

В связи с этими возник вопрос - "как?" :)

Скачал из инета "ARM7TDMI-S (rev 4) Technical Reference Manual" (ARM DDI 0234A), где вроде бы (все еще не осилил, только бегло просмотрел) описана работа с ядром ARM7TDMI-S через JTAG interface.

Однако, там в основном речь о том как "дебажить", и ничего не говорится о собственно записи программы во флэш контроллера.

В том же CrossWorks для разных процев имеются разные загрузчики, которые первоначально грузятся в RAM и запускаются, а уже потом эти загрузчики принимают команды/данные через JTAG (либо через определённые ячейки RAM, либо DCC(debug comms channel)) и производят запись во flash обращаясь либо к определённым регистрам проца, либо вызывая функции IAP как в LPC.

Посмотрите как написаны загрузчики, исходники там прилигаются.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Флудерам:Читайте вопрос внимательно и отвечайте по делу.

 

Программирование процессоров LPC213x возможно через интерфейс RS232 и через JTAG. При этом всегда происходит обращение к программе внутрисхемного программирования ISP, зашитой в процессор.

Для решения поставленной вами задачи можно воспользоваться исходными текстами программы H-JTAG, работающей через JTAG программатор Wiggler. Исходные тексты короткие и понятные, находятся по адресу: http://www.hjtag.com/download/jtagsrc.rar

Алгоритм работы JTAG описан в документе: http://www.hjtag.com/download/jtag.rar - текст на китайском языке, но диаграмма состояний, таблицы и коды возвратов - на английском.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Программирование процессоров LPC213x возможно через интерфейс RS232 и через JTAG. При этом всегда происходит обращение к программе внутрисхемного программирования ISP, зашитой в процессор.

Для решения поставленной вами задачи можно воспользоваться исходными текстами программы H-JTAG, работающей через JTAG программатор Wiggler. Исходные тексты короткие и понятные, находятся по адресу: http://www.hjtag.com/download/jtagsrc.rar

Алгоритм работы JTAG описан в документе: http://www.hjtag.com/download/jtag.rar - текст на китайском языке, но диаграмма состояний, таблицы и коды возвратов - на английском.

 

 

Спасибо, изучу. Хотя шить наверное все же будем через УАРТ...

 

Коробочка ASUS900 Называется ;).

 

Эээ, а можно чуть подробней? Поиск в гугле по такому запросу не дает ничего хоть отдаленно связанного с прошивкой МК....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я разрабатывал такой программатор.

Для SAM7S.

Через JTAG в режиме Embedded ICE.

В этом режиме процессор останавливается и ему "подсовываются" команды "считать/записать регистр/ячейку памяти".

Таким образом в оперативную память загружается флешлоадер и ему передается управление.

У меня была задача прошить только бутлоадер размером не более 8К.

По этому я ложил в оперативку флешлоадер и бутлоадер.

Затем управление передавалось флешлоадеру он стирал флеш и перепрошивал/проверял бут.

Затем заносил в ячейку код о успешном завершении.

Потом процессор останавливался и читалась ячейка памяти.

По результатам чтения зажигался светодиод годен/не годен

За основу был взят пример от АТМЕЛ для процессоров ARM без флеш.

Программатором выступал ATmega128.

Мне так и не удалось вовремя дописать программу, чтобы вначале процессор программировал PLL и переходил на работу от нее. Поэтому запись 8К занимает время около 30..45 секунд. Забыл сколько ;-)

Весь проект открыть не могу но кусок работы через Embedded ICE могу поискать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

текст на китайском языке, но диаграмма состояний, таблицы и коды возвратов - на английском.

Полно же документов на английском. И от самого ARM и здесь лежат стандарты. Это полный изврат смотреть только картинки в этом документе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...