Важно!
Обратите особое внимание на отличия методов адресации памяти и на то, какие области памяти доступны для использования.
Память ключа Guardant Code
В контроллере электронных ключей Guardant Code существует два вида памяти: оперативная (RAM) и постоянная (Flash).
Оперативная память (далее – RAM) используется для хранения переменных, стека, буферов ввода-вывода. Часть RAM используется системной микропрограммой (System RAM), а другая часть – загружаемым кодом (20 Кб).
Память, которая используется для хранения загружаемого кода и его констант, в дальнейшем будет называться Flash-памятью. Часть Flash-памяти занята системной микропрограммой (System Flash), другая часть предназначена для загружаемого кода (128 Кб или 352 Кб, в зависимости от модификации ключа).
В предыдущих моделях ключей Guardant энергонезависимая память для хранения ключевой информации защищаемого приложения была выполнена в виде отдельной микросхемы EEPROM (электрически перепрограммируемая постоянная память). Поэтому для сохранения преемственности и совместимости EEPROM эмулируется во Flash-памяти контроллера Guardant Code. В ней (точно так же, как в обычных ключах Guardant) хранятся системные поля данных, дескрипторы защищенных ячеек и аппаратных алгоритмов. Для ясности и краткости эта эмулируемая память в дальнейшем будет называться просто EEPROM.
Организация EEPROM
Ключи с загружаемым кодом обладают EEPROM объемом 4096 байт. Организация этой области памяти идентично устройству EEPROM ключей Guardant Sign/Time/Sign Net/ Time Net и детально рассматривается в разделе Организация EEPROM памяти.
Карта Flash-памяти и RAM
При работе с RAM-памятью и Flash-памятью для хранения загружаемого кода используется иная, чем в случае с EEPROM, адресация, основанная на карте памяти контроллера ключа.
Карта памяти, доступная для загружаемого кода, выглядит так:
Адреса | Назначение |
00020000h-0003FFFFh | Flash-память для размещения загружаемого кода,страницы 1-4 (для варианта с 128 кб Flash-памяти) |
00040000h-00077FFFh | Flash-память для размещения загружаемого кода,страницы 5-11 (для варианта с 352 кб Flash-памяти) |
40003000h-40007FDFh | RAM (ОЗУ), доступная загружаемому коду. Тут размещаются: стек, буфер ввода-вывода, переменные загружаемого кода |
Flash-память разделена на страницы по 32 Кб. При этом страница может быть занята только целиком. Вследствие такой организации памяти в Guardant Code может существовать от 1 до 4 (или до 11, в зависимости от объема доступной Flash-памяти) отдельных сегментов загружаемого кода.
Как правило, необходимости в нескольких независимых сегментах загружаемого кода не возникает, а потому в подавляющем большинстве случаев размещения для загружаемого кода резервируется вся доступная Flash-память.