Операции программирования Flash-памяти не управляются модулем акселератора памяти (МАМ), а реализованы как отдельная функция микроконтроллера. Сектор памяти, именуемый в документации производителя «загрузочным блоком», содержит алгоритмы программирования Flash-памяти, которые можно вызывать как части прикладной пользовательской программы. Кроме того, эти алгоритмы могут выполняться с целью реализовать последовательное (внутрисхемное) программирование. Каждый сектор Flash-памяти в микроконтроллерах LPC2000 определен в обоих банках таким образом, чтобы операция стирания сектора происходила в обоих банках одновременно.
Необходимо отметить, что структура с двумя банками Flash-памяти является «прозрачной» по отношению к функциям программирования и не создает каких-либо проблем с точки зрения пользователя.
5.4. Защелки команд и защелки данных
Операции доступа к программному коду и к данным обрабатываются модулем акселератора памяти (МАМ) раздельно. В нем имеется два 128-битных фиксатора (защелки) команд по и 12-битный фиксатор (защелка) сравнения адреса, связанные с каждым банком Flash-памяти. Один из двух таких наборов защелок, называемых буфером ветвлений (переходов), содержит данные и адрес сравнения для последней «выпадающей команды», находящейся в соответствующем банке. Другой набор защелок, называемый буфером выборки с упреждением, содержит данные и адрес сравнения для команд, выбранных с упреждением, т. е. таких, которые с большой вероятностью будут выполняться процессором ARM, но выполнение которых еще не началось. Каждая защелка команд содержит 4 слова программного кода (4 команды ARM, или 8 команд THUMB).
Аналогично, для организации цикла доступа к данным в модуле МАМ используются 128-битная защелка данных и 13-битный фиксатор адреса данных. Этот набор защелок является общим для обоих банков Flash-памяти. Каждая попытка доступа к данным, отсутствующим в защелке, влечет за собой выборку из Flash-памяти 4 слов данных, которые фиксируются в защелке данных. Это дает значительное ускорение при доступе к данным, расположенным по последовательным адресам, но имеет незначительный эффект при доступе к данным, расположенным по произвольным адресам.
5.5. Проблемы программирования Flash-памяти
Поскольку во время проведения операций программирования и стирания Flash-памяти доступ к ней запрещен, необходимо, чтобы модуль МАМ мог бы каким-то образом «информировать» центральный процессор о возникновении подобной ситуации. (В процессорном ядре ARM7TDMI-S таким индикатором является наличие На внутренней шине сигнала CLKEN.) При некоторых условиях, задержка доступа к Flash-памяти может привести к временной приостановке работы (time-out) сторожевого таймера. Пользователь должен учитывать такую возможность и предпринимать шаги к тому, чтобы нежелательный сброс от сторожевого таймера не привел к сбою программирования или стирания Flash-памяти.
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |