Программирование ARM AT91SAM7 Embedded Flash Controller (EFC) Mon, December 09 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


AT91SAM7 Embedded Flash Controller (EFC) Печать
Добавил(а) microsin   

Контроллер встроенной памяти (Embedded Flash Controller, EFC) входит как составная часть в контроллер памяти (Memory Controller, MC [2]), и предоставляет интерфейс к внутренней памяти FLASH через 32-битную внутреннюю шину. Это увеличивает быстродействие в режиме Thumb для выборки кода с системными 32-битными буферами. Контроллер EFC также предоставляет полный набор команд для программирования, очистки, блокировки на запись и разблокирования блоков памяти.

Процессор AT91SAM7X512 оборудован двумя контроллерами EFC: EFC0 и EFC1, каждый их которых обслуживает свою половину памяти FLASH. У EFC1 не имеется функции битов защиты (Security bit) и битов общего назначения (GPNVM), подробнее см. [3]. Биты Security и GPNVM встроены только в EFC0, и они относятся к двум блокам памяти AT91SAM7X512.

[Организация встроенной памяти FLASH]

К встроенной памяти FLASH осуществляется прямой доступ через внутреннюю 32-битную шину. Доступ составлен из нескольких интерфейсов:

• Один блок памяти (memory plane) организованный в нескольких страницах одинакового размера.
• Два 32-битных буфера чтения, используемых для оптимизации чтения кода (см. секцию "Операции чтения").
• Один буфер записи, обслуживающий программирование страницы FLASH. Размер буфера записи равен размеру страницы. К этому буферу возможен доступ только на запись, и он доступен во всем адресном пространстве 1 мегабайт, так что каждое слово может быть записано по своему конечному адресу (см. секцию "Операции записи").
• Несколько битов защиты, или битов блокировки (lock bits) используются для защиты от операций записи и очистки на регионах памяти, где эти биты защиты установлены. Заблокированный регион состоит из нескольких находящихся друг за другом страниц, и каждый заблокированный регион имеет свой свой собственный, связанный с ним бит блокировки.
• Несколько энергонезависимых бит общего назначения (general-purpose NVM bits, сокращенно GPNVM). Каждый их этих бит управляет некоторой функцией чипа процессора. Подробнее см. в даташите на используемый микроконтроллер раздел, посвященный назначению GPNVM [3].

Общий размер встроенной памяти FLASH, размер её страницы, организация блокировки регионов памяти FLASH описана подробно в даташите на соответствующий микроконтроллер ARM7.

Таблица 19-1. Сколько бит блокировки (lock bits) и бит общего назначения (GPNVM bits) в микроконтроллерах серии AT91SAM7X.

Количество бит AT91SAM7X128 AT91SAM7X256 AT91SAM7X512
Сколько бит GPNVM 3
Сколько бит блокировки  8 16 32

ARM7 Embedded Flash Memory Mapping fig19 1

Рис. 19-1. Организация адресного пространства встроенной памяти FLASH.

[Операции чтения]

Оптимизированный контроллер управляет процессом чтения встроенной в кристалл процессора памяти FLASH. Система из 2 x 32-битных буфера добавлена в порядке начала доступа к следующему адресу во время второго чтения, что увеличивает быстродействие процессора, когда он работает в режиме Thumb (16-битные инструкции). См. рис. 19-2, 19-3 и 19-4.

Эта оптимизация касается только выборки кода, но не обращения к данным.

Операции чтения могут быть выполнены как с добавлением тактов ожидания (wait state), так и без них. Может быть запрограммировано до 3 wait state с помощью поля FWS (Flash Wait State) в регистре режима FLASH (Flash Mode Register, MC_FMR), см. соответствующую врезку в разделе "Интерфейс программирования EFC". Если запрограммировать FWS как 0, то это разрешает доступ на чтение встроенной памяти FLASH за 1 такт ядра, без пропуска на такты ожидания.

К памяти FLASH можно получить доступ через 8-, 16- и 32-битные операции чтения.

Поскольку размер блока памяти FLASH меньше адресного пространства, зарезервированного под внутреннюю память, доступ к FLASH при выходе за её границы происходит с циклическим возвратом в начало области FLASH.

ARM7 Code Read Optimization Thumb Mode FWS0 fig19 2

Рис. 19-2. Оптимизация чтения кода программы в режиме Thumb для FWS=0.

ARM7 Code Read Optimization Thumb Mode FWS1 fig19 3

Рис. 19-3. Оптимизация чтения кода программы в режиме Thumb для FWS=1.

Примечание: когда FWS = 1 в случае последовательных чтений все доступы выполняются за один такт (за исключением первого чтения в последовательности).

ARM7 Code Read Optimization Thumb Mode FWS3 fig19 4

Рис. 19-4. Оптимизация чтения кода программы в режиме Thumb для FWS=3.

Примечание: когда FWS = 2 или 3 в случае последовательных чтений первый доступ получает FWS тактов задержки, второй доступ занимает один такт, третий занимает FWS тактов, четвертый 1 такт и т. д.

[Операции записи]

Внутренняя область памяти, зарезервированная для внутренней памяти FLASH, также может быть записана через буфер защелки, работающий только для записи. Операции записи учитывают только 8 младших бит адреса, и таким образом при выходе адреса за пределы области, ограниченной этими 8 битами, происходит циклический переход на начало, что повторяется 1024 раза по всему адресному пространству блока FLASH-памяти.

Операции записи могут быть предотвращены путем программирования блока защиты памяти (Memory Protection Unit) процессора.

Запись 8-битных и 16-битных данных во FLASH-память не допускается, и может привести к повреждению данных.

Операции записи выполняются за время в количествах циклов ожидания, равное количеству циклов ожидания для чтения + 1, за исключением FWS = 3 (см. описание регистра режима FLASH MC_FMR в соответствующей врезке).

[Команды FLASH]

Контроллер EFC предоставляет набор команд для управления программированием памяти FLASH, блокировкой и разблокировкой секторов, последовательного программирования и блокировкой, и полной очисткой FLASH.

Команда
Значение Мнемоника
Write page (запись страницы) 0x01 WP
Set Lock Bit (установка бита блокировки) 0x02 SLB
Write Page and Lock (запись страницы и блокировка) 0x03 WPL
Clear Lock Bit (очистка бита блокировки) 0x04 CLB
Erase all (стереть всю FLASH) 0x08 EA
Set General-purpose NVM Bit (установить энергонезависимый бит общего назначения) 0x0B SGPB
Clear General-purpose NVM Bit (сбросить энергонезависимый бит общего назначения) 0x0D CGPB
Set Security Bit (установить бит защиты) 0x0F SSB

Чтобы запустить одну из этих команд, в поле FCMD регистра MC_FCR записывается номер команды. Как только регистр MC_FCR записан, флаг FRDY автоматически очищается. Как только текущая команда выполнена, флаг FRDY автоматически устанавливается. Если разрешено прерывание установкой бита FRDY в регистре MC_FMR, то активизируется линия прерывания контроллера памяти (Memory Controller, MC [2]).

Все команды защищены одинаковым ключевым словом (ключ), которое должно быть записано в 8 старших бит регистра MC_FCR.

Запись MC_FCR данными, которые не содержат корректного ключа и/или допустимой команды, не оказывают никакого эффекта и не влияют на плоскость памяти FLASH; однако установится флаг PROGE в регистре MC_FSR. Этот флаг автоматически очищается чтением регистра MC_FSR.

Когда текущая команда записывает или очищает страницу в заблокированном регионе, команда не оказывает никакого влияния на память FLASH; однако установится бит LOCKE в регистре MC_FSR. Этот флаг автоматически очистится при чтении регистра MC_FSR.

ARM7 EFC Command State Chart fig19 5

Рис. 19-5. Алгоритм запуска команды FLASH.

Чтобы гарантировать допустимые операции с памятью FLASH, должно быть корректно запрограммировано поле количества микросекундных циклов (Flash Microsecond Cycle Number, FMCN) в регистре режима FLASH (Flash Mode Register, MC_FMR). Подробнее см. врезку с описанием регистра MC_FMR.

[Программирование FLASH]

Память FLASH программируется страницами. Таким образом, если необходимо поменять только несколько байт на странице, то предварительно нужно прочитать всю страницу целиком во временный буфер, заменить в этом буфере нужные байты, и после этого очистить нужную страницу и записать её. Для программирования FLASH может быть использовано несколько команд.

Технология FLASH требует, чтобы перед программированием была произведена очистка - либо всей памяти FLASH, либо одной страницы, которая будет записана. За один раз может быть очищена вся память, либо может быть автоматически очищена одна страница путем очистки бита NEBP в регистре MC_FMR перед записью команды в регистр MC_FCR.

Путем установки бита NEBP в регистре MC_FMR страница может быть запрограммирована за несколько шагов, если она была перед этим очищена (см. рис. 19-6).

ARM7 EFC Example Partial Page Programming fig19 6

Рис. 19-6. Пример частичного программирования страницы FLASH.

Режим частичного программирования (Partial Programming) работает только с 32-битными (или большей разрядности) границами. Он не может использоваться с разрядностью данных, которые меньше 32 бита (например, 8 или 16 бит).

После программирования страница (весь блокируемый регион) может быть заблокирована на запись, чтобы предотвратить различные последовательности записи или очистки. Бит защиты может быть автоматически установлен после программирования, если использовать команду программирования страницы WPL.

Записываемые данные сохраняются во внутреннем буфере-защелке. Размер буфера-защелки соответствует размеру страницы FLASH. Содержимое буфера-защелки циклически повторяется в адресном пространстве при пересечении адреса через границу страницы FLASH, количество повторов равно количество страниц в области памяти FLASH.

Примечание: запись 8- и 16-битных данных не допускается. Такая операция может привести с непредсказуемому повреждению данных.

Данные записываются в буфер-защелки перед записью команды программирования в регистр команд (Flash Command Register, MC_FCR). Последовательность алгоритма следующая:

• Записывается вся страница памяти FLASH полностью, по любому адресу страницы, находящемуся во внутренней области памяти FLASH, с использованием 32-битного доступа. При этом в реальности данные записываются во внутренний буфер-защелку.
• Программирование запустится, как только номер страницы и команда программирования записывается в регистр команд MC_FCR. При этом автоматически очистится бит FRDY в регистре состояния программирования FLASH (Flash Programming Status Register, MC_FSR).
• Когда программирование завершено, бит FRDY в регистре состояния программирования FLASH (MC_FSR) установится. Если прерывание разрешено установкой бита FRDY в регистре MC_FMR, то будет активизирована линия прерывания контроллера памяти MC [2].

Могут быть детектированы 2 ошибки в регистре MC_FSR после завершения последовательности программирования:

• Programming Error (ошибка программирования): в регистр команд MC_FCR было записано неправильное ключевое слово или недопустимая команда.
• Lock Error (ошибка, связанная с блокировкой): программируемая страница памяти принадлежит заблокированному региону FLASH. Перед программированием должна быть выполнена команда для разблокирования этого региона.

[Команда Erase All]

Вся память полностью может быть очищена командой Erase All (EA), записанной в регистр команд MC_FCR.

Операция Erase All разрешена только в том случае, если не установлен ни один бит блокировки (lock bit). Таким образом, если как минимум один регион заблокирован FLASH, установится бит LOCKE в регистре MC_FSR, и выполнение команды будет отменено. Если был записан в лог. 1 бит LOCKE в регистре MC_FMR, то будет запущено прерывание.

Когда программирование завершено, установиться бит FRDY в регистре состояния FLASH (MC_FSR). Если было разрешено прерывание установкой бита FRDY в регистре MC_FMR, то будет активизирована линия прерывания контроллера MC.

Во время последовательности программирования могут быть детектированы две ошибки (через регистр статуса MC_FSR):

• Programming Error (ошибка программирования): в регистр команд MC_FCR было записано неправильное ключевое слово или недопустимая команда.
• Lock Error (ошибка, связанная с блокировкой): программируемая страница памяти принадлежит заблокированному региону FLASH. Перед программированием должна быть выполнена команда для разблокирования этого региона.

[Защита от программирования битом блокировки]

Биты блокировки (Lock bits) связаны с несколькими страницами на всей плоскости встроенной памяти FLASH. Они позволяют задать блокируемые регионы в памяти FLASH, защищенные от записи или очистки.

После выхода с завода чип процессора может получить блокировку некоторых регионов внутренней памяти FLASH. Эти заблокированные регионы зарезервированы для приложения по умолчанию. Подробности см. в описании привязки по умолчанию карты встроенной памяти FLASH. Заблокированные секторы могут быть разблокированы для очистки и последующего программирования другим приложением или данными.

Последовательность блокировки следующая:

• В регистр команд MC_FCR должно быть записано следующее значение:

(0x5A << 24) | (lockPageNumber << 8 & PAGEN) | SLB

lockPageNumber это номер страницы соответствующего блокируемого региона.

• Когда блокировка завершена, установится бит FRDY в регистре статуса (MC_FSR). Если было разрешено прерывание установкой бита FRDY в регистре MC_FMR, то будет активизирована линия прерывания контроллера MC.

Ошибка программирования, связанная с ошибочным ключевым словом и/или недопустимой командой, записанными в регистр команд MC_FCR, может быть детектирована по содержимому регистра MC_FSR.

Можно очистить биты блокировки, которые были установлены ранее. Тогда заблокированные регионы могут быть очищены или запрограммированы. Последовательность разблокировки следующая:

• В регистр команд MC_FCR должно быть записано следующее значение:

(0x5A << 24) | (lockPageNumber << 8 & PAGEN) | CLB

lockPageNumber это номер страницы соответствующего разблокируемого региона.

• Когда разблокировка завершена, установится бит FRDY в регистре статуса (MC_FSR). Если было разрешено прерывание установкой бита FRDY в регистре MC_FMR, то будет активизирована линия прерывания контроллера MC.

Ошибка программирования, связанная с ошибочным ключевым словом и/или недопустимой командой, записанными в регистр команд MC_FCR, может быть детектирована по содержимому регистра MC_FSR.

Команда разблокировки программирует бит блокировки (lock bit) в состояние лог. 1; соответствующий бит LOCKSx в регистре MC_FSR будет читаться как 0. Команда блокировки программирует бит блокировки в состояние лог. 0; соответствующий бит LOCKSx в регистре MC_FSR будет читаться как 1.

Примечание: доступ к FLASH в режиме чтения разрешен, когда выполнены команды блокирования или разблокировки.

[Биты GPNVM]

Энергонезависимые биты общего назначения (General-purpose NVM, или сокращенно биты GPNVM) не связаны с плоскостью памяти встроенной памяти FLASH. Они также не относятся к контроллеру EFC1 чипа AT91SAM7X512. Эти биты общего назначения предназначены для защиты других частей кристалла процессора. Они могут быть установлены (активированы) или очищены каждый по отдельности. Подробнее описание назначения бит GPNVM см. а даташите на процессор.

Последовательность активизации бита GPNVM следующая:

• Запустите команду установки бита GPNVM (Set General Purpose Bit, SGPB) путем записи в регистр команд MC_FCR команды SGPB и номера устанавливаемого бита GPNVM в поле PAGEN.
• Когда бит установлен, установится бит FRDY в регистре статуса (MC_FSR). Если было разрешено прерывание установкой бита FRDY в регистре MC_FMR, то будет активизирована линия прерывания контроллера MC.

Во время последовательности программирования могут быть детектированы две ошибки (через регистр статуса MC_FSR):

• Programming Error (ошибка программирования): в регистр команд MC_FCR было записано неправильное ключевое слово или недопустимая команда.
• Если был указан номер бита GPNVM больше, чем общее количество битов GPNVM, то команда не окажет никакого эффекта.

Можно деактивировать бит GPNVM, который был установлен ранее. Последовательность очистки следующая:

• Запустите команду очистки бита GPNVM (Clear General-purpose Bit, CGPB) путем записи в регистр команд MC_FCR команды CGPB и номера очищаемого бита GPNVM в поле PAGEN.
• Когда очистка завершена, установится бит FRDY в регистре статуса (MC_FSR). Если было разрешено прерывание установкой бита FRDY в регистре MC_FMR, то будет активизирована линия прерывания контроллера MC.

Во время последовательности программирования могут быть детектированы две ошибки (через регистр статуса MC_FSR):

• Programming Error (ошибка программирования): в регистр команд MC_FCR было записано неправильное ключевое слово или недопустимая команда.
• Если был указан номер бита GPNVM больше, чем общее количество битов GPNVM, то команда не окажет никакого эффекта.

Команда очистки бита GPNVM запрограммирует его в состояние лог. 0; соответствующий бит GPNVMx в регистре MC_FSR будет читаться как 0. Команда установки бита GPNVM запрограммирует его в состояние лог. 1; соответствующий бит GPNVMx в регистре MC_FSR будет читаться как 1.

Примечание: доступ к памяти FLASH в режиме чтения разрешен, когда выполняются команды установки, очистки или чтения бит GPNVM.

[Бит защиты]

Цель бита защиты (security bit) - предотвратить внешний доступ к внутренней системной шине (это не относится к контроллеру EFC1 чипа AT91SAM7X512). При этом будут запрещены функции JTAG, быстрого программирования FLASH (Fast Flash Programming) и интерфейса последовательного тестирования FLASH (Flash Serial Test Interface). Будучи установленным, этот бит можно сбросить только путем внешнего аппаратного запроса ERASE для всего кристалла процессора. Подробнее про вывод корпуса, соответствующий управлению аппаратной функцией ERASE, см. даташит на процессор. При выдаче ERASE будет очищена вся память FLASH, разблокированы все её регионы и сброшены все биты GPNVM и сброшен сам бит защиты. Бит защиты в регистре MC_FSR очищается только при выдаче ERASE. Последовательность активизации (установки) бита защиты следующая:

• Запустите команду установки бита защиты (Set Security Bit command, SSB) записью в регистр команд MC_FCR.
• Когда установка бита защиты завершена, установится бит FRDY в регистре статуса (MC_FSR). Если было разрешено прерывание установкой бита FRDY в регистре MC_FMR, то будет активизирована линия прерывания контроллера MC.

Когда активен бит защиты, то бит SECURITY в регистре MC_FSR установлен.

[Интерфейс программирования EFC]

Интерфейс программирования EFC интегрирован в контроллер памяти MC (см. [2]). Смещение адресов регистров отсчитывается относительно адреса 0xFFFFFF00.

Процессор AT91SAM7X512 оборудован двумя контроллерами EFC: EFC0 и EFC1. Привязка регистров показана в таблицах ниже.

Таблица 19-3. Регистры EFC0.

Смещение Регистр Имя Доступ Сброс
0x0060 MC Flash Mode Register (регистр режима памяти FLASH) MC_FMR R/W 0x00000000
0x0064 MC Flash Command Register (регистр команд) MC_FCR W -
0x0068 MC Flash Status Register (регистр состояния FLASH) MC_FSR R -
0x006C Зарезервировано - - -

Таблица 19-4. Регистры EFC1.

Смещение Регистр Имя Доступ Сброс
0x0070 MC Flash Mode Register (регистр режима памяти FLASH) MC_FMR R/W 0x00000000
0x0074 MC Flash Command Register (регистр команд) MC_FCR W -
0x0078 MC Flash Status Register (регистр состояния FLASH) MC_FSR R -
0x007C Зарезервировано - - -

Регистр режима FLASH (MC Flash Mode Register). Работает на чтение и запись.

   31      30       29       28       27       26       25       24       23       22       21       20       19       18       17       16   
- - - - - - - - FMCN
   15       14       13       12       11       10       9       8       7       6       5       4       3       2       1       0   
- - - - - - FWS
NEBP - - - PROGE LOCKE - FRDY

FRDY: Flash Ready Interrupt Enable, разрешение прерывания по готовности FLASH.
0: когда FLASH готова к выполнению следующей команды, то это не вызовет прерывание.
1: когда FLASH готова к выполнению следующей команды, то это вызовет прерывание.

LOCKE: Lock Error Interrupt Enable, разрешение прерывания по ошибке, связанной с блокировкой.
0: ошибка блокировки не вызовет прерывание.
1: ошибка блокировки вызовет прерывание.

PROGE: Programming Error Interrupt Enable, разрешение прерывания по ошибке программирования.
0: ошибка программирования не вызовет прерывание.
1: ошибка программирования вызовет прерывание.

NEBP: No Erase Before Programming, не делать очистку перед программированием.
0: перед программированием страницы памяти FLASH будет автоматически произведена её очистка.
1: перед программированием страницы памяти FLASH не будет автоматически произведена её очистка.

FWS: Flash Wait State, количество тактов ожидания при доступе к FLASH.

Это поле задает количество тактов ожидания для операций чтения и записи:

FWS Операции чтения Операции записи
0 1 такт 2 такта
1 2 такта 3 такта
2 3 такта 4 такта
3 4 такта 4 такта

FMCN: Flash Microsecond Cycle Number, количество тактов на микросекунду.

Перед записью энергонезависимых бит (Non Volatile Memory, NVM), это относится к битам блокировки (Lock bits), битам общего назначения (General Purpose NVM, GPNVM) и биту защиты (Security bit), это поле должно быть установлено в количество тактов основной частоты процессора (Master Clock, MCK), приходящихся на одну микросекунду.

Когда записывается остальная память FLASH, это поле определяет количество тактов MCK в 1.5 микросекунды. Количество должно быть округлено вверх до ближайшего целого значения.

Внимание: значение 0 разрешается только для очень большого периода тактов MCK не меньше 30 микросекунд.

Внимание: чтобы гарантировать корректность операций с памятью FLASH, поле FMCN должно быть правильно запрограммировано.

Регистр команд FLASH (MC Flash Command Register). Работает только на запись.

   31      30       29       28       27       26       25       24       23       22       21       20       19       18       17       16   
KEY
- - - - - - PAGEN
   15       14       13       12       11       10       9       8       7       6       5       4       3       2       1       0   
PAGEN
- - - - FCMD

FCMD: Flash Command, команда FLASH.

FCMD Действие
0000 Отсутствие команды. Не вызывает установку флага состояния ошибки (Programming Error Status, PROGE) в регистре состояния FLASH (MC_FSR).
0001 Write Page Command (WP), команда записи страницы: запускает программирование страницы, указанной в поле PAGEN.
0010 Set Lock Bit Command (SLB), команда установки бита блокировки: запускает последовательность установки бита блокировки региона памяти, указанного в поле PAGEN.
0011 Write Page and Lock Command (WPL), команда записи страницы и установки её блокировки: запускает последовательность записи страницы с автоматической блокировкой на запись после окончания программирования страницы.
0100 Clear Lock Bit Command (CLB), команда очистки бита блокировки страницы: запускает последовательность очистки бита блокировки региона памяти, указанного в поле PAGEN.
1000 Erase All Command (EA), команда полной очистки: запускает очистку всей памяти FLASH. Если как минимум одна страница памяти FLASH была заблокирована, то выполнение команды отменяется.
1011 Set General-purpose NVM Bit (SGPB), команда установки энергонезависимого бита общего назначения: активизирует (устанавливает) бит GPNVN, указанный по номеру в поле PAGEN.
1101 Clear General Purpose NVM Bit (CGPB), команда очистки энергонезависимого бита общего назначения: деактивирует (сбрасывает) бит GPNVN, указанный по номеру в поле PAGEN.
1111 Set Security Bit Command (SSB), команда для установки бита защиты памяти FLASH.
Другие значения Зарезервировано. Если будет указано одно из этих значений, то будет установлен флаг ошибки программирования (PROGE) в регистре состояния FLASH (MC_FSR).

PAGEN: Page Number, номер страницы.

Команда Описание назначения PAGEN
Запись страницы (WP) Задает номер записываемой страницы.
Запись страницы с блокировкой (WPL). Задает номер записываемой страницы и связанный с ним блокируемый регион памяти.
Команда полной очистки (EA) Для этой команды поле PAGEN не имеет никакого значения.
Команды установки/очистки бита блокировки (SLB/CLB) Задает номер страницы блокируемого или разблокируемого региона.
Команда установки/очистки бита GPNVM (SGPB/CGPB) Задает номер устанавливаемого/сбрасываемого бита GPNVM.
Команда установки бита защиты (SSB) Для этой команды поле PAGEN не имеет никакого значения.

Примечание: в зависимости от команды, все или некоторые из битов PAGEN могут не иметь значения.

KEY: Write Protection Key, ключ защиты от ошибочной записи.

В это поле следует записать значение 0x5A, чтобы разрешить выполнение команды, заданной битами поля FCMD. Если в поле KEY записано другое значение, то команда записи не будет выполнена и действие команды будет отменено.

Регистр состояния FLASH (MC Flash Status Register). Работает только на чтение.

   31      30       29       28       27       26       25       24   
LOCKS15 LOCKS14 LOCKS13 LOCKS12 LOCKS11 LOCKS10 LOCKS9 LOCKS8
   23       22       21       20       19       18       17       16   
LOCKS7 LOCKS6 LOCKS5 LOCKS4 LOCKS3 LOCKS2 LOCKS1 LOCKS0
   15      14       13       12       11       10       9       8   
- - - - - GPNVM2 GPNVM1 GPNVM0
   7       6       5       4       3       2       1       0   
-
- - SECURITY PROGE LOCKE - FRDY

FRDY: Flash Ready Status, состояние готовности FLASH.
0: контроллер EFC занят, и приложение должно подождать его освобождения перед выполнением новой команды.
1: контроллер EFC готов к выполнению новой команды.

LOCKE: Lock Error Status, состояние ошибки, связанной с блокировкой.
0: не было программирования как минимум одного заблокированного региона с момента последнего чтения MC_FSR.
1: была попытка программирования как минимум одного заблокированного региона с момента последнего чтения MC_FSR.

PROGE: Programming Error Status, состояние ошибки программирования.
0: не записи недопустимой команды и/или неправильного ключевого слова в регистр MC_FCR.
1: была выполнена запись недопустимой команды и/или неправильного ключевого слова в регистр MC_FCR.

SECURITY: Security Bit Status, состояние бита защиты (не относится к EFC1 микроконтроллера AT91SAM7X512).
0: бит защиты неактивен.
1: бит защиты активен.

GPNVMx: General-purpose NVM Bit Status, состояние бит GPNVM (не относится к EFC1 микроконтроллера AT91SAM7X512).
0: соответствующий бит GPNVM неактивен.
1: соответствующий бит GPNVM активен.

LOCKSx: Lock Region x Lock Status, состояние блокировки региона x.
0: соответствующий регион не заблокирован на запись.
1: соответствующий регион заблокирован на запись.

[Ссылки]

1ARM-based Flash MCU SAM7X512 / SAM7X256 / SAM7X128 DATASHEET site:atmel.com.
2AT91SAM7 Memory Controller (MC).
3ARM Atmel серии AT91SAM7X: назначение бит GPNVM.

 

Добавить комментарий


Защитный код
Обновить

Top of Page