AVR: Прочитать ячейку памяти

Обсуждаем контроллеры компании Atmel.
Ответить
Открыл глаза
Сообщения: 44
Зарегистрирован: Сб июн 14, 2008 11:51:50

Сообщение k000858 »

Всем привет.
возникла необходимость програмно прочитать значения пары ячеек памяти, да не простых, а из области загрузчика.

Подскажите, реально это сделать?
gcc
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

Это вполне реально объявляем переменную

Код: Выделить всё

 #include <avr/pgmspace.h>
 unsigned char PROGMEM variable =5;//объявление переменной
i=pgm_read_byte(&variable);//присвоение переменной i значения переменой во флеш  
можно так же использовать сокращенный вид объявления переменных
prog_void
prog_char
prog_uint8_t
prog_int16_t
prog_uint16_t
prog_int32_t
prog_uint32_t
prog_int64_t
prog_uint64_t

Источник данных
Контактная информация:
Реклама
Открыл глаза
Сообщения: 44
Зарегистрирован: Сб июн 14, 2008 11:51:50

Сообщение k000858 »

Да, спасибо! с чтением разобрался. теперь задача - эти пару ячеек перезаписать, зная их координаты. реально?
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

Для записи существует ЕЕПРОМ у него ресурс повыше будет и вообще обычно во флеш записывают константы, чтобы они при запуске не забивали оперативную память.
Запись и использование ЕЕПРОМ почти такое же как у флеш, только функции для работы с ЕЕПРОМ описаны в файле eemem.h
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Сообщение HHIMERA »

vitalik_1984 писал(а): можно так же использовать сокращенный вид объявления переменных
prog_void
prog_char
prog_uint8_t
prog_int16_t
prog_uint16_t
prog_int32_t
prog_uint32_t
prog_int64_t
prog_uint64_t

Источник данных
prog_void - DEPRECATED
prog_char - DEPRECATED
prog_uint8_t - DEPRECATED
prog_int16_t - DEPRECATED
prog_uint16_t - DEPRECATED
prog_int32_t - DEPRECATED
prog_uint32_t - DEPRECATED
prog_int64_t - DEPRECATED
prog_uint64_t - DEPRECATED
"Я не даю готовых решений, я заставляю думать!"(С)
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

HHIMERA писал(а):prog_void - DEPRECATED
prog_char - DEPRECATED
prog_uint8_t - DEPRECATED
prog_int16_t - DEPRECATED
prog_uint16_t - DEPRECATED
prog_int32_t - DEPRECATED
Что вы хотите этим сказать?
У меня нормально - вроде можно пользоваться.
Изображение
Вложения
типы данных прогмем.GIF
(19.08 КБ) 976 скачиваний
Контактная информация:
Реклама
Открыл глаза
Сообщения: 44
Зарегистрирован: Сб июн 14, 2008 11:51:50

Сообщение k000858 »

про существование ЕЕПРОМ знаю итак, спасибо )
моя задача изменить алгоритм работы загрузчика, для этого необходимо изменить буквально пару байт во флэш
с чтением понятно.
с записью, на сколько я понимаю, не все так просто: изза пары байт придется стирать и перезаписывать всю страницу
Открыл глаза
Сообщения: 44
Зарегистрирован: Сб июн 14, 2008 11:51:50

Сообщение k000858 »

отвечу сам на свой вопрос:
функции стирания/записи флэш доступны только из секции бутлоадера
Ответить

Вернуться в «AVR»