WiseLord, хотел посмотреть откуда 82 байта, а функция segmNum в коде вообще не используется.
Да, функция не используется именно в этом проекте, просто в библиотеке она есть. Для проверки добавлял её вызов в main.c сразу после segmTime(). Ну и ещё на -flto отключал.
В AVR-ке деления через библиотечные функции. Для каждого типа (разрядности и знаковости) своя функция. Шаг в сторону с выбором типа и плюс дополнительная функция прилинковывается к коду. Отсюда и скачки в размере прошивки. Повторюсь, надо смотреть листинг в каждом конкретном случае когда оптимизацией занимаешься.
А куда в шаблоне для окна windows из Dev-C++ надо засовывать свой код? Чтобы выполнилось в этом окне. Я куда ни сую его,компилируется с ошибками, а если ничего никуда не совать, ошибок нет,но выполняется файл exe просто как пустое окно. В какую щель между строками я должен вставить свой код ?
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Видимо ваш компилятор пристегивает к файлу, какие то, нужные с его точки зрения либы, у меня этот файл после компиляции g++ v.11.2 x64 имеет размер 49 кб без отладочной информации и 54 кб с нею...
Карма: 67
Рейтинг сообщений: 1013
Зарегистрирован: Чт сен 18, 2008 12:27:21 Сообщений: 18812 Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения:0 Медали: 1
Кто-нибудь писал для софтовых контроллеров (которые реализуются внутри ПЛИС, например NIOS в Альтере/Интел)? Или все используют хардовые?
_________________ [ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ] Измерить нннада?
_________________ [ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ] Измерить нннада?
Есть микроконтроллер простенький, без поддержки двухбанковой схемы. Появилась потребность обновлять на нем прошивку, для чего в планах написать несложный бутлоадер, а "гостевая" прошивка будет с кастомным линкер-скриптом, примерно как в ЭТОМ проекте.
Однако указанный проект хочется чуть доработать таким образом, чтобы ведомый контроллер мог перейти в режим прошивки по RPC-команде, потому что в целевой системе уже есть 485 шина с JSON-RPC обменом. Для этого, чтобы не изобретать велосипед, хочется взять как минимум готовое решение по JSON (ArduinoJSON, например), но это не бесплатно по ресурсам, в том числе по флэшу. В то же время обе гостевые прошивки также будут поддерживать JSON, используя, в идеале, те же библиотеки. И тогда получается такая ситуация, что придется трижды тащить зависимость в итак небольшой флэш (загрузчик + каждая прошивка). Но ведь бинарный код один и тот же (примем, что не меняем версии используемых зависимостей, версию компилятора и т.п. Ну или поместим общую часть в static-библиотеку). Собственно, вопрос: можно ли как-то использовать один и тот же код как из загрузчиков, так и из гостевых прошивок. Пока в голову идет только разместить принудительно все функции такой библиотеки в конкретную секцию, в LD-скрипте эту секцию привязать к конкретному адресу, а для гостевых прошивок потом обрезать начало/конец бинарника (где эта секция будет находиться). Спасибо!
Последний раз редактировалось azhel12 Пн мар 18, 2024 21:23:36, всего редактировалось 1 раз.
В загрузчике сделать таблицу с адресами библиотечных функций наподобие таблицы векторов прерываний. Сами функции тоже в загрузчике. Гостевые прошивки будут вызывать функции по указателю.
Да, так получилось. з.ы. А почему такой файл .exe огромный,под 1мб. не многовато ли для вывода двух слов ?
Убедись, что компилируешь Reliase версию программы, а не с включённой информацией для отладки: -g0 Используй оптимизацию по размеру: -Os Используй удаление отладочных символов (strip): -s
Вопрос к специалистам по C++. Какую литературу посоветуете для фундаментального изучения языка применительно к микроконтроллерам (STM32)? Желательно с заданиями для самостоятельного выполнения, потому что после обычных справочников в голове мало что остается.
Предполагаю, что основы булевой математики и цифровой электроники Вам уже понятны. Если нет, начните с этого. Затем ознакомьтесь с тем, что содержит внутри STM32, например какой-нибудь простой, широко используемый МК. Начните с простого проекта.
Даю ориентир: мигание светодиода на одном пине, мигание определенной продолжительности, передача буква на телеграф ... (напр.: VVV, VVV, VVV ... и 5 секунды на настройку). Со временем проекты будут усложняться (и каждый последующий будет содержать решения из предыдущих проектов).
Сначала пробуете проект 1:1 из интернета, потом понимаете как он работает и что-то немного меняете, потом меняете, добавите функции. Через некоторое время создадите свой проект и будете только лишь немного смотреть из интернета или совсем не смотреть. Книги: это уже старинкая технология. Руководства, инфо из интернета, подчеркнув то, что нужно, удобным и понятным для способом.
Даю первое задание: светофор с STM32F103C8T6 . Ето казалось простым и забавным, но ... не торопитесь. Покажите свою программу. Через неделю-месяц ... у Вас наверняка будет 15 алгоритмов светофора ... Никто не рождается образованным, и каждый выбирает путь к знаниям. Общих рекомендаций нет.
Последний раз редактировалось veso74 Пн апр 15, 2024 11:13:21, всего редактировалось 1 раз.
Спасибо. Понимаете, какая штука. Поморгать светодиодом на обычном Си я могу. И по USART принять/отправить, и вывести на DAC что-нибудь. У меня немного другой сейчас интерес. Например, тот же самый светодиод - как лучше и эффективнее работать с периферией, какими способами? В интернете, может, и много разных примеров. Но проблема интернета в том, что практически никто не дает систематических знаний. Это только в учебниках, ну или на некоторых курсах. С обычным Си примеров гораздо больше, и разобраться с ним проще (поскольку объема информации много, да и сам язык попроще). А вот с C++ проблема. Ну или мне просто не попадались нужные источники информации. Можно, конечно, пробовать разные варианты и смотреть, во что это разворачивается в ассемблере. Но самостоятельно это довольно долгий путь. Хочется какого-то системного обучения, что-ли.
Какую литературу посоветуете для фундаментального изучения языка применительно к микроконтроллерам (STM32)?
Ни разу не встречал такую, или программирование МК, но на С, или С++ без привязки к МК. Напишите "hellow, World!" на С++, целиком, без HAL и ассемблера. И обработчики прерываний сделайте виртуальными методами классов, дабы соблюсти ОО-парадигму.
"Разбиваете" сложные задачи на простые, которые решаете одну за другой, а затем снова складываете воедино. Если простая задача снова оказывается сложной, и ее разбиваете на части, которые решаете по отдельности или вместе. В сборке также много несогласованностей, поэтому принцип "от простого к сложному" должно сработать со временем. По какому-то устройству (напр. драйвер) "ходим по кругу" безрезультатно часами, днями, неделями ... но после тысяч попыток, результат часто "блещет" сам по себе. Просто нужно быть настойчивым ... И хорошо, когда есть проекты, даже, казалось бы, бессмысленные, к которым хочется приступить прямо сейчас. В противном случае только чтение или только написание прогр. кода не будет эффективно и действенно. (частично пользуюсь переводчиком БГ-РУ)
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения