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

VladislavS

Свой
  • Постов

    1 242
  • Зарегистрирован

  • Посещение

  • Победитель дней

    9

Сообщения, опубликованные VladislavS


  1. Это точно. 350к кода это год писать не разгибаясь 🙂 Хотя, с дуру и хрен сломать можно.

    Вот, например, реализация USB-CDC c "C++ на максималке". 2340 байт, из которых только таблица векторов прерываний 400 байт.

    image.thumb.png.d55fdb378895b01bd0b84f86746a1c19.png

    • Like 1
  2. 15 минут назад, gazpar сказал:

    Именно поэтому и хочу найти лёгкую либу

    Да не бывает лёгких и тяжёлых стандартных библиотек. Все они плюс/минус одинаковые, так как реализуют одинаковый функционал, заданный стандартом языка программирования.

     

    15 минут назад, gazpar сказал:

    Т.к. я не знаю, чего там наворотили коллеги

    Ну посмотрите map-файл хотя бы, что там весит столько. 

     

    15 минут назад, gazpar сказал:

    Мне же нужно оптимизировать внутреннюю либу сделанную коллегами.

    Вот они обрадуются когда какой-нибудь класс перестанет работать из-за вашей "оптимизации". И почему вместо этого вы решили стандартную библиотеку оптимизировать? Её явно не дураки писали - там всё в порядке. Пусть ваши коллеги свой код и оптимизируют. 

     

    15 минут назад, gazpar сказал:

    Ключами компиляции/линковки удалось ужать до 350кБ.

    Можно глянуть на ключи? Похоже?

    CPP_FLAGS := -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -Wall
    
    LD_FLAGS := -Wl,--gc-sections -nostartfiles -specs=nano.specs -specs=nosys.specs

     

  3.  

    21 минуту назад, gazpar сказал:

    А это черезчур много для имплементированого функционала.

    Какой функционал из стандартной библиотеки у вас используется? Ну чтобы понять масштаб проблемы. Я вот только вчера к AVR-GCC прикрутил Libstdc++ версии 20201103. Использую по полной C++20 type_traits, concepts и т.д. Ни одного лишнего байте в прошивку не попало.

  4. Под какую архитектуру хоть? 

    И, хоть убейте, не понимаю постановку задачи. Какая разница сколько занимает собранная библиотека? В прошивку будет включено только то что используется. 

  5. У него же такие же таймеры как у STM32? Как там внутри HAL-а устроено не знаю, но если вдруг где-то стоит бит preload, то перед разрешением прерываний надо сделать

    TIMx->EGR = TIM_EGR_UG;
    TIMx->SR = 0;
  6. Нахрена зачем вам вообще скатер на эту область памяти? Скатер нужен, чтобы линкер размещал туда данные. Исключаете нужный вам участок из общей памяти и работаете с ним в программе как хотите. Хотите стираете, хотите заполняете. Скатер то тут причём?

  7. 5 минут назад, cfif сказал:

    тогда лучше проверять таким образом

    Да, компилятор сам знает как лучше проверить бит в регистре. У тех же STM32 есть контроллеры на Cortex-M0, М0+, M3, M4, M7. Компилятор сам сделает нужную оптимизацию под конкретное ядро.

  8. 4 минуты назад, haker_fox сказал:

    А ставить IAR 9.30 для новых проектов считает нерентабельно.

    Учитывая вашу локацию и сложившуюся геополитическую ситуацию, слово "нерентабельно" вызывает диссонанс. 🙂

     

  9. 9 минут назад, Arlleex сказал:

    Лично я жду, когда поддержку C++21 впилят в кейл.

    Никогда. Есть стандарт С++20 и следующий будет, скорее всего, С++23. 

    10 часов назад, cfif сказал:

    if(0B1 & GPIOB_BASE -> IDR >> 10)

    Автор зачем-то пытается помочь компилятору. Это плохая практика.

  10. 9 минут назад, razrab83 сказал:

    я пробовал юзать auto  - очень не удобно. Я глядя на код должен точно знать её тип. мне нужно видеть float asd;

    Для простых типов auto, конечно же, не нужно. Но, когда работаешь с шаблонами, типы могут очень сложно выглядеть, это раз. Могут вообще быть разными (автоматически выведенными) в зависимости от параметров и тогда без auto вообще никак не напишешь. 

  11.  

    3 минуты назад, razrab83 сказал:

    в эклипсе все таки попродвинутей. показывает возвращяемое значение и аргументы.

    VS и IAR тоже показывают

    image.thumb.png.6bab2e1eb788baa064eb3d2158b61afc.png

     

    5 минут назад, razrab83 сказал:

    но в эклипсе они не мешают, т.к. они выскакивают только по нажатию Ctrl+пробел.

    Ну так это включается/выключается в настройках редактора. В эклипсе нельзя на постоянку включить разве?

     

    В прследних версиях IAR, кстати, с автодополнениями и подсказками уже лучше. По нескольким буквам слова выбирать не умеет, а по началу слова норм. И подсказки инфомативные

    image.thumb.png.361376c1d95349f6680ff65f2336313d.png

     

    У Keil своё видение этого процесса. По одной любой букве слова фильтрует. По двум неподряд уже нет.

    image.png.3d81705abfda5132216c94c6278ea426.png

    А вот подсказок с аргументами нет.

     

  12. 1 час назад, razrab83 сказал:

    вы пишете код. руки на клавиатуре... нужно две строки поменять местами. ваши действия?

    Проверил. Само как-то так сделалось Home - Shift+End - Ctrl+X - подвести курсор на место вставки - Ctrl+V

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