|
разблокировка Code Protection через IAP, минимальные усилия |
|
|
|
Apr 21 2010, 07:25
|

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

|
Есть устройство со связью с внешним миром через USB. Предполагается защищать содержимое флеши через CRP3. Чтобы не городить огород с обновлением программы через канал передачи (в данном случае - USB), достаточно ли только во команде с РС стереть 0 сектор через IAP? Конечно, программа станет нерабочей, но это неважно, главное - заработает JTAG, через него и зальется обновленный софт. Если направление верное, то еще поврос такой - должен ли кусок кода, вызывающий функцию IAP, располагаться за пределами стираемого сектора? Ведь после стирания мне неважно правильное выполнение программы, главное, что содержимое по 0x1FC уничтожено А если напрвление мысли неверное, то какое решение (максимально быстрое в плане выполнения) применимо в данном случае? Спасибо!
|
|
|
|
|
Apr 21 2010, 08:03
|

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

|
Цитата(zltigo @ Apr 21 2010, 11:56)  Ну и разблокируйте JTAG прямо по команде без каких-то непонятных танцев с бубнами. в этом случае ведь и чтение содержимого заработает? не совсем гуд, т.к. если кто-то случайно накопает подобную недокументированную (не для разработчиков) фичу, то прошивка сольется совершенно безболезненно  а вот на будущее - подскажите, как это делается? может, есть смысл "закопать" окончательное включение JTAG через последовательность вызовов неких команд, чтобы не одной командой обойтись, а несколькими в определенногй последовательности, что, несомненно, резко уменьшит возможность случайной разблокировки Цитата(Nixon @ Apr 21 2010, 12:09)  Нулевой сектор не стирается из IAP. Читайте сноски к описанию команд IAP. а ведь точно  Цитата This command is used to erase a sector or multiple sectors of on-chip Flash memory. The boot sector can not be erased by this command. To erase a single sector use the same "Start" and "End" sector numbers.
|
|
|
|
|
Apr 21 2010, 08:44
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Nixon @ Apr 21 2010, 11:49)  2 zltigo - действительно возможно стереть всю флешь из IAP? Да именно так и без всяких проблем. Цитата Буквально на днях, из-за отсутствия на ноуте СОМ-порта пытался стереть залоченный по CRP2 бутлоадер 2366 через юзерскую прошивку стирающую два сектора бутлоадера. Неудалось. Правильно не удалось - при CRP2 возможно только стирание всей Flash зараз. Документировано.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Apr 21 2010, 08:58
|

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

|
Цитата должен ли кусок кода, вызывающий функцию IAP, располагаться за пределами стираемого сектора? Если Вам не важно, что будет делать контроллер после стирания - не должен. Стирает-то IAP, он в отдельном секторе лежит. Ну а то, что потом он передаст управление на FF - это мелкий побочный эффект  На остальное вроде б ответили.
--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
|
|
|
|
|
Apr 21 2010, 09:07
|

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

|
Цитата(esaulenka @ Apr 21 2010, 13:13)  Если Вам не важно, что будет делать контроллер после стирания - не должен. Стирает-то IAP, он в отдельном секторе лежит. Ну а то, что потом он передаст управление на FF - это мелкий побочный эффект  На остальное вроде б ответили. спасибо Цитата(zltigo) возможно только стирание всей Flash зараз т.е. команда Erase Sectors со всем диапазоном секторов flash кристалла?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|