LCD configuration » fbfill_3-27-2015.cpp
1 |
/**
|
---|---|
2 |
* \file fbfill.cpp
|
3 |
* very simple VGA frame buffer pattern fill
|
4 |
* to compile:
|
5 |
* /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++ -o fbfill fbfill.cpp
|
6 |
*
|
7 |
* 2010 (c) Critical Link LLC. This file is licensed under
|
8 |
* the terms of the GNU General Public License version 2. This program
|
9 |
* is licensed "as is" without any warranty of any kind, whether express
|
10 |
* or implied.
|
11 |
*
|
12 |
*/
|
13 |
#include <stdio.h>
|
14 |
#include <string.h>
|
15 |
#include <stdlib.h>
|
16 |
|
17 |
|
18 |
int main(int argc, char** argv) |
19 |
{
|
20 |
|
21 |
int w = 640; |
22 |
int h = 480; |
23 |
int s = h/(8 *sizeof(unsigned short)); |
24 |
unsigned short bitlane = 0; |
25 |
const char* devname = "/dev/fb"; |
26 |
|
27 |
for(int aa = 1; aa < argc -1; ++aa) |
28 |
{
|
29 |
if(0 == strncmp(argv[aa],"-w",2) && argc > (aa+1)) |
30 |
{
|
31 |
w=atoi(argv[aa+1]); |
32 |
++aa; |
33 |
}
|
34 |
if(0 == strncmp(argv[aa],"-h",2) && argc > (aa+1)) |
35 |
{
|
36 |
h=atoi(argv[aa+1]); |
37 |
++aa; |
38 |
}
|
39 |
}
|
40 |
|
41 |
printf("Framebuffer w = %d h = %d\n", w,h); |
42 |
|
43 |
FILE* fp = NULL; |
44 |
// un-blank the display
|
45 |
fp = fopen("/sys/devices/platform/da8xx_lcdc.0/graphics/fb0/blank", "w"); |
46 |
if(fp) |
47 |
{
|
48 |
fwrite("1\n",2,1,fp); |
49 |
fclose(fp); |
50 |
}
|
51 |
|
52 |
printf("opening %s\n",devname); |
53 |
fp = fopen(devname,"w"); |
54 |
if (!fp) |
55 |
{
|
56 |
perror(devname); |
57 |
return(2); |
58 |
}
|
59 |
unsigned short* pdata = new unsigned short[w]; |
60 |
for (int xx = 0; xx < (w); ++xx) |
61 |
{
|
62 |
pdata[xx] = 0xFFFF; |
63 |
}
|
64 |
fwrite(pdata,2,w,fp); |
65 |
for (int yy = 1; yy < (h-1); ++yy) |
66 |
{
|
67 |
pdata[0] = 0xFFFF; |
68 |
for (int xx = 1; xx < (w-1); ++xx) |
69 |
{
|
70 |
pdata[xx] = 1 << bitlane; |
71 |
}
|
72 |
pdata[w-1] = 0xFFFF; |
73 |
fwrite(pdata,2,w,fp); |
74 |
if (yy && (yy%s == 0)) |
75 |
++bitlane; |
76 |
}
|
77 |
for (int xx = 0; xx < (w); ++xx) |
78 |
{
|
79 |
pdata[xx] = 0xFFFF; |
80 |
}
|
81 |
fwrite(pdata,2,w,fp); |
82 |
delete [] pdata; |
83 |
return 0; |
84 |
}
|