Misc documentation/LCD-related updates

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3844 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2011-08-05 02:31:59 +00:00
parent be7cd049c4
commit 4f7b1c1496
6 changed files with 128 additions and 67 deletions

View File

@ -3958,6 +3958,25 @@ build
</li> </li>
</ul> </ul>
<h3>Input Devices</h3>
<ul>
<li>
<code>CONFIG_INPUT</code>:
Enables general support for input devices
</li>
<li>
<code>CONFIG_INPUT_TSC2007</code>:
If CONFIG_INPUT is selected, then this setting will enable building
of the TI TSC2007 touchscreen driver.
</li>
<li>
<code>CONFIG_TSC2007_MULTIPLE</code>:
Normally only a single TI TSC2007 touchscreen is used. But if
there are multiple TSC2007 touchscreens, this setting will enable
multiple touchscreens with the same driver.
</li>
</ul>
<h3>ENC28J60 Ethernet Driver Configuration Settings</h3> <h3>ENC28J60 Ethernet Driver Configuration Settings</h3>
<ul> <ul>
<li> <li>
@ -4399,9 +4418,8 @@ build
</p> </p>
<h2>Graphics related configuration settings</h3> <h2>Graphics related configuration settings</h3>
<ul>
<li> <li>
<code>CONFIG_NX</code> <code>CONFIG_NX</code>:
Enables overall support for graphics library and NX Enables overall support for graphics library and NX
</li> </li>
</ul> </ul>
@ -4444,6 +4462,14 @@ build
<code>CONFIG_LCD_MAXCONTRAST</code>: <code>CONFIG_LCD_MAXCONTRAST</code>:
The maximum contrast value for an LCD device. The maximum contrast value for an LCD device.
</li> </li>
<li>
<code>CONFIG_LCD_LANDSCAPE</code>, <code>CONFIG_LCD_PORTRAIT</code>,
<code>CONFIG_LCD_RLANDSCAPE</code>, and <code>CONFIG_LCD_RPORTRAIT</code>:
Some LCD drivers may support these options to present the display in
landscape, portrait, reverse landscape, or reverse portrait orientations.
Check the <code>README.txt</code> file in each board configuration directory to
see if any of these are supported by the board LCD logic.
</li>
<li> <li>
<code>CONFIG_NX_MOUSE</code>: <code>CONFIG_NX_MOUSE</code>:
Build in support for mouse input. Build in support for mouse input.

44
TODO
View File

@ -1,4 +1,4 @@
NuttX TODO List (Last updated July 12, 2011) NuttX TODO List (Last updated August 8, 2011)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
nuttx/ nuttx/
@ -13,7 +13,7 @@ nuttx/
(16) Network (net/, drivers/net) (16) Network (net/, drivers/net)
(2) USB (drivers/usbdev, drivers/usbhost) (2) USB (drivers/usbdev, drivers/usbhost)
(6) Libraries (lib/) (6) Libraries (lib/)
(13) File system/Generic drivers (fs/, drivers/) (10) File system/Generic drivers (fs/, drivers/)
(1) Graphics subystem (graphics/) (1) Graphics subystem (graphics/)
(1) Pascal add-on (pcode/) (1) Pascal add-on (pcode/)
(1) Documentation (Documentation/) (1) Documentation (Documentation/)
@ -32,6 +32,7 @@ nuttx/
(3) AVR (arch/avr) (3) AVR (arch/avr)
(0) Intel x86 (arch/x86) (0) Intel x86 (arch/x86)
(4) 8051 / MCS51 (arch/8051/) (4) 8051 / MCS51 (arch/8051/)
(1) MIPS (arch/mips)
(2) Hitachi/Renesas SH-1 (arch/sh/src/sh1) (2) Hitachi/Renesas SH-1 (arch/sh/src/sh1)
(4) Renesas M16C/26 (arch/sh/src/m16c) (4) Renesas M16C/26 (arch/sh/src/m16c)
(8) z80/z8/ez80 (arch/z80/) (8) z80/z8/ez80 (arch/z80/)
@ -345,6 +346,7 @@ o Network (net/, drivers/net)
and the packet was rejected. and the packet was rejected.
Status: Open Status: Open
Priority: Low... fix defconfig files as necessary. Priority: Low... fix defconfig files as necessary.
o USB (drivers/usbdev, drivers/usbhost) o USB (drivers/usbdev, drivers/usbhost)
^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^
@ -411,10 +413,6 @@ o File system / Generic drivers (fs/, drivers/)
Status: Open Status: Open
Priority: Low Priority: Low
Description: FAT: long file names
Status: Open
Priority: Medium
Description: The CAN driver is untested. Add a test for the CAN driver. Description: The CAN driver is untested. Add a test for the CAN driver.
Status: Open Status: Open
Priority: Medium Priority: Medium
@ -443,17 +441,6 @@ o File system / Generic drivers (fs/, drivers/)
Status: Open Status: Open
Priority: Medium-Low Priority: Medium-Low
Description: At present, mmap() only works with file descriptors associated
with a ROMFS file system. Generalize this logic so that if
mmap is not supported by the file system or block driver, it
will allocate memory and copy the file into RAM. This would
need some centralized logic so that the memory region would
be shared on later mmap()'s on the same inode. Reference counting
would be required so that the multiply mmap()'ed region persists
until the last munmap().
Status: Open
Priority: Low
Description: Block driver read-ahead buffer and write buffer support is Description: Block driver read-ahead buffer and write buffer support is
implemented but not yet tested. implemented but not yet tested.
Status: Open Status: Open
@ -470,7 +457,7 @@ o File system / Generic drivers (fs/, drivers/)
Status: Open Status: Open
Priority: Low Priority: Low
Description: Time stamping is not implemented in the NuttX FA file system. Description: Time stamping is not implemented in the NuttX FAT file system.
See the following functions in fs/fat/fs_fat32util.c: See the following functions in fs/fat/fs_fat32util.c:
fat_systime2fattime() and fat_fattime2systime() fat_systime2fattime() and fat_fattime2systime()
Status: Open Status: Open
@ -660,6 +647,13 @@ o ARM (arch/arm/)
This user context switching time could be improved by eliminating This user context switching time could be improved by eliminating
the SVCalls and developing assembly language implementations the SVCalls and developing assembly language implementations
of the context save and restore logic. of the context save and restore logic.
Also, because interrupts are always disabled when the SVCall is
executed, the SVC goes to the hard fault handler where it must
be handled as a special case. I recall seeing some controls
somewhere that will allow to suppress one hard fault. I don't
recall the control, but something like this should be used before
executing the SVCall so that it vectors directly to the SVC
handler.
Status: Open Status: Open
Priority: Low Priority: Low
@ -933,6 +927,12 @@ o AVR (arch/avr)
Status: Open Status: Open
Priority: Medium-High. Priority: Medium-High.
Description: A complete port for the AVR32 is provided and has been partially
debugged. There may still be some issues with the serial port
driver.
Status: Open
Priority: Medium
o Intel x86 (arch/x86) o Intel x86 (arch/x86)
^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^
@ -974,6 +974,14 @@ o 8051 / MCS51 (arch/8051/)
Status: Open Status: Open
Priority: Low -- only because there as so many other issues with 8051 Priority: Low -- only because there as so many other issues with 8051
o MIPS (arch/mips)
^^^^^^^^^^^^^^^^
Description: A port to the PIC32MX has been completed, but is pending debug.
Right now, there are some issues with intregating the PICKit 3
and MPLAB so I don't have capability to debug the port.
Status: Open
Priority: High
o Hitachi/Renesas SH-1 (arch/sh/src/sh1) o Hitachi/Renesas SH-1 (arch/sh/src/sh1)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -671,6 +671,18 @@ defconfig -- This is a configuration file similar to the Linux
meaning to the driver. Board-specific logic may place restrictions on meaning to the driver. Board-specific logic may place restrictions on
this value. this value.
Input Devices
CONFIG_INPUT
Enables general support for input devices
CONFIG_INPUT_TSC2007
If CONFIG_INPUT is selected, then this setting will enable building
of the TI TSC2007 touchscreen driver.
CONFIG_TSC2007_MULTIPLE
Normally only a single TI TSC2007 touchscreen is used. But if
there are multiple TSC2007 touchscreens, this setting will enable
multiple touchscreens with the same driver.
ENC28J60 Ethernet Driver Configuration Settings: ENC28J60 Ethernet Driver Configuration Settings:
CONFIG_NET_ENC28J60 - Enabled ENC28J60 support CONFIG_NET_ENC28J60 - Enabled ENC28J60 support
CONFIG_ENC28J60_SPIMODE - Controls the SPI mode CONFIG_ENC28J60_SPIMODE - Controls the SPI mode
@ -886,6 +898,7 @@ defconfig -- This is a configuration file similar to the Linux
and CONFIG_SCHED_WORKQUEUE=y and CONFIG_SCHED_WORKQUEUE=y
USB serial device class driver USB serial device class driver
CONFIG_USBSER CONFIG_USBSER
Enable compilation of the USB serial driver Enable compilation of the USB serial driver
CONFIG_USBSER_EPINTIN CONFIG_USBSER_EPINTIN
@ -907,6 +920,7 @@ defconfig -- This is a configuration file similar to the Linux
Size of the serial receive/transmit buffers Size of the serial receive/transmit buffers
USB Storage Device Configuration USB Storage Device Configuration
CONFIG_USBSTRG CONFIG_USBSTRG
Enable compilation of the USB storage driver Enable compilation of the USB storage driver
CONFIG_USBSTRG_EP0MAXPACKET CONFIG_USBSTRG_EP0MAXPACKET
@ -954,6 +968,12 @@ defconfig -- This is a configuration file similar to the Linux
device. device.
CONFIG_LCD_MAXCONTRAST - The maximum contrast value for an CONFIG_LCD_MAXCONTRAST - The maximum contrast value for an
LCD device. LCD device.
CONFIG_LCD_LANDSCAPE, CONFIG_LCD_PORTRAIT, CONFIG_LCD_RLANDSCAPE,
and CONFIG_LCD_RPORTRAIT - Some LCD drivers may support
these options to present the display in landscape, portrait,
reverse landscape, or reverse portrait orientations. Check
the README.txt file in each board configuration directory to
see if any of these are supported by the board LCD logic.
CONFIG_NX_MOUSE CONFIG_NX_MOUSE
Build in support for mouse input. Build in support for mouse input.
CONFIG_NX_KBD CONFIG_NX_KBD

View File

@ -295,6 +295,13 @@ SAM3U-EK-specific Configuration Options
CONFIG_U[S]ARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity CONFIG_U[S]ARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
CONFIG_U[S]ARTn_2STOP - Two stop bits CONFIG_U[S]ARTn_2STOP - Two stop bits
LCD Options. Other than the standard LCD configuration options
(see configs/README.txt), the SAM3U-EK driver also supports:
CONFIG_LCD_PORTRAIT - Present the display in the standard 240x320
"Portrait" orientation. Default: The display is rotated to
support a 320x240 "Landscape" orientation.
Configurations Configurations
^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^

View File

@ -2,7 +2,7 @@
* configs/sam3u-ek/src/up_lcd.c * configs/sam3u-ek/src/up_lcd.c
* arch/arm/src/board/up_lcd.c * arch/arm/src/board/up_lcd.c
* *
* Copyright (C) 2010 Gregory Nutt. All rights reserved. * Copyright (C) 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
@ -168,12 +168,12 @@
/* Graphics Capbilities ***************************************************************/ /* Graphics Capbilities ***************************************************************/
/* LCD resolution: 320 (columns) by 240 (rows). The physical dimensions of the device /* LCD resolution: 320 (columns) by 240 (rows). The physical dimensions of the device
* are really 240 (columns) by 320 (rows), but unless CONFIG_SAM3U_240x320 is defined, * are really 240 (columns) by 320 (rows), but unless CONFIG_LCD_PORTRAIT is defined,
* we swap rows and columns in setcursor to make things behave nicer (there IS a * we swap rows and columns in setcursor to make things behave nicer (there IS a
* performance hit for this swap!). * performance hit for this swap!).
*/ */
#ifdef CONFIG_SAM3U_240x320 #ifdef CONFIG_LCD_PORTRAIT
# define SAM3UEK_XRES 240 # define SAM3UEK_XRES 240
# define SAM3UEK_YRES 320 # define SAM3UEK_YRES 320
#else #else
@ -606,7 +606,7 @@ static int sam3u_putrun(fb_coord_t row, fb_coord_t col, FAR const uint8_t *buffe
gvdbg("row: %d col: %d npixels: %d\n", row, col, npixels); gvdbg("row: %d col: %d npixels: %d\n", row, col, npixels);
DEBUGASSERT(buffer && ((uintptr_t)buffer & 1) == 0); DEBUGASSERT(buffer && ((uintptr_t)buffer & 1) == 0);
#ifdef CONFIG_SAM3U_240x320 #ifdef CONFIG_LCD_PORTRAIT
/* Set up to write the run. */ /* Set up to write the run. */
sam3u_setcursor(row, col); sam3u_setcursor(row, col);
@ -672,7 +672,7 @@ static int sam3u_getrun(fb_coord_t row, fb_coord_t col, FAR uint8_t *buffer,
gvdbg("row: %d col: %d npixels: %d\n", row, col, npixels); gvdbg("row: %d col: %d npixels: %d\n", row, col, npixels);
DEBUGASSERT(buffer && ((uintptr_t)buffer & 1) == 0); DEBUGASSERT(buffer && ((uintptr_t)buffer & 1) == 0);
#ifdef CONFIG_SAM3U_240x320 #ifdef CONFIG_LCD_PORTRAIT
/* Set up to read the run */ /* Set up to read the run */
sam3u_setcursor(row, col); sam3u_setcursor(row, col);

View File

@ -226,7 +226,7 @@ int nxgl_splitline(FAR struct nxgl_vector_s *vector,
*/ */
angle = b16atan2(itob16(iheight), itob16(iwidth)); angle = b16atan2(itob16(iheight), itob16(iwidth));
triheight = b16toi(linewidth * b16cos(angle)); triheight = b16toi(linewidth * b16cos(angle) + b16HALF);
halfheight = (triheight >> 1); halfheight = (triheight >> 1);
/* If the sine of the angle is tiny (i.e., the line is nearly horizontal), /* If the sine of the angle is tiny (i.e., the line is nearly horizontal),