Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Программирование flash через JTAG
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
Andrey_L
Возник впрос следующего содержания:
Разрабатывается система из:
ядро - MPC823 (Freescale, PowerPC) + пара мегабайт flash-памяти (типа AM29LV320D) + SDRAM
возник вопрос как в эту flash что-нить записать - хотя бы загрузчик, что бы он потом забрал по RS232 основной код. Программатор не подходит - flash на этапе отладки нужно будет часто перепрошивать и панельки с микросхемами ставить на плате тоже нельзя. У MPC823 есть JTAG - возникла мысль программировать flash через JTAG - генерировать сигналы данных и записи с помошью JTAG вместо MPC823. Но вот одолевают сомнения возможно ли это или это кривое решение? Можно конечно поставить небольшую загрузочную flash в панельке (зашив её программатором) и грузиться с неё и зашить нужную flash. А потом снять загрузочную flash и грузиться откуда надо. Но может есть более красивое решение без панелек? Вот и возник вопрос про JTAG.... Или может ещё есть решения?
Artem-1.6E-19
Цитата(Andrey_L @ Dec 15 2006, 14:36) *
Вот и возник вопрос про JTAG.... Или может ещё есть решения?

JTAG может быть очень медленным. UART, на 115200 будет шить два мегабайта минуты три-четыре. Вы бы придумали что-то еще? К примеру на плате можно я думаю разместить небольшой разъем, на который поставить DATA-Flash атмеловскую, которую шить как-то по другому. Или может у вас есть какой-то еще разьем, USB или там Ethernet.
rezident
Не знаком с этим ядром потому может глупый вопрос, а из RAM код исполнять можно? Если можно, то лучше сначала грузить минимальный (начальный) загрузчик в RAM. И уже с помощью него загружать во Flash другой (нормальный) загрузчик.
У нас похожим образом в одном контроллере на 186-м реализовано. Изначально софта в контроллере нет никакого. Загружаем через JTAG начальный загрузчик с программной поддержкой записи во Flash в RAM Spartan2. 186-й исполняет этот код оттуда и прописывает загрузчик во Flash. Рестарт контроллера и дальше уже можно через RS-232 заливать тот софт, который требуется.
Andrey_L
Спасибо за советы.
В принципе можно попробовать заливать основной код и через Ethernet (есть такая возможность, правда программисту на порядок больше ковыряться придется чем при работе по RS232).
А всё таки - реально ли помощью JTAG'a записать во flash хотя бы начальный загрузчик? пробовал кто-нить?
iosifk
Цитата(Andrey_L @ Dec 18 2006, 09:16) *
Спасибо за советы.
В принципе можно попробовать заливать основной код и через Ethernet (есть такая возможность, правда программисту на порядок больше ковыряться придется чем при работе по RS232).
А всё таки - реально ли помощью JTAG'a записать во flash хотя бы начальный загрузчик? пробовал кто-нить?

Я "записал" это себе в план. Но флэшь еще никогда не шил через JTAG...
JTAG у меня сейчас работает от USB через DLP2232. Грузить FPGA им нельзя, а вот граничное сканирование - можно. А здесь и до прошивки флэша совсем недалеко.
Только у меня есть несколько вопросов:
Если я выдам на чип адрес+данные и все cs и wr активным низким уровнем, то сколько можно удерживать такое состояние. Ведь винда может запустить какую нибудь задачу, например проверку всех USB каналов или антивирус или еще чего. Флэшь - что с ней будет? Выдержит?
И второй вопрос - какой должен быть формат входного файла?
Если у кого есть примеры описания файлов - скажите где брали или киньте в почту...
В январе, если время будет - попробую...
Andrey_L
[quote name='iosifk' date='Dec 18 2006, 09:31' post='188271']
[quote name='Andrey_L' post='188266' date='Dec 18 2006, 09:16']
Только у меня есть несколько вопросов:
Если я выдам на чип адрес+данные и все cs и wr активным низким уровнем, то сколько можно удерживать такое состояние. Ведь винда может запустить какую нибудь задачу, например проверку всех USB каналов или антивирус или еще чего. Флэшь - что с ней будет? Выдержит?
И второй вопрос - какой должен быть формат входного файла?
[/quote]
А кто сказал что я собираюсь шить под виндой? smile.gif
Естественно только под DOS. Тут важна не столько длительность cs и wr, сколько стабильность посылки байт данных сектора на запись. Если чуть протормозить - flash думает что данных больше не будет и начинает записываться, а на место того что не приняла до размера сектора - записывает FFh. Под виндой такой стабильности не достичь.... Тем более писать не один сектор.....
А какая разница какого формата будет входной файл?
Скорее всего или bin или hex.....
xyzzy
Цитата(Andrey_L @ Dec 17 2006, 22:16) *
А всё таки - реально ли помощью JTAG'a записать во flash хотя бы начальный загрузчик? пробовал кто-нить?


Можно. Я при помощи BDI2000 (JTAG-дебуггер такой) совершенно замечательно заливаю ROM-image во флэш на системе с MPC8548 (PowerPC, Freescale). Если подходить консервативно, то скорость записи в районе 3Kb/s. В этом случае дебаггер сам лезет во флэш без участия процессора. Если поизвращаться и минимально проинициализировать проц/память то можно шить флэш со скоростью в районе 40Kb/s. В этом случае BDI2000, впрочем, жульничает - заливает данные и маленькую программку в память а потом эта уж программка заливает данные во флэш.

--Я
3.14
Попробую немного расписать в деталях сам механизм smile.gif
Регистр пограничного сканирования это по сути три регистра в одном, вход/выход/направление пина. Задвигате все это хозяйство, даете EXTEST команду, устанавливаются выходные пины, даете команду INTEST, выдвигаете защелкнутые входные пины.
Чтоб оценить получаемые времянки, найдите BSDL файл на Ваш проц, там указана длина граничного регистра и расписаны биты (не все пины могут им управлятся), например TQ144 имеет 100 двунвправленых пинов, чтоб сменить состояние пинов потребуется 100*3*1/20МГц(макс. частота JTAG) сек.
Хотя может чего и напутал, пару лет назад ковырялся wink.gif
cupertino
Программирование flash через JTAG - стандартная процедура, поддержанная ScanPlus Flash Programmer компании Corelis (см. http://www.corelis.com/products/Test_Software.htm).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.