#include #include #include #include #include #include #include static void bail(int cond, const char *msg) { if (cond) { perror(msg); exit(1); } } int main(void) { unsigned *addr; char buf[4096]; unsigned data[2] = { 0xdeadbeef, 0xcafeabab }; int fd, i; fd = open("/dev/fb0", O_RDWR); bail(fd < 0, "/dev/fb0"); for (i = 0; i < sizeof(buf); i+=sizeof(data)) memcpy(buf + i, data, sizeof(data)); addr = mmap(NULL, sizeof(buf), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); bail(addr == MAP_FAILED, "mmap"); printf("Mapped /dev/fb0 at %p\n", addr); memcpy(addr, buf, sizeof(buf)); // write(fd, buf, sizeof(buf)); sleep(10); close(fd); return 0; }