Хотел бы узнать мнение специалистов по сим микроконтроллерам, ибо обнаружился глюк скорее всего на низком уровне, не знаю в какую сторону ковырять, ибо всю низкоуровненвые настройки далал библиотеками из иара, полагая, что все должно быть корректно, писал только верхний алгоритм, который как будто работает.
Алгоритм следующий.
НА I2C шине висит несколько (конкретно 5) устройств. LPC представляет собой тупо мост I2C - UART. Читает устройство №1, отправляет данные в UART, получает пакет из UART, пишет его в устройство №1, читает устройство №2, отправляет данные в UART, получает пакет из UART, пишет его в устройство №1 ... и далее по алгоритму до №5. Пакеты по 10 байт.
В общем, этот алгоритм у меня глючит. Может пройти 10 циклов, 20, 30, 50, но в конце концов виснет. В дебаггере это выглядит как СSTACK full, выпадает в B_Default_Handler.
Теперь интересные факты. Если убрать обмен по UART, т.е при алгоритме читает устройство №1, пишет в устройство №1, читает устройство №2, пишет в устройство №2 итд все работает без сбоев. UART сам по себе (без I2C) тоже работает - есть режим записи-чтения флеш по UArt, прогнал не один мегабайт, все нормально.
Изза чего может слетать стек? Была мысль, что может прерывания одновременно приходят - хотя вроде такого быть не должно, процессы разнесены. Понизил приоритет прерыванию I2C. Не помогает