реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Защита CRP на LPC2367 = fault, После установки защиты перестает работать микроконтроллер
Metallist64
сообщение Dec 20 2012, 08:42
Сообщение #1


Частый гость
**

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



Добрый день уважаемые специалисты!
Понадобилось установить защиту от копирования прошивки.
Почитав форум нашел как записать по адресу 0x1fc нужное значение.
Но вот незадача, микроконтроллер перестает работать напрочь.
Т.к. J-TAG отключен, а ISP программатора нет, то проц фактически недоступен.
В микроконтроллере написан свой бут. Он используется для обновления прошивки.
Бут лежит в 0-ом секторе. Как раз, в том же секторе и лежит нужное значение CRP по адресу 0x1fc.

Пишу в буте следующую строку:
CODE
unsigned int const CRP2 __attribute__((at(0x1FC))) = 0x87654321;

После компиляции и заливки программа перестает работать. Т.е. бут не запускается...

Может кто сталкивался? Прошу помощи.

С уважение Владимир.
Go to the top of the page
 
+Quote Post
kovigor
сообщение Dec 20 2012, 11:32
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Metallist64 @ Dec 20 2012, 12:42) *
Может кто сталкивался? Прошу помощи.

Например, у LPC214x загрузчик в таком случае можно запустить, замкнув ножку P0.14 на землю и включив питание. После чего МК можно перешить с помощью Flash Magic. Как в вашем МК запустить загрузчик ? Поищите в User Manual (и не только). Вообще, изучите внимательно все, что касается CRP, и поищите апп. ноут на эту тему на сайте NXP (для LPС214x такой апп. ноут существует) ...
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Dec 21 2012, 15:10
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



1) предлагаю прочитать раздел user manual "flash memory programming"
2) сейчас камень можно оживить, прижав P2.10 к земле в момент старта, и очистив всю память через flash magic (uart0 наружу есть?).
3) дальнейшие эксперименты предлагаю выполнять с кодом
unsigned int const CRP2 __attribute__((at(0x1FC))) = 0;
- при левых значениях этой константы JTAG не отключается.
Убедившись, что всё работает, можно включить запрет штатного загрузчика (и JTAG'а).


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
Metallist64
сообщение Dec 24 2012, 08:20
Сообщение #4


Частый гость
**

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



Большое спасибо, с нестандартным значением обязательно попробую.
Да, раздел `Flash memory programming` надо изучить. Не обратил на него внимания.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Dec 24 2012, 08:28
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



bb-offtopic.gif Кстати, про "левые" значения CRP
То есть, стерев определенную область УФ в кристалле, получим "левое" значение и вуаля? проц можно считать?
или расположение 0-го сектора на кристалле где-нибудь глубже?
Просто непонятно, чем CRP тогда отличается от банального и вскрываемого "Security Bit"
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 02:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.01356 секунд с 7
ELECTRONIX ©2004-2016