11913091 |
1 | #include <stdio.h> |
306e06f7 |
2 | #include <stdlib.h> |
7fd42181 |
3 | #include <string.h> |
11913091 |
4 | #include <sys/types.h> |
5 | #include <sys/stat.h> |
6 | #include <fcntl.h> |
7 | #include <sys/mman.h> |
dc90c02d |
8 | #include <sys/ioctl.h> |
9 | #include <signal.h> |
7fd42181 |
10 | #include <termios.h> |
11 | |
12 | static int open_(const char *name) |
13 | { |
14 | int fd = open(name, O_RDWR); |
15 | if (fd < 0) { |
16 | fprintf(stderr, "%s: ", name); |
17 | perror("open"); |
18 | return 1; |
19 | } |
20 | |
21 | return fd; |
22 | } |
11913091 |
23 | |
306e06f7 |
24 | int main(int argc, char *argv[]) |
11913091 |
25 | { |
26 | volatile void *memregs; |
7fd42181 |
27 | void *fbmem; |
28 | int memdev, fbdev; |
86418a84 |
29 | int i; |
11913091 |
30 | |
306e06f7 |
31 | printf("hi, home=%s\n", getenv("HOME")); |
32 | |
33 | for (i = 0; i < argc; i++) |
34 | printf("%d \"%s\"\n", i, argv[i]); |
11913091 |
35 | |
7fd42181 |
36 | memdev = open_("/dev/mem"); |
37 | fbdev = open_("/dev/fb0"); |
306e06f7 |
38 | |
11913091 |
39 | memregs = mmap(NULL, 0x10000, PROT_READ|PROT_WRITE, MAP_SHARED, memdev, 0xc0000000); |
7fd42181 |
40 | fbmem = mmap(NULL, 320*240*2, PROT_READ|PROT_WRITE, MAP_SHARED, fbdev, 0); |
41 | |
dc90c02d |
42 | ioctl(-1, 0); |
43 | signal(7, SIG_DFL); |
7fd42181 |
44 | // tcgetattr(-1, NULL); |
45 | // tcsetattr(-1, 0, NULL); |
86418a84 |
46 | |
7fd42181 |
47 | #if 1 |
86418a84 |
48 | for (i = 0; i < 2; i++) |
49 | printf("%02x %04x %08x\n", ((char *)memregs)[0x2011], |
50 | ((short *)memregs)[0x1198/2], ((int *)memregs)[0xbcdc/4]); |
7fd42181 |
51 | #endif |
52 | memset(fbmem, 0xff, 320*240*2); |
86418a84 |
53 | |
7fd42181 |
54 | sleep(10); |
11913091 |
55 | |
56 | return 0; |
57 | } |
58 | |