|
|
  |
WinAVR-20080610, делимся впечатлениями |
|
|
|
Jun 25 2008, 05:50
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
Цитата(viakon @ Jun 25 2008, 14:43)  интересно, и уменя проблемы 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
--------------------
Выбор.
|
|
|
|
|
Jun 25 2008, 06:00
|
Местный
  
Группа: Участник
Сообщений: 205
Регистрация: 8-03-05
Пользователь №: 3 146

|
Цитата Прошу пролщения, а о какой четверке идет речь? Эти три версии все 4.x.x Четверки во второй цифре версии вообще нет. Виноват, не слежу за 200xxxxx. Обычно сравниваю с 3.4.6 и вижу только недостатки и сырость. Речь конечно шла о первой цифре.
|
|
|
|
|
Jun 27 2008, 08:43
|
Группа: Участник
Сообщений: 13
Регистрация: 23-10-04
Пользователь №: 968

|
Цитата(viakon @ Jun 27 2008, 11:29)  Новый проект откомпилил на SUBJ работает. Только он на 100 байт больше оказался чем 20070525 Попробуйте ключик --param inline-call-cost, если вам важен размер. Например, "--param inline-call-cost=0" см. http://electronix.ru/forum/index.php?s=&am...st&p=393595
|
|
|
|
|
Jun 28 2008, 18:55
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(kurtis @ Jun 28 2008, 22:50)  Заметил что компилятор все символьные строки запихнул в ОЗУ, хотя они объявлены как prog_char, и из-за этого и фигня на ЖКИ влезла...в более ранних версиях GCC (4.2.2) такого небыло. Тестовый пример пожалуйста приведите. Анатолий.
|
|
|
|
|
Jun 30 2008, 03:59
|
Местный
  
Группа: Участник
Сообщений: 290
Регистрация: 9-12-05
Из: г. Пермь
Пользователь №: 12 002

|
Цитата(kurtis @ Jun 28 2008, 23:50)  Заметил что компилятор все символьные строки запихнул в ОЗУ У меня все нормально, лежат во флеш. Подпрограмма вызываемая 1 раз подставлена инлайн соответственно получилось 2 копии. Из-за этого и длина больше. попробую ключик --param inline-call-cost
|
|
|
|
|
Jun 30 2008, 09:21
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(viakon @ Jun 30 2008, 07:59)  Подпрограмма вызываемая 1 раз подставлена инлайн соответственно получилось 2 копии. Из-за этого и длина больше. попробую ключик --param inline-call-cost Лучше объявите эту функцию как static. Анатолий.
Сообщение отредактировал aesok - Jun 30 2008, 09:21
|
|
|
|
|
Jun 30 2008, 09:32
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(aesok @ Jun 30 2008, 12:21)  Лучше объявите эту функцию как static. или --ffunction-sections, -Wl,--gc-sections. Ведь часто исходник кочует из проекта в проект, в каком-то используются одни функции, в каком-то другие, или написали функцию, попользовали ее в другом файле, потом в процессе эволюции необходимость в функции пропала. Если линкер может выкинуть неиспользуемый код - пусть он это делает.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|