Ну, встроенные системы Wery хорошо известны для непрерывной борьбы против Вселенной четвертого измерения: время. Известно, что некоторые задержки должны быть добавлены внутри кода - это не означает, что всегда используется подпрограмма sistem delay - просто порядок операций может решить много. Отладка системы с такой проблемой сложна. Могут быть использованы некоторые методы:
a) инвазивные: отметьте (например, используйте некоторые заявления printf) в различных местах вашего программного обеспечения, впишите или выйдите из некоторых процедур или других важных шагов и запустите снова - когда приложение выйдет из строя, вы должен заметить последнее увиденное сообщение и завершить сбой после этого шага программного обеспечения, отмеченного printf.
b) менее инвазивный: используйте доступный вывод GPIO в качестве выходного сигнала и установите его при входе в какую-либо рутину и на выходе; точка разрушения оставит вывод слишком высоким или низким. Вы можете использовать несколько контактов, если они доступны, и наблюдать за деятельностью с помощью осциллографа.
c) неинвазивный - используйте отладку JTAG или SWD - это лучший вариант - если ваша отладка микросопротивления отлаживается, тогда у вас есть способы найти ошибку.
Вы можете использовать 'setDefaultUncaughtExceptionHandler()', посмотрите здесь http://stackoverflow.com/questions/19897628/need-to-handle-uncaught-exception-and-send-log-file, чтобы реализовать это, и в 'handleUncaughtException()' позволяет сохранить исключение в файле или что-то, что вы можете просмотреть позже, и узнать, что происходит. – Yazan