Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > boot sectors, nor flash


Автор: slater 27.3.2011, 18:56
столкнулся вот с таким непонятным для меня вопросом.

для простоты возьмем, например, flash mx29gl640e t/b (datasheet можно скачать в сети).
суть вопроса вот в чем: предположим, процессор(не принципиально какой) после hard reset(после подачи питания и сигнала на reset pin) выполняет инструкции со строго определенного адреса. Как правило, с 0x000000000. Допустим, первые 8 МБ адресного пространства процессора я размаппил на вышеуказанную флеш. Заливаем бинарник и ...все вроде бы отлично. НО, не всегда. Проблема вот в чем: есть nor флеш с секторами нескольких типов:
1) uniform сектора, когда вся флеш "разбита" на сектора одинакового размера(на примере вышеуказанной флеш все сектора занимают 64 КБ)
2) boot sectors, как правило, разбивается первый или последний сектор на число, кратное двум
(на примере вышеуказанной флеш первый сектор разбит на 8 мелких секторов(которые зовутся boot sectors) по 8 кб). Соответственно, различают TOP и BOTTOM флеш.

так вот все к чему я это описал, если же на примере процессора использую BOTTOM или UNIFORM флеш - процессор нормально извлекает код и данные при старте. А вот если использовать флеш типа TOP - то ничего процессор извлечь не может.
Собственно, для чего нужны TOP boot sectors и в чем физика зарыта этих boot sectors?

если кто знает - большая просьба отписаться, никакой информации на счет boot sectors я не нашел

Автор: xvr 29.3.2011, 19:03
BOOT сектора при операциях записи и стирания будут отличаться от остальных. Отличия могут быть самыми разными - это может быть меньшая гранулярность для стирания и/или отдельная защита от стирания/записи.
По чтению они от остальных секторов FLASH не отличаются (да и при чтении FLASH сектора игнорирует вообще)

Цитата(slater @  27.3.2011,  18:56 Найти цитируемый пост)
если же на примере процессора использую BOTTOM или UNIFORM флеш - процессор нормально извлекает код и данные при старте. А вот если использовать флеш типа TOP - то ничего процессор извлечь не может.
А вот это странно, не должно такого быть.


Автор: slater 29.3.2011, 19:21
xvr, спасибо за ответ.

где бы подробнее изучить вопрос про бут сектора?
по сути, защита(пользовательская, как просто тротект сектора, так и с паролем) одинаково можно предусмотреть для любого сектора, в том числе и для бут.
как я понимаю, есть такое понятие как типа фабрик протект, типа фабричной защиты навсегда какого либо сектора(как правило, первого или последнего). а вот как раз первый или последний сектор делится на несколько секторов, как раз которые и называются бут. В чем суть деления? процессор что быстрее будет данные извлекать?! ну это врядли, в чем то другом физика зарыта.

а вот факт, не грузит процессор код с топ флешки

Автор: xvr 29.3.2011, 19:27
Цитата(slater @  29.3.2011,  19:21 Найти цитируемый пост)
где бы подробнее изучить вопрос про бут сектора?

В DS на микросхему

Цитата(slater @  29.3.2011,  19:21 Найти цитируемый пост)
В чем суть деления? процессор что быстрее будет данные извлекать?!
Нет конечно. Суть в том, что бы защитить (аппаратно) бут блок (откуда процессор стартует) от случайных модификаций. Т.к. они могут привести весь девайс в нерабочее состояние, откуда его без специального программатора уже не вывести


Автор: slater 29.3.2011, 19:32
в DS ничего сосбенного нет.

может быть, кстати Вы и правы, процессор во время работы не сможет изменить данные в бут(завтра попробую без дополнительных защит этих секторов изменить данные при старте)

Автор: xvr 30.3.2011, 11:13
Цитата(slater @  29.3.2011,  19:32 Найти цитируемый пост)
в DS ничего сосбенного нет.
Насколько я успел глянуть в DS, там приведены алгоритмы локов (и стираний секторов), это собственно и имеет отношение к boot секторам

Автор: slater 30.3.2011, 21:15
это имеет отношение к ЛЮБЫМ секторам, внимательнее

Автор: xvr 31.3.2011, 12:16
Цитата(slater @ 30.3.2011,  21:15)
это имеет отношение к ЛЮБЫМ секторам, внимательнее

Угу, но и boot сектора в принципе мало (или вообще) не отличаются от всех остальных секторов. У них специфическая нарезка и расположение. Может быть (или не быть) какая то специфическая защита. То, что они названы 'boot' отражает ил логическое предназначение (в основном для компьютерной системы, где применяется данная FLASH), с точки зрения физики (и логики) самой м/сх FLASH'а они могут вообще не отличаться от остальных секторов

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)