rtems_task Init( rtems_task_argument ignored ) { rtems_status_code sc; int val; rtems_test_begin(); /* Initializes the GPIO API */ sc = rtems_gpio_initialize(); assert(sc == RTEMS_SUCCESSFUL); sc = rtems_gpio_multi_select(test, 4); assert(sc == RTEMS_SUCCESSFUL); /* Polls the two switches. */ while ( 1 ) { val = rtems_gpio_get_value(sw1_pin); if ( val == 0 ) { sc = rtems_gpio_set(led2_pin); assert(sc == RTEMS_SUCCESSFUL); } else { sc = rtems_gpio_clear(led2_pin); assert(sc == RTEMS_SUCCESSFUL); } val = rtems_gpio_get_value(sw2_pin); if ( val == 0 ) { sc = rtems_gpio_set(led1_pin); assert(sc == RTEMS_SUCCESSFUL); } else { sc = rtems_gpio_clear(led1_pin); assert(sc == RTEMS_SUCCESSFUL); } } rtems_test_end(); exit(0); }
rtems_status_code rpi_gpio_select_spi(void) { return rtems_gpio_multi_select(spi_config, SPI_PIN_COUNT); }
rtems_status_code rpi_gpio_select_i2c(void) { return rtems_gpio_multi_select(i2c_config, I2C_PIN_COUNT); }
rtems_status_code rpi_gpio_select_jtag(void) { return rtems_gpio_multi_select(jtag_config, JTAG_PIN_COUNT); }