В мануале написало что перед обработчиком прерывания надо: 1. сохранить регистры; 2. OSIntEnter(); 3. ОБРАБОТЧИК ПРЕРЫВАНИЯ; 4. OSIntExit(); 5. восстановить регистры.
Я не проделываю пункты 1. и 5., все вроди работает. Пишу обработчики на Си. для пунктов 1. и 5. надо Асм городить(по другому вроди никак). Как красиво написать обработчик по всем требуемым правилам ?
Проблема в том, что если я делаю OSSemPost(x), OSMboxPost(x) и т.д. то через 1-4 посылки ОС зависает. Это наверно из-за того что я не сохраняю текущий контекст потока...(?)
Пришлите плиз пример из правельным обработчиком прерывания для ATmega128.
Зараннее спасибо.
|