diff --git a/ChangeLog b/ChangeLog index 982217c28f5e9818a5f6f472f02598e02da54867..d9d73582e8867c71053d24b5aec310658d02f04f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1288,7 +1288,7 @@ test is ran repeatedly in a loop. * configs/ez80f910200zco - Updated to used ZDS-II 4.11.1 -5.12 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> +5.12 2010-10-26 Gregory Nutt <spudmonkey@racsa.co.cr> * arch/avr - Add a place to support AVR family processors. * arch/avr/include/avr32 and arch/avr/src/avr32 - Add support for AVR32 @@ -1301,4 +1301,18 @@ lib_labs.c, lib_llabs.c, lib_imaxabs.c - Add abs(), labs(), llabs(), and imaxabs(). * Add include/inttypes.h + * arch/hc/src/mc9s12ne64 - This hcs12 port grew a few more files. But it + is still a long way from complete. + * arch/*/src/*/*_sigdeliver.c - Fixed a serious error in the signal + trampoline logic. Essentially, interrupts are re-enabled while the + signal handler executes, but the logic to re-disable the interrupts + before returning from the signal handler trampoline was missing. Under + certain circumstances, this can cause stack corruption. This was + discovered by David Hewson on an ARM9 platform, but since the code + has been leveraged, the bug has been propogated from ARM to Cortex-M3, + AVR32, M16C, SH1, ZNEO, eZ80, Z8, and Z80 -- almost every architecture. + The correction has been incorporated for all architectures but only + verified on a few. + +5.13 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index dd767ff36fb1ceb042c3a244c6bf5320ddb31cdf..fe9110565cb2a2067d992692245846dabc94f233 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 18, 2010</p> + <p>Last Updated: October 26, 2010</p> </td> </tr> </table> @@ -772,10 +772,10 @@ </tr> </table> -<p><b>nuttx-5.11 Release Notes</b>: +<p><b>nuttx-5.12 Release Notes</b>: <p> - This 58<sup>th</sup> release of NuttX, Version 5.11, was made on October 1, 2010 and is available for download from the + This 59<sup>th</sup> release of NuttX, Version 5.12, was made on October 26, 2010 and is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in CVS. @@ -785,26 +785,29 @@ This is primarily a bugfix release and includes some important corrections to the code: <ul> <li> - One very important bug fixes a race condition that can occur using - semaphores that can be awakened by signals. Under this particular - race condition, a task could hang waiting for a semaphore. - </li> - <li> - Corrections to lm3s8962 port contributed by Larry Arnold. That - port is purported to work correctly with these changes in place. + Fixed an important error in the signal trampoline logic. Essentially, + interrupts are re-enabled while the signal handler executes, but the + logic to re-disable the interrupts before returning from the signal + handler trampoline was missing. Under certain circumstances, this + can cause stack corruption. This was discovered by David Hewson on + an ARM9 platform, but since the code has been leveraged, the bug has + been propogated from ARM to Cortex-M3, AVR32, M16C, SH1, ZNEO, eZ80, + Z8, and Z80 -- almost every architecture. The correction has been + incorporated for all architectures but only verified on a few. </li> </ul> </p> <p> - Plus less critical bugfixes as detailed in the ChangeLog. New features - include: + Other notable changes in NuttX-5.12 include: <ul> <li> - * A new configuration to support the mbed.org LPC1768 board (Contributed - by Dave Marples), and + A complete port for the AVR32 (AT91UC3B0256) is incorporated in the + source tree. Testing of this port is underway now. This release + was made before verifying this port in order to get the important + bugfix in place. </li> <li> - * A driver for the Atmel AT45DB161D 4Mbit SPI FLASH part. + Other miscellaneous bugfix and enhancements as noted in the ChangeLog. </li> </ul> </p> @@ -1342,7 +1345,8 @@ This port is currently under development. All code is complete for the basic NuttX port including header files for all AT91UC3* peripherals. Testing of this port is underway now. - It is hoped that the first, released AVR32 port will appear in version 5.12 of NuttX, probably near the beginning of September, 2010. + The untest AVR32 is present in the 5.12 release of NuttX. + It is hoped that the first, verified AVR32 port will be released in version 5.13 of NuttX. </p> </ul> </td> @@ -1880,28 +1884,31 @@ Other memory: </table> <ul><pre> -nuttx-5.11 2010-10-01 Gregory Nutt <spudmonkey@racsa.co.cr> - - * configs/ea3131/src/up_fillpage.c - Added new configuration item - CONFIG_PAGING_BINPATH. If CONFIG_PAGING_BINPATH is defined, then it - is the full path to a file on a mounted file system that contains - a binary image of the NuttX executable. Pages will be filled by - reading from offsets into this file that correspond to virtual - fault addresses. up_fillpage.c implements logic to perform page - files using the CONFIG_PAGING_BINPATH file. - * configs/mbed - Add configuration to support the mbed.org LPC1768 - board (Contributed by Dave Marples). - * sched/sem_wait.c and sem_waitirq.c - Eliminate a race condition - that can occur when a semaphore wait is interrupt by a signal. - (see email thread: http://tech.groups.yahoo.com/group/nuttx/message/530) - * drivers/mtd/at45db.c - Add a driver for the Atmel AT45DB161D 4Mbit - SPI FLASH part (untested on initial check-in). - * arch/arm/src/lm3s and arch/arm/include/lm3s - Corrections for the - lm3s8962 port contributed by Larry Arnold. That port is purported - to work correctly with these changes in place. - * examples/ostest/prioinherit.c - Need to reinitialize globals if - test is ran repeatedly in a loop. - * configs/ez80f910200zco - Updated to used ZDS-II 4.11.1 +nuttx-5.12 2010-10-26 Gregory Nutt <spudmonkey@racsa.co.cr> + + * arch/avr - Add a place to support AVR family processors. + * arch/avr/include/avr32 and arch/avr/src/avr32 - Add support for AVR32 + (all of the AVR32 is a work in progress). + * arch/avr/include/at91uc3 and arch/avr/src/at91uc3 - Add support + for the AT91 UC3A/B family of AVR32 MCUs. + * confgs/avr32dev1 - Add support for the Atmel AVR32DEV1 board featuring + the AT91UC3B0256 MCU. This board is produced by www.mcuzone.com. + * include/stdlib.h, lib/Makefile, lib/lib_abs.c, lib/lib_labs.c, + lib_labs.c, lib_llabs.c, lib_imaxabs.c - Add abs(), labs(), llabs(), and + imaxabs(). + * Add include/inttypes.h + * arch/hc/src/mc9s12ne64 - This hcs12 port grew a few more files. But it + is still a long way from complete. + * arch/*/src/*/*_sigdeliver.c - Fixed a serious error in the signal + trampoline logic. Essentially, interrupts are re-enabled while the + signal handler executes, but the logic to re-disable the interrupts + before returning from the signal handler trampoline was missing. Under + certain circumstances, this can cause stack corruption. This was + discovered by David Hewson on an ARM9 platform, but since the code + has been leveraged, the bug has been propogated from ARM to Cortex-M3, + AVR32, M16C, SH1, ZNEO, eZ80, Z8, and Z80 -- almost every architecture. + The correction has been incorporated for all architectures but only + verified on a few. pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr> @@ -1931,18 +1938,7 @@ buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr> </table> <ul><pre> -nuttx-5.12 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> - - * arch/avr - Add a place to support AVR family processors. - * arch/avr/include/avr32 and arch/avr/src/avr32 - Add support for AVR32 - (all of the AVR32 is a work in progress). - * arch/avr/include/at91uc3 and arch/avr/src/at91uc3 - Add support - for the AT91 UC3A/B family of AVR32 MCUs. - * confgs/avr32dev1 - Add support for the Atmel AVR32DEV1 board featuring - the AT91UC3B0256 MCU. This board is produced by www.mcuzone.com. - * include/stdlib.h, lib/Makefile, lib/lib_abs.c, lib/lib_labs.c, - lib_labs.c, lib_llabs.c, lib_imaxabs.c - Add abs(), labs(), llabs(), and - imaxabs(). +nuttx-5.13 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> diff --git a/ReleaseNotes b/ReleaseNotes index e88b4d79e7a35cd3f0e1bd45ea7e38ad663469a6..f0f8aed4ddf0e32393e8ea1e1c8b31416844cbc8 100644 --- a/ReleaseNotes +++ b/ReleaseNotes @@ -1431,3 +1431,26 @@ include: * A new configuration to support the mbed.org LPC1768 board (Contributed by Dave Marples), and * A driver for the Atmel AT45DB161D 4Mbit SPI FLASH part, + +nuttx-5.12 +^^^^^^^^^^ + +This is the 59th release of NuttX. This is a critical bugfix release. + + * Fixed an important error in the signal trampoline logic. Essentially, + interrupts are re-enabled while the signal handler executes, but the + logic to re-disable the interrupts before returning from the signal + handler trampoline was missing. Under certain circumstances, this + can cause stack corruption. This was discovered by David Hewson on + an ARM9 platform, but since the code has been leveraged, the bug has + been propogated from ARM to Cortex-M3, AVR32, M16C, SH1, ZNEO, eZ80, + Z8, and Z80 -- almost every architecture. The correction has been + incorporated for all architectures but only verified on a few. + +Other notable changes in NuttX-5.12: + + * A complete port for the AVR32 (AT91UC3B0256) is incorporated in the + source tree. Testing of this port is underway now. This release + was made before verifying this port in order to get the important + bugfix in place. + * Other miscellaneous bugfix and enhancements as noted in the ChangeLog. diff --git a/arch/arm/src/arm/up_fullcontextrestore.S b/arch/arm/src/arm/up_fullcontextrestore.S index c99337636a4fbade2595596ea6130edc0f2dce6a..d0745ef5b46c96df7022c7ea0c999b00c8c49c60 100644 --- a/arch/arm/src/arm/up_fullcontextrestore.S +++ b/arch/arm/src/arm/up_fullcontextrestore.S @@ -1,7 +1,7 @@ /************************************************************************** * arch/arm/src/arm/up_fullcontextrestore.S * - * Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2007, 2009-2010 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * Redistribution and use in source and binary forms, with or without @@ -95,9 +95,10 @@ up_fullcontextrestore: /* Now we can restore the CPSR. We wait until we are completely * finished with the context save data to do this. Restore the CPSR - * may re-enable and interrupts and we couldt be in a context - * where save structure is only protected by interrupts being disabled. - */ + * may re-enable and interrupts and we could be in a context + * where the save structure is only protected by interrupts being + * disabled. + */ ldr r1, [r0, #(4*REG_CPSR)] /* Fetch the stored CPSR value */ msr cpsr, r1 /* Set the CPSR */ diff --git a/arch/arm/src/arm/up_schedulesigaction.c b/arch/arm/src/arm/up_schedulesigaction.c index 63129680059606756dba83d35b1f357764612b50..0dfb6e540fbf9c919ea308e8743a0f8b106a1ba3 100644 --- a/arch/arm/src/arm/up_schedulesigaction.c +++ b/arch/arm/src/arm/up_schedulesigaction.c @@ -1,7 +1,7 @@ /**************************************************************************** * arch/arm/src/arm/up_schedulesigaction.c * - * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2007-2010 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * Redistribution and use in source and binary forms, with or without diff --git a/arch/arm/src/arm/up_sigdeliver.c b/arch/arm/src/arm/up_sigdeliver.c index a2358a0440578c513d465618d61e82e0d9b3d75e..f92f85e7e093a0158f0bca60baaba48b78853bf9 100644 --- a/arch/arm/src/arm/up_sigdeliver.c +++ b/arch/arm/src/arm/up_sigdeliver.c @@ -1,7 +1,7 @@ /**************************************************************************** * arch/arm/src/arm/up_sigdeliver.c * - * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2007-2010 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * Redistribution and use in source and binary forms, with or without @@ -73,10 +73,9 @@ * Name: up_sigdeliver * * Description: - * This is the a signal handling trampoline. When a - * signal action was posted. The task context was mucked - * with and forced to branch to this location with interrupts - * disabled. + * This is the a signal handling trampoline. When a signal action was + * posted. The task context was mucked with and forced to branch to this + * location with interrupts disabled. * ****************************************************************************/ @@ -86,9 +85,9 @@ void up_sigdeliver(void) uint32_t regs[XCPTCONTEXT_REGS]; sig_deliver_t sigdeliver; - /* Save the errno. This must be preserved throughout the - * signal handling so that the user code final gets - * the correct errno value (probably EINTR). + /* Save the errno. This must be preserved throughout the signal handling + * so that the user code final gets the correct errno value (probably + * EINTR). */ int saved_errno = rtcb->pterrno; @@ -105,11 +104,9 @@ void up_sigdeliver(void) regs[REG_PC] = rtcb->xcp.saved_pc; regs[REG_CPSR] = rtcb->xcp.saved_cpsr; - /* Get a local copy of the sigdeliver function pointer. - * we do this so that we can nullify the sigdeliver - * function point in the TCB and accept more signal - * deliveries while processing the current pending - * signals. + /* Get a local copy of the sigdeliver function pointer. we do this so that + * we can nullify the sigdeliver function pointer in the TCB and accept + * more signal deliveries while processing the current pending signals. */ sigdeliver = rtcb->xcp.sigdeliver; @@ -123,18 +120,16 @@ void up_sigdeliver(void) sigdeliver(rtcb); - /* Output any debug messaged BEFORE restoreing errno - * (becuase they may alter errno), then restore the - * original errno that is needed by the user logic - * (it is probably EINTR). + /* Output any debug messages BEFORE restoring errno (because they may + * alter errno), then disable interrupts again and restore the original + * errno that is needed by the user logic (it is probably EINTR). */ sdbg("Resuming\n"); + (void)irqsave(); rtcb->pterrno = saved_errno; - /* Then restore the correct state for this thread of - * execution. - */ + /* Then restore the correct state for this thread of execution. */ up_ledoff(LED_SIGNAL); up_fullcontextrestore(regs); diff --git a/arch/arm/src/cortexm3/up_schedulesigaction.c b/arch/arm/src/cortexm3/up_schedulesigaction.c index e4f4f51b4a29fa3a12ec79564632c8d13e234ec3..879cd6715b08cc84ab63e40b09bd358fd9680d93 100644 --- a/arch/arm/src/cortexm3/up_schedulesigaction.c +++ b/arch/arm/src/cortexm3/up_schedulesigaction.c @@ -1,7 +1,7 @@ /**************************************************************************** * arch/arm/src/cortexm3/up_schedulesigaction.c * - * Copyright (C) 2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2009-2010 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * Redistribution and use in source and binary forms, with or without diff --git a/arch/arm/src/cortexm3/up_sigdeliver.c b/arch/arm/src/cortexm3/up_sigdeliver.c index e350f126af50fe031dca49c5a282326a0f28be99..f05b7ce69a84a5ea335c9c2e9177aaac71853151 100644 --- a/arch/arm/src/cortexm3/up_sigdeliver.c +++ b/arch/arm/src/cortexm3/up_sigdeliver.c @@ -1,7 +1,7 @@ /**************************************************************************** * arch/arm/src/cortexm3/up_sigdeliver.c * - * Copyright (C) 2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2009-2010 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * Redistribution and use in source and binary forms, with or without @@ -73,10 +73,9 @@ * Name: up_sigdeliver * * Description: - * This is the a signal handling trampoline. When a - * signal action was posted. The task context was mucked - * with and forced to branch to this location with interrupts - * disabled. + * This is the a signal handling trampoline. When a signal action was + * posted. The task context was mucked with and forced to branch to this + * location with interrupts disabled. * ****************************************************************************/ @@ -86,9 +85,9 @@ void up_sigdeliver(void) uint32_t regs[XCPTCONTEXT_REGS]; sig_deliver_t sigdeliver; - /* Save the errno. This must be preserved throughout the - * signal handling so that the user code final gets - * the correct errno value (probably EINTR). + /* Save the errno. This must be preserved throughout the signal handling + * so that the user code final gets the correct errno value (probably + * EINTR). */ int saved_errno = rtcb->pterrno; @@ -106,11 +105,9 @@ void up_sigdeliver(void) regs[REG_PRIMASK] = rtcb->xcp.saved_primask; regs[REG_XPSR] = rtcb->xcp.saved_xpsr; - /* Get a local copy of the sigdeliver function pointer. - * we do this so that we can nullify the sigdeliver - * function point in the TCB and accept more signal - * deliveries while processing the current pending - * signals. + /* Get a local copy of the sigdeliver function pointer. We do this so that + * we can nullify the sigdeliver function pointer in the TCB and accept + * more signal deliveries while processing the current pending signals. */ sigdeliver = rtcb->xcp.sigdeliver; @@ -124,13 +121,13 @@ void up_sigdeliver(void) sigdeliver(rtcb); - /* Output any debug messaged BEFORE restoreing errno - * (becuase they may alter errno), then restore the - * original errno that is needed by the user logic - * (it is probably EINTR). + /* Output any debug messages BEFORE restoring errno (because they may + * alter errno), then disable interrupts again and restore the original + * errno that is needed by the user logic (it is probably EINTR). */ sdbg("Resuming\n"); + (void)irqsave(); rtcb->pterrno = saved_errno; /* Then restore the correct state for this thread of diff --git a/arch/avr/src/avr32/up_sigdeliver.c b/arch/avr/src/avr32/up_sigdeliver.c index 599b6f0d03ad7718084e3e217654ebc2dfe750ed..aa3940b79818b3841c37ba81b8ba77133dab8f22 100644 --- a/arch/avr/src/avr32/up_sigdeliver.c +++ b/arch/avr/src/avr32/up_sigdeliver.c @@ -103,9 +103,9 @@ void up_sigdeliver(void) regs[REG_PC] = rtcb->xcp.saved_pc; regs[REG_SR] = rtcb->xcp.saved_sr; - /* Get a local copy of the sigdeliver function pointer. We do this so tha - * we can nullify the sigdeliver function point in the TCB and accept more - * signal deliveries while processing the current pending signals. + /* Get a local copy of the sigdeliver function pointer. We do this so that + * we can nullify the sigdeliver function pointer in the TCB and accept + * more signal deliveries while processing the current pending signals. */ sigdeliver = rtcb->xcp.sigdeliver; @@ -119,17 +119,16 @@ void up_sigdeliver(void) sigdeliver(rtcb); - /* Output any debug messaged BEFORE restoring errno (becuase they may - * alter errno), then restore the original errno that is needed by - * the user logic (it is probably EINTR). + /* Output any debug messages BEFORE restoring errno (because they may + * alter errno), then disable interrupts again and restore the original + * errno that is needed by the user logic (it is probably EINTR). */ sdbg("Resuming\n"); + (void)irqsave(); rtcb->pterrno = saved_errno; - /* Then restore the correct state for this thread of - * execution. - */ + /* Then restore the correct state for this thread of execution. */ up_ledoff(LED_SIGNAL); up_fullcontextrestore(regs); diff --git a/arch/sh/src/m16c/m16c_schedulesigaction.c b/arch/sh/src/m16c/m16c_schedulesigaction.c index ae53e4ff5e38f7b8756287ebe5273684c00fd2e9..d921fca01ebf161b2cc562b3f8dcc9f386a77baa 100644 --- a/arch/sh/src/m16c/m16c_schedulesigaction.c +++ b/arch/sh/src/m16c/m16c_schedulesigaction.c @@ -1,7 +1,7 @@ /**************************************************************************** * arch/sh/src/m16c/m16c_schedulesigaction.c * - * Copyright (C) 2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2009-2010 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * Redistribution and use in source and binary forms, with or without diff --git a/arch/sh/src/m16c/m16c_sigdeliver.c b/arch/sh/src/m16c/m16c_sigdeliver.c index 4493c28b48f505fb291f6c1f4c304c85f8c95652..848249721a33576ada968dd85c75ea8200d85a45 100644 --- a/arch/sh/src/m16c/m16c_sigdeliver.c +++ b/arch/sh/src/m16c/m16c_sigdeliver.c @@ -1,7 +1,7 @@ /**************************************************************************** * arch/sh/src/m16c/m16c_sigdeliver.c * - * Copyright (C) 2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2009-2010 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * Redistribution and use in source and binary forms, with or without @@ -72,10 +72,9 @@ * Name: up_sigdeliver * * Description: - * This is the a signal handling trampoline. When a - * signal action was posted. The task context was mucked - * with and forced to branch to this location with interrupts - * disabled. + * This is the a signal handling trampoline. When a signal action was + * posted. The task context was mucked with and forced to branch to this + * location with interrupts disabled. * ****************************************************************************/ @@ -86,9 +85,9 @@ void up_sigdeliver(void) uint8_t regs[XCPTCONTEXT_SIZE]; sig_deliver_t sigdeliver; - /* Save the errno. This must be preserved throughout the - * signal handling so that the user code final gets - * the correct errno value (probably EINTR). + /* Save the errno. This must be preserved throughout the signal handling + * so that the user code final gets the correct errno value (probably + * EINTR). */ int saved_errno = rtcb->pterrno; @@ -106,10 +105,9 @@ void up_sigdeliver(void) regs[REG_PC+1] = rtcb->xcp.saved_pc[1]; regs[REG_FLG] = rtcb->xcp.saved_flg; - /* Get a local copy of the sigdeliver function pointer. - * we do this so that we can nullify the sigdeliver - * function point in the TCB and accept more signal - * deliveries while processing the current pending + /* Get a local copy of the sigdeliver function pointer. We do this so + * that we can nullify the sigdeliver function pointer in the TCB and + * accept more signal deliveries while processing the current pending * signals. */ @@ -124,13 +122,13 @@ void up_sigdeliver(void) sigdeliver(rtcb); - /* Output any debug messaged BEFORE restoreing errno - * (becuase they may alter errno), then restore the - * original errno that is needed by the user logic - * (it is probably EINTR). + /* Output any debug messages BEFORE restoring errno (because they may + * alter errno), then disable interrupts again and restore the original + * errno that is needed by the user logic (it is probably EINTR). */ sdbg("Resuming\n"); + (void)irqsave(); rtcb->pterrno = saved_errno; /* Then restore the correct state for this thread of diff --git a/arch/sh/src/sh1/sh1_schedulesigaction.c b/arch/sh/src/sh1/sh1_schedulesigaction.c index 6e7ba34e858d91b15447d1c483e884613aff974f..4454195d695c8259997da75adc7c17e42c1958c0 100644 --- a/arch/sh/src/sh1/sh1_schedulesigaction.c +++ b/arch/sh/src/sh1/sh1_schedulesigaction.c @@ -1,7 +1,7 @@ /**************************************************************************** * arch/sh/src/sh1/sh1_schedulesigaction.c * - * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2008-2010 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * Redistribution and use in source and binary forms, with or without diff --git a/arch/sh/src/sh1/sh1_sigdeliver.c b/arch/sh/src/sh1/sh1_sigdeliver.c index cddec60415cface0149a68221be36ac0058b016e..568b448e3e9b1d9dafcde191a852fbeee7aa28e5 100644 --- a/arch/sh/src/sh1/sh1_sigdeliver.c +++ b/arch/sh/src/sh1/sh1_sigdeliver.c @@ -1,7 +1,7 @@ /**************************************************************************** * common/up_sigdeliver.c * - * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2008-2010 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * Redistribution and use in source and binary forms, with or without @@ -72,10 +72,9 @@ * Name: up_sigdeliver * * Description: - * This is the a signal handling trampoline. When a - * signal action was posted. The task context was mucked - * with and forced to branch to this location with interrupts - * disabled. + * This is the a signal handling trampoline. When a signal action was + * posted. The task context was mucked with and forced to branch to this + * location with interrupts disabled. * ****************************************************************************/ @@ -86,9 +85,9 @@ void up_sigdeliver(void) uint32_t regs[XCPTCONTEXT_REGS]; sig_deliver_t sigdeliver; - /* Save the errno. This must be preserved throughout the - * signal handling so that the user code final gets - * the correct errno value (probably EINTR). + /* Save the errno. This must be preserved throughout the signal handling + * so that the user code final gets the correct errno value (probably + * EINTR). */ int saved_errno = rtcb->pterrno; @@ -105,17 +104,16 @@ void up_sigdeliver(void) regs[REG_PC] = rtcb->xcp.saved_pc; regs[REG_SR] = rtcb->xcp.saved_sr; - /* Get a local copy of the sigdeliver function pointer. - * we do this so that we can nullify the sigdeliver - * function point in the TCB and accept more signal - * deliveries while processing the current pending + /* Get a local copy of the sigdeliver function pointer. We do this so + * that we can nullify the sigdeliver function pointer in the TCB and + * accept more signal deliveries while processing the current pending * signals. */ sigdeliver = rtcb->xcp.sigdeliver; rtcb->xcp.sigdeliver = NULL; - /* Then restore the task interrupt statat. */ + /* Then restore the task interrupt state. */ irqrestore(regs[REG_SR] & 0x000000f0); @@ -123,18 +121,16 @@ void up_sigdeliver(void) sigdeliver(rtcb); - /* Output any debug messaged BEFORE restoreing errno - * (becuase they may alter errno), then restore the - * original errno that is needed by the user logic - * (it is probably EINTR). + /* Output any debug messages BEFORE restoring errno (because they may + * alter errno), then disable interrupts again and restore the original + * errno that is needed by the user logic (it is probably EINTR). */ sdbg("Resuming\n"); + (void)irqsave(); rtcb->pterrno = saved_errno; - /* Then restore the correct state for this thread of - * execution. - */ + /* Then restore the correct state for this thread of execution. */ up_ledoff(LED_SIGNAL); up_fullcontextrestore(regs); diff --git a/arch/sim/src/up_schedulesigaction.c b/arch/sim/src/up_schedulesigaction.c index b22aa5252fab995c1ae2176f5980bb993f3041f8..ca61e8ddf3e73f4312f902d46c1c0a26289c2e37 100644 --- a/arch/sim/src/up_schedulesigaction.c +++ b/arch/sim/src/up_schedulesigaction.c @@ -1,7 +1,7 @@ /**************************************************************************** * up_schedulesigaction.c * - * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2007-2010 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * Redistribution and use in source and binary forms, with or without @@ -98,7 +98,7 @@ void up_schedule_sigaction(_TCB *tcb, sig_deliver_t sigdeliver) { - /* We don't have to anything complex of the simulated target */ + /* We don't have to anything complex for the simulated target */ if (tcb == (_TCB*)g_readytorun.head) { diff --git a/arch/z16/src/common/up_schedulesigaction.c b/arch/z16/src/common/up_schedulesigaction.c index e76a8c4ffd4c7ce512390d81d9f4ae84d227e5fa..368b2ed541900c1a9a3eaf0c3381b653acc61a8c 100644 --- a/arch/z16/src/common/up_schedulesigaction.c +++ b/arch/z16/src/common/up_schedulesigaction.c @@ -1,7 +1,7 @@ /**************************************************************************** * common/up_schedulesigaction.c * - * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2008-2010 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * Redistribution and use in source and binary forms, with or without diff --git a/arch/z16/src/common/up_sigdeliver.c b/arch/z16/src/common/up_sigdeliver.c index 85f3e972d94603b29a7f5bc79893c69a1b77f51d..4ca05d17ba639a036f60b3ef3c3f1a63ccb7fa0d 100644 --- a/arch/z16/src/common/up_sigdeliver.c +++ b/arch/z16/src/common/up_sigdeliver.c @@ -1,7 +1,7 @@ /**************************************************************************** * common/up_sigdeliver.c * - * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2008-2010 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * Redistribution and use in source and binary forms, with or without @@ -95,8 +95,8 @@ void up_sigdeliver(void) up_ledon(LED_SIGNAL); - dbg("rtcb=%p sigdeliver=%p sigpendactionq.head=%p\n", - rtcb, rtcb->xcp.sigdeliver, rtcb->sigpendactionq.head); + sdbg("rtcb=%p sigdeliver=%p sigpendactionq.head=%p\n", + rtcb, rtcb->xcp.sigdeliver, rtcb->sigpendactionq.head); ASSERT(rtcb->xcp.sigdeliver != NULL); /* Save the real return state on the stack. */ @@ -125,17 +125,16 @@ void up_sigdeliver(void) sigdeliver(rtcb); - /* Output any debug messaged BEFORE restoring errno (because they may - * alter errno), then restore the original errno that is needed by - * the user logic (it is probably EINTR). + /* Output any debug messages BEFORE restoring errno (because they may + * alter errno), then disable interrupts again and restore the original + * errno that is needed by the user logic (it is probably EINTR). */ - dbg("Resuming\n"); + sdbg("Resuming\n"); + (void)irqsave(); rtcb->pterrno = saved_errno; - /* Then restore the correct state for this thread of - * execution. - */ + /* Then restore the correct state for this thread of execution. */ up_ledoff(LED_SIGNAL); SIGNAL_RETURN(regs); diff --git a/arch/z80/src/ez80/ez80_schedulesigaction.c b/arch/z80/src/ez80/ez80_schedulesigaction.c index 8c9a8426027f9faf5007bc704030922e00c8a1b5..ce48fe98718141cecdb4cbab83a64f8640d67a45 100644 --- a/arch/z80/src/ez80/ez80_schedulesigaction.c +++ b/arch/z80/src/ez80/ez80_schedulesigaction.c @@ -1,7 +1,7 @@ /**************************************************************************** * arch/z80/src/ez80/ez80_schedulesigaction.c * - * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2008-2010 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * Redistribution and use in source and binary forms, with or without diff --git a/arch/z80/src/ez80/ez80_sigdeliver.c b/arch/z80/src/ez80/ez80_sigdeliver.c index 90fdf4c6be7bc03f0573bc8d4411343ccfbb0d2d..86aaad2d5016453aa35af540cc2d1674b9b50b98 100644 --- a/arch/z80/src/ez80/ez80_sigdeliver.c +++ b/arch/z80/src/ez80/ez80_sigdeliver.c @@ -1,7 +1,7 @@ /**************************************************************************** * arch/z80/src/ez80/ez80_sigdeliver.c * - * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2008-2010 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * Redistribution and use in source and binary forms, with or without @@ -72,10 +72,9 @@ * Name: up_sigdeliver * * Description: - * This is the a signal handling trampoline. When a - * signal action was posted. The task context was mucked - * with and forced to branch to this location with interrupts - * disabled. + * This is the a signal handling trampoline. When a signal action was + * posted. The task context was mucked with and forced to branch to this + * location with interrupts disabled. * ****************************************************************************/ @@ -106,8 +105,9 @@ void up_sigdeliver(void) regs[XCPT_I] = rtcb->xcp.saved_i; /* Get a local copy of the sigdeliver function pointer. We do this so - * that we can nullify the sigdeliver function point in the TCB and accept - * more signal deliveries while processing the current pending signals. + * that we can nullify the sigdeliver function pointer in the TCB and + * accept more signal deliveries while processing the current pending + * signals. */ sigdeliver = rtcb->xcp.sigdeliver; @@ -121,12 +121,13 @@ void up_sigdeliver(void) sigdeliver(rtcb); - /* Output any debug messaged BEFORE restoring errno (because they may alter - * errno), then restore the original errno that is needed by the user logic - * (it is probably EINTR). + /* Output any debug messages BEFORE restoring errno (because they may + * alter errno), then disable interrupts again and restore the original + * errno that is needed by the user logic (it is probably EINTR). */ sdbg("Resuming\n"); + (void)irqsave(); rtcb->pterrno = saved_errno; /* Then restore the correct state for this thread of diff --git a/arch/z80/src/z8/z8_schedulesigaction.c b/arch/z80/src/z8/z8_schedulesigaction.c index 0a5b9c095f603fbe3fbfc28b9a8a770bf6ccf5f1..1f1a354712cfcddd54eaf7c7a82079185a9a9dda 100644 --- a/arch/z80/src/z8/z8_schedulesigaction.c +++ b/arch/z80/src/z8/z8_schedulesigaction.c @@ -1,7 +1,7 @@ /**************************************************************************** * arch/z80/src/z8/z8_schedulesigaction.c * - * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2008-2010 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * Redistribution and use in source and binary forms, with or without diff --git a/arch/z80/src/z8/z8_sigdeliver.c b/arch/z80/src/z8/z8_sigdeliver.c index badb8a328a89164d0d746416e64e17ec251dda2d..c5cf30aa6a063ba035c4fcd1c0773922b5aff968 100644 --- a/arch/z80/src/z8/z8_sigdeliver.c +++ b/arch/z80/src/z8/z8_sigdeliver.c @@ -1,7 +1,7 @@ /**************************************************************************** * arch/z80/src/z8/z8_sigdeliver.c * - * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2008-2010 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * Redistribution and use in source and binary forms, with or without @@ -86,10 +86,9 @@ static void z8_copystate(FAR chipreg_t *dest, FAR const chipreg_t *src) * Name: up_sigdeliver * * Description: - * This is the a signal handling trampoline. When a - * signal action was posted. The task context was mucked - * with and forced to branch to this location with interrupts - * disabled. + * This is the a signal handling trampoline. When a signal action was + * posted. The task context was mucked with and forced to branch to this + * location with interrupts disabled. * ****************************************************************************/ @@ -109,7 +108,7 @@ void up_sigdeliver(void) up_ledon(LED_SIGNAL); - dbg("rtcb=%p sigdeliver=%p sigpendactionq.head=%p\n", + sdbg("rtcb=%p sigdeliver=%p sigpendactionq.head=%p\n", rtcb, rtcb->xcp.sigdeliver, rtcb->sigpendactionq.head); ASSERT(rtcb->xcp.sigdeliver != NULL); @@ -120,8 +119,9 @@ void up_sigdeliver(void) regs[XCPT_IRQCTL] = rtcb->xcp.saved_irqctl; /* Get a local copy of the sigdeliver function pointer. We do this so - * that we can nullify the sigdeliver function point in the TCB and accept - * more signal deliveries while processing the current pending signals. + * that we can nullify the sigdeliver function pointer in the TCB and + * accept more signal deliveries while processing the current pending + * signals. */ sigdeliver = rtcb->xcp.sigdeliver; @@ -135,17 +135,16 @@ void up_sigdeliver(void) sigdeliver(rtcb); - /* Output any debug messaged BEFORE restoring errno (because they may alter - * errno), then restore the original errno that is needed by the user logic - * (it is probably EINTR). + /* Output any debug messages BEFORE restoring errno (because they may + * alter errno), then disable interrupts again and restore the original + * errno that is needed by the user logic (it is probably EINTR). */ - dbg("Resuming\n"); + sdbg("Resuming\n"); + (void)irqsave(); rtcb->pterrno = saved_errno; - /* Then restore the correct state for this thread of - * execution. - */ + /* Then restore the correct state for this thread of execution. */ up_ledoff(LED_SIGNAL); z8_restorecontext(regs); diff --git a/arch/z80/src/z80/z80_schedulesigaction.c b/arch/z80/src/z80/z80_schedulesigaction.c index 19ea6d6bc2f70c9d713fef98921d8fe16a7dbd72..24b12731c7e7738c70e6cc26d96e10d9f978972f 100644 --- a/arch/z80/src/z80/z80_schedulesigaction.c +++ b/arch/z80/src/z80/z80_schedulesigaction.c @@ -1,7 +1,7 @@ /**************************************************************************** * arch/z80/src/z80/z80_schedulesigaction.c * - * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2007-2010 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * Redistribution and use in source and binary forms, with or without diff --git a/arch/z80/src/z80/z80_sigdeliver.c b/arch/z80/src/z80/z80_sigdeliver.c index 884a5c4b603a91463581bae69cfb1ad5288e610f..c6aa5ff3c56dd30206859530f47391e87e88bb78 100644 --- a/arch/z80/src/z80/z80_sigdeliver.c +++ b/arch/z80/src/z80/z80_sigdeliver.c @@ -1,7 +1,7 @@ /**************************************************************************** * arch/z80/src/z80/z80_sigdeliver.c * - * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2007-2010 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * Redistribution and use in source and binary forms, with or without @@ -71,10 +71,9 @@ * Name: up_sigdeliver * * Description: - * This is the a signal handling trampoline. When a - * signal action was posted. The task context was mucked - * with and forced to branch to this location with interrupts - * disabled. + * This is the a signal handling trampoline. When a signal action was + * posted. The task context was mucked with and forced to branch to this + * location with interrupts disabled. * ****************************************************************************/ @@ -94,7 +93,7 @@ void up_sigdeliver(void) up_ledon(LED_SIGNAL); - dbg("rtcb=%p sigdeliver=%p sigpendactionq.head=%p\n", + sdbg("rtcb=%p sigdeliver=%p sigpendactionq.head=%p\n", rtcb, rtcb->xcp.sigdeliver, rtcb->sigpendactionq.head); ASSERT(rtcb->xcp.sigdeliver != NULL); @@ -105,8 +104,9 @@ void up_sigdeliver(void) regs[XCPT_I] = rtcb->xcp.saved_i; /* Get a local copy of the sigdeliver function pointer. We do this so - * that we can nullify the sigdeliver function point in the TCB and accept - * more signal deliveries while processing the current pending signals. + * that we can nullify the sigdeliver function pointer in the TCB and + * accept more signal deliveries while processing the current pending + * signals. */ sigdeliver = rtcb->xcp.sigdeliver; @@ -120,17 +120,16 @@ void up_sigdeliver(void) sigdeliver(rtcb); - /* Output any debug messaged BEFORE restoring errno (because they may alter - * errno), then restore the original errno that is needed by the user logic - * (it is probably EINTR). + /* Output any debug messages BEFORE restoring errno (because they may + * alter errno), then disable interrupts again and restore the original + * errno that is needed by the user logic (it is probably EINTR). */ - dbg("Resuming\n"); + sdbg("Resuming\n"); + (void)irqsave(); rtcb->pterrno = saved_errno; - /* Then restore the correct state for this thread of - * execution. - */ + /* Then restore the correct state for this thread of execution. */ up_ledoff(LED_SIGNAL); z80_restoreusercontext(regs); diff --git a/configs/sam3u-ek/nsh/defconfig b/configs/sam3u-ek/nsh/defconfig index 25854b1451ff65fdfaf17f65d130704ae0539f88..a01555654aea4e0df3152760eb8d91c86e3fe258 100755 --- a/configs/sam3u-ek/nsh/defconfig +++ b/configs/sam3u-ek/nsh/defconfig @@ -631,6 +631,93 @@ CONFIG_USBSTRG_PRODUCTSTR="USBdev Storage" CONFIG_USBSTRG_VERSIONNO=0x0399 CONFIG_USBSTRG_REMOVABLE=y +# +# Graphics related configuration settings +# +# CONFIG_NX +# Enables overall support for graphics library and NX +# CONFIG_NX_MULTIUSER +# Configures NX in multi-user mode +# CONFIG_NX_NPLANES +# Some YUV color formats requires support for multiple planes, +# one for each color component. Unless you have such special +# hardware, this value should be undefined or set to 1 +# CONFIG_NX_DISABLE_1BPP, CONFIG_NX_DISABLE_2BPP, +# CONFIG_NX_DISABLE_4BPP, CONFIG_NX_DISABLE_8BPP, +# CONFIG_NX_DISABLE_16BPP, CONFIG_NX_DISABLE_24BPP, and +# CONFIG_NX_DISABLE_32BPP +# NX supports a variety of pixel depths. You can save some +# memory by disabling support for unused color depths. +# CONFIG_NX_PACKEDMSFIRST +# If a pixel depth of less than 8-bits is used, then NX needs +# to know if the pixels pack from the MS to LS or from LS to MS +# CONFIG_NX_LCDDRIVER +# By default, NX builds to use a framebuffer driver (see +# include/nuttx/fb.h). If this option is defined, NX will +# build to use an LCD driver (see include/nuttx/lcd.h). +# CONFIG_LCD_MAXPOWER - The full-on power setting for an LCD device. +# CONFIG_LCD_MAXCONTRAST - The maximum contrast value for an LCD device. +# CONFIG_NX_MOUSE +# Build in support for mouse input +# CONFIG_NX_KBD +# Build in support of keypad/keyboard input +# CONFIG_NXTK_BORDERWIDTH +# Specifies with with of the border (in pixels) used with +# framed windows. The default is 4. +# CONFIG_NXTK_BORDERCOLOR1 and CONFIG_NXTK_BORDERCOLOR2 +# Specify the colors of the border used with framed windows. +# CONFIG_NXTK_BORDERCOLOR2 is the shadow side color and so +# is normally darker. The default is medium and dark grey, +# respectively +# CONFIG_NXTK_AUTORAISE +# If set, a window will be raised to the top if the mouse position +# is over a visible portion of the window. Default: A mouse +# button must be clicked over a visible portion of the window. +# CONFIG_NXFONTS_CHARBITS +# The number of bits in the character set. Current options are +# only 7 and 8. The default is 7. +# CONFIG_NXFONT_SANS +# At present, there is only one font. But if there were were more, +# then this option would select the sans serif font. +# +# NX Multi-user only options: +# +# CONFIG_NX_BLOCKING +# Open the client message queues in blocking mode. In this case, +# nx_eventhandler() will not return until a message is received and processed. +# CONFIG_NX_MXSERVERMSGS and CONFIG_NX_MXCLIENTMSGS +# Specifies the maximum number of messages that can fit in +# the message queues. No additional resources are allocated, but +# this can be set to prevent flooding of the client or server with +# too many messages (CONFIG_PREALLOC_MQ_MSGS controls how many +# messages are pre-allocated). +# +CONFIG_NX=n +CONFIG_NX_MULTIUSER=n +CONFIG_NX_NPLANES=1 +CONFIG_NX_DISABLE_1BPP=y +CONFIG_NX_DISABLE_2BPP=y +CONFIG_NX_DISABLE_4BPP=y +CONFIG_NX_DISABLE_8BPP=y +CONFIG_NX_DISABLE_16BPP=n +CONFIG_NX_DISABLE_24BPP=y +CONFIG_NX_DISABLE_32BPP=y +CONFIG_NX_PACKEDMSFIRST=n +CONFIG_NX_LCDDRIVER=y +CONFIG_LCD_MAXPOWER=31 +CONFIG_LCD_MAXCONTRAST=1 +CONFIG_NX_MOUSE=y +CONFIG_NX_KBD=y +#CONFIG_NXTK_BORDERWIDTH=4 +#CONFIG_NXTK_BORDERCOLOR1 +#CONFIG_NXTK_BORDERCOLOR2 +CONFIG_NXTK_AUTORAISE=n +CONFIG_NXFONT_SANS=y +CONFIG_NXFONTS_CHARBITS=7 +CONFIG_NX_BLOCKING=y +CONFIG_NX_MXSERVERMSGS=32 +CONFIG_NX_MXCLIENTMSGS=16 + # # Settings for examples/uip # diff --git a/configs/sam3u-ek/ostest/defconfig b/configs/sam3u-ek/ostest/defconfig index 54706dcbda9f1ae1faefd64054064b293e6c7666..8f42884b202a2d415347c8ed4ec26e659243f70d 100755 --- a/configs/sam3u-ek/ostest/defconfig +++ b/configs/sam3u-ek/ostest/defconfig @@ -629,6 +629,93 @@ CONFIG_USBSTRG_PRODUCTSTR="USBdev Storage" CONFIG_USBSTRG_VERSIONNO=0x0399 CONFIG_USBSTRG_REMOVABLE=y +# +# Graphics related configuration settings +# +# CONFIG_NX +# Enables overall support for graphics library and NX +# CONFIG_NX_MULTIUSER +# Configures NX in multi-user mode +# CONFIG_NX_NPLANES +# Some YUV color formats requires support for multiple planes, +# one for each color component. Unless you have such special +# hardware, this value should be undefined or set to 1 +# CONFIG_NX_DISABLE_1BPP, CONFIG_NX_DISABLE_2BPP, +# CONFIG_NX_DISABLE_4BPP, CONFIG_NX_DISABLE_8BPP, +# CONFIG_NX_DISABLE_16BPP, CONFIG_NX_DISABLE_24BPP, and +# CONFIG_NX_DISABLE_32BPP +# NX supports a variety of pixel depths. You can save some +# memory by disabling support for unused color depths. +# CONFIG_NX_PACKEDMSFIRST +# If a pixel depth of less than 8-bits is used, then NX needs +# to know if the pixels pack from the MS to LS or from LS to MS +# CONFIG_NX_LCDDRIVER +# By default, NX builds to use a framebuffer driver (see +# include/nuttx/fb.h). If this option is defined, NX will +# build to use an LCD driver (see include/nuttx/lcd.h). +# CONFIG_LCD_MAXPOWER - The full-on power setting for an LCD device. +# CONFIG_LCD_MAXCONTRAST - The maximum contrast value for an LCD device. +# CONFIG_NX_MOUSE +# Build in support for mouse input +# CONFIG_NX_KBD +# Build in support of keypad/keyboard input +# CONFIG_NXTK_BORDERWIDTH +# Specifies with with of the border (in pixels) used with +# framed windows. The default is 4. +# CONFIG_NXTK_BORDERCOLOR1 and CONFIG_NXTK_BORDERCOLOR2 +# Specify the colors of the border used with framed windows. +# CONFIG_NXTK_BORDERCOLOR2 is the shadow side color and so +# is normally darker. The default is medium and dark grey, +# respectively +# CONFIG_NXTK_AUTORAISE +# If set, a window will be raised to the top if the mouse position +# is over a visible portion of the window. Default: A mouse +# button must be clicked over a visible portion of the window. +# CONFIG_NXFONTS_CHARBITS +# The number of bits in the character set. Current options are +# only 7 and 8. The default is 7. +# CONFIG_NXFONT_SANS +# At present, there is only one font. But if there were were more, +# then this option would select the sans serif font. +# +# NX Multi-user only options: +# +# CONFIG_NX_BLOCKING +# Open the client message queues in blocking mode. In this case, +# nx_eventhandler() will not return until a message is received and processed. +# CONFIG_NX_MXSERVERMSGS and CONFIG_NX_MXCLIENTMSGS +# Specifies the maximum number of messages that can fit in +# the message queues. No additional resources are allocated, but +# this can be set to prevent flooding of the client or server with +# too many messages (CONFIG_PREALLOC_MQ_MSGS controls how many +# messages are pre-allocated). +# +CONFIG_NX=n +CONFIG_NX_MULTIUSER=n +CONFIG_NX_NPLANES=1 +CONFIG_NX_DISABLE_1BPP=y +CONFIG_NX_DISABLE_2BPP=y +CONFIG_NX_DISABLE_4BPP=y +CONFIG_NX_DISABLE_8BPP=y +CONFIG_NX_DISABLE_16BPP=n +CONFIG_NX_DISABLE_24BPP=y +CONFIG_NX_DISABLE_32BPP=y +CONFIG_NX_PACKEDMSFIRST=n +CONFIG_NX_LCDDRIVER=y +CONFIG_LCD_MAXPOWER=31 +CONFIG_LCD_MAXCONTRAST=1 +CONFIG_NX_MOUSE=y +CONFIG_NX_KBD=y +#CONFIG_NXTK_BORDERWIDTH=4 +#CONFIG_NXTK_BORDERCOLOR1 +#CONFIG_NXTK_BORDERCOLOR2 +CONFIG_NXTK_AUTORAISE=n +CONFIG_NXFONT_SANS=y +CONFIG_NXFONTS_CHARBITS=7 +CONFIG_NX_BLOCKING=y +CONFIG_NX_MXSERVERMSGS=32 +CONFIG_NX_MXCLIENTMSGS=16 + # # Settings for examples/uip #