|
Mega128 - самопроизвольная установка Lock Bits, Ситуация странная, программатор не дает изменить |
|
|
|
Nov 18 2008, 13:18
|
Местный
  
Группа: Свой
Сообщений: 266
Регистрация: 8-12-05
Пользователь №: 11 964

|
Доброго всем времени суток!
У меня с одной из плат случилась небольшая заминка, объяснить которую я не могу. Плата некоторое время была у заказчика (соответственно, там никакой информации о неправомерных действиях не вытрясти). Сейчас забрали ее назад, все прекрасно работает, но как только начал пользоваться своим загрузчиком, обнаружил, что он реагирует на команды, демонстрирует процесс прошивки, но ничего во флэш не прошивает. Проверка Lock Bits выяснила, что стоит запрещение использования SPM/LPM как в секции кода, так и в секции бутлоадера. Мемори лок не установлен, поэтому программа шьется через JTAGICE нормально (LockBit=0xC3). Попытка изменить локи ни к чему не приводит, JTAGICE пробует это сделать, но безуспешно. Как я мог изменить их раньше - тоже не знаю, подозреваю, что это произошло у заказчика. Плата единственная в своем роде, до сих пор с подобным поведением не сталкивался, загрузчик работал без вопросов. С чем может быть связано такое поведение? Отчего установились локи? Может быть, кто-то уже встречал подобное??? Спасибо за ответы!!!
|
|
|
|
|
 |
Ответов
|
Feb 17 2009, 21:50
|
Местный
  
Группа: Свой
Сообщений: 266
Регистрация: 8-12-05
Пользователь №: 11 964

|
Доброго всем времени суток! Сегодня снова получил плату с залоченным содержимым. Ситуация туманная, поэтому опишу подробнее - на изделии стоит самописный загрузчик для обновления прошивки, загрузчик не привязан к бут-области, но физически находится там (если совсем точно - в самом низу флэша, сверху него находится прошивка), для уменьшения размера прошивки в IAR включена максимальная оптимизация, загрузчик имеет размер в 3 страницы для Mega128 (768 байт), еще одна страница непосредственно под ним предназначена для хранения первой страницы прошивки (думаю, это не особо важно). Я полагаю, что залочивание контроллера происходит при заливке новой прошивки в результате какого-то сбоя. Просмотрев код, сгенерированный IAR, вижу, что он выделил участки записи вот в таком виде: LDI R30, 0x00 LDI R31, 0x00 OUT RAMPZ, R30 STS SPMCSR, R16 SPM на них передаются данные, в том числе и в регистре R16. Если произошел сбой и переход на этот адрес, а содержимое R16 не определено, то очевидно, может произойти и запись мусора в регистр локов. Если снизить уровень оптимизации, то он в явном виде помещает в R16 нужное значение (0x01, 0x03 или 0x05 в зависимости от операции, локи я в загрузчике никак не меняю, так что 0x09 взяться неоткуда), думаю, тут никакой сбой не страшен. То есть, думаю, что причина самоустановки локов - именно в результате перехода на этот участок при непонятном сбое микроконтроллера. Теперь вопрос - чем может быть вызван такой переход?? БОД в контроллере установлен, есть внешний супервизор на 4,6В, чего ему не хватает??? Нестабильности работы платы ранее замечено не было, не в режиме обновления прошивки все работает без сбоев. Заранее спасибо!!
|
|
|
|
Сообщений в этой теме
Polaris Mega128 - самопроизвольная установка Lock Bits Nov 18 2008, 13:18 defunct Цитата(Polaris @ Nov 18 2008, 15:18) Плат... Nov 18 2008, 13:28 bodja74 проверить локи может и сама программа ,доработайте... Nov 18 2008, 13:34 Polaris Цитата(bodja74 @ Nov 18 2008, 15:34) пров... Nov 18 2008, 14:01  bodja74 Цитата(Polaris @ Nov 18 2008, 17:01) О, д... Nov 18 2008, 14:24 Baser Цитата(Polaris @ Nov 18 2008, 15:18) ... ... Nov 18 2008, 14:55 VDG Цитатавряд ли, квалификация не позволит залезть, д... Nov 18 2008, 16:26 Polaris Цитата(VDG @ Nov 18 2008, 18:26) А вот по... Nov 18 2008, 22:23 Polaris Сегодня ситуация повторилась. Произошло это при за... Nov 21 2008, 22:37 defunct Мало данных.
1. Та же самая плата или в этот раз д... Feb 17 2009, 22:28  Polaris Цитата(defunct @ Feb 18 2009, 00:28) Мало... Feb 18 2009, 07:46
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|