|
WinAVR(avr gcc 4.1.2): использование RAM и ЕЕПРОМ, компилятор |
|
|
|
Sep 20 2007, 12:34
|
Частый гость
 
Группа: Свой
Сообщений: 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
|
|
|
|
|
 |
Ответов
|
Sep 20 2007, 13:27
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
На счёт- Program: 7092 bytes (43.3% Full) Data: 41 bytes (4.0% Full) EEPROM: 54 bytes (10.5% Full) Я так и не понял - что вы хотите этим сказать? На счёт - "Как мне уменьшить размер используемого RAM?" - могу выдвинуть на рассмотрение эмпирическое предложение - уже сдесь неоднократно обсуждалось - ГЦЦ интересно заносит данные во флеш - с дубляжом в РАМ. Поисчите - где то здесь вроде обсуждалось как от этого избавится. На счёт оптимизации - на мой взгляд - Os - самое то, хотя если хитрая программа - приёдётся повозится с кодом - подправить его чуть чуть, а то работать перестанет. На счёт наставлений Pat`a - то это в принципе давно всем известно, хотя я включал бод и более менее стабилизировал питане - и всё было как по маслу - не нужно было так извращаться с ЕЕПРОМом. А если всё же интересно как это - НЕ запысывать в 0 ячейку ЕЕПРОМА - пишется за 2-5 минут своя процедура обращения в авр-овскому еепром(основное время уходит на нахождение в ДШ нужной страницы  ) - и проблема решена.
|
|
|
|
|
Sep 21 2007, 20:08
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(ReAl @ Sep 21 2007, 23:32)  Пользуюсь avr-gcc где-то с 2001-2002 года. Впервые слышу о таком "интересно заносит данные во флеш" - или это кривые руки, или кто-то "слышал звон" и раззвенел дальше, а народ и повёлся. Если я чего не понял, то речь о том что Gcc в стартапе копирует все константные переменные в RAM из Flash, делает он это только с одной целью, ускорить обращение к этим константам. Просто автар написав const перед константной переменной, видимо решил что эта константа будет хранится в флеш... В Gcc для того что бы константы не перегружалась из флеш в RAM об этом нужно явно указать.
|
|
|
|
|
Sep 21 2007, 22:58
|

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

|
Цитата(singlskv @ Sep 21 2007, 23:08)  в RAM из Flash Кто о чем  Вроде речь о RAM и EEPROM шла, а не о флеш. Данные EEPROM в GCC не дублируются в RAM. Цитата(namelos @ Sep 21 2007, 00:22)  да заинтриговал меня Kuzmi4... Дык, файл <eeprom.h> к вашим услугам. Посмотрите, поизучайте, и меньше на интриги поддавайтесь.
|
|
|
|
Сообщений в этой теме
namelos WinAVR(avr gcc 4.1.2): использование RAM и ЕЕПРОМ Sep 20 2007, 12: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 ЦитатаУ меня с константой не прошло. Работает толь... Sep 24 2007, 15:02 Qwertty Цитата(namelos @ Sep 24 2007, 19:02) Стра... Sep 24 2007, 18:44  defunct Цитата(Qwertty @ Sep 24 2007, 21:44) Так ... Sep 25 2007, 09:36 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|