такое впечатление, что происходит какая-то мистика (__irq нет потому что эта функция вызывается из ассемблера. она работает, но "плохо"):
Код
extern "C" __arm void irq_timer1_handler_impl(void)
{
do
{
[...]
}
while (T1IR > 0);
assert(0 == T1IR);
VICVectAddr = 0;
}
{
do
{
[...]
}
while (T1IR > 0);
assert(0 == T1IR);
VICVectAddr = 0;
}
Вылетает в assert (в T1IR есть ненулевые биты). Как такое может быть (break и return в теле цикла нет)?
Спасибо.