Использование особенностей GCC для повышения комфорта

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
arkhnchul
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Re: Использование особенностей GCC для повышения комфорта

Сообщение arkhnchul »

[uquote="YS",url="/forum/viewtopic.php?p=3129878#p3129878"]желание использовать SDCC у меня отпало когда я дочитал документацию по нему примерно до половины[/uquote]
если не секрет - что там было такого страшного, кроме туповатого линкера?
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18625
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Использование особенностей GCC для повышения комфорта

Сообщение ARV »

YS писал(а):о кросс-платформенности думать приходится, чтобы при необходимости использовать код коллег и делиться с ними своим кодом
в этой фразе - ключ к пониманию моего подхода. я работаю на себя, для себя и так, как хочу сам. я не связан по рукам и ногам разнообразием платформ - я развлекаюсь исключительно с AVR. весьма зыбкие планы приступить к играм с ARM, если вдруг решусь, то буду так же при помощи GCC делать.

призываю всех всегда помнить, на каком сайте мы все общаемся и намеренно приземлять полет своих крылатых мыслей до уровня любителя. я, как любитель, уже далеко не все могу понять, а я ведь всё-таки не совсем неуч... чего уж говорить о любителях генерировать код визардами?!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Использование особенностей GCC для повышения комфорта

Сообщение YS »

Я, кстати, тоже по возможности использую GCC, и коллег, работающих со мной наиболее тесно, на него почти перетянул. :)

Единственно, как я уже говорил, меня очень огорчает отсутствие поддержки STM8. Правда, STM8 хороши по большей части ценой, из них я склонен использовать только младшие кристаллы.
если не секрет - что там было такого страшного, кроме туповатого линкера?
У него странная система вызовов, диковинные форматы файлов, неполная поддержка стандарта - это то, что помнится навскидку. :) А еще у меня возникло ощущение, что STM8 туда прикручивали по остаточному принципу.
чего уж говорить о любителях генерировать код визардами?!
Я скажу по секрету, что у нас среди разработчиков тоже есть любители генерировать код визардами. :wink: Это создает отдельные проблемы. :)
Разница между теорией и практикой на практике гораздо больше, чем в теории.
arkhnchul
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Re: Использование особенностей GCC для повышения комфорта

Сообщение arkhnchul »

[uquote="YS",url="/forum/viewtopic.php?p=3130142#p3130142"]А еще у меня возникло ощущение, что STM8 туда прикручивали по остаточному принципу[/uquote]
вообще да) сначала он был под mcs-51, потом прикрутили z80, затем pic-и, еще чего-то. Порт stm8 емнип пилят полтора землекопа.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Использование особенностей GCC для повышения комфорта

Сообщение oleg110592 »

[uquote="YS",url="/forum/viewtopic.php?p=3130142#p3130142"]У него странная система вызовов, диковинные форматы файлов, неполная поддержка стандарта - это то, что помнится навскидку. :) А еще у меня возникло ощущение, что STM8 туда прикручивали по остаточному принципу.[/uquote]
попробуйте последний snapshot. Недавно делал проектик SDCC STM8 - код без правок копипастил для сравнения в ИАР, ИАР на ~100 байт меньше размер сделал. Оба варианта одинаково в железе работают. Никаких негативных ощущений не возникло, единственное SDCC при работе с битами периферии чудит (4 команды вместо bset/bres), решается проблема дополнительным peep файликом.

А по теме - GCC нынче "расширился" значительно, что иногда проще не переносить чужой код в другой компилятор. А GCC для микроконтроллеров сейчас делает вполне компактный выхлоп.
https://habrahabr.ru/post/315676/
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18625
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Использование особенностей GCC для повышения комфорта

Сообщение ARV »

oleg110592 писал(а):GCC нынче "расширился" значительно
жалко, что до сих пор для AVR не сделали пространство имен __eeprom аналогично тому, как сделали __flash.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
pokk
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

Re: Использование особенностей GCC для повышения комфорта

Сообщение pokk »

ARV, по поводу трасировки, так как у вас дефайн log_i из кода, убираеться ?
Если он находится в debug.h то в релизной версии убирается и начинается ругань компилятора на неизвестную конструкцию. Как то так?

Код: Выделить всё

#if defined(__DEBUG__)
   void debuf_func(void);
   #define log_i(x)   printf_P(PSTR("\nLOG> " __FILE__ "\%s:%04d " # x "=%d\n"), __FUNCTION__, __LINE__, x)
#else
#define debug_func()
#define log_i(x) 
#endif
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18625
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Использование особенностей GCC для повышения комфорта

Сообщение ARV »

если макрос __DEBUG__ не определен, то все автоматически и убирается, ничего больше делать не надо.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
pokk
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

Re: Использование особенностей GCC для повышения комфорта

Сообщение pokk »

Так так а вот про это по подробнее, как она автоматически убирается?
Допустим я использовал макрос log_i(x) где-то в майне, так вот после того как
выключаем макрос __DEBUG__ определение макроса log_i(x) убирается, при этом на пустую заглушку не изменяться.

по этому компилятор и выдаст ошибку на неизвестный дефайн(log_i(x)) так как он выключился.


PS:GCC не пользовался ни разу.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18625
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Использование особенностей GCC для повышения комфорта

Сообщение ARV »

все макросы log_xxx продефайнены именно в обертке #if defined(__DEBUG__), поэтому при отсутствии этого макроса должны подставляться пустышки.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Ответить

Вернуться в «Разные вопросы по МК»