При использовании обработчиков прерываний Ada я до сих пор выделял некоторые конкретные вещи, которые должны быть в коде для их работы.Обработчики прерываний Ada
Использование Ada.Interrupts:
protected Int_Handler is --a protected object to handle interrupts
procedure Handler_1; --A procedure which handles interrupts from your first device (with a body, of course)
pragma Interrupt_Handler (Handler_1); --To tell the compiler this is an interrupt handler
--Later in the program:
begin
Attach_Handler (Int_Handler.Handler_1'access, Serial_1);
Предполагая, что все это правильно, и я позволил прерывания в регистрах, есть ли другой код прерывания, связанные мне нужно было бы добавить к этому? В частности, нужно ли мне напрямую взаимодействовать с регистрами, чтобы каким-то образом «связать» мой код обработчика, или я могу просто настроить представление реестров регистров, вывести на них непосредственно необходимые настройки и позволить rip?
Спасибо!
Все, что с "прагме" является реализацией определения зависимой; «tick-address» (и, в этом отношении, регистры и аппаратные прерывания) полностью зависят от платформы. IMHO ... – paulsm4
@ paulsm4: По определению: «Существуют прагматы, определяемые языком, которые дают инструкции для оптимизации, управления листингом и т. Д. Реализация может поддерживать дополнительные (реализационные) прагмы». [Ada LRM 2.8] (http://www.adaic.org/resources/add_content/standards/05rm/html/RM-2-8.html) –