Hi Richard, another hint: Using printf inside interrupts is not always supported in RTEMS... wkr,
Thomas. Am 30.08.2017 um 16:07 schrieb richard.glos...@l3t.com: > > Want to change the source of RTEMS time tick interrupt from Timer 0 on > the LEON to a GPIO pin. Have had success enabling the GPIO pin for > the interrupt source (I get Spurious Interrupt 5 messages on the gdb > console – we are using GPIO 5 – this tells me the interrupt is > happening). When I try to use rtems_interrupt_catch to install a new > vector isr for the GPIO, the system crashes. > > > > Here is the code: > > > > rtems_isr_entry reMapRealTimeInterrupt (void) > > { > > int level; > > rtems_isr_entry old_handler; > > rtems_status_code retVal; > > > > > > rtems_interrupt_disable (level); // disable all maskable > interrupts > > > > > > > > retVal = rtems_interrupt_catch( // re-map vector 5 to our > handler (GPIO 5) > > handler, > > 5, > > &old_handler); > > > > printf("Remap retVal:0x%x\n",retVal); > > > > > > > > *(unsigned int*)TIMCTR1 &= ~0x00000009; // disable timer 1 > interrupt enable and timer enable > > *(unsigned int*)IMR &= ~0x00000040; // mask interrupt for > timer 1 interrupt since it is no longer used > > *(unsigned int*)IMR |= 0x00000020; // enable GPIO 5 interrupt > in IMR > > *(unsigned int*)ILR |= 0x00000020; // set interrupt 5 to be a > level 1 interrupt > > > > > > *(unsigned int*)GPIOIMR |= 0x00000020; // enable bit 5 to cause > interrupts (GPIO 5) > > *(unsigned int*)GPIOIER |= 0x00000020; // set GPIO interrupt 5 to > be edge triggered > > *(unsigned int*)GPIOIPR |= 0x00000020; // set GPIO interrupt 5 to > be rising edge > > > > > > rtems_interrupt_enable (level); // enable all previously > enabled interrupts > > > > return old_handler; // return original isr > address in case want to restore > > > > } > > > > rtems_isr handler (rtems_vector_number vector) > > { > > printf("This is irq %d.\n",vector); > > rtems_clock_tick(); > > > > > > } > > > > Can anyone help with this, or point me to example code to accomplish > the same thing? > > > Effective immediately my new email address is richard.glos...@l3t.com. > Please update your records. > > > _______________________________________________ > users mailing list > users@rtems.org > http://lists.rtems.org/mailman/listinfo/users -- IMD Ingenieurbuero fuer Microcomputertechnik Thomas Doerfler Herbststrasse 8 D-82178 Puchheim Germany email: thomas.doerf...@imd-systems.de PGP public key available on request
_______________________________________________ users mailing list users@rtems.org http://lists.rtems.org/mailman/listinfo/users