Чтение и запись флэш-памяти AVR

Я не понимаю одной фундаментальной вещи о доступе к флеш-памяти в AVR. Как указано в таблице данных, флеш-страница состоит из 64 слов для atmega16 и состоит из 128 страниц. Поскольку он имеет 16 Кбайт флэш-памяти, легко получить, что размер слова составляет 2 байта, а размер страницы - 128 байтов.

Ну .. В режиме программирования Spi есть инструкции загрузки и записи. Прежде всего, в чем разница между ними?

И второй вопрос касается инструкций по загрузке страницы памяти. Есть две инструкции: одна для младшего байта и одна для старшего. Мы должны отправить четыре байта: байт идентификации команды (если можно так назвать), старший бит адреса, младший бит адреса и байт данных. Вопрос в том, что делают эти инструкции? Какие здесь старшие и младшие байты, хотя мы загружаем страницу, состоящую из 128 байтов?


person Long Smith    schedule 23.11.2015    source источник


Ответы (1)


Ну .. В режиме программирования Spi есть инструкции загрузки и записи. Прежде всего, в чем разница между ними?

Вы, вероятно, не знаете о «буфере страницы». Чтобы записать новые данные на страницу, сначала необходимо заполнить буфер страницы. Он содержит одну временную страницу и должен быть заполнен слово за словом. -> Загрузить инструкцию

Буфер копируется во флэш-память за одну операцию. -> Написать инструкцию

И второй вопрос касается инструкций по загрузке страницы памяти. Есть две инструкции: одна для младшего байта и одна для старшего. Мы должны отправить четыре байта: байт идентификации команды (если можно так назвать), старший бит адреса, младший бит адреса и байт данных. Вопрос в том, что делают эти инструкции? Какие здесь старшие и младшие байты, хотя мы загружаем страницу, состоящую из 128 байтов?

Он относится к младшему и старшему байту каждого слова, загружаемого в буфер страницы.

person Rev    schedule 24.11.2015
comment
На странице всего 64 адреса при 128 байтах. Адрес MSB: LSB относится к 2 байтам (1 слову), поэтому есть две разные инструкции: одна для загрузки старшего байта данных в это место, а другая для загрузки младшего байта. - person uncleO; 24.11.2015
comment
Спасибо. Я понял. Также мне пришлось прочитать руководство по внутрисистемному программированию от Atmel. - person Long Smith; 25.11.2015