Присоединение устройства Thread к сети Thread предполагает, что у вас запущена сеть Thread, и есть активный уполномоченный с присоединяющимися EUI64 и PSK. Убедитесь, что они настроены, прежде чем пытаться вызвать эту функцию для присоединения. Также полезно иметь анализатор, работающий на канале сети Thread, чтобы убедиться, что комиссар или маршрутизатор присоединения правильно реагируют.
Присоединение к потоку выполняется с активным сканированием всех доступных каналов в IEEE 802.15. 4 стр. 0. Время отправки запроса на присоединение и время ожидания присоединения на каждом канале настраиваются не сразу. Однако эти активные сканирования обычно завершаются в течение нескольких секунд. Ваш колбэк должен быть вызван с условием сбоя соединения, если через 5 секунд не будет доступных роутеров соединения.
Примеры в репозитории OpenThread github написаны в стиле nortos. Любой код приложения запускается в тасклете, а основной l oop вызывает только две функции; тасклеты процесса и драйверы процесса. В TI SDK мы используем TI-RTOS, и вы, похоже, основали свой код на этих примерах. В целом OtStack_Task будет обрабатывать обработку OpenThread и интерфейса драйвера платформы; но могут возникнуть тупики в многопоточной системе.
Вы можете использовать ROV в CCS или IAR для проверки состояния ядра и объектов RTOS. В CCS с активным сеансом отладки выберите; Tools
>> Runtime Object View
. Затем проверьте, не блокируется ли задача стека в семафоре API. Или, если задача приложения загружает процессор. Это может быть связано с непарной блокировкой / разблокировкой на семафоре API, или задача приложения может быть занята.
Сразу же я не вижу ничего плохого в опубликованном фрагменте кода.