Mercurial > ecos-v3_0-branch
annotate packages/devs/framebuf/synth/current/doc/synth_framebuf.sgml @ 2729:74dbf4c3f2e1 after-copyright-change-20090129
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
| author | jlarmour |
|---|---|
| date | Thu, 29 Jan 2009 17:47:46 +0000 |
| parents | 2063ee669faf |
| children |
| rev | line source |
|---|---|
|
2566
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
1 <!-- DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V3.1//EN" --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
2 |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
3 <!-- =============================================================== --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
4 <!-- --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
5 <!-- synth_framebuf.sgml --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
6 <!-- --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
7 <!-- Synthetic target frame buffer device --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
8 <!-- --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
9 <!-- =============================================================== --> |
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
2566
diff
changeset
|
10 <!-- ####ECOSDOCCOPYRIGHTBEGIN#### --> |
|
2566
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
11 <!-- =============================================================== --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
12 <!-- Copyright (C) 2008 Free Software Foundation, Inc. --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
13 <!-- This material may be distributed only subject to the terms --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
14 <!-- and conditions set forth in the Open Publication License, v1.0 --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
15 <!-- or later (the latest version is presently available at --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
16 <!-- http://www.opencontent.org/openpub/) --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
17 <!-- Distribution of the work or derivative of the work in any --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
18 <!-- standard (paper) book form is prohibited unless prior --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
19 <!-- permission obtained from the copyright holder --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
20 <!-- =============================================================== --> |
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
2566
diff
changeset
|
21 <!-- ####ECOSDOCCOPYRIGHTEND#### --> |
|
2566
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
22 <!-- =============================================================== --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
23 <!-- #####DESCRIPTIONBEGIN#### --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
24 <!-- --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
25 <!-- Author(s): bartv --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
26 <!-- Contact(s): bartv --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
27 <!-- Date: 2008/10/07 --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
28 <!-- Version: 0.01 --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
29 <!-- --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
30 <!-- ####DESCRIPTIONEND#### --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
31 <!-- =============================================================== --> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
32 |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
33 <part id="devs-framebuf-synth-ref"> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
34 <title>Synthetic Target Framebuffer Device</title> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
35 |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
36 <refentry id="devs-framebuf-synth"> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
37 <refmeta> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
38 <refentrytitle>Synthetic Target Framebuffer Device</refentrytitle> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
39 </refmeta> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
40 <refnamediv> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
41 <refname>Synthetic Target Framebuffer Device</refname> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
42 <refpurpose>Emulate framebuffer hardware in the synthetic target</refpurpose> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
43 </refnamediv> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
44 |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
45 <refsect1 id="devs-framebuf-synth-overview"><title>Overview</title> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
46 <para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
47 This package <varname>CYGPKG_DEVS_FRAMEBUF_SYNTH</varname> provides a |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
48 framebuffer device driver for the eCos synthetic target. |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
49 </para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
50 <informalfigure PgWide=1> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
51 <mediaobject> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
52 <imageobject> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
53 <imagedata fileref="synthfb.png" Scalefit=1 Align="Center"> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
54 </imageobject> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
55 </mediaobject> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
56 </informalfigure> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
57 <para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
58 The driver supports up to four framebuffer devices |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
59 <varname>fb0</varname>, <varname>fb1</varname>, <varname>fb2</varname> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
60 and <varname>fb3</varname>. The width, height, depth, and display |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
61 format of each framebuffer can be controlled via configuration |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
62 options. It is also possible to set a viewport for each device and to |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
63 enable page flipping. |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
64 </para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
65 <para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
66 To use the framebuffer support the eCos application must run inside an |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
67 X session, not from the console, and it must be started with |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
68 <parameter>--io</parameter> to enable the I/O auxiliary. The I/O |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
69 auxiliary will start a separate instance of a host-side utility |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
70 <application>framebuf</application> for each target-side framebuffer |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
71 device. The <application>framebuf</application> utility can access the |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
72 eCos framebuffer data via a shared memory region and draw it to the |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
73 screen using X library calls. It needs the X server to run with a |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
74 TrueColor visual and a display of depth of 24 or 32 bits per pixel. |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
75 </para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
76 </refsect1> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
77 |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
78 <refsect1 id="devs-framebuf-synth-install"><title>Installation</title> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
79 <para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
80 The synthetic target framebuffer driver depends on host-side support |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
81 which must be built and installed. The relevant code resides in the |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
82 <filename class="directory">host</filename> subdirectory of the |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
83 synthetic target framebuffer package, and building it involves the |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
84 standard <command>configure</command>, <command>make</command> and |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
85 <command>make install</command> steps. This will build and install a |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
86 utility program <application>framebuf</application> that does the |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
87 actual drawing of the eCos framebuffer contents to the host-side X |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
88 display. It will also install a Tcl script and some support files. |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
89 <application>framebuf</application> is an X11 application so can only |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
90 be built on Linux systems with the appropriate X11 development package |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
91 or packages. |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
92 </para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
93 <para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
94 There are two main ways of building the host-side software. It is |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
95 possible to build both the generic host-side software and all |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
96 package-specific host-side software, including the framebuffer |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
97 support, in a single build tree. This involves using the |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
98 <command>configure</command> script at the toplevel of the eCos |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
99 repository. For more information on this, see the |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
100 <filename>README.host</filename> file at the top of the repository. |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
101 Note that if you have an existing build tree which does not include |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
102 the synthetic target framebuffer support then it will be necessary to |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
103 rerun the toplevel configure script: the search for appropriate |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
104 packages happens at configure time. |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
105 </para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
106 <para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
107 The alternative is to build just the host-side for this package. |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
108 This requires a separate build directory, building directly in the |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
109 source tree is disallowed. The <command>configure</command> options |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
110 are much the same as for a build from the toplevel, and the |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
111 <filename>README.host</filename> file can be consulted for more |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
112 details. It is essential that the framebuffer support be configured with |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
113 the same <option>--prefix</option> option as other eCos host-side |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
114 software, especially the I/O auxiliary provided by the architectural |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
115 synthetic target HAL package, otherwise the I/O auxiliary will be |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
116 unable to locate the framebuffer support. |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
117 </para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
118 </refsect1> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
119 |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
120 <refsect1 id="devs-framebuf-synth-config"><title>Configuration</title> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
121 <para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
122 The package is loaded automatically when creating a configuration for |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
123 the synthetic target. However it is inactive unless the generic |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
124 framebuffer support <varname>CYGPKG_IO_FRAMEBUF</varname> is also |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
125 added to the configuration, for example by <computeroutput>ecosconfig |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
126 add framebuf</computeroutput>. |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
127 </para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
128 <para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
129 By default the package enables a single framebuffer device |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
130 <varname>fb0</varname> with a corresponding |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
131 <structname>cyg_fb</structname> data structure |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
132 <varname>cyg_synth_fb0</varname>. The default settings for this device |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
133 are 320 by 240 pixels, a depth of 8 bits per pixel, a paletted |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
134 display, no viewport support, and no page flipping. All of these |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
135 settings can be changed by configuration options inside the CDL |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
136 component <varname>CYGPKG_DEVS_FRAMEBUF_SYNTH_FB0</varname>. The |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
137 supported display formats are: 8 bpp paletted; 8bpp true colour 332; |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
138 16bpp true 565; 16bpp true 555; and 32bpp 0888. This allows the |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
139 synthetic target to match the actual display capabilities of the |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
140 hardware that is being emulated. If the actual hardware has more than |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
141 one framebuffer device then this can be emulated by enabling |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
142 additional components |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
143 <varname>CYGPKG_DEVS_FRAMEBUF_SYNTH_FB1</varname> …, and |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
144 setting the appropriate options. |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
145 </para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
146 </refsect1> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
147 |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
148 <refsect1 id="devs-framebuf-synth-customization"><title>Customization</title> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
149 <para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
150 In addition to the target-side configurability it is possible to |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
151 customize the host-side behaviour. For example, the default behaviour |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
152 is for <varname>fb0</varname> to be drawn inside the I/O auxiliary's |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
153 main window, if it is not too large. <varname>fb1</varname>, |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
154 <varname>fb2</varname> and <varname>fb3</varname> will be drawn inside |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
155 separate toplevel windows, as will <varname>fb0</varname> if that has |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
156 been configured too large for embedding in the main window. This |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
157 behaviour can be changed by providing a custom Tcl/Tk procedure that |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
158 creates the containing frame for the framebuffer device. |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
159 </para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
160 <para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
161 Customization involves adding a <structname>synth_device</structname> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
162 <varname>framebuf</varname> section to the <filename>.tdf</filename> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
163 target definition file, usually <filename>default.tdf</filename> or |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
164 <filename>~/.ecos/synth/default.tdf</filename>. |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
165 </para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
166 <programlisting width=72> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
167 proc my_framebuf_create_frame { &hellip } { |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
168 … |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
169 } |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
170 |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
171 synth_device framebuf { |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
172 fb2_magnification 2 |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
173 create_frame_proc my_framebuf_create_frame |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
174 } |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
175 </programlisting> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
176 <para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
177 The pixel size on the host display may be rather smaller than on the |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
178 final hardware, causing a serious mismatch between the application's |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
179 appearance when using synthetic target emulation and when using real |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
180 hardware. To reduce this problem the host-side can magnify the |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
181 target-side framebuffer devices. In the example above each target-side |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
182 pixel in device <varname>fb2</varname> will be drawn using 2*2 pixels |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
183 on the host side. Valid magnifications are 1, 2, 3 and 4. With a |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
184 magnification of 4 an eCos framebuffer device of 320*240 pixels will |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
185 be drawn in an X window of 1280*960 pixels. |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
186 </para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
187 <para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
188 The <parameter>create_frame_proc</parameter> entry can be used to |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
189 specify a custom Tcl/Tk procedure that will create the containing Tk |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
190 frames for the host-side displays. This procedure can be written for a |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
191 specific configuration, but it is supplied with all the parameters |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
192 associated with the framebuffer device so can be more generic. An |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
193 example is supplied in the package's <filename |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
194 class="directory">misc</filename> subdirectory: |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
195 </para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
196 <orderedlist> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
197 <listitem><para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
198 Create a configuration for the synthetic target with the default |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
199 template. |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
200 </para></listitem> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
201 <listitem><para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
202 Import the <filename>example.ecm</filename> configuration fragment |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
203 from the <filename class="directory">misc</filename> subdirectory. |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
204 This will add the generic framebuffer support package, enable all four |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
205 framebuffer devices, and configure each device. Build the resulting |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
206 configuration. |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
207 </para></listitem> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
208 <listitem><para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
209 Compile the <filename>example.c</filename> program and link it against |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
210 the eCos configuration. |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
211 </para></listitem> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
212 <listitem><para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
213 Incorporate the <filename>example.tdf</filename> fragment into the |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
214 appropriate target definition file, typically |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
215 <filename>default.tdf</filename> or |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
216 <filename>~/.ecos/synth/default.tdf</filename>. |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
217 </para></listitem> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
218 <listitem><para> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
219 Run the example executable. The four framebuffer devices should get |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
220 instantiated in a separate window in a single column. |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
221 <varname>FB0</varname> just contains a static display. |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
222 <varname>FB1</varname> supports two pages, one with vertical stripes |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
223 and one with horizontal stripes, and the two pages are flipped at |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
224 regular intervals. <varname>FB2</varname> has a static display similar |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
225 to <varname>FB0</varname>, but is drawn in a viewport of only 160x120 |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
226 pixels. However <filename>example.tdf</filename> magnifies this by 2 |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
227 so it appears the same size as the other devices. The application |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
228 moves the viewport around the underlying framebuffer device. |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
229 <varname>FB3</varname> is also a static display, a simple set of |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
230 vertical stripes. However this framebuffer is paletted and the palette |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
231 is changed at regular intervals, causing apparent movement. |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
232 </para></listitem> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
233 </orderedlist> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
234 </refsect1> |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
235 |
|
2063ee669faf
Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff
changeset
|
236 </refentry> |
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
2566
diff
changeset
|
237 </part> |
