Перейти к содержанию
    

интересно, и уменя проблемы c UART были. Работал c GPRS модемом и все команды ответы выводились на консоль. С новой версией при инициализации с какойто команды начинал валиться мусор. А часть проходила нормально.

Читал про это. Пробовал я и майскую, тоже самое :(

Недогадался попробовать оптимизацию выключить.

C UART просто более наглядно наверное + прерывания используются. Если без них, то может проблем и не будет. Хотя кроме юартовских есть несколько других прерываний.

Вот еще что интересно, разительно отличаются секции data по размеру.

20071221
   text       data        bss        dec        hex    filename
   6312          0        152       6464       1940    mcontrol.out

20080610
   text       data        bss        dec        hex    filename
   5918        452        152       6522       197a    mcontrol.out

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прошу пролщения, а о какой четверке идет речь? Эти три версии все 4.x.x

Четверки во второй цифре версии вообще нет.

Виноват, не слежу за 200xxxxx.

Обычно сравниваю с 3.4.6 и вижу только недостатки и сырость.

Речь конечно шла о первой цифре.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробовал скомпилировать проект в сабжевой версии WinAVR, но использовал утилиты(rm, cp, mkdir и тд...) из версии 20070525. На железе проект запустился, размер кода возрос, а на ЖКИ вместо обычных букв - абракадабра и размер используемого ОЗУ возрос где-то на 1к При изменении уровня оптимизации абракадабра на ЖКИ меняется. Известно что железо полностью исправно и программа на 99% рабочая!!!В чем проблема незнаю, нету желания разбираться....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Видимо все-таки сыроват этот новый WinAVR...

У меня тоже пока нет желания разбираться, да и опыта анализа ассемблерных листингов нет(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Новый проект откомпилил на SUBJ работает. Только он на 100 байт больше оказался чем 20070525

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Новый проект откомпилил на SUBJ работает. Только он на 100 байт больше оказался чем 20070525

 

Попробуйте ключик --param inline-call-cost, если вам важен размер. Например, "--param inline-call-cost=0"

 

см. http://electronix.ru/forum/index.php?s=&am...st&p=393595

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Новый проект откомпилил на SUBJ работает. Только он на 100 байт больше оказался чем 20070525

А что изменилось по сравнению с Вашим старым проектом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заметил что компилятор все символьные строки запихнул в ОЗУ, хотя они объявлены как prog_char, и из-за этого и фигня на ЖКИ влезла...в более ранних версиях GCC (4.2.2) такого небыло.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заметил что компилятор все символьные строки запихнул в ОЗУ, хотя они объявлены как prog_char, и из-за этого и фигня на ЖКИ влезла...в более ранних версиях GCC (4.2.2) такого небыло.

 

Тестовый пример пожалуйста приведите.

 

Анатолий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Когда-то, некоторое время, вел проекты параллельно в iar и winavr. Когда доверие к winavr утвердилось - остановился. После 20070527 обновляться перестал (некогда, работа однако). Выбрав свободный часок опробовал версию 2008 года (~май). Проект собрался без ошибок и предупреждений, но в изделии не заработал. Причем по железу все боле менее, а с матем. расчетами проблемы. Разбираться не стал (работа однако).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заметил что компилятор все символьные строки запихнул в ОЗУ

У меня все нормально, лежат во флеш.

 

Подпрограмма вызываемая 1 раз подставлена инлайн соответственно получилось 2 копии. Из-за этого и длина больше. попробую ключик

--param inline-call-cost

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подпрограмма вызываемая 1 раз подставлена инлайн соответственно получилось 2 копии. Из-за этого и длина больше. попробую ключик

--param inline-call-cost

Лучше объявите эту функцию как static.

 

Анатолий.

Изменено пользователем aesok

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Лучше объявите эту функцию как static.
или --ffunction-sections, -Wl,--gc-sections. Ведь часто исходник кочует из проекта в проект, в каком-то используются одни функции, в каком-то другие, или написали функцию, попользовали ее в другом файле, потом в процессе эволюции необходимость в функции пропала. Если линкер может выкинуть неиспользуемый код - пусть он это делает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

про --gc-sections где-то читал что могут быть проблеммы с отладкой. вечером поищю где про это написано.

 

Анатолий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...