is printk safe to use in the interrupt context? does it blow the stack? On Mon, Nov 9, 2015 at 1:11 PM, Federico Garcia Cruz < federico.garciac...@tallertechnologies.com> wrote:
> Hi everyone, > I'm using the GPIO api for the BBB but I'm having problems with the > interrupt handling. > I'm blinking two leds in the main thread and I have a GPIO input with an > interrupt attached that uses printk to print a message. The problem is that > the interrupt handler prints the message but never returns (main thread > leds stop blinking after that). > Any suggestion? > Here's my code: > > rtems_gpio_irq_state gpio_handler(void* /*arg*/) > { > printk("interrupt handler\n"); > return IRQ_HANDLED; > } > > > void* POSIX_Init(void*) > { > rtems_mode previous_mode_set; > rtems_task_mode(RTEMS_TIMESLICE | RTEMS_PREEMPT, RTEMS_TIMESLICE_MASK > | RTEMS_PREEMPT_MASK, &previous_mode_set); > rtems_status_code sc = rtems_gpio_initialize(); > printk("%d\n", sc); > > sc = rtems_gpio_request_pin(BBB_LED_USR0, DIGITAL_OUTPUT, true, false, > NULL); > printk("DIGITAL_OUTPUT: %d\n", sc); > sc = rtems_gpio_request_pin(BBB_LED_USR3, DIGITAL_OUTPUT, true, false, > NULL); > printk("DIGITAL_OUTPUT: %d\n", sc); > > sc = rtems_gpio_request_pin(BBB_P8_7, DIGITAL_INPUT, false, false, > NULL); > printk("DIGITAL_INPUT: %d\n", sc); > > sc = rtems_gpio_enable_interrupt(BBB_P8_7, FALLING_EDGE, > UNIQUE_HANDLER, false, gpio_handler, NULL); > printk("interrupt install: %d\n", sc); > > while(1) > { > sleep(1); > rtems_gpio_clear(BBB_LED_USR3); > rtems_gpio_set(BBB_LED_USR0); > sleep(1); > rtems_gpio_set(BBB_LED_USR3); > rtems_gpio_clear(BBB_LED_USR0); > } > return NULL; > } > > Thanks in advance! > -- > > <http://www.tallertechnologies.com> > > > Federico Garcia Cruz > > Software Engineer > > > San Lorenzo 47, 3rd Floor, Office 5 > > Córdoba, Argentina > > > Phone: +54 351 4217888 / +54 351 4218211 > > > <http://www.linkedin.com/company/taller-technologies> > <https://www.facebook.com/tallertechnologies> > > _______________________________________________ > devel mailing list > devel@rtems.org > http://lists.rtems.org/mailman/listinfo/devel >
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel