Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Настройки MFile в WinAVR
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
MaxiMuz
В WinAVR-20080610 в сборщике MFile имеются следущие настройки:
Код
C standard level:
c89
gnu89
c99
gnu99

Кто может разьяснить что это и влияет както это на сформированный код программы ?
XVR
Цитата(MaxiMuz @ Jul 5 2011, 16:42) *
Кто может разьяснить что это
Это управление диалектом языка С, который будет понимать компилятор. Ставьте gnu99 - это максимум, будет понимать все rolleyes.gif
demiurg_spb
Я бы на с99 всё же остановился.

Цитата(MaxiMuz @ Jul 5 2011, 16:42) *
влияет как-то это на сформированный код программы?
никак не влияет, если компилируется без ошибок.
Цитата
WinAVR-20080610
обновитесь уже наконецsm.gif За три года avr-gcc сильно шагнул вперёд.
haker_fox
QUOTE (demiurg_spb @ Jul 6 2011, 18:31) *
За три года avr-gcc сильно шагнул вперёд.

Стыдно признаться, но я до сих пор использую WinAVR-20071221 crying.gif
MrYuran
Цитата(haker_fox @ Jul 6 2011, 13:49) *
Стыдно признаться, но я до сих пор использую WinAVR-20071221 crying.gif

Действительно, зачем менять то, что работает (предсказуемо)
haker_fox
QUOTE (MrYuran @ Jul 6 2011, 19:04) *
Действительно, зачем менять то, что работает (предсказуемо)

Да нет, скорее связано с проблемами, которые ощутил в далеком 2008 году при испытании версии 20080601 вроде бы. Программа, великолепно работающая после упомянутого компилятора от 2007 года, перестала работать на новом. С тех пор как-то не думал об upgrade rolleyes.gif Хотя 2010 версию можно и испытать. Сравнить.
Кстати, я ошибаюсь, или после 2010 года новых версий не появлялось?
MaxiMuz
Т.е. как я понял эти настройки не должны влиять на включение в код лишних команд , к примеру которые сохраняют неиспользуемые вообще в программе регистры при вызове функций и обработчиков прерываний ..
-SANYCH-
Цитата
Да нет, скорее связано с проблемами, которые ощутил в далеком 2008 году при испытании версии 20080601 вроде бы. Программа, великолепно работающая после упомянутого компилятора от 2007 года, перестала работать на новом.


Я тоже столкнулся с анологичной проблемой. Причем еще новые компиляторы делали код по размеру больше sad.gif
MrYuran
Цитата(MaxiMuz @ Jul 6 2011, 16:31) *
Т.е. как я понял эти настройки не должны влиять на включение в код лишних команд , к примеру которые сохраняют неиспользуемые вообще в программе регистры при вызове функций и обработчиков прерываний ..

Конкретно указанные - нет.
Они влияют только на допустимость синтаксических конструкций.
Например, объявление переменной внутри скобок for() в изначальном стандарте си не предусмотрено. Как и некоторые другие моменты.
demiurg_spb
Цитата(haker_fox @ Jul 6 2011, 14:58) *
Да нет, скорее связано с проблемами, которые ощутил в далеком 2008 году при испытании версии 20080601 вроде бы. Программа, великолепно работающая после упомянутого компилятора от 2007 года, перестала работать на новом. С тех пор как-то не думал об upgrade rolleyes.gif Хотя 2010 версию можно и испытать. Сравнить.
Кстати, я ошибаюсь, или после 2010 года новых версий не появлялось?
Да WinAVR как-то заглох. На 2010 (в нём avr-gcc-4.3.3) точно всё работает (более чем на 10 проектах разной степени сложности).
А вообще сейчас сижу на avr-gcc 4.4.3 из атмеловкого тулчейна (правда я заменил в нём coreutils на более свежий, т.к. идущий с ним древний до ужаса).
Сижу громко сказано, с атмелом практически завязал, arm-cm3 рулит.

Цитата(-SANYCH- @ Jul 6 2011, 16:59) *
Я тоже столкнулся с аналогичной проблемой. Причем еще новые компиляторы делали код по размеру больше sad.gif
Неправда ваша. Вы просто не включаете новые способы оптимизации.
-SANYCH-
Цитата
Неправда ваша. Вы просто не включаете новые способы оптимизации.


Приведите пример как их включить.
MrYuran
Цитата(-SANYCH- @ Jul 7 2011, 12:18) *
Приведите пример как их включить.

Не помню, где взял, скорее всего на родине...
Нажмите для просмотра прикрепленного файла
3 GCC Command Options
Ну и вообще много интересного.
CODE
See Section 3.10 [Options that Control Optimization], page 65.
-falign-functions=n -falign-jumps=n
-falign-labels=n -falign-loops=n
-fbounds-check -fmudflap -fmudflapth -fmudflapir
-fbranch-probabilities -fprofile-values -fvpt -fbranch-target-load-optimize
-fbranch-target-load-optimize2 -fbtr-bb-exclusive
-fcaller-saves -fcprop-registers -fcse-follow-jumps
-fcse-skip-blocks -fcx-limited-range -fdata-sections
-fdelayed-branch -fdelete-null-pointer-checks -fearly-inlining
-fexpensive-optimizations -ffast-math -ffloat-store
-fforce-addr -ffunction-sections
-fgcse -fgcse-lm -fgcse-sm -fgcse-las -fgcse-after-reload
-floop-optimize -fcrossjumping -fif-conversion -fif-conversion2
-finline-functions -finline-functions-called-once
-finline-limit=n -fkeep-inline-functions
-fkeep-static-consts -fmerge-constants -fmerge-all-constants
-fmodulo-sched -fno-branch-count-reg
-fno-default-inline -fno-defer-pop -floop-optimize2 -fmove-loop-invariants
-fno-function-cse -fno-guess-branch-probability
-fno-inline -fno-math-errno -fno-peephole -fno-peephole2
-funsafe-math-optimizations -funsafe-loop-optimizations -ffinite-math-only
-fno-trapping-math -fno-zero-initialized-in-bss
-fomit-frame-pointer -foptimize-register-move
-foptimize-sibling-calls -fprefetch-loop-arrays
-fprofile-generate -fprofile-use
-fregmove -frename-registers
-freorder-blocks -freorder-blocks-and-partition -freorder-functions
-frerun-cse-after-loop -frerun-loop-opt
-frounding-math -fschedule-insns -fschedule-insns2
-fno-sched-interblock -fno-sched-spec -fsched-spec-load
-fsched-spec-load-dangerous
-fsched-stalled-insns=n -fsched-stalled-insns-dep=n
-fsched2-use-superblocks
-fsched2-use-traces -freschedule-modulo-scheduled-loops
-fsignaling-nans -fsingle-precision-constant
-fstack-protector -fstack-protector-all
-fstrength-reduce -fstrict-aliasing -ftracer -fthread-jumps
-funroll-all-loops -funroll-loops -fpeel-loops
-fsplit-ivs-in-unroller -funswitch-loops
-fvariable-expansion-in-unroller
-ftree-pre -ftree-ccp -ftree-dce -ftree-loop-optimize
-ftree-loop-linear -ftree-loop-im -ftree-loop-ivcanon -fivopts
-ftree-dominator-opts -ftree-dse -ftree-copyrename -ftree-sink
-ftree-ch -ftree-sra -ftree-ter -ftree-lrs -ftree-fre -ftree-vectorize
-ftree-vect-loop-version -ftree-salias -fweb
-ftree-copy-prop -ftree-store-ccp -ftree-store-copy-prop -fwhole-program
--param name=value -O -O0 -O1 -O2 -O3 -Os
MaxiMuz
MrYuran полезный документ!
а подскажете ключик который отключает Statrup ?
zltigo
QUOTE (MaxiMuz @ Jul 7 2011, 17:31) *
а подскажете ключик который отключает Statrup ?

А подумать и понять, что:
-startup к процессу компиляции каких-либо файлов отношения не имеет и не может иметь. Посему таких ключиков у компилятора не может быть даже теоретически.
-без какого либо startup нельзя получить что-либо исполняемое, только объектники/библиотеки.
-не нужен startup, так не линкуйте его.

Вы теперь в каждой теме http://electronix.ru/forum/index.php?showtopic=91858&hl= будете это спрашивать и НЕ читать ответы, например, XVR?
_Pasha
Цитата(MrYuran @ Jul 7 2011, 11:32) *
Не помню, где взял, скорее всего на родине...

Родина типа "широка страна моя родная..." sm.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.