Условная компиляция ядра.
- Войдите на сайт для отправки комментариев
Сб, 18/12/2021 - 20:49
Как сделать условную компиляцию ядра ? #define в скетче компилятор игнорирует, видимо ядро компилируется до скетча
Спасибо.
Как сделать условную компиляцию ядра ? #define в скетче компилятор игнорирует, видимо ядро компилируется до скетча
Спасибо.
Какого ядра и зачем компиляции быть условной?
Мне надо знать адрес стека до loop
и еще некоторые действия, которые надо выполнять в отдельных случаях.
Мошт в IDE кэширование агрессивное включено и на второй раз компилятор уже игнорит изменения в main.cpp ? Хотя, конечно, не должен.
build я очищаю, main.cpp.o создается новый, но без моих доработок.
И кто-то, кроме тебя, должен знать, что это за файл, откуда он вылез, в каком порядке компилируется, и так далее?
D:\arduino16\hardware\arduino\avr\cores\arduino\main.cpp,
в каком порядке компилируется не знаю, но думаю что до скетча, т.к. в скетче
#if defined
действует.ОбЪявленная в main.cpp __USP__ в скетче как external доступна, но равна 0
в скетче
#if defined
действуетпорядок компиляции не имеет значения
#define макрос действует только "вниз" от места своего определение до конца файла или до директивы #undef. Понятие "вниз" включает так же файлы, включенные директирой #include ниже места определения макроса и файлы. куда включен файл с определениемю
Так что макросы, определенные в скетче - естесственно только в скетче и действуют. Их действие никак не распространяется на иные единицы трансляции, как например main.c - и изменить это невозможно
То что вы хотите сделать - задается как ключи компилятора опциями -D
b707 Спасибо за внятный ответ.
А какой директивой можно задать ключ компилятора из скетча ?