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:
parent
be7cd049c4
commit
4f7b1c1496
@ -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
60
TODO
@ -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)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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),
|
||||
|
Loading…
Reference in New Issue
Block a user