ラズパイLチカ C(システムコール)をつかってみたら 約200- 273KHz

#gcc -g -O0 -o xxxx でやると約200KHz
最適化をおまかせする(gcc -o xxxx)deでやる約270KHz


#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>

int fd_val;
char s[64];

void init_gpio()
{
    int fd_exp, fd_dir;
    int i;
    fd_exp = open("/sys/class/gpio/export", O_WRONLY);
    if (fd_exp < 0) {
        printf("GPIO export open error\n");
        exit(1);
    }

    write(fd_exp, "7", 2);
    close(fd_exp);

    sprintf(s,"/sys/class/gpio/gpio%d/direction",7);
    fd_dir = open(s, O_RDWR);
    if (fd_dir < 0) {
        printf("GPIO %d direction open error\n",i);
        exit(1);
    }
    write(fd_dir, "out", 4);
    close(fd_dir);

    sprintf(s,"/sys/class/gpio/gpio%d/value",7);
    fd_val = open(s, O_RDWR);
    if (fd_val < 0) {
       	printf("GPIO %d value open error\n",i);
       	exit(1);
    }
}

int main()
{
    int i;

    init_gpio();
    while(1)
    //for (i=0; i<0x100000; i++) 
    {
	write(fd_val,"1",2);
	write(fd_val,"0",2);
    }
    close(fd_val);
}