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

 
 
> WinAVR(avr gcc 4.1.2): использование RAM и ЕЕПРОМ, компилятор
namelos
сообщение Sep 20 2007, 12:34
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 77
Регистрация: 4-08-06
Пользователь №: 19 324



Доброе время суток всем. Работаю с пакетом AVRStudio 4.13 build 528 и компилятором avr-gcc 4.1.2 (WinAVR 20070525). После компиляции кода появляется сообщение
Цитата
Program: 7092 bytes (43.3% Full)
Data: 41 bytes (4.0% Full)
EEPROM: 54 bytes (10.5% Full)

Где data, как я понимаю, размер занимаемой RAM памяти.
Что можете сказать по поводу сообщения компайлера, коллеги?
Использую в программе глобальные переменные, к сожалению без них никак, все техтовые данные (char) занесены в FLASH память. Как мне уменьшить размер используемого RAM? Возможна ли еще какая-нибудь оптимизация кода?

и еще:
Цитата
Pat:
Желательно и необходимо после операции записи чтения EEPROM указатель адреса EEAR = 0
Нулевую ячейку EEPROM соответственно не использовать.

Порывшись в avr-lib ничего не нашел по этому поводу. Возможно ли это силами winavr.

В одном из форумов выплывал подобный вопрос, но ответа я так и не услышал.
Заранее спасибо.

Сообщение отредактировал namelos - Sep 20 2007, 13:08
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
namelos
сообщение Sep 24 2007, 15:02
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 77
Регистрация: 4-08-06
Пользователь №: 19 324



Цитата
У меня с константой не прошло. Работает только при O0. При Os уже мои данные в 0 адресе.

Странно. И куда же записывалась первая константа? Я проверил, запись констант EEPROM при Os начинается с 0 адреса, ввел в начале дополнительную константу, она размещается под 0-адресом.

Сообщение отредактировал namelos - Sep 24 2007, 15:15
Go to the top of the page
 
+Quote Post
Qwertty
сообщение Sep 24 2007, 18:44
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527



Цитата(namelos @ Sep 24 2007, 19:02) *
Странно. И куда же записывалась первая константа? Я проверил, запись констант EEPROM при Os начинается с 0 адреса, ввел в начале дополнительную константу, она размещается под 0-адресом.

Ну вот примерно так:

#include <avr/io.h>
#include <avr/eeprom.h>


uint8_t EEMEM non_zero = 31;
uint8_t EEMEM store = 6;
unsigned int tmp;

int main (void)
{
tmp = eeprom_read_byte(&store);
while(1)
{
;
}
return (1);
}

В результате при оптимизации О0 еепром выглядит правильно 0x0000 0x1F 0x06
При Os все не так радужно 0x0000 0x06 0x1F
WinAvr20060421.
Прикрепленные изображения
Прикрепленное изображение Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
defunct
сообщение Sep 25 2007, 09:36
Сообщение #4


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Qwertty @ Sep 24 2007, 21:44) *
Так сработает, но уж очень способ неудобный.

Такие "забобоны" как проблемы с адресом 0 считаю надуманными.
Поступаю так:
Конфигурация устройства с которой я работаю хранится в ОЗУ, в eeprom записывается две копии кофигурации защищенных CRC8. При стартапе хоть одна копия да будет целой, она и читается в ОЗУ целиком, сбойнувшая перезаписывается целой. Если слетели обе копии конфигурации (такого у меня на счету не бывало) - устанавливаются параметры по-умолчанию.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- namelos   WinAVR(avr gcc 4.1.2): использование RAM и ЕЕПРОМ   Sep 20 2007, 12:34
- - Kuzmi4   На счёт- Program: 7092 bytes (43.3% Full) Data: ...   Sep 20 2007, 13:27
|- - ReAl   Цитата(Kuzmi4 @ Sep 20 2007, 15:27) На сч...   Sep 21 2007, 19:32
|- - singlskv   Цитата(ReAl @ Sep 21 2007, 23:32) Пользую...   Sep 21 2007, 20:08
|- - defunct   Цитата(singlskv @ Sep 21 2007, 23:08) в R...   Sep 21 2007, 22:58
||- - singlskv   Цитата(defunct @ Sep 22 2007, 02:58) Кто ...   Sep 22 2007, 06:34
|- - ReAl   Цитата(singlskv @ Sep 21 2007, 22:08) Есл...   Sep 22 2007, 07:19
- - namelos   По поводу gcc обыскал форум, но ничего не нашел, к...   Sep 20 2007, 13:55
- - Kuzmi4   2 namelos - На счёт ГЦЦ - "...Пилите Шура , ...   Sep 20 2007, 14:07
- - defunct   Цитата(namelos @ Sep 20 2007, 15:34) Как ...   Sep 20 2007, 17:41
- - namelos   Цитата(Kuzmi4 @ Sep 20 2007, 17:27) На сч...   Sep 20 2007, 21:22
- - Kuzmi4   2 namelos - ну где то тут встречал я рассдуждения ...   Sep 21 2007, 06:56
- - aesok   Цитата(namelos @ Sep 20 2007, 16:34) Цита...   Sep 22 2007, 07:21
- - namelos   ЦитатаPat: Желательно и необходимо после операции ...   Sep 24 2007, 13:30
|- - Qwertty   Цитата(namelos @ Sep 24 2007, 17:30) Пост...   Sep 24 2007, 14:49
- - namelos   Попробуй так Код#inlcude <avr/eeprom.h> ...   Sep 24 2007, 22:27
|- - Qwertty   Цитата(namelos @ Sep 25 2007, 02:27) Попр...   Sep 24 2007, 22:49
- - mdmitry   В дополнение к сказанному defunct. Деле так: пише...   Sep 26 2007, 20:53


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

 


RSS Текстовая версия Сейчас: 9th August 2025 - 01:48
Рейтинг@Mail.ru


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