mirror of
https://github.com/apache/nuttx.git
synced 2026-06-04 06:22:34 +08:00
Add a simulated touchscreen driver
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3989 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
@@ -12,7 +12,7 @@
|
|||||||
<h1><big><font color="#3c34ec">
|
<h1><big><font color="#3c34ec">
|
||||||
<i>NX Graphics Subsystem</i>
|
<i>NX Graphics Subsystem</i>
|
||||||
</font></big></h1>
|
</font></big></h1>
|
||||||
<p>Last Updated: August 24, 2011</p>
|
<p>Last Updated: September 28, 2011</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
@@ -3416,13 +3416,13 @@ static FAR const struct nx_fontpackage_s *g_fontpackages[] =
|
|||||||
<p><b>Building <code>apps/examples/nx</code></b>.
|
<p><b>Building <code>apps/examples/nx</code></b>.
|
||||||
NX testing was performed using <code>apps/examples/nx</code> with the
|
NX testing was performed using <code>apps/examples/nx</code> with the
|
||||||
Linux/Cygwin-based NuttX simulator.
|
Linux/Cygwin-based NuttX simulator.
|
||||||
Configuration files for building this test can be found in <code>configs/sim/nx</code>.
|
Configuration files for building this test can be found in <code>configs/sim/nx</code>
|
||||||
|
and <code>configs/sim/nx11</code>.
|
||||||
There are two alternative configurations for building the simulation:
|
There are two alternative configurations for building the simulation:
|
||||||
</p>
|
</p>
|
||||||
<ol>
|
<ol>
|
||||||
<li>
|
<li>
|
||||||
The default configuration using the configuration file at
|
The configuration using the configuration file at <code>configs/sim/nx/defconfig</code>.
|
||||||
<code>configs/sim/nx/defconfig</code>.
|
|
||||||
This default configuration exercises the NX logic a 8 BPP but provides no visual feedback.
|
This default configuration exercises the NX logic a 8 BPP but provides no visual feedback.
|
||||||
In this configuration, a very simple, simulated framebuffer driver is used that is
|
In this configuration, a very simple, simulated framebuffer driver is used that is
|
||||||
based upon a simple region of memory posing as video memory.
|
based upon a simple region of memory posing as video memory.
|
||||||
@@ -3437,18 +3437,17 @@ make
|
|||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<p>
|
<p>
|
||||||
A preferred configuration extends the test with a simulated framebuffer driver
|
The preferred configuration is at <code>configs/sim/nx11/defconfig</code>.
|
||||||
|
This configuration extends the test with a simulated framebuffer driver
|
||||||
that uses an X window as a framebuffer.
|
that uses an X window as a framebuffer.
|
||||||
This configuration uses the configuration file at <code>configs/sim/nx/defconfig-x11</code>.
|
|
||||||
This is a superior test configuration because the X window appears at your desktop
|
This is a superior test configuration because the X window appears at your desktop
|
||||||
and you can see the NX output.
|
and you can see the NX output.
|
||||||
This preferred configuration can be built as follows:
|
This preferred configuration can be built as follows:
|
||||||
</p>
|
</p>
|
||||||
<ul><pre>
|
<ul><pre>
|
||||||
cd <NuttX-Directory>/tools
|
cd <NuttX-Directory>/tools
|
||||||
./configure sim/nx
|
./configure sim/nx11
|
||||||
cd <NuttX-Directory>
|
cd <NuttX-Directory>
|
||||||
cp <NuttX-Directory>/configs/sim/nx/defconfig-x11 .config
|
|
||||||
make
|
make
|
||||||
./nuttx
|
./nuttx
|
||||||
</pre></ul>
|
</pre></ul>
|
||||||
@@ -3456,29 +3455,40 @@ make
|
|||||||
<i>Update:</i>
|
<i>Update:</i>
|
||||||
The sim target has suffered some bit-rot over the years and so the following caveats need to be added:
|
The sim target has suffered some bit-rot over the years and so the following caveats need to be added:
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li><p>
|
||||||
The X target does not build under recent Cygwin configurations.
|
The X target builds under recent Cygwin configurations, but does not execute.
|
||||||
</li>
|
(It fails inside of <code>XOpenDisplay()</code>.
|
||||||
<li>
|
</p></li>
|
||||||
The X target does not build under current Ubuntu distributions;
|
<li><p>
|
||||||
it fails to locate the X header files.
|
The X target does not build under current (9.09) Ubuntu distributions.
|
||||||
</li>
|
I needed to make the following changes:
|
||||||
<li>
|
</p>
|
||||||
|
<ul></pre>
|
||||||
|
cd /usr/lib/
|
||||||
|
sudo ln -s libXext.so.6.4.0 libXext.so
|
||||||
|
</pre></ul>
|
||||||
|
<p>
|
||||||
|
The build will also fail to locate the X header files unless you install an X11 development package.
|
||||||
|
</p></li>
|
||||||
|
<li><p>
|
||||||
The sim target itself is broken under 64-bit Linux.
|
The sim target itself is broken under 64-bit Linux.
|
||||||
This is because the sim target is based upon some assembly language setjmp/longjmp logic that only works on 32-bit systems.
|
This is because the sim target is based upon some assembly language setjmp/longjmp logic that only works on 32-bit systems.
|
||||||
<p><small><b>NOTE</b>: There is a workaround in this case:
|
</p>
|
||||||
|
<p><small>
|
||||||
|
<b>NOTE</b>: There is a workaround in this case:
|
||||||
You can build for 32-bit execution on a 64-bit machine by adding <code>-m3</code> to the <code>CFLAGS</code> and <code>-m32 -m elf_i386</code> to the <code>LDFLAGS</code>.
|
You can build for 32-bit execution on a 64-bit machine by adding <code>-m3</code> to the <code>CFLAGS</code> and <code>-m32 -m elf_i386</code> to the <code>LDFLAGS</code>.
|
||||||
See the patch file <code>0001-Quick-hacks-to-build-sim-nsh-ostest-on-x86_64-as-32-.patch</code>
|
See the patch file <code>0001-Quick-hacks-to-build-sim-nsh-ostest-on-x86_64-as-32-.patch</code>
|
||||||
that can be found in NuttX <a href="http://tech.groups.yahoo.com/group/nuttx/files">files</a>.
|
that can be found in NuttX <a href="http://tech.groups.yahoo.com/group/nuttx/files">files</a>.
|
||||||
</small></p>
|
</small></p>
|
||||||
</li>
|
</li>
|
||||||
|
<li><p>
|
||||||
|
Refer to the readme file in sim configuration
|
||||||
|
<a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/sim/README.txt?view=log">README.txt</a> file for additional information.
|
||||||
|
</p></li>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
<p>
|
|
||||||
Why isn't this configuration the default? Because not all systems the use NX support X.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p><b>Test Coverage</b>.
|
<p><b>Test Coverage</b>.
|
||||||
At present, <code>apps/examples/nx</code>t only exercises a subset of NX;
|
At present, <code>apps/examples/nx</code>t only exercises a subset of NX;
|
||||||
@@ -3985,7 +3995,6 @@ make
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="left" valign="top"><a href="#nxfconvertbpp"><code>nxf_convert_32bpp()</code></a></td>
|
<td align="left" valign="top"><a href="#nxfconvertbpp"><code>nxf_convert_32bpp()</code></a></td>
|
||||||
<td>Use <code>defconfig-x11</code> when building.</td>
|
|
||||||
<td align="center" bgcolor="skyblue">YES</td>
|
<td align="center" bgcolor="skyblue">YES</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table></center>
|
</table></center>
|
||||||
|
|||||||
@@ -53,6 +53,10 @@ else
|
|||||||
CSRCS += up_framebuffer.c
|
CSRCS += up_framebuffer.c
|
||||||
ifeq ($(CONFIG_SIM_X11FB),y)
|
ifeq ($(CONFIG_SIM_X11FB),y)
|
||||||
HOSTSRCS += up_x11framebuffer.c
|
HOSTSRCS += up_x11framebuffer.c
|
||||||
|
ifeq ($(CONFIG_SIM_TOUCHSCREEN),y)
|
||||||
|
CSRCS += up_touchscreen.c
|
||||||
|
HOSTSRCS += up_x11eventloop.c
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -113,21 +113,6 @@ static int up_getcursor(FAR struct fb_vtable_s *vtable, FAR struct fb_cursorattr
|
|||||||
static int up_setcursor(FAR struct fb_vtable_s *vtable, FAR struct fb_setcursor_s *setttings);
|
static int up_setcursor(FAR struct fb_vtable_s *vtable, FAR struct fb_setcursor_s *setttings);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* Public Function Prototypes
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#ifdef CONFIG_SIM_X11FB
|
|
||||||
extern int up_x11initialize(unsigned short width, unsigned short height,
|
|
||||||
void **fbmem, unsigned int *fblen, unsigned char *bpp,
|
|
||||||
unsigned short *stride);
|
|
||||||
#ifdef CONFIG_FB_CMAP
|
|
||||||
extern int up_x11cmap(unsigned short first, unsigned short len,
|
|
||||||
unsigned char *red, unsigned char *green,
|
|
||||||
unsigned char *blue, unsigned char *transp);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Private Data
|
* Private Data
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|||||||
@@ -44,6 +44,7 @@
|
|||||||
#include <nuttx/arch.h>
|
#include <nuttx/arch.h>
|
||||||
#include <nuttx/fs.h>
|
#include <nuttx/fs.h>
|
||||||
|
|
||||||
|
#include "os_internal.h"
|
||||||
#include "up_internal.h"
|
#include "up_internal.h"
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@@ -98,10 +99,32 @@ void up_initialize(void)
|
|||||||
devnull_register(); /* Standard /dev/null */
|
devnull_register(); /* Standard /dev/null */
|
||||||
devzero_register(); /* Standard /dev/zero */
|
devzero_register(); /* Standard /dev/zero */
|
||||||
up_devconsole(); /* Our private /dev/console */
|
up_devconsole(); /* Our private /dev/console */
|
||||||
|
|
||||||
#if defined(CONFIG_FS_FAT) && !defined(CONFIG_DISABLE_MOUNTPOINT)
|
#if defined(CONFIG_FS_FAT) && !defined(CONFIG_DISABLE_MOUNTPOINT)
|
||||||
up_registerblockdevice(); /* Our FAT ramdisk at /dev/ram0 */
|
up_registerblockdevice(); /* Our FAT ramdisk at /dev/ram0 */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_NET
|
#ifdef CONFIG_NET
|
||||||
uipdriver_init(); /* Our "real" netwok driver */
|
uipdriver_init(); /* Our "real" netwok driver */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Start the X11 event loop and register the touchscreen driver */
|
||||||
|
|
||||||
|
#if defined(CONFIG_SIM_X11FB) && defined(CONFIG_SIM_TOUCHSCREEN)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
/* Start the X11 event loop */
|
||||||
|
|
||||||
|
ret = KERNEL_THREAD("evloop", CONFIG_SIM_EVLOOPPRIORITY,
|
||||||
|
CONFIG_SIM_EVLOOPSTACKSIZE,
|
||||||
|
(main_t)up_x11eventloop, (const char **)NULL);
|
||||||
|
ASSERT(ret != ERROR);
|
||||||
|
|
||||||
|
/* Register the touchscreen driver */
|
||||||
|
|
||||||
|
ret = up_tcregister(0);
|
||||||
|
ASSERT(ret == OK);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
+78
-16
@@ -1,7 +1,7 @@
|
|||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* up_internal.h
|
* up_internal.h
|
||||||
*
|
*
|
||||||
* Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -45,26 +45,56 @@
|
|||||||
#include <nuttx/irq.h>
|
#include <nuttx/irq.h>
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* Public Definitions
|
* Pre-processor Definitions
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
/* Configuration **********************************************************/
|
||||||
|
|
||||||
/* Storage order: %ebx, $esi, %edi, %ebp, sp, and return PC */
|
#ifndef CONFIG_SIM_X11FB
|
||||||
#ifdef __ASSEMBLY__
|
# ifdef CONFIG_SIM_TOUCHSCREEN
|
||||||
# define JB_EBX (0*4)
|
# error "CONFIG_SIM_TOUCHSCREEN depends on CONFIG_SIM_X11FB"
|
||||||
# define JB_ESI (1*4)
|
# undef CONFIG_SIM_TOUCHSCREEN
|
||||||
# define JB_EDI (2*4)
|
# endif
|
||||||
# define JB_EBP (3*4)
|
#endif
|
||||||
# define JB_SP (4*4)
|
|
||||||
# define JB_PC (5*4)
|
#ifndef CONFIG_INPUT
|
||||||
|
# ifdef CONFIG_SIM_TOUCHSCREEN
|
||||||
|
# error "CONFIG_SIM_TOUCHSCREEN depends on CONFIG_INPUT"
|
||||||
|
# undef CONFIG_SIM_TOUCHSCREEN
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_SIM_TOUCHSCREEN
|
||||||
|
# ifndef CONFIG_SIM_EVLOOPPRIORITY
|
||||||
|
# define CONFIG_SIM_EVLOOPPRIORITY 50
|
||||||
|
# endif
|
||||||
|
# ifndef CONFIG_SIM_EVLOOPSTACKSIZE
|
||||||
|
# define CONFIG_SIM_EVLOOPSTACKSIZE 4096
|
||||||
|
# endif
|
||||||
#else
|
#else
|
||||||
# define JB_EBX (0)
|
# undef CONFIG_SIM_EVLOOPPRIORITY
|
||||||
# define JB_ESI (1)
|
# undef CONFIG_SIM_EVLOOPSTACKSIZE
|
||||||
# define JB_EDI (2)
|
#endif
|
||||||
# define JB_EBP (3)
|
|
||||||
# define JB_SP (4)
|
/* Context Switching Definitions ******************************************/
|
||||||
# define JB_PC (5)
|
/* Storage order: %ebx, $esi, %edi, %ebp, sp, and return PC */
|
||||||
|
|
||||||
|
#ifdef __ASSEMBLY__
|
||||||
|
# define JB_EBX (0*4)
|
||||||
|
# define JB_ESI (1*4)
|
||||||
|
# define JB_EDI (2*4)
|
||||||
|
# define JB_EBP (3*4)
|
||||||
|
# define JB_SP (4*4)
|
||||||
|
# define JB_PC (5*4)
|
||||||
|
#else
|
||||||
|
# define JB_EBX (0)
|
||||||
|
# define JB_ESI (1)
|
||||||
|
# define JB_EDI (2)
|
||||||
|
# define JB_EBP (3)
|
||||||
|
# define JB_SP (4)
|
||||||
|
# define JB_PC (5)
|
||||||
#endif /* __ASSEMBLY__ */
|
#endif /* __ASSEMBLY__ */
|
||||||
|
|
||||||
|
/* Simulated Heap Definitions **********************************************/
|
||||||
/* Size of the simulated heap */
|
/* Size of the simulated heap */
|
||||||
|
|
||||||
#if CONFIG_MM_SMALL
|
#if CONFIG_MM_SMALL
|
||||||
@@ -73,6 +103,7 @@
|
|||||||
# define SIM_HEAP_SIZE (4*1024*1024)
|
# define SIM_HEAP_SIZE (4*1024*1024)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* File System Definitions **************************************************/
|
||||||
/* These definitions characterize the compressed filesystem image */
|
/* These definitions characterize the compressed filesystem image */
|
||||||
|
|
||||||
#define BLOCK_COUNT 1024
|
#define BLOCK_COUNT 1024
|
||||||
@@ -126,6 +157,37 @@ extern size_t up_hostwrite(const void *buffer, size_t len);
|
|||||||
extern unsigned long up_getwalltime( void );
|
extern unsigned long up_getwalltime( void );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* up_x11framebuffer.c ******************************************************/
|
||||||
|
|
||||||
|
#ifdef CONFIG_SIM_X11FB
|
||||||
|
extern int up_x11initialize(unsigned short width, unsigned short height,
|
||||||
|
void **fbmem, unsigned int *fblen, unsigned char *bpp,
|
||||||
|
unsigned short *stride);
|
||||||
|
#ifdef CONFIG_FB_CMAP
|
||||||
|
extern int up_x11cmap(unsigned short first, unsigned short len,
|
||||||
|
unsigned char *red, unsigned char *green,
|
||||||
|
unsigned char *blue, unsigned char *transp);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* up_eventloop.c ***********************************************************/
|
||||||
|
|
||||||
|
#ifdef CONFIG_SIM_X11FB
|
||||||
|
#ifdef CONFIG_SIM_TOUCHSCREEN
|
||||||
|
extern int up_x11eventloop(int argc, char *argv[]);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* up_eventloop.c ***********************************************************/
|
||||||
|
|
||||||
|
#ifdef CONFIG_SIM_X11FB
|
||||||
|
#ifdef CONFIG_SIM_TOUCHSCREEN
|
||||||
|
extern int up_tcregister(int minor);
|
||||||
|
extern int up_tcenter(int x, int y, int buttons);
|
||||||
|
extern int up_tcleave(int x, int y, int buttons);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/* up_tapdev.c ************************************************************/
|
/* up_tapdev.c ************************************************************/
|
||||||
|
|
||||||
#if defined(CONFIG_NET) && !defined(__CYGWIN__)
|
#if defined(CONFIG_NET) && !defined(__CYGWIN__)
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,168 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
* arch/sim/src/up_x11eventloop.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011 Gregory Nutt. All rights reserved.
|
||||||
|
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||||
|
* used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Included Files
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <X11/Xlib.h>
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Definitions
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Private Type Declarations
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Private Function Prototypes
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Public Function Prototypes
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
extern int up_tcenter(int x, int y, int buttons);
|
||||||
|
extern int up_tcleave(int x, int y, int buttons);
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Public Variables
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/* Defined in up_x11framebuffer.c */
|
||||||
|
|
||||||
|
extern Display *g_display;
|
||||||
|
extern Window g_window;
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Private Variables
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Private Functions
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: up_x11eventloop
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
static int up_buttonmap(int state)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
/* Remove any X11 dependencies. Possible bit settings include: Button1Mask,
|
||||||
|
* Button2Mask, Button3Mask, Button4Mask, Button5Mask, ShiftMask, LockMask,
|
||||||
|
* ControlMask, Mod1Mask, Mod2Mask, Mod3Mask, Mod4Mask, Mod5Mask. I assume
|
||||||
|
* that for a mouse device Button1Mask, Button2Mask, and Button3Mask are
|
||||||
|
* sufficient.
|
||||||
|
*/
|
||||||
|
|
||||||
|
if ((state & Button1Mask) != 0)
|
||||||
|
{
|
||||||
|
ret |= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((state & Button2Mask) != 0)
|
||||||
|
{
|
||||||
|
ret |= 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((state & Button3Mask) != 0)
|
||||||
|
{
|
||||||
|
ret |= 4;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Public Functions
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: up_x11eventloop
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
int up_x11eventloop(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
XEvent event;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
/* Grab the pointer (mouse) */
|
||||||
|
|
||||||
|
ret = XGrabPointer(g_display, g_window, 0,
|
||||||
|
EnterWindowMask|LeaveWindowMask,
|
||||||
|
GrabModeAsync, GrabModeAsync, None, None, CurrentTime);
|
||||||
|
if (ret != GrabSuccess)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Failed grap pointer\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Then loop forever, waiting for events and processing events as they are
|
||||||
|
* received.
|
||||||
|
*/
|
||||||
|
|
||||||
|
for (;;)
|
||||||
|
{
|
||||||
|
XNextEvent(g_display, &event);
|
||||||
|
switch (event.type)
|
||||||
|
{
|
||||||
|
case EnterNotify:
|
||||||
|
{
|
||||||
|
fprintf(stderr, "EnterNotify event: (%d,%d) %08x\n",
|
||||||
|
event.xcrossing.x, event.xcrossing.y, event.xcrossing.state);
|
||||||
|
up_tcenter(event.xcrossing.x, event.xcrossing.y,
|
||||||
|
up_buttonmap(event.xcrossing.state));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case LeaveNotify :
|
||||||
|
{
|
||||||
|
fprintf(stderr, "LeaveNotify event: (%d,%d) %08x\n",
|
||||||
|
event.xcrossing.x, event.xcrossing.y, event.xcrossing.state);
|
||||||
|
up_tcleave(event.xcrossing.x, event.xcrossing.y,
|
||||||
|
up_buttonmap(event.xcrossing.state));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default :
|
||||||
|
fprintf(stderr, "Unrecognized event: %d\n", event.type);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -64,16 +64,19 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Global Variables
|
* Public Variables
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
/* Also used in up_x11eventloop */
|
||||||
|
|
||||||
|
Display *g_display;
|
||||||
|
Window g_window;
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Private Variables
|
* Private Variables
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static Display *g_display;
|
|
||||||
static int g_screen;
|
static int g_screen;
|
||||||
static Window g_window;
|
|
||||||
static GC g_gc;
|
static GC g_gc;
|
||||||
#ifndef CONFIG_SIM_X11NOSHM
|
#ifndef CONFIG_SIM_X11NOSHM
|
||||||
static XShmSegmentInfo g_xshminfo;
|
static XShmSegmentInfo g_xshminfo;
|
||||||
@@ -438,4 +441,3 @@ void up_x11update(void)
|
|||||||
}
|
}
|
||||||
XSync(g_display, 0);
|
XSync(g_display, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+94
-31
@@ -68,7 +68,7 @@ X11 Issues
|
|||||||
^^^^^^^^^^
|
^^^^^^^^^^
|
||||||
|
|
||||||
There is an X11-based framebuffer driver that you can use exercise the NuttX graphics
|
There is an X11-based framebuffer driver that you can use exercise the NuttX graphics
|
||||||
subsystem on the simulator (see the sim/nx configuration below). This may require a
|
subsystem on the simulator (see the sim/nx11 configuration below). This may require a
|
||||||
lot of tinkering to get working, depending upon where your X11 installation stores
|
lot of tinkering to get working, depending upon where your X11 installation stores
|
||||||
libraries and header files and how it names libraries.
|
libraries and header files and how it names libraries.
|
||||||
|
|
||||||
@@ -87,6 +87,9 @@ Configurations
|
|||||||
^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^
|
||||||
|
|
||||||
mount
|
mount
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
Configures to use examples/mount. This configuration may be
|
Configures to use examples/mount. This configuration may be
|
||||||
selected as follows:
|
selected as follows:
|
||||||
|
|
||||||
@@ -95,6 +98,8 @@ mount
|
|||||||
|
|
||||||
nettest
|
nettest
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
Configures to use examples/nettest. This configuration
|
Configures to use examples/nettest. This configuration
|
||||||
enables networking using the network TAP device. It may
|
enables networking using the network TAP device. It may
|
||||||
be selected via:
|
be selected via:
|
||||||
@@ -118,6 +123,9 @@ nettest
|
|||||||
select the IP address that you want to use.
|
select the IP address that you want to use.
|
||||||
|
|
||||||
nsh
|
nsh
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
Configures to use the NuttShell at examples/nsh. This configuration
|
Configures to use the NuttShell at examples/nsh. This configuration
|
||||||
may be selected as follows:
|
may be selected as follows:
|
||||||
|
|
||||||
@@ -125,59 +133,112 @@ nsh
|
|||||||
./configure.sh sim/nsh
|
./configure.sh sim/nsh
|
||||||
|
|
||||||
nx
|
nx
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
Configures to use examples/nx. This configuration may be
|
Configures to use examples/nx. This configuration may be
|
||||||
selected as follows:
|
selected as follows:
|
||||||
|
|
||||||
cd <nuttx-directory>/tools
|
cd <nuttx-directory>/tools
|
||||||
./configure.sh sim/nx
|
./configure.sh sim/nx
|
||||||
|
|
||||||
|
Special Framebuffer Configuration
|
||||||
|
---------------------------------
|
||||||
Special simulated framebuffer configuration options:
|
Special simulated framebuffer configuration options:
|
||||||
|
|
||||||
CONFIG_SIM_X11FB - Use X11 window for framebuffer
|
CONFIG_SIM_FBHEIGHT - Height of the framebuffer in pixels
|
||||||
CONFIG_SIM_FBHEIGHT - Height of the framebuffer in pixels
|
CONFIG_SIM_FBWIDTH - Width of the framebuffer in pixels.
|
||||||
CONFIG_SIM_FBWIDTH - Width of the framebuffer in pixels.
|
CONFIG_SIM_FBBPP - Pixel depth in bits
|
||||||
CONFIG_SIM_FBBPP - Pixel depth in bits
|
|
||||||
|
|
||||||
NOTES:
|
No Display!
|
||||||
- If CONFIG_SIM_X11FB is selected then the following are
|
-----------
|
||||||
needed
|
This version has NO DISPLAY and is only useful for debugging NX
|
||||||
|
internals in environments where X11 is not supported. There is
|
||||||
|
and additonal configuration that may be added to include an X11-
|
||||||
|
based simulated framebuffer driver:
|
||||||
|
|
||||||
CONFIG_SIM_FBBPP (must match the resolution of the display).
|
CONFIG_SIM_X11FB - Use X11 window for framebuffer
|
||||||
CONFIG_FB_CMAP=y
|
|
||||||
|
|
||||||
My system has 24-bit color, but packed into 32-bit words so
|
See the nx11 configuration below for more information.
|
||||||
the correct seeting of CONFIG_SIM_FBBPP is 32.
|
|
||||||
|
|
||||||
- For whatever value of CONFIG_SIM_FBBPP is selected, then
|
Multi- and Single-User Modes
|
||||||
the corresponidng CONFIG_NX_DISABLE_*BPP setting must
|
----------------------------
|
||||||
not be disabled.
|
The default is the single-user NX implementation. To select
|
||||||
|
the multi-user NX implementation:
|
||||||
|
|
||||||
- The default in defconfig is to use a generic memory buffer
|
CONFG_NX_MULTIUSER=y
|
||||||
for the framebuffer. defconfig-x11 is an example with X11
|
CONFIG_DISABLE_MQUEUE=n
|
||||||
support enabled. To use this configuration you have to
|
|
||||||
configure as follows:
|
|
||||||
|
|
||||||
cd tools
|
nx11
|
||||||
./configure.sh sim/nx
|
|
||||||
cd ..
|
|
||||||
cp configs/sim/nx/defconfig-x11 .config
|
|
||||||
|
|
||||||
- The default is the single-user NX implementation. To select
|
Description
|
||||||
the multi-user NX implementation:
|
-----------
|
||||||
|
Configures to use examples/nx. This configuration is similar
|
||||||
|
to the nx configuration except that it addes support for an X11-
|
||||||
|
based framebuffer driver. Of course, this configuration can only
|
||||||
|
be used in environments that support X11! (And it may not even
|
||||||
|
be usable in all of those environments without some "tweaking").
|
||||||
|
|
||||||
CONFG_NX_MULTIUSER=y
|
This configuration may be selected as follows:
|
||||||
CONFIG_DISABLE_MQUEUE=n
|
|
||||||
|
|
||||||
- To get the system to compile under various X11 installations
|
cd <nuttx-directory>/tools
|
||||||
you may have to modify a few things. For example, in order
|
./configure.sh sim/nx11
|
||||||
to find libXext, I had to make the following change under
|
|
||||||
Ubuntu 9.09:
|
Special Framebuffer Configuration
|
||||||
|
---------------------------------
|
||||||
|
This configuration uses the same special simulated framebuffer
|
||||||
|
configuration options as the nx configuration:
|
||||||
|
|
||||||
|
CONFIG_SIM_X11FB - Use X11 window for framebuffer
|
||||||
|
CONFIG_SIM_FBHEIGHT - Height of the framebuffer in pixels
|
||||||
|
CONFIG_SIM_FBWIDTH - Width of the framebuffer in pixels.
|
||||||
|
CONFIG_SIM_FBBPP - Pixel depth in bits
|
||||||
|
|
||||||
|
X11 Configuration
|
||||||
|
-----------------
|
||||||
|
But now, since CONFIG_SIM_X11FB is also selected the following
|
||||||
|
definitions are needed
|
||||||
|
|
||||||
|
CONFIG_SIM_FBBPP (must match the resolution of the display).
|
||||||
|
CONFIG_FB_CMAP=y
|
||||||
|
|
||||||
|
My system has 24-bit color, but packed into 32-bit words so
|
||||||
|
the correct seeting of CONFIG_SIM_FBBPP is 32.
|
||||||
|
|
||||||
|
For whatever value of CONFIG_SIM_FBBPP is selected, the
|
||||||
|
corresponidng CONFIG_NX_DISABLE_*BPP setting must not be
|
||||||
|
disabled.
|
||||||
|
|
||||||
|
Touchscreen Support
|
||||||
|
-------------------
|
||||||
|
A X11 mouse-based touchscreen simulation can also be enabled
|
||||||
|
by setting:
|
||||||
|
|
||||||
|
CONFIG_INPUT=y
|
||||||
|
CONFIG_SIM_TOUCHSCREEN=y
|
||||||
|
|
||||||
|
X11 Build Issues
|
||||||
|
----------------
|
||||||
|
To get the system to compile under various X11 installations
|
||||||
|
you may have to modify a few things. For example, in order
|
||||||
|
to find libXext, I had to make the following change under
|
||||||
|
Ubuntu 9.09:
|
||||||
|
|
||||||
cd /usr/lib/
|
cd /usr/lib/
|
||||||
sudo ln -s libXext.so.6.4.0 libXext.so
|
sudo ln -s libXext.so.6.4.0 libXext.so
|
||||||
|
|
||||||
|
Multi- and Single-User Modes
|
||||||
|
----------------------------
|
||||||
|
The default is the single-user NX implementation. To select
|
||||||
|
the multi-user NX implementation:
|
||||||
|
|
||||||
|
CONFG_NX_MULTIUSER=y
|
||||||
|
CONFIG_DISABLE_MQUEUE=n
|
||||||
|
|
||||||
ostest
|
ostest
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
The "standard" NuttX examples/ostest configuration. This
|
The "standard" NuttX examples/ostest configuration. This
|
||||||
configuration may be selected as follows:
|
configuration may be selected as follows:
|
||||||
|
|
||||||
@@ -186,6 +247,8 @@ ostest
|
|||||||
|
|
||||||
pashello
|
pashello
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
Configures to use examples/pashello. This configuration may
|
Configures to use examples/pashello. This configuration may
|
||||||
by selected as follows:
|
by selected as follows:
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,110 @@
|
|||||||
|
############################################################################
|
||||||
|
# configs/sim/nx11/Make.defs
|
||||||
|
#
|
||||||
|
# Copyright (C) 2008, 2011 Gregory Nutt. All rights reserved.
|
||||||
|
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions
|
||||||
|
# are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in
|
||||||
|
# the documentation and/or other materials provided with the
|
||||||
|
# distribution.
|
||||||
|
# 3. Neither the name NuttX nor the names of its contributors may be
|
||||||
|
# used to endorse or promote products derived from this software
|
||||||
|
# without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
# POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
############################################################################
|
||||||
|
|
||||||
|
include ${TOPDIR}/.config
|
||||||
|
|
||||||
|
HOSTOS = ${shell uname -o 2>/dev/null || echo "Other"}
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||||
|
ARCHOPTIMIZATION = -g
|
||||||
|
else
|
||||||
|
ARCHOPTIMIZATION = -O2
|
||||||
|
endif
|
||||||
|
|
||||||
|
ARCHCPUFLAGS = -fno-builtin
|
||||||
|
ARCHPICFLAGS = -fpic
|
||||||
|
ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow
|
||||||
|
ARCHDEFINES =
|
||||||
|
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
||||||
|
ARCHSCRIPT =
|
||||||
|
|
||||||
|
CROSSDEV =
|
||||||
|
CC = $(CROSSDEV)gcc
|
||||||
|
CPP = $(CROSSDEV)gcc -E
|
||||||
|
LD = $(CROSSDEV)ld
|
||||||
|
AR = $(CROSSDEV)ar rcs
|
||||||
|
NM = $(CROSSDEV)nm
|
||||||
|
OBJCOPY = $(CROSSDEV)objcopy
|
||||||
|
OBJDUMP = $(CROSSDEV)objdump
|
||||||
|
|
||||||
|
CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
|
||||||
|
$(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
|
||||||
|
CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
|
||||||
|
AFLAGS = $(CFLAGS) -D__ASSEMBLY__
|
||||||
|
|
||||||
|
OBJEXT = .o
|
||||||
|
LIBEXT = .a
|
||||||
|
|
||||||
|
ifeq ($(HOSTOS),Cygwin)
|
||||||
|
EXEEXT = .exe
|
||||||
|
else
|
||||||
|
EXEEXT =
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ("${CONFIG_DEBUG_SYMBOLS}","y")
|
||||||
|
LDFLAGS += -g
|
||||||
|
endif
|
||||||
|
|
||||||
|
define PREPROCESS
|
||||||
|
@echo "CPP: $1->$2"
|
||||||
|
@$(CPP) $(CPPFLAGS) $1 -o $2
|
||||||
|
endef
|
||||||
|
|
||||||
|
define COMPILE
|
||||||
|
@echo "CC: $1"
|
||||||
|
@$(CC) -c $(CFLAGS) $1 -o $2
|
||||||
|
endef
|
||||||
|
|
||||||
|
define ASSEMBLE
|
||||||
|
@echo "AS: $1"
|
||||||
|
@$(CC) -c $(AFLAGS) $1 -o $2
|
||||||
|
endef
|
||||||
|
|
||||||
|
define ARCHIVE
|
||||||
|
echo "AR: $2"; \
|
||||||
|
$(AR) $1 $2 || { echo "$(AR) $1 $2 FAILED!" ; exit 1 ; }
|
||||||
|
endef
|
||||||
|
|
||||||
|
define CLEAN
|
||||||
|
@rm -f *.o *.a
|
||||||
|
endef
|
||||||
|
|
||||||
|
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
||||||
|
|
||||||
|
HOSTCC = gcc
|
||||||
|
HOSTINCLUDES = -I.
|
||||||
|
HOSTCFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
|
||||||
|
$(ARCHCPUFLAGS) $(HOSTINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
|
||||||
|
HOSTLDFLAGS =
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
############################################################################
|
||||||
|
# configs/sim/nx11/appconfig
|
||||||
|
#
|
||||||
|
# Copyright (C) 2011 Gregory Nutt. All rights reserved.
|
||||||
|
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions
|
||||||
|
# are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in
|
||||||
|
# the documentation and/or other materials provided with the
|
||||||
|
# distribution.
|
||||||
|
# 3. Neither the name NuttX nor the names of its contributors may be
|
||||||
|
# used to endorse or promote products derived from this software
|
||||||
|
# without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
# POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
############################################################################
|
||||||
|
|
||||||
|
# Path to example in apps/examples containing the user_start entry point
|
||||||
|
|
||||||
|
CONFIGURED_APPS += examples/nx
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
############################################################################
|
############################################################################
|
||||||
# sim/nx/defconfig
|
# sim/nx11/defconfig
|
||||||
#
|
#
|
||||||
# Copyright (C) 2008, 2010 Gregory Nutt. All rights reserved.
|
# Copyright (C) 2008, 2010-2011 Gregory Nutt. All rights reserved.
|
||||||
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
@@ -51,11 +51,19 @@ CONFIG_ARCH_BOARD_SIM=y
|
|||||||
|
|
||||||
#
|
#
|
||||||
# Simulated framebuffer configuration
|
# Simulated framebuffer configuration
|
||||||
|
#
|
||||||
CONFIG_SIM_X11FB=y
|
CONFIG_SIM_X11FB=y
|
||||||
CONFIG_SIM_FBWIDTH=480
|
CONFIG_SIM_FBWIDTH=480
|
||||||
CONFIG_SIM_FBHEIGHT=240
|
CONFIG_SIM_FBHEIGHT=240
|
||||||
CONFIG_SIM_FBBPP=32
|
CONFIG_SIM_FBBPP=32
|
||||||
|
|
||||||
|
#
|
||||||
|
# Simulated touchscreen configuration
|
||||||
|
# (Set both of the following to 'y' to enable)
|
||||||
|
#
|
||||||
|
CONFIG_INPUT=n
|
||||||
|
CONFIG_SIM_TOUCHSCREEN=n
|
||||||
|
|
||||||
#
|
#
|
||||||
# General OS setup
|
# General OS setup
|
||||||
#
|
#
|
||||||
Executable
+45
@@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# sim/nx11/setenv.sh
|
||||||
|
#
|
||||||
|
# Copyright (C) 2008, 2011 Gregory Nutt. All rights reserved.
|
||||||
|
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions
|
||||||
|
# are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in
|
||||||
|
# the documentation and/or other materials provided with the
|
||||||
|
# distribution.
|
||||||
|
# 3. Neither the name NuttX nor the names of its contributors may be
|
||||||
|
# used to endorse or promote products derived from this software
|
||||||
|
# without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
# POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ "$(basename $0)" = "setenv.sh" ] ; then
|
||||||
|
echo "You must source this script, not run it!" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z ${PATH_ORIG} ]; then export PATH_ORIG=${PATH}; fi
|
||||||
|
|
||||||
|
#export NUTTX_BIN=
|
||||||
|
#export PATH=${NUTTX_BIN}:/sbin:/usr/sbin:${PATH_ORIG}
|
||||||
|
|
||||||
|
echo "PATH : ${PATH}"
|
||||||
Reference in New Issue
Block a user