цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Модификация загрузчика Arduino для записи пользовательских данных в flash-память

Модификация загрузчика Arduino для записи пользовательских данных в flash-память

Автор: Mike(admin) от 5-07-2015, 18:15

Для хранения каких-либо пользовательских данных в Arduino и вообще в микроконтроллерах AVR используют память EEPROM (Electrically Erasable Programmable Read-Only Memory или по-русски электрически стираемое перепрограммируемое постоянное запоминающее устройство). Но, к сожалению, она имеет малый объем и небольшое количество циклов чтения записи в отличие от flash-памяти. Например, в Arduino Uno на основе микроконтроллера ATmega328 у пользователя имеется в роспоряжении всего лишь 1024 байта для записи и последующего хранения данных. У версий Arduino с чипом ATmega168 этого пространства вообще в два раза меньше - всего 512 КБ.


Модификация загрузчика Arduino для записи пользовательских данных в flash-память

Но во флэш-память нельзя в процессе работы записывать данные, поскольку в нормальном режиме это память программ, и только загрузчик в процессе программирования может записывать туда информацию. К счастью, решение найдено! Загрузчик (bootloader) для Arduino под названием Optiboot был успешно модифицирован.


Благодаря этой модификации можно использовать команду флэш-записи (SPM) как бы за пределами загрузчика.


Модифицированный Optiboot можно скачать с гитхаба. При работе используйте Arduino IDE версии 18 и выше. В директории вашего скетча создайте папку hardware. Скопируйте Optiboot в эту папку. При этом после перезагрузки Arduino IDE в меню появятся новые платы, с которыми может работать Optiboot. Для прошивки Arduino бутлоадером подключите необходимую плату к внутрисхемному (ISP) программатору и нажмите Burn Bootloader.


Вообще Optiboot представляет собой очень полезную вещь. Он позволяет записывать большие скетчи, поскольку Optiboot по своему размеру равен примерно одной четвертой объема памяти, которую занимает стандартный загрузчик. При этом освобождается примерно 1.5 КБ дополнительного места. С помощью Optiboot можно загружать скетчи в Arduino намного быстрее, поскольку Optiboot поддерживает более высокие скорости загрузки. Optiboot совместим с Arduino на основе чипов ATmega168 b 328, включая Lilypad, Pro, Nano. Также возможна работа с ATmega1280, ATmega644 и ATmega1284. Еще поддерживаются менее популярные чипы компании AVR - ATmega88 и ATmega32.Также разработчики Optiboot утверждают, что этот загрузчик позволяет запускать ваши скетчи на Arduino быстрее, без каких либо проблем и задержек со стороны сторожевого таймера.


В качестве примера записи данных во флэш-память Arduino предоставляется достаточно понятный скетч.




© digitrode.ru


Теги: Arduino




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий