#include "mcom_runtime/gic.h" #include "mcom_runtime/mcom02.h" #include "mcom_runtime/ptimers.h" int Flag_Corr = 0; int Int_Counter = 0; void ptimer_interrupt_handler(int id) { resetPrivateTimerInt(); Int_Counter++; if (Int_Counter == 3) { disablePrivateTimer(); } } int main(void) { //Map 0x2000_0000 to 0x0 BOOT_REMAP = 1; Flag_Corr = 0; risc_initialize_gic(); risc_enable_interrupt(GIC_PL390_PPI29, GIC_PL390_TARGET_CPU0, 0xF1); int addr = 77; addr =&ptimer_interrupt_handler; risc_register_interrupt(&ptimer_interrupt_handler, GIC_PL390_PPI29, 0); initPrivateTimer(0xA, 1, 1); // первый аргумент - делитель частоты PERIPHCLK, второй - разрешение автозагрузки, третий - разрешение прерывания while(Int_Counter != 3); if (Int_Counter == 3) Flag_Corr = 0; else Flag_Corr = 1; asm volatile("bkpt"); return 0; }