Использование особенностей GCC для повышения комфорта
Re: Использование особенностей GCC для повышения комфорта
[uquote="YS",url="/forum/viewtopic.php?p=3129878#p3129878"]желание использовать SDCC у меня отпало когда я дочитал документацию по нему примерно до половины[/uquote]
если не секрет - что там было такого страшного, кроме туповатого линкера?
если не секрет - что там было такого страшного, кроме туповатого линкера?
- Реклама
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18629
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Использование особенностей GCC для повышения комфорта
в этой фразе - ключ к пониманию моего подхода. я работаю на себя, для себя и так, как хочу сам. я не связан по рукам и ногам разнообразием платформ - я развлекаюсь исключительно с AVR. весьма зыбкие планы приступить к играм с ARM, если вдруг решусь, то буду так же при помощи GCC делать.YS писал(а):о кросс-платформенности думать приходится, чтобы при необходимости использовать код коллег и делиться с ними своим кодом
призываю всех всегда помнить, на каком сайте мы все общаемся и намеренно приземлять полет своих крылатых мыслей до уровня любителя. я, как любитель, уже далеко не все могу понять, а я ведь всё-таки не совсем неуч... чего уж говорить о любителях генерировать код визардами?!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Использование особенностей GCC для повышения комфорта
Я, кстати, тоже по возможности использую GCC, и коллег, работающих со мной наиболее тесно, на него почти перетянул. 
Единственно, как я уже говорил, меня очень огорчает отсутствие поддержки STM8. Правда, STM8 хороши по большей части ценой, из них я склонен использовать только младшие кристаллы.
А еще у меня возникло ощущение, что STM8 туда прикручивали по остаточному принципу.
Это создает отдельные проблемы. 
Единственно, как я уже говорил, меня очень огорчает отсутствие поддержки STM8. Правда, STM8 хороши по большей части ценой, из них я склонен использовать только младшие кристаллы.
У него странная система вызовов, диковинные форматы файлов, неполная поддержка стандарта - это то, что помнится навскидку.если не секрет - что там было такого страшного, кроме туповатого линкера?
Я скажу по секрету, что у нас среди разработчиков тоже есть любители генерировать код визардами.чего уж говорить о любителях генерировать код визардами?!
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Re: Использование особенностей GCC для повышения комфорта
[uquote="YS",url="/forum/viewtopic.php?p=3130142#p3130142"]А еще у меня возникло ощущение, что STM8 туда прикручивали по остаточному принципу[/uquote]
вообще да) сначала он был под mcs-51, потом прикрутили z80, затем pic-и, еще чего-то. Порт stm8 емнип пилят полтора землекопа.
вообще да) сначала он был под mcs-51, потом прикрутили z80, затем pic-и, еще чего-то. Порт stm8 емнип пилят полтора землекопа.
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: Использование особенностей GCC для повышения комфорта
[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/
попробуйте последний snapshot. Недавно делал проектик SDCC STM8 - код без правок копипастил для сравнения в ИАР, ИАР на ~100 байт меньше размер сделал. Оба варианта одинаково в железе работают. Никаких негативных ощущений не возникло, единственное SDCC при работе с битами периферии чудит (4 команды вместо bset/bres), решается проблема дополнительным peep файликом.
А по теме - GCC нынче "расширился" значительно, что иногда проще не переносить чужой код в другой компилятор. А GCC для микроконтроллеров сейчас делает вполне компактный выхлоп.
https://habrahabr.ru/post/315676/
- Реклама
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18629
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Использование особенностей GCC для повышения комфорта
жалко, что до сих пор для AVR не сделали пространство имен __eeprom аналогично тому, как сделали __flash.oleg110592 писал(а):GCC нынче "расширился" значительно
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Использование особенностей GCC для повышения комфорта
ARV, по поводу трасировки, так как у вас дефайн log_i из кода, убираеться ?
Если он находится в debug.h то в релизной версии убирается и начинается ругань компилятора на неизвестную конструкцию. Как то так?
Если он находится в 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
- Ум, честь и совесть. И скромность.
- Сообщения: 18629
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Использование особенностей GCC для повышения комфорта
если макрос __DEBUG__ не определен, то все автоматически и убирается, ничего больше делать не надо.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Использование особенностей GCC для повышения комфорта
Так так а вот про это по подробнее, как она автоматически убирается?
Допустим я использовал макрос log_i(x) где-то в майне, так вот после того как
выключаем макрос __DEBUG__ определение макроса log_i(x) убирается, при этом на пустую заглушку не изменяться.
по этому компилятор и выдаст ошибку на неизвестный дефайн(log_i(x)) так как он выключился.
PS:GCC не пользовался ни разу.
Допустим я использовал макрос log_i(x) где-то в майне, так вот после того как
выключаем макрос __DEBUG__ определение макроса log_i(x) убирается, при этом на пустую заглушку не изменяться.
по этому компилятор и выдаст ошибку на неизвестный дефайн(log_i(x)) так как он выключился.
PS:GCC не пользовался ни разу.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18629
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Использование особенностей GCC для повышения комфорта
все макросы log_xxx продефайнены именно в обертке #if defined(__DEBUG__), поэтому при отсутствии этого макроса должны подставляться пустышки.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!


