Да, но в IDE от микрочипа, основной язык как раз С++.
ты не перестанешщь им быть ни при каких обстоятельствах, вали обратно в игнор.
При поносе я выбираю такие кусты, в которых ты прячешься.
я никогда и нигде подобного не говорил, я сказал что ненавижу С++ за его фишки.
могу, скорее всего, я если честно даже не смотрел ваш код. Давайте забьемся публично, если вам интересно. Мне пока - нет)
вы меня притянули еще раз в людям которые там чето сказали, но я так не говорил)
нет, не буду. Не решил и не собираюсь,я даже не в курсе, что там. Но если язык тьюринг-полный, ваша бравада, по-моему, излишняя. Любой здесь сможет вам выдать нечто, что знает здесь только он, и чо? Ответ - и ничо. Ну и все.
Предложение забиться публично на вашу задачу в силе, если не ссыте рискнуть баблом и ответить за свои слова - пишите тут.
Нет, спасибо. Мне это неинтересно. И вообще, я напрасно повёлся на прямо заданные Вами вопросы и полез отвечать. Не надо было. Впредь обещаю держать себя в руках. Я ведь Вам уже сказал раньше:
Так что, без готового решения больше не трудитесь писать мне на эту тему, ответа не будет.
Вы подтвердили моё наблюдение (за что Вам спасибо!) насчет некоторых высказываний некоторых людей. вы ссыте рискнуть вашими деньгами и ответитиь за свои слова. Это факт. Надеюсь, Вы не станете его отрицать.
едит: насчет того что вы беспричинно меня цитировали то что я не писал, вы ничего не ответили.
Не соглашусь. В MPLAB - как раз Си по умолчанию. Можно установить альтернативный компилятор для AVR, например, gcc.
Для PIC-контроллеров - ТОЛЬКО Си.
ебаа…
опять я все пропустил, пока новый МК изучал.
![]()
Я имел в виду Микрочип Студио.
Ну это не их разработка, а Atmel’а. А их Атмел Студио базировался на gcc (на сколько я знаю).
Итак, @ЕвгенийП выкатил вот тут задачу, которую надо повторить средствами чистого C для МК.
Много сказано, ну ок, я ознакомился с задачей. При всем пафосе постановы она состоит в том, чтобы на этапе компиляции без внешних инструментов получить значения неких констант, чтобы использовать эти готовые значения в коде как обычные дефайны (к примеру). Прикладная суть этих данных не так уж и важна, ибо в в те же дефайны можно взасунуть много чего, не только значения сами по себе. В примере автора задачи прикладное значение рассчитанных значений - сетап таймера для каких-то оптяь же прикладных нужд. ОК с теорией и окончательной постановкой задачи определились.
Инструменты: Visual Studio Code + ESP-IDF 5.1, проект на чистом C, полное содержимое корневого файла CMakeLists.txt. Эффект при компиляции следующий: в конфиге ищется строка в которой дефайн значение версии, считывается, прибавляется номер билда, сохраняется, затем компилится. Сделано 2 года назад, жалоб не поступало. Прошу @ЕвгенийП прокомментировать данное решение, и, при наличии оснований, сбавить уровень пафоса, либо сбавить уровень пафоса до уместного.
# The following lines of boilerplate have to be in your project's
# CMakeLists in this exact order for cmake to work correctly
cmake_minimum_required(VERSION 3.5)
# Read version from file:
file(READ "version.txt" VERSION_STRING)
file(READ "version.txt" OLD_VERSION_STRING)
# Remove whitespace characters (like newline):
string(STRIP ${VERSION_STRING} VERSION_STRING)
string(STRIP ${OLD_VERSION_STRING} OLD_VERSION_STRING)
# Match beggining three numbers (including all dots) and save it as VER_NUM:
string(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.([0-9]+)\\." VER_NUM ${VERSION_STRING} )
# Match last number and save it as BUILD_NUM:
string(REGEX MATCHALL "([0-9]+)$" BUILD_NUM ${VERSION_STRING} )
# Increase build number:
math(EXPR BUILD_NUM "${BUILD_NUM}+1")
# Concatenate back to one string:
string(CONCAT VERSION_STRING ${VER_NUM} ${BUILD_NUM})
# Print info and save to file:
message(NOTICE "Old build number: ${OLD_VERSION_STRING}")
message(NOTICE "New build number: ${VERSION_STRING}")
file(WRITE "version.txt" ${VERSION_STRING})
file(READ "sdkconfig" FILE_CONTENTS)
string(REPLACE ${OLD_VERSION_STRING} ${VERSION_STRING} FILE_CONTENT ${FILE_CONTENTS})
file(WRITE "sdkconfig" ${FILE_CONTENT})
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(ESP32-S3-PRRO)
add_custom_command(TARGET app
COMMAND ${CMAKE_COMMAND} -E copy "ESP32-S3-PRRO.bin" "../../ESP32-S3-PRRO-InitStand/main/fw"
DEPENDS app)
add_custom_command(TARGET app
COMMAND ${CMAKE_COMMAND} -E copy "partition_table/partition-table.bin" "../../ESP32-S3-PRRO-InitStand/main/fw"
DEPENDS partition_table)
add_custom_command(TARGET app
COMMAND ${CMAKE_COMMAND} -E copy "ota_data_initial.bin" "../../ESP32-S3-PRRO-InitStand/main/fw"
DEPENDS partition_table)
add_custom_command(TARGET bootloader
COMMAND ${CMAKE_COMMAND} -E copy "bootloader/bootloader.bin" "../../ESP32-S3-PRRO-InitStand/main/fw"
DEPENDS bootloader)
add_custom_target(post_build_binary ALL DEPENDS)
проект на чистом C,
прости, но когда это исходник cmake стал “чистым Си”?
с тех самых как я нажал кнопочку “создать C прожект”

остальные 2 процента сишарп и яваскрипт
едит2: впрочем, язык тут вообще не имеет значения, а это, в свою очередь. несущественно в контексте задачи)
ок, решать, конечно, Евгению
но от того, что я стану собирать проект на С скриптом на баше, баш подмножеством Си не станет
впрочем, язык тут вообще не имеет значения, а это, в свою очередь. несущественно в контексте задачи)
а… ну-ну…
это единственный рекомендованный производителем камня тулчейн
это какой-то непонятный мне аргумент в этом споре?
Ну просто спор был о том, можно ли реализовать конкретную задачу на конкретном языке.
а в чем задача, по-твоему?
тебе нравится корчить из себя тупого? Ты сам вызвался забиться с Евгением на ЕГО задачу. Зачем ты это делал, если даже задачу приходится спрашивать у меня?