Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: JTAG-программатор для MSM6290 (ARM926EJ-S)
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Harvester
Я занимаюсь допиливанием устройства на базе чипа MSM6290 (Qualcomm).
Для отладки и программирования используется JTAG-отладчик Trace32 от Lauterbach (точнее, его китайский клон).
И вот наконец возник вопрос - как прошивать устройство на производстве. Использовать для прошивки отладчики очень не хочется. Во-первых они стоят как небольшие самолеты, а во-вторых, это просто неправильно.
Кто-нибудь может подсказать, есть ли в природе такие JTAG-программаторы, которыми можно было бы зашивать конечное firmware в сабж?
Raven
Если вы являетесь разработчиком устройства, то все карты у вас в руках. Практически {любой дешевый JTAG кабель + OpenOCD + GDB + собственные скрипты} решают вашу задачу. Программная составляющая может быть и немного иной (можно соорудить свою сборку, используя указанные компоненты за основу и срезав некоторые углы).

Кажется, есть и альтернативные открытые низкоуровневые компоненты (например, построить аналогичную конструкцию вокруг H-JTAG (RDI-сервер) - это, кажется любимый способ вивисекторов мобилок).
jcxz
Есть-ли в природе вообще или для вашего конкретного процессора?
Если первое - да. Например - JLink
toweroff
Harvester,
погуглите форум, не так давно пробегала аналогичная тема - JTAG player или что-то около того. Можно разобрать алгоритм работы JTAG, сделать свой девайс, во внутренней flash хранить собственно прошивку (или во внешней закриптовать)

Но, имея на руках подобный девайс и прямые руки в арсенале, можно сделать обратное устройство - оно будет вести себя как эмулятор порта JTAG контроллера и скушает эту прошивку, после чего можно перенести ее на большого брата или еще куда. Подобные устройства я делал, но контроллеры были попроще - AT89Sxxx
Так что это хоть и удобно (в смысле устройство программирования на производстве), но тоже не панацея - дел не так много и никакой взлом кристалла не нужен
Harvester
Цитата(Raven @ Oct 8 2013, 20:25) *
Если вы являетесь разработчиком устройства, то все карты у вас в руках. Практически {любой дешевый JTAG кабель + OpenOCD + GDB + собственные скрипты} решают вашу задачу. Программная составляющая может быть и немного иной (можно соорудить свою сборку, используя указанные компоненты за основу и срезав некоторые углы).

Кажется, есть и альтернативные открытые низкоуровневые компоненты (например, построить аналогичную конструкцию вокруг H-JTAG (RDI-сервер) - это, кажется любимый способ вивисекторов мобилок).

Слова вроде знакомые, а смысл непонятен. wacko.gif laughing.gif Нельзя ли чуть поподробнее? rolleyes.gif
Raven
Цитата(Harvester @ Oct 9 2013, 18:02) *
Слова вроде знакомые, а смысл непонятен. wacko.gif laughing.gif Нельзя ли чуть поподробнее? rolleyes.gif

Пожалуйста. Начнем по порядку. Подтвердите / прокомментируйте / спросите по пунктам:

1) Раз вы разработчик, то и аппаратная, и программная части устройства вам известны. Не нужно что-то рыть в интернете, реверс-инженерить, строить догадки о структуре и т.п.

2) Lauterbach - дорогой инструмент. Но он - всего лишь JTAG-кабель для доступа к On-Chip Debugging (OCD) функциональности. Есть дешевые кабели, и весь вопрос - лишь в программной поддержке всего этого дела.

3) OpenOCD - open source проект GDB сервера для (в первую очередь) ARM CPU. Есть поддержка практически всех встречающихся в природе JTAG кабелей (дешевых и доступных - уж точно). Для такой широко известной штуки, как ARM926EJ-S, все уже исхожено вокруг и около, и кроме поддержки в собственно OpenOCD, наверняка можно найти примеры развертывания на этом базисе различного инструментария. В том числе, возможно, пример решения вашей задачи.

4) Далее пишете загрузчик и скрипт(ы) для OpenOCD & GDB, которые будут вам прошивать ваше firmware.

Вопросы?
Harvester
Цитата(Raven @ Oct 9 2013, 19:05) *
Пожалуйста. Начнем по порядку. Подтвердите / прокомментируйте / спросите по пунктам:

1) Раз вы разработчик, то и аппаратная, и программная части устройства вам известны. Не нужно что-то рыть в интернете, реверс-инженерить, строить догадки о структуре и т.п.

2) Lauterbach - дорогой инструмент. Но он - всего лишь JTAG-кабель для доступа к On-Chip Debugging (OCD) функциональности. Есть дешевые кабели, и весь вопрос - лишь в программной поддержке всего этого дела.

3) OpenOCD - open source проект GDB сервера для (в первую очередь) ARM CPU. Есть поддержка практически всех встречающихся в природе JTAG кабелей (дешевых и доступных - уж точно). Для такой широко известной штуки, как ARM926EJ-S, все уже исхожено вокруг и около, и кроме поддержки в собственно OpenOCD, наверняка можно найти примеры развертывания на этом базисе различного инструментария. В том числе, возможно, пример решения вашей задачи.

4) Далее пишете загрузчик и скрипт(ы) для OpenOCD & GDB, которые будут вам прошивать ваше firmware.

Вопросы?

1) В общем да.
2) Ну, можно конечно назвать его кабелем. Но, в принципе, вы правы - это аналог того же J-LINK.
3)
4) Т.е. вы предлагаете взять существующие скрипты для Trace32, разобраться, что они делают и написать аналогичные, но уже для OpenCD и имеющихся у меня отладчиков?
Я никогда с OpenOCD&GDB не работал, но буду пробовать
Raven
Цитата(Harvester @ Oct 10 2013, 12:42) *
2) Ну, можно конечно назвать его кабелем. Но, в принципе, вы правы - это аналог того же J-LINK.

Ну, "кабелем" я его назвал, сделав кальку с англоязычного USB JTAG cable (так оно обычно называется). Для англо-ребят так: выглядит как кабель - значит, cable sm.gif. То, что там еще электроника не на один килогейт может быть внутри - дело третьестепенное. Выбор кабеля(ей) для этой задачи - это пересечение списка поддерживаемых OpenOCD и ваших предпочтений. Навскидку я бы посоветовал что-нибудь на базе FTDI'ных чипов - например, от Olimex'a ARM-USB-OCD.
Olimex ARM support review
Olimex ARM JTAG products

А вообще есть даже дешевле варианты кабелей на базе FTDI. Чуть ли не всяк кому не лень делает.

Цитата(Harvester @ Oct 10 2013, 12:42) *
4) Т.е. вы предлагаете взять существующие скрипты для Trace32, разобраться, что они делают и написать аналогичные, но уже для OpenCD и имеющихся у меня отладчиков?

Нет. Для ARM926EJ-S уже практически все сделано в OOCD, вам только нужно все это освоить и приладить свою специфическую часть в виде: 1) программы-загрузчика-прошивальщика; 2) скрипта или чего-то вроде этого для загрузки этого кода в процессор, его запуска, upload'а ему в руки бинарного файла с прошиваемым кодом и т.п. контроля за процессом. Плюс ко всему, ARM - открытая архитектура, в том числе в части debug-подсистемы. Изучив документацию, вы будете понимать, что происходит в OOCD и как вам все это обустроить для своих нужд.

Цитата(Harvester @ Oct 10 2013, 12:42) *
Я никогда с OpenOCD&GDB не работал, но буду пробовать

Очень рекомендую хотя бы ознакомиться. Исходя из вашего описания задачи, это "то, что доктор прописал".
carver
2 Harvester мне кажется, что MSM6290 - достаточно древний и убогий чип,
который умеет туева туча боксов для програмирования мобил, ценой 100-150 баксов.
я в руках держал когда-то RIFF Box, думаю он должен уметь.
просто ван-баттон коробочка. тем более таблицу BB должна тоже уметь автоматом.

можете купить сами или даете "ребятам с феном" - вашу запрограмированую мобилу, на выходе получите ящик готовых.
если еще дадите мануал, шоб сами не сдували ваш проц и не искали jtag пины - будет вообще великолепно.

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


никогда не интересовался, но попробуйте на саппорте вашего MSM6290 - нажать кнопку Quick Search,
она ищет по мануалам и по кейсам на salesforse, тем более - вы же не один свои нанды програмите.
думаю у квалком аи трейнинг должен быть на ту тему.

ну и вам же нужно залитьт qcsbl+oemsbl, дальше софт - можно по USB менять скоко хочешь.


если не секрет, по чем клон t32 и как покупали ?
я в свое время искал, но вышло дешевлее купить нескоко б/у оригиналов с езернетом.
с адаптерами канешно сложнее под разные процы.

---------------
p.s. наверно еще можно 10баксовым jlink шить, через revskills
(раньше звалась qmat или psas, счас проект закрыт, софт выложен free)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.