summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-08-05 02:31:59 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-08-05 02:31:59 +0000
commit995855bd907c315e68b5a7865a065c6afa6512b6 (patch)
tree7daf7da649ab6ab521e091e82beb6ca8e9985481
parentc07e3aeb901dac03d1faff65b4c6eda1de25141c (diff)
downloadnuttx-995855bd907c315e68b5a7865a065c6afa6512b6.tar.gz
nuttx-995855bd907c315e68b5a7865a065c6afa6512b6.tar.bz2
nuttx-995855bd907c315e68b5a7865a065c6afa6512b6.zip
Misc documentation/LCD-related updates
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3844 42af7a65-404d-4744-a932-0658087f49c3
-rw-r--r--nuttx/Documentation/NuttxPortingGuide.html30
-rw-r--r--nuttx/TODO60
-rw-r--r--nuttx/configs/README.txt88
-rwxr-xr-xnuttx/configs/sam3u-ek/README.txt7
-rwxr-xr-xnuttx/configs/sam3u-ek/src/up_lcd.c10
-rw-r--r--nuttx/graphics/nxglib/nxglib_splitline.c2
6 files changed, 129 insertions, 68 deletions
diff --git a/nuttx/Documentation/NuttxPortingGuide.html b/nuttx/Documentation/NuttxPortingGuide.html
index 5ca42e14d..a74984b2c 100644
--- a/nuttx/Documentation/NuttxPortingGuide.html
+++ b/nuttx/Documentation/NuttxPortingGuide.html
@@ -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>
@@ -4445,6 +4463,14 @@ build
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.
</li>
diff --git a/nuttx/TODO b/nuttx/TODO
index 380006f47..6dafc5c42 100644
--- a/nuttx/TODO
+++ b/nuttx/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)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/nuttx/configs/README.txt b/nuttx/configs/README.txt
index 41c90e387..5eee4786c 100644
--- a/nuttx/configs/README.txt
+++ b/nuttx/configs/README.txt
@@ -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.
-
- 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.
+ 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, 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
diff --git a/nuttx/configs/sam3u-ek/README.txt b/nuttx/configs/sam3u-ek/README.txt
index a350c72d7..b94e668ef 100755
--- a/nuttx/configs/sam3u-ek/README.txt
+++ b/nuttx/configs/sam3u-ek/README.txt
@@ -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
^^^^^^^^^^^^^^
diff --git a/nuttx/configs/sam3u-ek/src/up_lcd.c b/nuttx/configs/sam3u-ek/src/up_lcd.c
index 8b0a919f7..2de563f9b 100755
--- a/nuttx/configs/sam3u-ek/src/up_lcd.c
+++ b/nuttx/configs/sam3u-ek/src/up_lcd.c
@@ -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);
diff --git a/nuttx/graphics/nxglib/nxglib_splitline.c b/nuttx/graphics/nxglib/nxglib_splitline.c
index 31d6949ad..5cc33fd2b 100644
--- a/nuttx/graphics/nxglib/nxglib_splitline.c
+++ b/nuttx/graphics/nxglib/nxglib_splitline.c
@@ -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),