int gpio_init(void) { verify_gpio_map(); int fd = open("/dev/mem", O_RDWR); int status = 0; int ret; if (fd == -1) { fprintf(stderr, "failed to open /dev/mem: %s\n", strerror(errno)); return errno; } ret = gpio_mmap(fd); if (ret) { fprintf(stderr, "failed to mmap gpio banks: %s\n", strerror(errno)); status = errno; goto ret_close; } ret = gpio_clock_enable(fd); if (ret) { fprintf(stderr, "failed to enable gpio clocks: %s\n", strerror(errno)); status = errno; goto ret_close; } ret_close: close(fd); return status; }
int main (void) { verify_gpio_map(); int ret = gpio_init(); if (ret) { fprintf(stderr, "Failed to initialize GPIO\n"); return ret; } init_leds(); signal(SIGINT, sigint_handler); while (running) blink_leds(); leds_off(); gpio_munmap(); return 0; }