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>
</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>
<ul>
<li>
@ -4399,9 +4418,8 @@ build
</p>
<h2>Graphics related configuration settings</h3>
<ul>
<li>
<code>CONFIG_NX</code>
<code>CONFIG_NX</code>:
Enables overall support for graphics library and NX
</li>
</ul>
@ -4444,6 +4462,14 @@ build
<code>CONFIG_LCD_MAXCONTRAST</code>:
The maximum contrast value for an LCD device.
</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>
<code>CONFIG_NX_MOUSE</code>:
Build in support for mouse input.

60
TODO
View File

@ -1,4 +1,4 @@
NuttX TODO List (Last updated July 12, 2011)
NuttX TODO List (Last updated August 8, 2011)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
nuttx/
@ -13,7 +13,7 @@ nuttx/
(16) Network (net/, drivers/net)
(2) USB (drivers/usbdev, drivers/usbhost)
(6) Libraries (lib/)
(13) File system/Generic drivers (fs/, drivers/)
(10) File system/Generic drivers (fs/, drivers/)
(1) Graphics subystem (graphics/)
(1) Pascal add-on (pcode/)
(1) Documentation (Documentation/)
@ -32,6 +32,7 @@ nuttx/
(3) AVR (arch/avr)
(0) Intel x86 (arch/x86)
(4) 8051 / MCS51 (arch/8051/)
(1) MIPS (arch/mips)
(2) Hitachi/Renesas SH-1 (arch/sh/src/sh1)
(4) Renesas M16C/26 (arch/sh/src/m16c)
(8) z80/z8/ez80 (arch/z80/)
@ -345,6 +346,7 @@ o Network (net/, drivers/net)
and the packet was rejected.
Status: Open
Priority: Low... fix defconfig files as necessary.
o USB (drivers/usbdev, drivers/usbhost)
^^^^^^^^^^^^^^^^^^^^
@ -411,10 +413,6 @@ o File system / Generic drivers (fs/, drivers/)
Status: Open
Priority: Low
Description: FAT: long file names
Status: Open
Priority: Medium
Description: The CAN driver is untested. Add a test for the CAN driver.
Status: Open
Priority: Medium
@ -443,17 +441,6 @@ o File system / Generic drivers (fs/, drivers/)
Status: Open
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
implemented but not yet tested.
Status: Open
@ -470,7 +457,7 @@ o File system / Generic drivers (fs/, drivers/)
Status: Open
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:
fat_systime2fattime() and fat_fattime2systime()
Status: Open
@ -660,6 +647,13 @@ o ARM (arch/arm/)
This user context switching time could be improved by eliminating
the SVCalls and developing assembly language implementations
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
Priority: Low
@ -922,17 +916,23 @@ o AVR (arch/avr)
Priority: Low. The AVR is probably not the architecuture that you want to use
for extensive string operations.
Description: An SPI driver and a USB device driver exist for the AT90USB (as well
as a USB mass storage example). However, this configuration is not
fully debugged as of the NuttX-6.5 release.
Update 7/11: (1) The SPI/SD driver has been verified, however, (2) I
believe that the current teensy/usbstorage configuration uses too
much SRAM for the system to behave sanely. A lower memory footprint
version of the mass storage driver will be required before this can
be debugged
Description: An SPI driver and a USB device driver exist for the AT90USB (as well
as a USB mass storage example). However, this configuration is not
fully debugged as of the NuttX-6.5 release.
Update 7/11: (1) The SPI/SD driver has been verified, however, (2) I
believe that the current teensy/usbstorage configuration uses too
much SRAM for the system to behave sanely. A lower memory footprint
version of the mass storage driver will be required before this can
be debugged
Status: Open
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)
^^^^^^^^^^^^^^^^^^^^
@ -974,6 +974,14 @@ o 8051 / MCS51 (arch/8051/)
Status: Open
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)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -499,29 +499,29 @@ defconfig -- This is a configuration file similar to the Linux
CONFIG_ARCH_MATH_H, CONFIG_ARCH_STDBOOL_H, CONFIG_ARCH_STDINT_H
CONFIG_ARCH_ROMGETC - In Harvard architectures, data accesses and
instruction accesses occur on different busses, perhaps
concurrently. All data accesses are performed on the data bus
unless special machine instructions are used to read data
from the instruction address space. Also, in the typical
MCU, the available SRAM data memory is much smaller that the
non-volatile FLASH instruction memory. So if the application
requires many constant strings, the only practical solution may
be to store those constant strings in FLASH memory where they
can only be accessed using architecture-specific machine
instructions.
CONFIG_ARCH_ROMGETC - In Harvard architectures, data accesses and
instruction accesses occur on different busses, perhaps
concurrently. All data accesses are performed on the data bus
unless special machine instructions are used to read data
from the instruction address space. Also, in the typical
MCU, the available SRAM data memory is much smaller that the
non-volatile FLASH instruction memory. So if the application
requires many constant strings, the only practical solution may
be to store those constant strings in FLASH memory where they
can only be accessed using architecture-specific machine
instructions.
If CONFIG_ARCH_ROMGETC is defined, then the architecture logic
must export the function up_romgetc(). up_romgetc() will simply
read one byte of data from the instruction space.
If CONFIG_ARCH_ROMGETC is defined, then the architecture logic
must export the function up_romgetc(). up_romgetc() will simply
read one byte of data from the instruction space.
If CONFIG_ARCH_ROMGETC, certain C stdio functions are effected:
(1) All format strings in printf, fprintf, sprintf, etc. are
assumed to lie in FLASH (string arguments for %s are still assumed
to reside in SRAM). And (2), the string argument to puts and fputs
is assumed to reside in FLASH. Clearly, these assumptions may have
to modified for the particular needs of your environment. There
is no "one-size-fits-all" solution for this problem.
If CONFIG_ARCH_ROMGETC, certain C stdio functions are effected:
(1) All format strings in printf, fprintf, sprintf, etc. are
assumed to lie in FLASH (string arguments for %s are still assumed
to reside in SRAM). And (2), the string argument to puts and fputs
is assumed to reside in FLASH. Clearly, these assumptions may have
to modified for the particular needs of your environment. There
is no "one-size-fits-all" solution for this problem.
Sizes of configurable things (0 disables)
@ -564,19 +564,19 @@ defconfig -- This is a configuration file similar to the Linux
Filesystem configuration
CONFIG_FS_FAT - Enable FAT filesystem support
CONFIG_FAT_SECTORSIZE - Max supported sector size
CONFIG_FAT_LCNAMES - Enable use of the NT-style upper/lower case 8.3
file name support.
CONFIG_FAT_LCNAMES - Enable use of the NT-style upper/lower case 8.3
file name support.
CONFIG_FAT_LFN - Enable FAT long file names. NOTE: Microsoft claims
patents on FAT long file name technology. Please read the
disclaimer in the top-level COPYING file and only enable this
feature if you understand these issues.
CONFIG_FAT_MAXFNAME - If CONFIG_FAT_LFN is defined, then the
default, maximum long file name is 255 bytes. This can eat up
a lot of memory (especially stack space). If you are willing
to live with some non-standard, short long file names, then
define this value. A good choice would be the same value as
selected for CONFIG_NAME_MAX which will limit the visibility
of longer file names anyway.
patents on FAT long file name technology. Please read the
disclaimer in the top-level COPYING file and only enable this
feature if you understand these issues.
CONFIG_FAT_MAXFNAME - If CONFIG_FAT_LFN is defined, then the
default, maximum long file name is 255 bytes. This can eat up
a lot of memory (especially stack space). If you are willing
to live with some non-standard, short long file names, then
define this value. A good choice would be the same value as
selected for CONFIG_NAME_MAX which will limit the visibility
of longer file names anyway.
CONFIG_FS_NXFFS: Enable NuttX FLASH file system (NXFF) support.
CONFIG_NXFFS_ERASEDSTATE: The erased state of FLASH.
This must have one of the values of 0xff or 0x00.
@ -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
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:
CONFIG_NET_ENC28J60 - Enabled ENC28J60 support
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
USB serial device class driver
CONFIG_USBSER
Enable compilation of the USB serial driver
CONFIG_USBSER_EPINTIN
@ -907,6 +920,7 @@ defconfig -- This is a configuration file similar to the Linux
Size of the serial receive/transmit buffers
USB Storage Device Configuration
CONFIG_USBSTRG
Enable compilation of the USB storage driver
CONFIG_USBSTRG_EP0MAXPACKET
@ -954,6 +968,12 @@ defconfig -- This is a configuration file similar to the Linux
device.
CONFIG_LCD_MAXCONTRAST - The maximum contrast value for an
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
Build in support for mouse input.
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_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
^^^^^^^^^^^^^^

View File

@ -2,7 +2,7 @@
* configs/sam3u-ek/src/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>
*
* Redistribution and use in source and binary forms, with or without
@ -168,12 +168,12 @@
/* Graphics Capbilities ***************************************************************/
/* 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
* performance hit for this swap!).
*/
#ifdef CONFIG_SAM3U_240x320
#ifdef CONFIG_LCD_PORTRAIT
# define SAM3UEK_XRES 240
# define SAM3UEK_YRES 320
#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);
DEBUGASSERT(buffer && ((uintptr_t)buffer & 1) == 0);
#ifdef CONFIG_SAM3U_240x320
#ifdef CONFIG_LCD_PORTRAIT
/* Set up to write the run. */
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);
DEBUGASSERT(buffer && ((uintptr_t)buffer & 1) == 0);
#ifdef CONFIG_SAM3U_240x320
#ifdef CONFIG_LCD_PORTRAIT
/* Set up to read the run */
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));
triheight = b16toi(linewidth * b16cos(angle));
triheight = b16toi(linewidth * b16cos(angle) + b16HALF);
halfheight = (triheight >> 1);
/* If the sine of the angle is tiny (i.e., the line is nearly horizontal),