ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
2 июля
74571
IV (24.11.2006 13:07, просмотров: 6378)
знатокам связки арм7 и укоса посвящается проц tms470. подозреваю, что на других армах тоже есть вероятность сего глюка.. вобщем эпопея началась с того, что проц иногда падал в исключение причем с разными временными интервалами от 10мин. до часа.. установками бряков на критичные участки кода выяснил, что попадает в прерывание с регистром смещения для вектора = 0, что в принципе быть не должно.. но это еще пол-беды. при выходе из прерывание падает в тумб!! ну и есс-но попадает в исключение.. весь проект в арм режиме.. вобщем стал ковырять возврат из прерывания.. стек при выходе оказался смещен на 4 байта! непонятно почему.. методом научного тыка проблему конечно устранил.. системный таймер был на fiq, переключил на irq. глюк исчез.. но непонятна причина явления.. шестым чуством чую, то где-то есть наложение fiq на irq, но доказать не могу.. в укосе же в прерываниях в cpsr они ЗАПРЕЩЕНЫ!! или я не прав? у меня в проге нигде внутри прерываний не разрешаются.. переменная IntNesting не превышает 1.. смотрел во всех критичных местах.. один раз было вобще непонятно что.. отладчиком попадаю как раз в то прерывание, после которого падает в тумб.. НО все сработало нормально !! что-то там щелкнуло (виртуально) и выпал в идл таск.. после этого проц простоял несколько часов, пока я ему прогу не перешил.. надоело ждать.. кто что присоветует? не дайте дураком помереть! у меня с tms470 уже личные счеты.. =)) PS стеки задач не переполняются, стеки irq fiq не переполняются.. проверено.. никакие переменные в стеки задач тож не лезут..