|
Расположение векторов прерываний, обработка прерываний, Само - программирование МК и прерывания |
|
|
|
 |
Ответов
|
Jul 20 2007, 10:05
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Прерывания полезно для ускорения процесса программирования,тоесть пока мы принимаем следующую страницу в это время загружаем и программируем предыдущую, хотя можно и по другому ,принять данные прочитать с флеши туже страницу и сравнить ,если одинаковые едем дальше .Можно оба способа совместить - по ходу принимаем и сразу сравниваем. Короче тут уже зависит уже от желания и задач. Если охота с прерваниями ,нужно шаманить с переносом таблицы и запрещать прервания в нужных местах.
Выход ,если не дождались байта - это не проблема ,можно на стороне бута в цикле ожидания или по прерванию ,можно на стороне проги ПК, ждать пару сек ,если не пришло подтверждение приема или записи страницы (блока) данных ,ресетим МК соответственно опять входим в бутлоадер.Хотя вообще при нормально отлаженном бутлоадере и программе таких вещей не происходит.
|
|
|
|
|
Jul 23 2007, 13:43
|
Местный
  
Группа: Свой
Сообщений: 263
Регистрация: 22-03-05
Из: г. Харьков, Украина
Пользователь №: 3 598

|
Цитата(bodja74 @ Jul 20 2007, 13:05)  Прерывания полезно для ускорения процесса программирования,тоесть пока мы принимаем следующую страницу в это время загружаем и программируем предыдущую,... Круто! Насколько я помню в режиме программирования FLASH-страницы должен быть запрещен WDT. Это вероятно говорит о том, что процессор временно подвисает. Думаю, что во время программирования страницы ничего работать не будет вообще.
|
|
|
|
|
Jul 23 2007, 15:49
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(IEC @ Jul 23 2007, 16:43)  Круто! Насколько я помню в режиме программирования FLASH-страницы должен быть запрещен WDT. Собственно WDT в бутлоадере особо делать нечего,хотя о вкусах не спорят. Запрещать действительно прерывания нужно с момента записи в SPMCR и пока не будет выполнена SPM ,это касается всех прерываний. Цитата Это вероятно говорит о том, что процессор временно подвисает. Думаю, что во время программирования страницы ничего работать не будет вообще. В таком случае ,зачем тогда флаг SPMEN нужен ?И прерывание готовности SPM ,если в это время все равно ничего не выполняется?
|
|
|
|
|
Jul 24 2007, 11:19
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(defunct @ Jul 24 2007, 00:26)  Все верно, но если мы попали в бутлоадер с включенным WDT из основной программы по ошибке/или не по ошибке. Или напр, с установленным фузом WDTON.. WDT надо учитывать в бутлоадере. Из основной программы можно влететь и с включенными другими прерваниями ,переключить таблицу,и потом долго думать - шо за фигня твориться  А если не перенесем и начнем писать - вообще уйдем в аут. Можно наставить не только WDTON но и BLB12,11,02,01 (они доступны и программно  ) и долго догадываться почему у нас не читается\пишется и прерывания не выполняются. Много чего можно наделать ,лиш бы желание было.  Цитата Безоговорочно согласен! Когда я писАл самый первый бутлоадер, то только с включеным WDT смог выловить неприятный, редко возможный, косяк. Я даже не сомневаюсь в том ,что для Вас использование WDT - это самый лучший способ отладки контроллеров.
|
|
|
|
|
Jul 24 2007, 20:25
|

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

|
Цитата(bodja74 @ Jul 24 2007, 14:19)  Из основной программы можно влететь и с включенными другими прерваниями ,переключить таблицу,и потом долго думать - шо за фигня твориться  А если не перенесем и начнем писать - вообще уйдем в аут. От этого есть лекарство - сразу при входе в бутлоадер запретить прерывания и переместить таблицу векторов в область бутлоадера, а в ней разместить заглушки "Reti" на все неиспользуемые прерывания... Но это лекарство не всегда получается применить. Бывает банально нехватает пары десятков байт, и тогда в неиспользуемых векторах размещается код. В таких случаях на помощь приходит WDT. При входе в бутлоадер первым делом запрещаем все прерывания, провереям причину сброса (MCUSR) - если причина сброса не "WDR" то и ждем ~2cек (макс таймаут WDT) чтобы получить гарантированный сброс по WDT. После этого сброса мы опять в секции бутлоадера, но уже с отключенными всеми прерываниями и с причиной сброса в MCUSR - "WDR". И работаем в штатном режиме. Цитата Можно наставить не только WDTON но и BLB12,11,02,01 (они доступны и программно  ) и долго догадываться почему у нас не читается\пишется и прерывания не выполняются. Ну уж  Биты защиты IMHO не надо приплетать сюда. Если они зашиты, то стало быть так надо - кристал перешивать нельзя. Цитата Много чего можно наделать ,лиш бы желание было.  Бутлоадер нужно делать с особой тщательностью чтобы не было проколов в алгориме. Т.к. эти проколы (не учтенные прерывания, WDT и т.п.) могут привести к плачевным ситуациям - как например перетирание флеша бутлоадером "в поле" без видимых на то причин, в результате отказ, авария убытки.....
|
|
|
|
Сообщений в этой теме
Alex ma Расположение векторов прерываний, обработка прерываний Jul 19 2007, 18:23 bodja74 Делается очень просто ,
вспоминаете молодость ,ког... Jul 19 2007, 20:11 KRS Цитата(bodja74 @ Jul 20 2007, 00:11) дела... Jul 19 2007, 20:47  defunct Цитата(KRS @ Jul 19 2007, 23:47) +1.
IMHO... Jul 19 2007, 20:49 defunct Цитата(Alex ma @ Jul 19 2007, 21:23) Так ... Jul 19 2007, 20:46 _Алекс При заливке программы нужно как то реализовать тай... Jul 20 2007, 03:43  Сергей Борщ Цитата(IEC @ Jul 23 2007, 16:43) Круто... Jul 23 2007, 14:48    IEC Цитата(defunct @ Jul 24 2007, 00:26) Или ... Jul 24 2007, 07:54 Igor26 Цитатанужно шаманить с переносом таблицы
"Ша... Jul 20 2007, 10:40 Igor26 ЦитатаWDT надо учитывать в бутлоадере
Безоговорочн... Jul 24 2007, 04:53 Igor26 Цитатаего действие можно запретить програмно?
Наоб... Jul 24 2007, 08:24 Igor26 Цитатаэто самый лучший способ отладки контроллеров... Jul 24 2007, 11:40 bodja74 Дело не в этом
Если Вы хотите что бы Ваше мнение... Jul 24 2007, 18:27 bodja74 Ну допустим я сторонник входа в бутлоадер по ресет... Jul 25 2007, 17:02 defunct Цитата(bodja74 @ Jul 25 2007, 20:02) Ну д... Jul 26 2007, 11:09 Igor26 Цитатачесно сказать мне мало понятно зачем ей вооб... Jul 26 2007, 07:34 bodja74 Цитата(Igor26 @ Jul 26 2007, 10:34) Убеди... Jul 26 2007, 19:19  defunct Цитата(bodja74 @ Jul 26 2007, 22:19) Глюк... Jul 26 2007, 20:26   bodja74 Цитата(defunct @ Jul 26 2007, 23:26) Очен... Jul 29 2007, 09:47 Igor26 РАЗ. Попадаем в Лоадер, ДВА-глядим, а какая ... Jul 26 2007, 13:25 _artem_ А через вотчдог можно есше скопировать стек и реги... Jul 26 2007, 13:45 Igor26 Цитата(_artem_ @ Jul 26 2007, 17:45) А че... Jul 26 2007, 13:49 Igor26 ЦитатаЯ уже не говорю ,что можно просто накосячить... Jul 27 2007, 10:23
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|