Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Re: Вопросы по С/С++ (СИ)

Вс фев 18, 2024 20:29:49

WiseLord, хотел посмотреть откуда 82 байта, а функция segmNum в коде вообще не используется.

Да, функция не используется именно в этом проекте, просто в библиотеке она есть. Для проверки добавлял её вызов в main.c сразу после segmTime(). Ну и ещё на -flto отключал.

Re: Вопросы по С/С++ (СИ)

Пн фев 19, 2024 00:16:17

В AVR-ке деления через библиотечные функции. Для каждого типа (разрядности и знаковости) своя функция. Шаг в сторону с выбором типа и плюс дополнительная функция прилинковывается к коду. Отсюда и скачки в размере прошивки. Повторюсь, надо смотреть листинг в каждом конкретном случае когда оптимизацией занимаешься.

Re: Вопросы по С/С++ (СИ)

Пн мар 04, 2024 21:33:42

А куда в шаблоне для окна windows из Dev-C++ надо засовывать свой код?
Чтобы выполнилось в этом окне.
Я куда ни сую его,компилируется с ошибками, а если ничего никуда не совать,
ошибок нет,но выполняется файл exe просто как пустое окно.
В какую щель между строками я должен вставить свой код ?
Вложения
шаблон.txt
(2.35 KiB) Скачиваний: 23

Re: Вопросы по С/С++ (СИ)

Пн мар 04, 2024 22:37:52

Ну, можно так...
Вложения
Win_templ.cpp
(2.52 KiB) Скачиваний: 24

Re: Вопросы по С/С++ (СИ)

Вт мар 05, 2024 11:30:02

Да, так получилось.
з.ы.
А почему такой файл .exe огромный,под 1мб. не многовато ли для вывода двух слов ?

Re: Вопросы по С/С++ (СИ)

Вт мар 05, 2024 12:14:04

Видимо ваш компилятор пристегивает к файлу, какие то, нужные с его точки зрения либы, у меня этот файл после компиляции g++ v.11.2 x64 имеет размер 49 кб без отладочной информации и 54 кб с нею...

Re: Вопросы по С/С++ (СИ)

Чт мар 14, 2024 18:44:50

Кто-нибудь писал для софтовых контроллеров (которые реализуются внутри ПЛИС, например NIOS в Альтере/Интел)?
Или все используют хардовые?

Re: Вопросы по С/С++ (СИ)

Чт мар 14, 2024 19:56:00

Писал под Microblaze.

Re: Вопросы по С/С++ (СИ)

Сб мар 16, 2024 00:05:02

Писал под Microblaze.

Запомним...

Re: Вопросы по С/С++ (СИ)

Пн мар 18, 2024 14:19:25

Коллеги, вопрос по размещению кода в программе.

Есть микроконтроллер простенький, без поддержки двухбанковой схемы. Появилась потребность обновлять на нем прошивку, для чего в планах написать несложный бутлоадер, а "гостевая" прошивка будет с кастомным линкер-скриптом, примерно как в ЭТОМ проекте.

Однако указанный проект хочется чуть доработать таким образом, чтобы ведомый контроллер мог перейти в режим прошивки по RPC-команде, потому что в целевой системе уже есть 485 шина с JSON-RPC обменом. Для этого, чтобы не изобретать велосипед, хочется взять как минимум готовое решение по JSON (ArduinoJSON, например), но это не бесплатно по ресурсам, в том числе по флэшу. В то же время обе гостевые прошивки также будут поддерживать JSON, используя, в идеале, те же библиотеки. И тогда получается такая ситуация, что придется трижды тащить зависимость в итак небольшой флэш (загрузчик + каждая прошивка). Но ведь бинарный код один и тот же (примем, что не меняем версии используемых зависимостей, версию компилятора и т.п. Ну или поместим общую часть в static-библиотеку). Собственно, вопрос: можно ли как-то использовать один и тот же код как из загрузчиков, так и из гостевых прошивок. Пока в голову идет только разместить принудительно все функции такой библиотеки в конкретную секцию, в LD-скрипте эту секцию привязать к конкретному адресу, а для гостевых прошивок потом обрезать начало/конец бинарника (где эта секция будет находиться). Спасибо!
Последний раз редактировалось azhel12 Пн мар 18, 2024 21:23:36, всего редактировалось 1 раз.

Re: Вопросы по С/С++ (СИ)

Пн мар 18, 2024 14:52:05

В загрузчике сделать таблицу с адресами библиотечных функций наподобие таблицы векторов прерываний. Сами функции тоже в загрузчике. Гостевые прошивки будут вызывать функции по указателю.

Re: Вопросы по С/С++ (СИ)

Пн мар 18, 2024 14:58:26

VladislavS, да, действительно, так более понятно будет. Спасибо.

Re: Вопросы по С/С++ (СИ)

Пн мар 18, 2024 15:38:33

Как-то так. Только в гостевой будет extern таблица.

Изображение
изображение_2024-03-18_154025551.png
(48.81 KiB) Скачиваний: 250

Re: Вопросы по С/С++ (СИ)

Пн мар 18, 2024 20:52:33

VladislavS, спасибо :beer:

Re: Вопросы по С/С++ (СИ)

Ср мар 27, 2024 18:40:47

Да, так получилось.
з.ы.
А почему такой файл .exe огромный,под 1мб. не многовато ли для вывода двух слов ?


Убедись, что компилируешь Reliase версию программы, а не с включённой информацией для отладки: -g0
Используй оптимизацию по размеру: -Os
Используй удаление отладочных символов (strip): -s

Re: Вопросы по С/С++ (СИ)

Вс апр 14, 2024 21:51:25

Вопрос к специалистам по C++.
Какую литературу посоветуете для фундаментального изучения языка применительно к микроконтроллерам (STM32)? Желательно с заданиями для самостоятельного выполнения, потому что после обычных справочников в голове мало что остается.

Re: Вопросы по С/С++ (СИ)

Пн апр 15, 2024 07:53:24

Предполагаю, что основы булевой математики и цифровой электроники Вам уже понятны. Если нет, начните с этого.
Затем ознакомьтесь с тем, что содержит внутри STM32, например какой-нибудь простой, широко используемый МК. Начните с простого проекта.

Даю ориентир: мигание светодиода на одном пине, мигание определенной продолжительности, передача буква на телеграф ... (напр.: VVV, VVV, VVV ... и 5 секунды на настройку). Со временем проекты будут усложняться (и каждый последующий будет содержать решения из предыдущих проектов).

Сначала пробуете проект 1:1 из интернета, потом понимаете как он работает и что-то немного меняете, потом меняете, добавите функции. Через некоторое время создадите свой проект и будете только лишь немного смотреть из интернета или совсем не смотреть. Книги: это уже старинкая технология. Руководства, инфо из интернета, подчеркнув то, что нужно, удобным и понятным для способом.

Даю первое задание: светофор с STM32F103C8T6 :). Ето казалось простым и забавным, но ... не торопитесь. Покажите свою программу. Через неделю-месяц ... у Вас наверняка будет 15 алгоритмов светофора ... Никто не рождается образованным, и каждый выбирает путь к знаниям. Общих рекомендаций нет.
Последний раз редактировалось veso74 Пн апр 15, 2024 11:13:21, всего редактировалось 1 раз.

Re: Вопросы по С/С++ (СИ)

Пн апр 15, 2024 08:50:30

Спасибо.
Понимаете, какая штука. Поморгать светодиодом на обычном Си я могу. И по USART принять/отправить, и вывести на DAC что-нибудь. У меня немного другой сейчас интерес. Например, тот же самый светодиод - как лучше и эффективнее работать с периферией, какими способами? В интернете, может, и много разных примеров. Но проблема интернета в том, что практически никто не дает систематических знаний. Это только в учебниках, ну или на некоторых курсах. С обычным Си примеров гораздо больше, и разобраться с ним проще (поскольку объема информации много, да и сам язык попроще). А вот с C++ проблема. Ну или мне просто не попадались нужные источники информации.
Можно, конечно, пробовать разные варианты и смотреть, во что это разворачивается в ассемблере. Но самостоятельно это довольно долгий путь. Хочется какого-то системного обучения, что-ли.

Re: Вопросы по С/С++ (СИ)

Пн апр 15, 2024 11:02:31

iD-audio писал(а):Какую литературу посоветуете для фундаментального изучения языка применительно к микроконтроллерам (STM32)?

Ни разу не встречал такую, или программирование МК, но на С, или С++ без привязки к МК.
Напишите "hellow, World!" на С++, целиком, без HAL и ассемблера. И обработчики прерываний сделайте виртуальными методами классов, дабы соблюсти ОО-парадигму.

Re: Вопросы по С/С++ (СИ)

Пн апр 15, 2024 11:26:58

"Разбиваете" сложные задачи на простые, которые решаете одну за другой, а затем снова складываете воедино. Если простая задача снова оказывается сложной, и ее разбиваете на части, которые решаете по отдельности или вместе. В сборке также много несогласованностей, поэтому принцип "от простого к сложному" должно сработать со временем. По какому-то устройству (напр. драйвер) "ходим по кругу" безрезультатно часами, днями, неделями ... но после тысяч попыток, результат часто "блещет" сам по себе. Просто нужно быть настойчивым ... И хорошо, когда есть проекты, даже, казалось бы, бессмысленные, к которым хочется приступить прямо сейчас. В противном случае только чтение или только написание прогр. кода не будет эффективно и действенно. (частично пользуюсь переводчиком БГ-РУ)
Ответить