История изменений
Исправление Zubok, (текущая версия) :
Спасибо, но я правда не знаю как там симулятор у них работает)
За то, что ты попробуешь, тебя на костре не сожгут. :)
Просто выставлением этих флагов и вызовом прерываний (если они разрешены) занимается симулятор. Поэтому только опытом можно проверить, вызовет ли он прерывание, если флаг выставил ты, а не он. Очень вероятно. что ничего не произойдет. А флаги событий (прерываний) у многих прерываний есть, но они по регистрам разбросаны.
И при прямом вызове прерывания из GDB через call надо иметь в виду одну мелочь, которая, возможно, не принципиальна, но о ней надо помнить: вызов прерывания отличается от вызова функции тем, что контроллер при вызове прерывания запрещает все прерывания, а когда ты выполняешь reti, то он флаг назад поднимает неявно (sei). Однако для тебя это поведение в режиме отладки никакого значения иметь не будет. Если ты хочешь вложенные прерывания, то это надо разрешать специально, принудительно выставив глобальный флаг (sei).
Исправление Zubok, :
Спасибо, но я правда не знаю как там симулятор у них работает)
За то, что ты попробуешь, тебя на костре не сожгут. :)
Просто выставлением этих флагов и вызовом прерываний (если они разрешены) занимается симулятор. Поэтому только опытом можно проверить, вызовет ли он прерывание, если флаг выставил ты, а не он. Очень вероятно. что ничего не произойдет. А флаги событий (прерываний) у многих прерываний есть, но они по регистрам разбросаны.
И при прямом вызове прерывания из GDB через call надо иметь в виду одну мелочь, которая, возможно, не принципиальна, но о ней надо помнить: вызов прерывания отличается от вызова функции тем, что контроллер при вызове прерывания запрещает все прерывания, а когда ты выполняешь reti, то он его назад поднимает. Однако для тебя это поведение в режиме отладки никакого значения иметь не будет. Если ты хочешь вложенные прерывания, то это надо разрешать специально, принудительно выставив глобальный флаг (sei).
Исходная версия Zubok, :
Спасибо, но я правда не знаю как там симулятор у них работает)
За то, что ты попробуешь, тебя на костре не сожгут. :)
Просто выставлением жтих флагов и вызовом прерываний (если они разрешены) занимается симулятор. Поэтому только опытом можно проверить, вызовет ли он прерывание, если флаг выставил ты, а не он. Очень вероятно. что ничего не произойдет. А флаги событий (прерываний) у многих прерываний есть, но они по регистрам разбросаны.