koluna 0 9 декабря, 2021 Опубликовано 9 декабря, 2021 · Жалоба Всем привет. ATMEGA2560 + GCC + scmRTOS, сборка в отладочном режиме. На плате доп. память для процессора установлена. avr-g++ -Wall -mmcu=atmega2560 -ffunction-sections -fdata-sections -DF_CPU=8000000UL -DGCC_MEGA_AVR -Os -D__DEBUG_ENABLE__ -D__SW_DEBUG__ -c src/alg/algoritm.cpp -o obj/Debug/src/alg/algoritm.o section size addr .data 4842 8397312 .text 157094 0 .bss 19233 8402154 .noinit 1 8421387 .comment 17 0 .note.gnu.avr.deviceinfo 64 0 Total 181251 Внутри одной функции вызывается другая функция (вывод в программный UART дебаг). Но ни первая, ни вторая 100% не вызываются, так должно быть! Первая функция. void foo::foo() { ... dbgout(LOG_DEBUG, "[%s()]: Operation is double!\n", __FUNCTION__); ... } Вторая функция (отладочного вывода). void dbgout(const int32_t level, const char* format, ...) { va_list args; va_start(args, format); vprintf(format, args); va_end(args); } В более ранних ревизиях ПО этот отладочный вывод просто перестал работать, начиная с какой-то ревизии. В более поздних - все зависает через несколько секунд после включения. Не мой баг точно. Думаю, это как-то связано с размером или расположением кода. Т. е., при сборке в отладочном режиме объем увеличивается и начинаются глюки. Причем, если строчку с вызовом dbgout() в первой функции закомментировать - все работает. Но ведь она 100% не выполняется, как и первая функция! Посоветуйте, пожалуйста, куда смотреть, что искать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
strannyi 4 9 января, 2022 Опубликовано 9 января, 2022 · Жалоба Привет, Quote Думаю, это как-то связано с размером или расположением кода. Так сравни map файлы разных ревизий. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
koluna 0 11 января, 2022 Опубликовано 11 января, 2022 · Жалоба Сравнивал. Ничего подозрительного не нашел. Там в адресах различия в основном. Ну, может, неправильно сравнивал. Все решилось уменьшением стека процесса для scmRTOS. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться