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

 
 
> И еще раз по защите Flash
toweroff
сообщение May 18 2009, 19:06
Сообщение #1


Гуру
******

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



Может чего-то не понял, но из мануала, например, по LPC2101/02/03:


Code security

This feature of the LPC2101/02/03 allow an application to control whether it can be
debugged or protected from observation.
If after reset on-chip bootloader detects a valid checksum in flash and reads 0x8765 4321
from address 0x1FC in flash, debugging will be disabled and thus the code in flash will be
protected from observation. Once debugging is disabled, it can only be enabled by
performing a full chip erase using the ISP.


то есть, тостаточно прописать некую константу по адресу 0x1FC со значением 0x87654321, линкер ее там разместит, при прошивке данное значение ляжет куда надо и все, можно не заморачиваться?

Если так, то как правильно записать?

Код
code unsigned int protect=0x87654321 _at_ 0x1FC


Оно?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
toweroff
сообщение May 18 2009, 21:37
Сообщение #2


Гуру
******

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



нашел... поиск рулит... (а то я чавой-та на синтаксис х51-го полез smile.gif )

#pragma location=0x1FC /* защита от копирования */
const long CodeSecure = 0x87654321;
#pragma required = CodeSecure

Остаются следующие вопросы:

1. В старших моделях (например 2468) это значение нужно записать в регистр CSPR в течение 256 первых тактов. Но как поправить бутлоадер, чтобы он это сделал?
Далее в мануале на эту модель говорится, что, после проверки целостности flash, бут пишет значение ячейки 0x1FC в регистр CSPR и ключевое значение оного блокирует кристалл от дебага и вообще доступа к содержимому. В чем принципиальное отличие этих двух путей? Можно ли во втором случае дорваться к прошивке через вообще что-то (бут, жтаг, ...)?

2. В модели 2478 есть вообще три уровня защиты:

There are three levels of the Code Read Protection.

CRP1 disables access to chip via the JTAG and allows partial flash update (excluding
flash sector 0) using a limited set of the ISP commands. This mode is useful when CRP is
required and flash field updates are needed but all sectors can not be erased.

CRP2 disables access to chip via the JTAG and only allows full flash erase and update
using a reduced set of the ISP commands.

Running an application with level CRP3 selected fully disables any access to chip via the
JTAG pins and the ISP. This mode effectively disables ISP override using P2[10] pin, too.
It is up to the user’s application to provide (if needed) flash update mechanism using IAP
calls or a call to reinvoke the ISP command to enable flash update via UART0.


Что это за "уменьшенный" и "ограниченный" набор команд ISP?
Правильно ли я понимаю, что в третьем варианте, если я не предусмотрю своего механизма обновления, такой чип в случае необходимости перепрошивки нужно будет выкинуть в помойку и впаять новый?

Прошу прощения за назойливость, вызвана пока неопытностью и необходимостью реализации, которая невозможна без понимания физики процесса smile.gif


Цитата(KRS @ May 19 2009, 01:22) *
Главное объяснить линкеру что класть нужно именно туда. И есть еще момент в том что эта константа очень неудачно расположена т.е. надо что бы в этом месте не было кода. Т.е. основной код можно расположить с адреса 0x200. Но тогда остается место между векторами и 0x1FC, там можно, например, разместить обработчик прерывания...


ух, чуть-чуть не успел smile.gif я так понимаю, что как раз прагмы и укажут линкеру на то, что там будет только это значение и ничто иное?

Сообщение отредактировал toweroff - May 18 2009, 21:39
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- toweroff   И еще раз по защите Flash   May 18 2009, 19:06
- - KRS   Цитата(toweroff @ May 18 2009, 23:06) то ...   May 18 2009, 21:22
|- - KRS   Цитата(toweroff @ May 19 2009, 01:37) 1. ...   May 18 2009, 22:08
|- - toweroff   Цитата(KRS @ May 19 2009, 02:08) Я честно...   May 18 2009, 22:50
|- - KRS   Цитата(toweroff @ May 19 2009, 02:50) по ...   May 19 2009, 07:34
|- - buba   Цитата(KRS @ May 19 2009, 12:34) А если 5...   May 27 2009, 17:52
- - Lexy_one   Подскажите! Вопрос №1: Есть вопрос по поводу C...   Jul 18 2011, 12:37
- - goodwin   1. Сотрется. Пробовал. Еще при старте, когда рабо...   Jul 19 2011, 19:07
- - Lexy_one   Тогда я не пойму что это за защита, если можно защ...   Jul 20 2011, 06:00
|- - zuy   Цитата(Lexy_one @ Jul 20 2011, 09:00) Тог...   Jul 20 2011, 06:22
|- - Lexy_one   Цитата(zuy @ Jul 20 2011, 09:22) Как вы п...   Jul 20 2011, 09:35
- - goodwin   "тут я вижу только вариант кодирования исходн...   Jul 20 2011, 16:14
- - zuy   Цитата(Lexy_one @ Jul 20 2011, 12:35) тут...   Jul 20 2011, 17:19
|- - Lexy_one   А вот подскажите... Для кодирования вы изобретает...   Jul 21 2011, 08:43
|- - scifi   Цитата(Lexy_one @ Jul 21 2011, 12:43) А в...   Jul 21 2011, 09:50
- - Lexy_one   ЦитатаИли я что-то неправильно понял... Имелось вв...   Jul 21 2011, 15:10
|- - zuy   Цитата(Lexy_one @ Jul 21 2011, 19:10) Вот...   Jul 21 2011, 16:49
|- - scifi   Цитата(Lexy_one @ Jul 21 2011, 19:10) Но ...   Jul 21 2011, 21:20
- - Lexy_one   ЦитатаЯ думаю, у вас ситуация не так серьёзна Да ...   Jul 22 2011, 05:58


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

 


RSS Текстовая версия Сейчас: 29th July 2025 - 23:43
Рейтинг@Mail.ru


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