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

 
 
 
Reply to this topicStart new topic
> Почему код flash+EEPROM занимает больше места
scorpio3
сообщение Oct 16 2012, 07:49
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 3-06-09
Из: Самара
Пользователь №: 49 904



Пишу библиотеку для светодиодного индикатора,сначала массив разместил в sram - unsigned char,потом думаю для экономии flash памяти размещу в EEPROM,но после компиляции у меня получается,что 1,81 Kb flash + 26 байт eeprom,тогда как в sram - 1,76 kb,код наоборот стал больше при использовании eeprom.Может я чего то не так понимаю?Подскажите пожалуйста.
Использую Iar 6.1,atmega 16.
При компиляции sram выставляю в настройках intel-standart.
При компиляции с eeprom добавляю
-Ointel-standard,(CODE)=$PROJ_DIR$\Release\Exe\Test.hex
-Ointel-standard,(XDATA)=$PROJ_DIR$\Release\Exe\Test.eep
Go to the top of the page
 
+Quote Post
hd44780
сообщение Oct 16 2012, 08:02
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



К EEPROM адресоваться напрямую (как к флэшу или RAM) нельзя, только вычитывать побайтно, как из UART/TWI/....
Потому как EEPROM не отображается на адресное пространство, это обычная периферия, работает через регистры, а не через указатели на что-то там.

Поэтому если Вы пишете типа

eeprom char a;
a='A';
b=a;

то в последних 2 операторах компилятор автоматом подставляет код для обращения к EEPROM. А это не 1-2 команды (см. даташит).
За счёт этого и код больше. Если Вам это так актуально, храните в RAM. Или flash ...

PS.
А коды, описывающие циферки на дисплее надо всё же во flash хранить. Или Вы меняете эти описания на лету?


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 24th July 2025 - 05:11
Рейтинг@Mail.ru


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