예제 #1
0
파일: gpio.c 프로젝트: dwery/nrf24le1-bbb
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;
}
예제 #2
0
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;
}