|
Программирование по JATG, не могу разобраться |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 20)
|
Mar 30 2007, 14:27
|
Частый гость
 
Группа: Свой
Сообщений: 188
Регистрация: 28-09-06
Из: Minsk
Пользователь №: 20 762

|
Добрый день здесь есть кое-что есть еще интересная книжка Использование интерфейса JTAG для отладки встраиваемых систем. Ключев А.О., Коровьякова Т.А., Платунов А.Е. // Изв. вузов. Приборостроение. — 1998. — Т 41, № 5. — С. 45–50. правда в электронном виде я ее не видел Или еще одна книжеца Embedded Systems Design ссылка
|
|
|
|
|
Mar 31 2007, 13:52
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 25-09-05
Из: Москва
Пользователь №: 8 922

|
Цитата(defunct @ Mar 30 2007, 18:36)  сорри за оффтоп,
Но, зачем это нужно? Ведь куда проще написать бутлоадер или взять готовый или не маяться с бутлоадером, а просто купить программатор. Естественно это не для домашних разработок.... Это для работы... Когда спаянная плата приходит с завода... с пустым кристаллом его надо запрограммировать и проверить работу всего устройства.... Все бы ничего, если плат было бы не больше трех десятков, а когда их сотни? Тут приходиться выкручиваться как-то по-другому... Отсюда и пошла настоящая проблема...
|
|
|
|
|
Mar 31 2007, 15:31
|

Частый гость
 
Группа: Участник
Сообщений: 80
Регистрация: 12-01-07
Из: Энергодар Украина
Пользователь №: 24 374

|
У меня вот тоже проблема возникла. Смонтировал и прошил Jtag Ice. Не инициализируется. Сигнал на 14 вывод AtMega16 (RXD) проходит, а с 15 вывода (TXD) нет. Там висит логическая 1. Проверил все напряжения на выводах, вроде бы всё нормально. Может плохо работает кварц на 7.3728 МГц? Подскажите где копать!!  Но когда мой контроллер ставишь на рабочую плату Jtaga, всё работает
Сообщение отредактировал Anjey_N - Mar 31 2007, 15:33
|
|
|
|
|
Mar 31 2007, 15:42
|
Профессионал
    
Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387

|
Может, CKOPT не поставил, а кварц такой, что ему действительно плохо? Ещё был один нюанс с питанием таргета - если таргет не подключен, то иногда нужно затянуть VREFT на общий резистором в пару кОм. Лучше вааще-то ссылать на вариант железа, а то говорим не совсем определенно. Я когда-то такое железо придумывал - http://www.onembedding.com/files/jtag_vit/ работают пока - только у меня 10 шт.
--------------------
aka Vit
|
|
|
|
|
Mar 31 2007, 16:27
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(DAndy_boy @ Mar 31 2007, 12:52)  Естественно это не для домашних разработок.... Это для работы... Когда спаянная плата приходит с завода... с пустым кристаллом его надо запрограммировать и проверить работу всего устройства.... Все бы ничего, если плат было бы не больше трех десятков, а когда их сотни? Ну дык коль так, почему бы просто не купить JTAG-ICE / MkII? Если у конторы нет денег чтобы купить отладчик за 50$, то можно сделать Evertool. http://www.siwawi.arubi.uni-kl.de/avr_proj...tool/index.htmlДа и идея не совсем понятна.. Какая разница сколько плат.. Хоть тысяча.. Отлаживаться программа МК будет на нескольких штуках, а все остальные будут просто клонами. Проверка должна вестись уже не через JTAG, а в конкретной системе, конкретными тестами, проверяющими функциональность устройства, а не МК.
|
|
|
|
|
Apr 1 2007, 16:09
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 25-09-05
Из: Москва
Пользователь №: 8 922

|
Цитата(defunct @ Mar 31 2007, 17:27)  Ну дык коль так, почему бы просто не купить JTAG-ICE / MkII? Если у конторы нет денег чтобы купить отладчик за 50$, то можно сделать Evertool. http://www.siwawi.arubi.uni-kl.de/avr_proj...tool/index.htmlДа и идея не совсем понятна.. Какая разница сколько плат.. Хоть тысяча.. Отлаживаться программа МК будет на нескольких штуках, а все остальные будут просто клонами. Проверка должна вестись уже не через JTAG, а в конкретной системе, конкретными тестами, проверяющими функциональность устройства, а не МК. Ты совершенно прав! Вот мне и поручили сделать такую систему. Которая не только програмирует камень, но и записывает туда серийный номер и проверяет всю железку в целом, используя различные тесты...
|
|
|
|
|
Apr 1 2007, 17:29
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 1-04-07
Пользователь №: 26 677

|
Цитата(DAndy_boy @ Mar 28 2007, 14:15)  Добрый день, господа. Помогите плиз. Пытаюсь написать программку для МК дабы с ее помощью программировать AVR (конкретно мегу128) через JTAG. На всякий случай советую посмотреть тут - http://www.purelogic.ru/programmator.htmlможно попробывать переделать этот дешево и сердито
|
|
|
|
|
Apr 1 2007, 17:56
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 29-08-05
Пользователь №: 8 044

|
На всякий случай советую посмотреть тут - http://www.purelogic.ru/programmator.htmlможно попробывать переделать этот дешево и сердито А где в Москве это продается ?
|
|
|
|
|
Apr 1 2007, 19:09
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(DAndy_boy @ Apr 1 2007, 15:09)  Ты совершенно прав! Вот мне и поручили сделать такую систему. Которая не только програмирует камень, но и записывает туда серийный номер и проверяет всю железку в целом, используя различные тесты... Много зависит от того что конкретно требуется проверять. Например, если устройство меряет ток, то тестовая система должна включать цепь из генератора тока, и прецизионного амперметра. Если устройство управляет светодиодным табло, то тестовая система должна включать - светодиодное табло, комп с которого посылаются тестовые рисунки и дядку, который будет смотреть соответствует ли посылаемое с компа и отображаемое на табло. Прошивку серийного номера, удобно зашивать в EEPROM средствами программы МК, по штатным протоколам вашего устройства, а не через JTAG...
|
|
|
|
|
Apr 1 2007, 21:07
|
Профессионал
    
Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387

|
Цитата Проошивку серийного номера, удобно зашивать в EEPROM средствами программы МК, по штатным протоколам вашего устройства, а не через JTAG... IMHO, серийный номер утройства не имеет никакого отношения к самой программе и очень в редких случаях может храниться в EEPROM - ему место только во FLASH (если хватает места и нет других супер вычурных пожеланий). Штатный протокол просто должен запросить у "программы" то, что она знает, где это оно лежит. Существет, правда, такое понятие, как серийный (как ни может показаться странным) номер программы и он никакого отношения к номеру устройства не имеет - храните где придётся.
--------------------
aka Vit
|
|
|
|
|
Apr 1 2007, 23:46
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(sensor_ua @ Apr 1 2007, 20:07)  IMHO, серийный номер утройства не имеет никакого отношения к самой программе. Согласен. Цитата и очень в редких случаях может храниться в EEPROM - ему место только во FLASH (если хватает места и нет других супер вычурных пожеланий). Штатный протокол просто должен запросить у "программы" то, что она знает, где это оно лежит. А вот тут все с точностью до наоборот. Номер устройства, это номер конкретного экземпляра устройства, с одной и той же прошивкой. Для того чтобы задать этот номер не нужно перекомпилировать программу. Поэтому он должен размещаться в памяти, которая не перетирается при смене прошивки - или в EEPROM или в области бутлоадера. Если его размещать в области бутлоадера, то 1. и программировать чип придется будлоадером во избежание стирания этого номера; 2. Бутлоадер придется править перекомпилировать или перелинковывать столько раз сколько всего серийных номеров устройств. С eeprom будет гораздо меньше мороки, т.к. достаточно просто запрограммировать фуз EESAVE. Цитата Существет, правда, такое понятие, как серийный (как ни может показаться странным) номер программы и он никакого отношения к номеру устройства не имеет - храните где придётся. А вот номер или правильней сказать "версия" программы - вшивается в код программы и соответсвенно размещается во FLASH.
|
|
|
|
|
Apr 2 2007, 00:58
|
Профессионал
    
Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387

|
2defunct Да не переворачивайте всё с ног на голову. Если девайс перешивается (наладчиком, например, каким-нибудь) то чхать на все изыски насчёт размещения серийного номера - оно без системы учёта на предприятии глубоко до фени. Прекладывать этот вопрос на программиста, нихрена не должного знать сколько девайсов и за какими номерами когда БУДЕТ выпущено, - полный бред. Механизмы прозрачны и действительно они требуют восстановления номера после стирания, но это производственный вопрос. У меня девайсы тестируются на одной программе - ТЕСТОВОЙ, а выпускаются в свет с конкретной, согласно заказу. И это НОРМАЛЬНО. А повредить ячейку в EEPROM завсегда проще прямо из тела выполняемой программы, тем более стираетcя оно также легко, как FLASH. И какого хрена запрещать программисту полноценно пользоваться EEPROM только из-за пожеланий "начальника транспортного цеха"??? Цитата А вот номер или правильней сказать "версия" программы - вшивается в код программы и соответсвенно размещается во FLASH. Это действительно предпочтительнее, но в некоторых случаях не есть удобно, например, если программа де-факто имеет серьёзные настройки работы, укладываемые в EEPROM при выпуске, а идентификация версии (охват контрольными суммами в том числе) может быть только с этими самиыми настройками - вопрос о номере тогда становится более философским, но формально по идентификации эти версии разные
--------------------
aka Vit
|
|
|
|
|
Apr 2 2007, 01:30
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(sensor_ua @ Apr 1 2007, 23:58)  2defunct Да не переворачивайте всё с ног на голову. Если девайс перешивается (наладчиком, например, каким-нибудь) то чхать на все изыски насчёт размещения серийного номера - оно без системы учёта на предприятии глубоко до фени. Прекладывать этот вопрос на программиста, нихрена не должного знать сколько девайсов и за какими номерами когда БУДЕТ выпущено, - полный бред. Причем тут программист? Программист пишет функциональность устройства по ТЗ, если в ТЗ входит соответвующая функциональность по работе с S/N, то задачей программиста будет внести функцию для записи/чтения S/N... Естественно ему будет фиолетово кто и как будет пользоваться функцией. Цитата Механизмы прозрачны и действительно они требуют восстановления номера после стирания, но это производственный вопрос. Это не производственный вопрос, а вопрос стадии проектирования. Либо гравируем номер намертво либо рисуем карандашем, а потом думаем куда он делся.. (утрирую). Цитата У меня девайсы тестируются на одной программе - ТЕСТОВОЙ, Тут согласен. Проверяется обычно комплексными тестами полная функциональность устройства, а к заказчику идет та же самая программа, только с обрезанной функциональностью. В обратном направлении такое тестирование невозможно. Цитата А повредить ячейку в EEPROM завсегда проще прямо из тела выполняемой программы, тем более стираетcя оно также легко, как FLASH. Перечитайте мой предыдущий пост. Почему неудобно S/N хранить во FLASH я написал там. Могу повторить другими словами: Для хранения во флеш программу придеться перекомпилировать/перелинковывать столько раз сколько серийных номеров, плюс при обновлении прошивки S/N сотрется. Цитата И какого хрена запрещать программисту полноценно пользоваться EEPROM только из-за пожеланий "начальника транспортного цеха"??? Мотивация непонятная. Причем тут начальник транспортного цеха? И кто мешает программисту использовать eeprom так как ему нравится? Если S/N нужны только начальнику транспортного цеха, тогда маркировать надо плату или корпус устройства. Желательно снаружи жирным красным шрифтом. Но ведь порой этот номер нужен для других целей, например для автоактивации каких-то встроенных функций, когда заказчик за них заплатит. Цитата Это действительно предпочтительнее, но в некоторых случаях не есть удобно, например, если программа де-факто имеет серьёзные настройки работы, Причем тут настройки программы к версии прошивки? Вы никогда не добавляете новую функциональность? И никогда не случалось видеть баги в прошивке? Цитата укладываемые в EEPROM при выпуске, а идентификация версии (охват контрольными суммами в том числе) может быть только с этими самиыми настройками - вопрос о номере тогда становится более философским, но формально по идентификации эти версии разные Так можно говорить только тогда, когда проект относительно не большой, код полностью отточен, вылизан и отлажен, де-факто в прошивке нет ни одного бага и не предвидится расширение функциональности...  Надеюсь, что насчет последнего я ошибаюсь.
|
|
|
|
|
Apr 2 2007, 09:45
|
Профессионал
    
Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387

|
Я обычно размещаю серийник устройства во FLASH и зашивается он при прошивке бутлоадера. В "защищённой" - выделенной - области FLASH (обычно хватает одной станицы записи выше крыши) укладывается посредством бутлоадера CRC программы и флаг необходимости эту самую CRC проверять. Серийник прораммы, а также прочая текстовая инфа обычно генерируется с помощью асмовых макросов в специальный файл, который прилинковывается к программе автоматом. Программа знает только адрес, по которому должен быть номер девайса и он контрольной суммой программы не охватывается. Цитата Для хранения во флеш программу придеться перекомпилировать/перелинковывать столько раз сколько серийных номеров, плюс при обновлении прошивки S/N сотрется. Как склеивать программу и прочая перед прошивкой в случае отсутствия загрузчика - маленький технический вопрос - HEX2BIN, склейка BIN, затем BIN2HEX. У меня номера-то есть, а у поклонников EEPROM при использовании камней без EEPROM - полное отсутствие области определения  )) Цитата Если S/N нужны только начальнику транспортного цеха, тогда маркировать надо плату или корпус устройства. Если вааще нужно получать удалённо и/или не раскрывая девайс инфу о нём, то серийники нужны. Так вот я утверждаю, что серийный номер девайса вписывается на производстве (например, даже, на заводике за тридевять земель), а не в программистской кандейке. Но при этом производству плевать где серийник девайса лежит - лишь бы было. А вот программисту не плевать, если ему кристалл дают, но говорят, что эту, эту и эту ячейки EEPROM трогать нельзя, да и вааще лучше не пользоваться этой самой EEPROM;)) Цитата Причем тут настройки программы к версии прошивки? Вы никогда не добавляете новую функциональность? И никогда не случалось видеть баги в прошивке? Как только способ идентификации программы учитывает уникальность по контрольной сумме, то при любом изменении содержимого, охватываемого этой самой контрольной суммой, появляется новая уникальная версия (со своей контрольной суммой). Если такое утверждение не принимается, то все сериализации - филькина грамота и нужны для очковтирательства. Цитата А специальная программа сразу вставляла серийный номер прямо в HEX прошивку. При этом не требовалось ни перекомпиляции, ни задания конкретного адреса. Она искала строку "s/n #" (пересчитывалась и менялась также и CRC флэш). Спасибо за идею насчёт замены CRC - попробую обязательно.
--------------------
aka Vit
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|