реклама на сайте
подробности

 
 
> Указатели в PROGMEM
demiurg_spb
сообщение Jul 7 2008, 08:18
Сообщение #1


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Народ! Есть вопрос по поводу указателей хранящихся в памяти данных.

Сейчас я использую макрос такого плана:

Код
#define pgm_read_ptr(address)           ((void*)pgm_read_word(address))


Но программа переваливает за 64К и гипотетически возможны проблемы.
Т.к. указатели на данные могут быть 3-х байтными.

Может кто-нибудь написал универсальный макрос - поделитесь информацией...

Ну или чтобы хоть warning или error на этапе компиляции выскакивал когда ptr>65535.
Предупрежден - значит вооружён!

Сообщение отредактировал demiurg_spb - Jul 7 2008, 08:49


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aesok
сообщение Jul 7 2008, 09:29
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(demiurg_spb @ Jul 7 2008, 12:18) *
Код
#define pgm_read_ptr(address)           ((void*)pgm_read_word(address))


Но программа переваливает за 64К и гипотетически возможны проблемы.
Т.к. указатели на данные могут быть 3-х байтными.


Все данные описанные с атрибутом progmem распологаются во флеш после таблицы векторов прерываний, и до кода программы. Пока общий размер таких переменных не привысит примерно 63КВ, никаких проблем не будет, будет достаточно старданторного 2-х байтового указателя.

Анатолий.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 13:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.02541 секунд с 7
ELECTRONIX ©2004-2016