Skip to content
ChangeLog 880 KiB
Newer Older
patacongo's avatar
patacongo committed
	* arch/arm/src/kinetis:  Added header files defining all Kinetis registers
	  and bit fields within all Kinetis registers.
	* configs/twr-k60n512:  Add support for the Kinetis K60 Tower board
	  (TWR-K60N512).
patacongo's avatar
patacongo committed
	* drivers/can.c:  Fixed a semaphore overflow problem in the CAN driver
	  (reported by Li Zhouy (Lzyy)).
Gregory Nutt's avatar
Gregory Nutt committed
	* 8/18/2011: The basic port to the FreeScale Kinetis TWR-K60N512 board is
	  now functional.
Gregory Nutt's avatar
Gregory Nutt committed
	* configs/twr-k60n512: Add Kinetis TWR-K60N512 NSH configuration.
	* drivers/analog and include/nuttx/analog: Add ADC driver infrastructure
	  and TI ADS1255 driver developed and submitted by Li Zhouy (Lzyy)).
patacongo's avatar
patacongo committed
	* arch/arm/stm32/stm32_sdio.h and drivers/mmcsd/mmcsd.c:  Add logic to
	  multiplex usage of the GPIO pins (contributed by Uros Platise).
	* configs/twr-k60n512/nsh:  Added and verified a NuttShell (NSH)
	  configuration for the Freescale, Kinetis TWR-K60N512 board.

patacongo's avatar
patacongo committed
6.9 2011-09-11 Gregory Nutt <gnutt@nuttx.org>
patacongo's avatar
patacongo committed

	* arch/arm/src/kinetis/kinetis_sdhc.c: SDHC driver for Kinetis parts.
	  Initially check-in is just a crude port of the STM32 SDIO driver.
	  Much more work is needed.
	* graphics/, include/nuttx/nx:  Add new NX interfaces for drawing
patacongo's avatar
patacongo committed
	  circles -- both circular outlines and filled circles.
	* graphic/nxglib/nxglib_spitline.c:  Add a "fudge factor" that eliminates
	  some problems for rendering nearly horizontal, wide lines.  Hmm...
	  but I suspect this fudge factor also leads to new problems rendering
	  very thin, nearly horizontal lines.  More tuning is needed.
	* drivers/analog, include/nuttx/analog, arch/arch/src/lpcxx:  (1) Add
	  updates to the ADS1255 driver, (2) fix errors from my last merge (sorry),
	  (3) Add DAC infrastructure, (4) add AD5410 DAC driver, and (5) add
	  LPC17xx ADC and DAC drivers.  All contributed by Li Zhuoyi (Lzyy).
	* tools/mkexport.sh:  Extended the script that implements the top-level
	  'make export' logic.  The script now also finds and bundles up all of
	  the architecture-specific header files as well.
	* drivers/arch/arm/src/stm32/stm32_i2c.c:  Add a reset to the I2C
	  initialization logic to prevent spurious interrupts when the I2C
	  interrupts are enabled (submitted by Uros Platise).
	* Scripts/makefiles/documents.  Several adjustments, corrections and
	  typo fixes so that NuttX will build correctly on FreeBSD using the
	  ASH shell (submitted by Kurt Lidl).
	* drivers/mtd/flash_eraseall.c:  Add a callable function that accepts
	  the path to a block driver and then erases the underlying FLASH memory
	  (assuming that the block driver is an MTD driver wrapped in the FTL
	  layer).  Hmmm... this is probably not the best long term solution;
	  flash_eraseall() should be a user-callable function that operates
	  one driver interfaces; not an internal, OS function that operates
	  on directly on block drivers.
	* drivers/bch:  Fixed some important bugs in the BCH driver (noted by
	  Li Zhuoyi (Lzyy)).  This would have effected any large reads or writes
patacongo's avatar
patacongo committed
	  (larger than the hardware sector size).
	* arch/*/src/Makefile:  Use of -print-libgcc-file-name to get path to
	  libgcc.a may select the wrong libgcc.a if a multilib toolchain (like
	  CodeSourcery) is used. This can be a serious problem and can cause
	  crashes on Cortex-M3 if the ARM libgcc is used, for example.  The fix
patacongo's avatar
patacongo committed
	  is to include ARCHCPUFLAGS on the gcc command line when asking it to
	  -print-libgcc-file-name.
	* lib/time/lib_gmtimer.c:  Correct several calculations that could lead
	  to errors in dates.
	* drivers/pm: Add the beginnings of a NuttX power management sub-system.
	* arch/arm/src/stm32/stm32_irq.c:  Fix a error introduced in 6.8.
	  Timeout calculation uses clock_settime() instead of clock_gettime().
	  Pretty gross error, but actually it works with the side effect of setting
	  a bad time.
	* drivers/mtd/at24xx.c: Driver for I2C-based at24cxx EEPROM submitted by
	  Li Zhuoyi (Lzyy).
	* arch/arm/src/lpc17xx/lpc17_i2c.c: I2C driver for the NXP LPC17xx family
	  submitted by Li Zhuoyi (Lzyy)
	* arch/arm/src/stm32_i2c.c:  Correct two issues with the STM32 I2C driver:
	  (1) Clocking needs to be based on PCLK1, not HCLK and fast speed settings
	  need some additional bits; and (2) Correct a hang that will occur on
	  I2C1 if FSMC is also enabled.
	* drivers/sensors/lm75.c and include/nuttx/sensors/lm75.h:  Add an LM-75
	  temperature sensor driver.
	* configs/stm3210e-eval/src/up_lm75.c:  Add support for the LM-75 on the
	  STMicro STM3210E-EVAL board.
	* sched/clock_gettime.c:  Correct an error in the tv_nsec calculation
	  that happens only config CONFIG_RTC is enabled.
	* arch/arm/src/stm32/stm32_i2c.c:  Correct some bugs related to waiting
	  for the I2C STOP condition to be cleared.
patacongo's avatar
patacongo committed

patacongo's avatar
patacongo committed
6.10 2011-10-06 Gregory Nutt <gnutt@nuttx.org>
patacongo's avatar
patacongo committed

	* lib/stdio/lib_fopen.c:  Fix an error in fopen(); the file pointer was not
	  being positioned at the end of the file when the "a" and "a+" modes are
	  used.  There are other issues with the "a+" modes (see the top-level TODO
	  list).
	* drivers/usbdev/cdc_serial.c and include/nuttx/usb/cdc.h and cdc_serial.h:
	  Add support for the CDC ACM serial device class.
	* fs/fat/fs_fat32.c: Fix a critical bug in the write logic:  It a tiny write
	  cross a sector boundary, then two sector writes will occur.  The first part
	  in the first sector may be written to the wrong sector number.
	* fs/fat/fs_fat32util.c:  Fix a stray write into the FAT (always sector 964 on
	  FAT32).  This bug will cause some lost chains.  I'm sure this bug could
	  corrupt files but at present, the only thing I have seen is that before
	  fixing this bug, the Windows chkdsk utility would report these lost chains.
	* arch/arm/src/stm32/stm32_i2c.c: Driver can now operate in a faster polled
	  mode (at the expense of using more cpu cycles).
	* arch/arm/src/stm32/stm32_i2c.c: Add trace debug capability.  Enabled with
	  CONFIG_I2C_TRACE.
	* arch/arm/src/stm32/stm32_i2c.c: Fix another bug where I2C conflicts with FSMC
	  being enabled.  That time at the tail end of the transaction where there is
	  an unfinished stop condition.
	* sched/mq_timedreceive.c and sched/mq_timedsend.c:  The count of threads
	  waiting on the message queues was not being decremented after a timeout.
	  This would cause the accounting logic to become out of sync and the, perhaps,
	  an assertion to be triggered.  This is an important bug and fixes a
	  potential crash when using mq_timedreceived() and mq_timedsend().
	* sched/mq_sndinternal.c: Related to the above, the send logic was incrementing
	  the wrong counter when it waited as part of the mq_timedsend.c logic.
	* fs/fat:  Fix an error in the long file name logic:  If the long file name
	  is an even multiple of 13 bytes in length, then it should not include a
	  NULL terminating character.  Fix contributed by Kaushal Parikh.
patacongo's avatar
patacongo committed
	* configs/sim/nx11: Created a separate configuration to build the NX
patacongo's avatar
patacongo committed
	  example using the a simulated framebuffer driver on an X11 window.  This
	  example has been verified on Ubuntu 9.09 (it does not work on Cygwin).
patacongo's avatar
patacongo committed
	* arch/sim/src/up_touchscreen.c and up_x11eventloop.c: Adds support for a
patacongo's avatar
patacongo committed
	  simulated NuttX touchscreen device using mouse/pointer feedback from an
	  x11 window.
patacongo's avatar
patacongo committed
	* configs/sim/touchscreen: Adds a configuration to verify the simulated
patacongo's avatar
patacongo committed
	  touchscreen driver (Does not work on Cygwin).
patacongo's avatar
patacongo committed
	* configs/sam3u/touchscreen: This is the configuration that I plan to use
	  to verify the SAM3U-EK touchscreen driver.  However, as of this writing,
	  there is no touchscreen driver for the board.
patacongo's avatar
patacongo committed
	* CONFIG_RTC_HIRES: Add an option to support either a high-resolution RTC
	  that completely replaces the system timer tick but may overflow and lose
	  time when the MCU is off and also for a low-resolution (1 sec/tick) RTC
	  that can run until 2106 with no overflow.  But in this latter case, higher
	  resolution time must come from the system timer.
patacongo's avatar
patacongo committed
	* CONFIG_SYSTEM_UTC: Removed support for the UTC system timer.  It just
	  doesn't do enough to be worth the CPU cycles or the complexity.
patacongo's avatar
patacongo committed
	* CONFIG_SYSTEM_TIME16: Added support for an optional 64-bit system timer.
	* fs/fat/fs_fat32util.c: Add support for FAT date/time stamps; Enabled via
	  CONFIG_FS_FATTIME.
	* arch/arm/src/sam3u/sam3u_spi.c: Add an SPI driver for the AT91SAM3U.
	* drivers/input/ads7843e.c and include/nuttx/input/ads7843e.h: Add a
	  driver for the TI ADS7843E touchscreen controller.
	* fs/nxffs/nxffs_open.c:  Fix an error when a file is open for writing; since
	  the file will get deleted it is already exists, there must be a check if
	  there are other open references to the file.
	* arch/arm/src/stm32/stm32_sdio.c: Fixed an error where during SDHC
	  initialization interrupts were not being re-enabled.  Caused more subtle
	  errors than you would think.
	* arch/arm/src/stm32/stm32_i2c.c:  Fixed an error where I2C timeouts appeared
	  to be successful transfers.
patacongo's avatar
patacongo committed
	* configs/sim/nsh2: Add another simulated NSH configuration.  This one
	  supports X11 graphics, C++, and exercises graphic functions as built-in
	  commands.
patacongo's avatar
patacongo committed
6.11 2011-11-12 Gregory Nutt <gnutt@nuttx.org>
patacongo's avatar
patacongo committed

	* arch/arm/stm32/Make.defs:  Don't build stm32_rtc.c if CONFIG_RTC is not
	  selected.  Doing so will cause errors if other configuration dependencies
	  are not met.
	* configs/stm3210e-eval/src/up_lcd.c:  Color corrections for SPFD5408B LCD
	  do not work with R61580 LCD.
	* configs/pic32-starterkit: Beginning of a configuration for the Microchip
	  PIC32 Ethernet Starter Kit.  Hmmm.. I don't have a clue how to test this
	  with no serial port?!
	* lib/stdio/lib_fclose.c: fclose() always returns an error (EOF) when it
	  closes a read-only file.  This is because it calls flush() which will
	  fail on read-only files.  No harm is done other that a bad value is
	  returned.
patacongo's avatar
patacongo committed
	* arch/sim/src/Makefile: Correct build issue for sim/nsh2 target.  Old
	  libboard.a was not being cleaned.
	* arch/mips/src/pic32mx/pic32mx-gpio*.c:  Add GPIO support for the PIC32MX.
	* configs/sure-pic32mx/src/up_leds.c and up_buttons.c:  Add button and LED
	  support for the Sure Electronics PIC32MX board.
	* configs/ea3152:  Add a configuration for the Embedded Artists LPC3152
	  daughter board (with the same base-board used with configs/ea3131)
	* graphics/nxmu/nx_getrectangle.c, graphics/nxsu/nx_getrectangle.c,
	  graphics/mxtk/nx_getwindow.c, graphics/nxmu/nx_gettoobar.c:  New
	  interfaces to read from graphics memory
	* graphics/nxbe/nxbe_bitmap.c: Fix an error in the error handling that
	  can cause valid bitmaps to fail to render.
	* include/nuttx/video/rgbcolors.h: Fix errors in some 16- and 8-bit color
	  conversion macros.
	* tools/incdir.sh: Fix issues when g++ is used as the compiler.  It was
	  not being recognized and handled properly.
patacongo's avatar
patacongo committed
	* graphics/nxsu/nx_releasebkgd.c: Fix a bad cast that was causing
	  problems with the background window was released.
	* fs/nxffs/nxffs_pack.c:  Correct a critical bug in the NXFFS file system:
	  When repacking the filesystem, there was a missing check to see if an
	  inode structure would fit at the end of a block.  This is a rare case
	  if the block size is large, but can be common for tiny block sizes
	  and results in a crash and file system corruption.
	* fs/nxffs/nxffs_initialize.c:  Fix an initialize error.  If the FLASH
	  is full on power-up, NXFFS will fail to initialize correctly.
	* fs/nxffs/nxffs_write.c and nxffs_pack.c:  Fix an error that can occur
	  when attempt to write to FLASH volume that is completely full but
	  has no value inodes on it.
	* drivers/mtd/at24xx.c:  Now supports a configurable block size that
	  supports using "clusters" of AT24 pages as blocks.  This allows bigger
	  block sizes and more efficient use of EEPROM when the AT24 is used to
	  support a file system (such as NXFFS). (Contributed by Hal Glenn).
	* include/nuttx/video/rgbcolors.h: More fixes to RGB color conversion
patacongo's avatar
patacongo committed
	  macros.
	* arch/arm/src/common/up_createstack.c and up_usestack.c:  For ARM EABI
	  the stack must be aligned to 8-byte boundaries.  This is necessary for
patacongo's avatar
patacongo committed
	  passing aligned floating point values under EABI.  Fix contributed by
	  David Sidrane.
	* Numerous changes and fixes to the PIC32 interrupt handing logic. The
	  PIC32 port is almost complete but still not ready for prime time.
patacongo's avatar
patacongo committed
6.12 2011-12-06 Gregory Nutt <gnutt@nuttx.org>

	* fs/fat/fs_fat32util.c and fs_fat32.h: Logic extended to look in up to
	  four partitions for a valid FAT file system.
	* drivers/input/tsc2007.c: Add support for 8-bit conversions; make sure
	  that A/D converters are active before requesting conversions.
	* drivers/mmcsd0/mmcsd_sdio.c: Increase capacity variable from size_t
	  to uin64_t (if available) so that SD cards with capacities greater
	  than 4Gb can be supported.
	* fs/fat/fs_fat32dirent.c: The root directory structure is different
	  from other directories.  When formatted by Windows, it is not initialized
	  at all.  Some additional special handling is required to initialize the
	  root directory entry to interoperate correctly with windows.
	* fs/fat/fs_fat32util.c: In fat_systime2fattime(void) should be
	  clock_gettime() and not clock_gettime().  Also, there is a place where
	  FAT date is used instead of FAT time. (Thanks to David Sidrane).
	* arch/arm/src/stm32 and arch/arm/include/stm32:  Add support for the
patacongo's avatar
patacongo committed
	  STM32F40xxx family of MCUs.
	* configs/stm3240g-eval:  Add framework for the STMicro STM3240G-EVAL
	  board.
	* include/sys/types.h:  wchar_t is a builtin type in C++ and its
	  declaration can cause errors with certain C++ compilers.
patacongo's avatar
patacongo committed
	* sched/sig_timedwait.c:  Fix signal handling when the returned info
	  is NULL.  Before this change, it would derefence a NULL pointer
	  in this case.
	* graphics/nxfonts/nxfonts_sans17x22.h and nxfonts_sans20x26.h:  Add
	  some very small sans serif fonts.
	* graphics/nxfonts/nxfonts_sans17x23b.h and nxfonts_sans20x27b.h:  Add
	  corresponding sans serif bold fonts.
	* drivers/input/ads7843e.c and tsc2007.c:  Fix some errors in the poll
	  setup error checking that was cloned into both drivers.
	* sched/mq_notify.c:  Set errno appropriately on failures.  There are
patacongo's avatar
patacongo committed
	  still several message queue functions that do not set errno!
	* arch/arm/src/stm32: Fixes to several STM32F40xxx files (contributed by
	  Mikhail Bychek).
	* configs/stm3210e-eval/src/up_lcd.c:  Fix banding problem on the R61580
	  LCD
	* configs/stm3240g-eval/ostest:  The basic STM32F40xx bringup is functional
	  (11/12/06) for the STM3240G-EVAL board and passes the OS test.
	* configs/stm3240g-eval/nsh:  Adds a NuttShell (NSH) configure for the
	  STM3240G-EVAL board.
patacongo's avatar
patacongo committed

patacongo's avatar
patacongo committed
6.13 2011-12-26 Gregory Nutt <gnutt@nuttx.org>
patacongo's avatar
patacongo committed

	* arch/arm/src/stm32/stm32f40xxx_dma.c:  Add DMA support for the STM32 F4
	  family (untested on initial check-in)
	* arch/arm/src/armv7-m/up_fpu.c:  Add logic for saving an restoring VFP
	  floating point registers on context switches (but also disable the FPU
	  because CodeSourcery doesn't support hard flowing point!)
	* arch/arm/src/stm32/chip/stm32_eth.h:  Add Ethernet register definitions
	  for the STM32 F4.
	* arch/arm/srcm/stm32/stm32_eth.c:  Adds an Ethernet driver for the STM32 F4.
	* arch/arm/srcm/stm32/stm32_dac.c and stm32_adc.c: "Skeleton" files for STM32
	  DAC and ADC drivers.  The actual logic will come later.
	* arch/arm/srcm/stm32/stm32_eth.c:  There may be a few more lurking bugs, but
	  the STM32 Ethernet driver appears to be fully functional on the STM3240G-EVAL.
	* arch/arm/srcm/stm32/stm32_eth.c:  Fix an error in clearing abnormal interrupt
	  events.
	* configs/stm3240g-eval/dhcpd:  Add a DCHP daemon configuration for the
	  STM3240G-EVAL board.
	* configs/stm3240g-eval/nettest:  Add a network test configuration for the
	  STM3240G-EVAL board.
	* arch/arm/srcm/stm32/stm32_rtc.c, stm32f10xxx_rtc.c, and stm32f40xxx_rtc:
	  Broke out separate drivers to handle the very different RTC implementations
	  in the STM32 F1 and F4 family.
patacongo's avatar
patacongo committed
	* arch/arm/srcm/stm32/stm32f10xxx_rtc.c:  STM32 F4 RTC is functional (12/14/2011)
	* net/uip-arp.c: Fix compilation issue with CONFIG_NET_ARP_IPIN
patacongo's avatar
patacongo committed
	* include/nuttx/pwm.h and drivers/pwm.c:  Add an interface definition and a
	  "upper half" driver for PWM output.
	* arch/arm/src/stm32/stm32_pwm.c:  Added a PWM "lower half" driver for the
	  STM32.  The initial check-in is little more than a framework for the driver.
	* arch/arm/src/stm32/stm32_usbdev.c:  Corrected two CRITICAL errors in the USB
	  device-side driver:  (1) Handling of data overrun condition was wrong.  When
	  there was no further memory to accept further OUT endpoint data, the driver
	  would hang with infinite interrupts; (2) the logic in setting toggle bits
	  was not correct.  However, this driver has functioned for a long time until
	  the particular condition that revealed the bug occurred.  My impression is
	  that this latter bugfix also fixes some STM32 USB performance problems.
	* configs/hymini-stm32v: A configuration for the HY-Mini STM32v board contributed
	  by Laurent Latil.  These changes also include support for the STM32F103VCT6.
patacongo's avatar
patacongo committed
	* arch/configs/stm3240g-eval/src/up_pwm.c:  Add hooks needed to use the new
	  apps/examples/pwm test of the STM32 PWM  driver.
	* drivers/mtd/mp25x.c:  Add ability to use different SPI modes and different
	  manufacturers codes.  Fix a error in the wait for not busy (submitted by
	  Mohammad Elwakeel.
	* arch/arm/src/stm32/stm32_can.c:  Add a low-level STM32 CAN driver. (Initial
	  check is incomplete).  Add loopback support to the driver.
	* arch/arm/src/stm32/stm32_adc.c:  The ADC is now functional.  A more complete
	  driver would require DMA support.  I have some questions still about the
	  accuracy of the timer-driven sampling.
	* configs/sure-pic32mx/nsh:  The PIC32 port is (finally) functional.  Add an
	  NSH configuration for the Sure PIC32MX board.
	* configs/sure-pic32mx/*/defconfig.  Calibrated all PIC32 delay loops.
	* configs/pcblogic-pic32mx/nsh:  Add an NSH configuration for the PCBLogic
patacongo's avatar
patacongo committed
	* Both PIC32 OS test and NSH configurations have now been verified.

patacongo's avatar
patacongo committed
6.14 2012-01-15 Gregory Nutt <gnutt@nuttx.org>
	* tools/Makefile.export, mkexport.sh, and configure.sh:  Changes submitted
	  by Mike Smith to support configuration and 'make export' on MAC OS.
	* arch/arm/src/stm32/stm32_gpio.c:  Disabled interrupts while configuring
	  GPIO pins so that we have exclusive access to the GPIO configuration
	  registers.
	* arch/mips/src/pic32mx/pic32mx_usbdev.c:  Add a USB device-side driver
	  for the PIC32MX family.
	* arch/arm/src/stm32/stm32_gpio.c:  Correct an error in some of the GPIO
	  initialization logic.  Fix submitted by Mike Smith.
	* configs/olimex-lpc1766stk/src/up_leds.c:  Add new interfaces so that is
	  CONFIG_ARCH_LEDS are not set, the LEDs may be controlled from application
	  logic.
	* configs/olimex-lpc1766stk/src/up_buttons.c:  Add support for the buttons
	  on the Olimex LPC1766-STK board.
	* Makefile:  Added 'apps_clean' and 'apps_distclean' target to simplify
	  managing the state of the application directory while in the NuttX directory
	* Documentation/NuttXGettingStarted.html:  Added a "Getting Started" Guide
	  for NuttX.  At present, this is just a stub and it refers to the NuttX
	  top-level README.txt file which is the only, real "Getting Started" Guide
	  that exists at the time being.
	* arch/arm/src/lpc17xx/lpc17_gpioint.c:  Correct an value used as the lower
	  end of an IRQ number range test.
	* arch/arm/src/lpc17xx/lpc17_gpio.c:  Fix a integer flow problem in shift.
	  This error would prevent pins > 15 from being used as interrupt sources.
	* arch/arm/src/stm32/stm32_can.c:  The CAN driver has been verified in
	  loopback mode on the STM3240G-EVAL board.
	* configs/stm3240g-eval/src/up_adc.c: Complete coding of ADC support for the
	  potentiometer on board the STM3240G-EVAL.
	* arch/arm/src/lpc17_can.c:  Several CAN driver improvements. Adds support for
	  testing in loopback mode.  now uses all three transmit buffers for better
	  performance.
Gregory Nutt's avatar
Gregory Nutt committed
	* configs/olimex-lpc1766stk/nsh:  Now supports the CAN loopback test as an
	* sched/irq_attach.c:  Fix an issue with disabling interrupts when they are
	  detached.  For the PIC32, this can't be done because there is a 1-to-many
	  relationship between vector numbers and interrupt numbers or different.
	  Added a new configuration option CONFIG_ARCH_VECNOTIRQ to at least flag
	  the architectures that have this issue and to (at least) avoid doing
	  something too wrong.
	* drivers/can.c:  Fix a test for buffer full in the generic, "upper half",
	  can driver.
	* arch/arm/src/lm3s: Add support for the LM3S6432S2E (Contributed by Mike Smith)
	* configs/lm3s6432-s2:  Add support for the TI RDK-S2E (LM3S6432S2E) board
	  (Contributed by Mike Smith)
	* configs/stm3240g-eval/src: Add APIs support to support user access to the
	  LEDs
	* arch/arm/src/lpc17xx/lpc17_can.c: Add logic to change the CAN bit rate based
	  on the NuttX configuration.
	* arch/arm/src/lpc17xx/lpc17_can.c: PCLK divisor is now a configuration
	  option.
	* arch/arm/src/stm32/stm32_serial.c and stm32_lowputc.c:  Support for
	  UART4-5 and USART6 added by Mike Smith.  Also includes a more flexible
	  way of managing UART pin configurations.
	* include/nuttx/pwm.h, drivers/pwm.c, arch/arm/src/stm32/stm32_pwm.c:  Add
	  support for pulse count in order to better support stepper motors.
patacongo's avatar
patacongo committed
	* arch/arm/src/stm32/stm32_dumpgpio.c: Checking wrong register to see if
	  GPIO is enabled.  Also not adding the GPIO base address to several offsets.
	* configs/stm32f4discovery:  Port to the STMicro STM32F4Discovery board
	  (Contributed by Mike Smith).
	* fs/fat/fs_fat32util.c:  On a failure to recognize a FAT file system, the
	  mount logic should return -EINVAL, not -ENODEV.
	* arch/arm/src/stm32/stm32_tim.c:  Support for STM32 F4 32-bit timers
	  (Contributed by Mikhail Bychek)
	* lib/stdio/lib_vsprintf.c:  Add support for fixed-size fields with floating
	  point numbers (Contributed by Mikhail Bychek)
patacongo's avatar
patacongo committed

patacongo's avatar
patacongo committed
6.15 2012-02-12 Gregory Nutt <gnutt@nuttx.org>

	* arch/arm/src/stm32/stm32_pwm.c:  Pulse count was limited to 128; now is
	  (essentially) unlimited.
patacongo's avatar
patacongo committed
	* configs/stm3240g-eval/include/board.h:  Input frequencies wrong for all but
	  one APB2 timer.
	* arch/mips/src/pic32mx/pic32mx-ethernet.c:  The PIC32 Ethernet driver is
	  code complete, but still untested.
Gregory Nutt's avatar
Gregory Nutt committed
	* configs/sim/*/Make.defs and arch/sim/src/Makefile:  Add support for building
	  a 32-bit executable on a 64-bit Linux target.
	* configs/sure-pic32mx/src/up_leds.c:  Correct GPIOs used for LEDs. The wrong
	  pins were being used.
	* arch/arm/src/stm32/chip/stm32f10xxx_gpio.h: Correct offset to one AFIO EXICR
	  register.
	* arch/arm/src/lpc17xx/lpc17_can.c:  Added "advanced" configuration options
	  to specify the CAN TSEG1 and TSEG2 clock counts specifically.
	* include/nuttx/can.h and drivers/can.c:  Add support for extended (29-bit)
	  CAN IDs.
	* arch/arm/src/lpc17xx/lpc17_can.c:  Add support for extended (29-bit) CAN IDs.
	* arch/arm/src/stm32/stm32_can.c:  Add support for extended (29-bit) CAN IDs.
	* include/nuttx/power/pm.h:  Move include/nuttx/pm.h into a sub-directory named
	  power.
	* drivers/power:  Rename the drivers/pm directory to power
	* include/power/battery.h and drivers/battery.c:  Add the interface definitions
	  for an upper and lower half battery driver.  Add the implementation of the
	  common upper half battery driver.
patacongo's avatar
patacongo committed
	* drivers/power/max1704x.c:  Add a driver for MAX17040x battery "fuel gauge"
	* arch/arm/src/stm32/stm32_i2c.c: Add support for I2C3
	* drivers/usbdev/: Lots of name changes: cdc_serial->cdcacm, usbstrg->usbmsc,
	  usbser->pl2303
	* drivers/usbdev/composite: Fleshed out support for a composite USB device.
	* drivers/stm3210e-eval/composite and drivers/stm3210e-eval/src/up_composite.c:
	  Add a configuration test the USB composite device.
	* include/nuttx/usb/usb.h, drivers/usbdev/composite_descriptors.c, and
	  drivers/usbdev/cdcacm_descriptors.c:  Add support for the USB Interface
	* arch/arm/src/stm32/stm32_i2c.c: Correct a typo in STM32 I2C3 support
	  (submitted by Mike Smith)
	* arch/*/src/Makefile:  Candidate solution for dependency issue in the board
	  sub-directory:  By making libboard.a a "phony" target, libboard.a should
	  always rebuilt (the end result is worth the small increase in build time)
	  (submitted by Mike Smith).
patacongo's avatar
patacongo committed
	* include/net/psock.h:  Added a new low level socket interface that allows the
	  OS to use the socket interface without having a socket descriptor.
	* include/net/psock.h: Removed psock.h.  The new interfaces are moved into
	  nuttx/net.h which already has similar logic.
	* include/nuttx/usb/usb.h: Can't use 'class' as a field name in USB structures.
	  This upsets C++ if usb.h is included. 'class' -> 'classid' in this header
	  file and all places that referenced 'class'
	* drivers/usbdev/usbmsc.c: Fixed some backward conditional compilation.
	* sched/on_exit.c:  Add support for the on_exit() function.,
	* sched/exit.c, task_exithook.c, task_delete.c, sched_releasetcb.c:  Move
	  the logic that closes file descriptors sooner in the task shutdown sequence.
	  When drivers are closed, they may need to do things that require a fully
	  up-and-running task.  Some things cannot be done later when the task is
	  crippled.
patacongo's avatar
patacongo committed
	* lib/dirent: Moved readdir_r() and telldir() from lib/misc to this new
	  directory where they belong.
	* lib/termios.  Implemented tcsetattr() and tcgetattr().
	* lib/stdio/lib_fgets.c:  The old fgets includes some terminal related
	  functionality:  It handles VT-100 commands, includes a command line editor
	  and echo characters back to the terminal.  This old, overloaded fgets()
	  was renamed readline() and moved to apps/system/readline.  The version
	  of fgets() in lib/stdio was them simplified and stripped down so that it
	  *only* gets a string -- as its description implies.
	* arch/arm/src/lpc214x/lpc214x_usbdev.c:  Add corrections suggested by
	  David Hewson many, many months ago.
	* configs/mcu123-lpc214x/composite and configs/mcu123-lpc214x/src/up_composite.c:
	  Add a configuration to test the USB composite device.
patacongo's avatar
patacongo committed
	* configs/stm3240g-eval/Telnetd:  Add a configuration for testing the
	* configs/stm3240g-eval/nsh2:  This is another NSH configuration.  It differs
	  from the original nsh configuration because it does not have an RS-232
	  console (only a Telnet console) and SDIO is enabled.  This configuration is
	  required because the STM3240G-EVAL board cannot simultaneously support
	  RS-232 and SDIO due to pin conflicts.
patacongo's avatar
patacongo committed
	* lib/string/lib_strcasestr.c:  Add strcasestr().
	* lib/stdio/lib_avsprintf.c:  Add avsprintf().
patacongo's avatar
patacongo committed
	* lib/net/lib_inetntop.c:  Add inet_ntop().
patacongo's avatar
patacongo committed
	* lib/net/lib_inetpton.c:  Add inet_pton().
	* include/pthread.h:  Correct PTHREAD_MUTEX_INITIALIZER.
patacongo's avatar
patacongo committed
	* fs/fat/fs_fatfs.c:  Fix an error in the FAT statfs() implementation that
	  was causing some block counts to be reported incorrectly (reported by
patacongo's avatar
patacongo committed
	  David Sidrane).
	* drivers/ramlog.c:  Add a character driver that can substitute
	  for /dev/console and or be used for logging debug output when there
patacongo's avatar
patacongo committed
	  is no serial port available (such as when a Telnet console is used).
	* lib/stdio/lib_syslogstream:  Add a stream object that will be used to
	  re-direct all debug output to the RAM log if CONFIG_SYSLOG and
	  CONFIG_RAMLOG_SYSLOG are defined.
	* lib/misc/lib_dbg.c: Add an interface enabled with CONFIG_DEBUG_ENABLE that
	  can be used to turn debug output on and off.
patacongo's avatar
patacongo committed

patacongo's avatar
patacongo committed
6.16 2012-03-10 Gregory Nutt <gnutt@nuttx.org>

	* drivers/sensors/qencoder.c and include/nuttx/sensors/qencoder.h:  Add an
	  implementation for a quadrature encoder upper half driver.
	* arch/arm/src/stm32/stm32_qencoder.c/.h:  Add a initial implementation of
	  a lower-half quadrature encoder driver for the STM32.  On initial check-in,
	  this is little more than a "skeleton" file.
	* Various files:  CAN ISO-11783 support contributed by Gary Teravskis.
	* net/recv.c and net/recvfrom.c: Correct a bug in return value:  The the peer
	  gracefully closes the connections, needs to return zero and not ENOTCONN.
	* arch/arm/src/stm32/stm32_eth.c:  Fix an error in the STM32 ethernet driver.
	  The received buffer size must be two bytes larger to account for the two byte
	  checksum that is appended to the packet.  Otherwise, the last two bytes of
	  real data in the packet will get clobbered.
patacongo's avatar
patacongo committed
	* arch/arm/src/stm32f40xx_dma.c:  The STM32 F4 DMA has (finally) been verified
	* arch/arm/src/stm32_sdio.c:  STM32 F4 SDIO DMA is now supported
	* configs/stm3240g-eval/nsh/defconfig: This configuration now supports SDIO
	  with DMA (see configs/stm3240g-eval/README.txt for some issues).
	* arch/arm/src/armv7-m/up_vectors.S and arch/arm/src/armv7-m/up_vectors.S:  New,
	  streamlined Cortex-M exception handling (with FPU supported).  Contributed byh
	  Mike Smith
	* net/accept.c, connect.c,and net_monitor.c:  Correct an error in the accept
	  logic.  After a new connection is made via accept(), monitoring for losses
	  of TCP connection must be set up (just as with connect()).  The new file
	  net_monitor.c holds the common TCP connection monitoring logic used by both
	  the accecpt() and connect() logic.  Contributed by Max Nekludov.
	* net/recvfrom.c and net/uip/uip_tcpcallback.c:  Fix a leak in the TCP
	  read-ahead logic.  This is a *critical* bug fix!
	* net/uip/uip_tcpinput.c:  Correct an error in the TCP stack.  It was
	  incrementing the received sequence number BEFORE determining if the
	  incoming data could be handled.  If the data was dropped (usually because
	  there is insufficient buffering space), then no ACK will be sent and the
	  sequence number will be wrong.  The end consequence of the bad sequence
	  number was that the when the dropped packet was re-transmitted, it was
	  was ignored because its sequence number looked wrong.  Fix was, obviously,
	  to only increment the recevied sequence number if the TCP data was
	  accepted.
	* configs/stm3240g-eval, configs/stm32f40discovery, and arch/*/src/Makefile:
	  Add changes to support building with the Atollic "Lite" toolchain.
	* fs/fs_select.c:  Correct select(), in the case of loss of network
	  connection (POLLHUP), select() must report a read-ready event.  This
	  is how the standard select() interface is supposed to work:  In the case
	  of loss-of-connection, select() reports read-ready.  The next time you
	  read from the socket, you detect the end-of-connection event.  Change
	  submitted by Max Nekludov.
	* arch/arm/src/armv7-m/up_fpu.S and arch/arm/src/stm32/stm32_vectors.S:  Fix
	  lazy FPU register saving with CONFIG_ARCH_FPU is set in the configuration.
	* arch/arm/src/armv7-m:  Lazy saving of floating point registers on context
	  switches now seems to be functional.
	* net/uip/uip_tcpinput.c:  Fix a TCP protocol error reported by Max Nekludov.
	* configs/stm3240g-eval, configs/stm32f40discovery:  Add changes to support
	  building with the Atollic "Pro" toolchain.
	* Makefile:  Use the more common .hex extension for Intel hex files instead of
	  more precise .ihx extension.  This change has ripple effects to many build-
	  related scripts and programs and could cause some short-term problems.
	* configs/stm3240g-eval/, arch/arm/src/stm32/up_allocateheap.c:  Add support
	  for the 16-mbit SRAM on-board the STM3240G-EVAL board.
	* drivers/usbdev/cdcacm.c and include/nuttx/usbdev/cdcacm.h:  The CDC/ACM
	  driver can now be dynamically connected and disconnected from the host
	  under software control.
	* include/nuttx/arch.h, configs/stm3240g-eval/src/up_cxxinitialize.c, and
	  configs/stm3240g-eval/src/up_cxxinitialize.c:  Add support for C++ static
	  initializers.
	* net/setsockopt.c, net/getsockopt.c, net/bind.c, net/socket.c:  Add more
	  low level, thread-independent socket interfaces for use within the OS.
	  Some of these are currently used by the FTP controlling terminal.  More will
	  be used to support the NFS file system currenly underwork.
	* include/nuttx/net/:  Major re-organization of networking headerf files.
	  Moved all non-standard, NuttX-specific header files from include/net and
	  include/nuttx into include/nuttx/net.
	* arch/mips/src/pic32mx/pic32mx_usbdev.c:  The PIC32 USB driver now appears to
	  be fully functional.
	* configs/sure-pic32mx/usbnsh and configs/sure-pic32mx/src:  Add support for
	  NSH using only USB serial I/O to support the console.  This is useful on
	  devices that have USB, but no serial port.
patacongo's avatar
patacongo committed
	* arch/mips/src/pic32mx/pic32mx_spi.c:  Add a PIC32 SPI driver.  Initial
	  checkin is primitive, incomplete (lacks interrupt logic), and untested.
	* configs/pic32-startkit/nsh:  Completed verification of the PIC32 Ethernet
	  Starter Kit port.  Added and verified the NuttShell (NSH) on the PIC32
	  Ethernet Starter Kit.  I can now (finally) claim to have complete the
	  basic port to this board.
	* configs/pic32-startkit/nsh/up_usbdev, up_nsh.c, and up_usbterm.c:  Verified
	  the USB (device) driver on the PIC32 Ethernet Starter Kit.
	* arch/mips/src/pic32mx/pic32mx_ethernet.c:  Verified the PIC32 Ethernet
patacongo's avatar
patacongo committed
	  driver on the PIC32 Starter Kit.  Status:  It is occasionally functional
patacongo's avatar
patacongo committed
	  but not stable enough for use.
	* arch/arm/include/stm32, arch/arm/src/stm32:  Add general support for
	  the STM32 F2 family. Contributed by Gary Teravskis,
	* configs/stm3220g-eval:  Add support for the STMicro STM3220G-EVAL board.
	  Contributed by Gary Teravskis,
patacongo's avatar
patacongo committed
6.17 2012-04-14 Gregory Nutt <gnutt@nuttx.org>
	* configs/sure-pic32mx: Add support for the Sure DB-DP11212 PIC32 General
	  Purpose Demo Board
	* arch/arm/src/stm32/stm32_usbhost.c/.h:  Add files that will (eventually)
	  hold an STM32 USB host driver (the initial check-in is the NuttX LPC17
	  USB host driver with name changes only).
	* arch/arm/src/stm32/chip/stm32_otgfs.h:  STM32 USB OTG FS register
	  definitions (not complete on initial check-in).
patacongo's avatar
patacongo committed
	* net/connect.c:  Add another low level, thread-independent socket interface
	  for use within the OS.
	* arch/mips/src/pic32mx/pic32mx_ethernet.c:  The PIC32 Ethernet driver
	  is now stable on the PIC32 Starter Kit.
	* configs/pic32-starterkit/nsh2:  Add a PIC32 Ethernet Starter Kit NSH
	  configuration that has no serial console; all interaction is done via
	  Telnet.
	* net/netdev_sem.c:  Correct a deadlock condition by making a seamphore
	  recursive.  To my knowledge this deadlock only occurs when running the
	  NSH command ifconfig over Telnet.  In that case the function netdev_foreach
	  takes the network device semaphore, but so does the telnet logic causing
	  the deadlock.
	* arch/arm/src/stm32/stm32_pm*.c: Add basic STM32 power management logic
	  that will eventually be used to implement low power states.
	* arch/arm/src/stm32/stm32f*0xx_rcc.c:  In order to use CAN2, both CAN1 and
	  CAN2 clocking must be enabled.
	* arch/mips/src/pic32mx/picm32mx-usbdev.c:  Several stall-related fixes so that
	  the USB device driver can used the mass storage class (which does a LOT
	  of stalling as part of its normal protocol).  The PIC32 USB Mass Storage
	  device is, however, still non-functional when debug is OFF.
	* include/nuttx/fs: Move all file-system related files from include/nuttx to
	  include/nuttx/fs.
	* include/nuttx/serial: Move all serial-driver related files from include/nuttx to
	  include/nuttx/serial.
	* include/nuttx/clock.h and sched/clock_initialize.c:  Add a new OS interface
	  called clock_sychronize() that can be used to re-synchronize the NuttX
	  system time with a hardware RTC.  This function is called normally at power
	  up but may also need to be called when recovering from certain low-power
	  usage states where the system time is no longer accurate.
	* arch/arm/src/calypso and arch/arm/include/calypso: Support for the TI "Calypso"
	  phone processor. Contributed by Denis Carilki and includes the work of Denis,
	  Alan Carvalho de Assis, and Stefan Richter.
	* configs/compal_e88 and configs/compal_e99:  Support for Compal e88 and e99 phones
	  Contributed by Denis Carilki and includes the work of Denis, Alan Carvalho de
	  Assis, and Stefan Richter.
	* arch/arm/src/lpc17xx: Several fixes for error that have crept in for the LPC17xx
	  DAC.  Contributed by by Lzyy.
	* graphics/nxconsole:  Add a character driver that can be used as a console output
	  device for text output (still under development on initial check-in).
	* graphics/nxmu:  Fix several compilation errors that have crept into the multi-
	  user NX server because of lack of use.
	* graphics/nxconsole:  The NX text console is basically function (in multi-
	  user NX mode only).
patacongo's avatar
patacongo committed
	* arch/arm/src/stm32/stm32_i2c.c: Correct a bug in the STM32 I2C driver.  The
	  behavior of I2C status bits seems to be different between F1 and F4.
	* configs/stm3210e-eval/nxconsole:  New STM32 F1 configuration that runs the
	  NuttShell (NSH) within an NX window.
	* graphics/nxconsole/nxcon_sem.c:  Add protection from re-entrance with debug
	  is enabled.
	* include/nuttx/ascii.h and vt100.h:  Header files to centralize ASCII and
	  VT100 escape sequence definitions.
	* graphics/nxconsole/nxcon_vt100.c:  Add add framework to support VT100 escape
	  sequences in NxConsole.
	* fs/fs_read.c:  Fix read() return value for attempt to read from write-only
	  file or device.  Was returning EBADF, should return EACCES.
	* graphics/nxconsole.c:  NxConsole now supports backspace and a cursor.
	* Kconfig and arch/sim/Kconfig:  Beginnings of support for a NuttX
	  configuration tool.  Currently using the kconfig parser 'kconfig-frontend'
	  available at http://ymorin.is-a-geek.org/projects/kconfig-frontends
	  (version 3.3.0-1 is also available in the NuttX SVN at
	  trunk/misc/tools/kconfig-frontends-3.3.0-1.tar.gz).  Contributed by Lzyy.
	* */Kconfig:  Added skeleton Kconfig files to all directories that
	  may need them.
	* include/nuttx/math.h:  Moved include/math.h to include/nuttx/math.h
	  because it conflicts too often with the system math.h (and people aren't
	  inclined to read the documentation on how to handle this).  Now, if
	  CONFIG_ARCH_MATH_H=y is defined, the top-level makefile will copy
	  the redirecting math.h header file from include/nuttx/math.h to
	  include/math.h.  So for the architectures that define CONFIG_ARCH_MATH_H=y,
	  include/math.h will be in place as it was before; for the architectures
	  that don't select CONFIG_ARCH_MATH_H, the redirecting math.h header
	  file will stay out-of-the-way in include/nuttx/.
	* Kconfig, sched/Kconfig, lib/Kconfig, libxx/Kconfig, arch/sim/Kconfig,
	  drivers/Kconfig, drivers/mtd/Kconfig, drivers/input/Kconfig
	  drivers/analog/Kconfig, drivers/lcd/Kconfig:  Updated kernel
	  configuration support provided by Lzyy.
	* Kconfig:  Many more Kconfig updates (no longer tracking in the ChangeLog)
	* arch/arm/src/Makefile, arch/x86/src/Makefile, arch/avr/src/Makefile,
	  arch/mips/src/Makefile, arch/sim/src/Makefile, arch/hc/src/Makefile,
	  arch/sh/src/Makefile:  The libgcc.a in newer versions of GCC now
patacongo's avatar
patacongo committed
	  have an dependency on an external implementation of abort().  This
	  required modification to the Makefiles that do the final link:  Now
	  libgcc.a must be included within the group of libraries that are
	  search recursively.
	* arch/arm/srm/stm32/stm32_otgfsdev.c:  A USB OTG FS device-side driver
	  for the STM32 F4 (and maybe F2 and F1 connectivity line).
	* tools/cmpconfig.c:  A tool for comparing two configuration files.
	* include/nuttx/usb/usbdev.h, drivers/usbdev/*, arch/*/src/*/*usb*.c:
	  Extend the USB device side interface so that EP0 OUT data can be passed
	  with OUT SETUP requests.
	* include/nuttx/watchdog.h:  Add the definition of a standard watchdog
	  driver interface.
	* drivers/watchdog.c:  The "upper half" watchdog timer driver.
patacongo's avatar
patacongo committed

patacongo's avatar
patacongo committed
6.18 2012-05-19 Gregory Nutt <gnutt@nuttx.org>

	* Kconfig:  Continued Kconfig file updates (no longer tracking on a per-file
	  basis in the ChangeLog)
patacongo's avatar
patacongo committed
	* arch/arm/src/stm32/stm32_iwdog.c and stm32_wwdog.c:  Add the STM32 IWDG
	  and WWDIG watchdog timer driver.
	* configs/stm3240g-eval/src/up_lcd.c: Add LCD from for the STM3240G-EVAL (the
	  initial check-in is just a stm3210e-eval driver with renaming).
	* sched/sched_setscheduler.c:  Correct successful return value (Contributed
	  by Richard Cochran).
	* include/fcntl.h and lib/stdio:  Ignore CONFIG_STDIO_LINEBUFFER is the
	  file was opened in binary mode.
	* lib/stdio/lib_fopen.c:  Correct an error in parsing open mode string.  The
	  plus sign may not appear right after the basic mode.  For example, "r+", "rb+",
	  and "r+b" are all valid open strings and mean the same thing.
	* lib/stdio/lib_fopen.c:  Correct return errno value from f_open() and
	  f_fdopen() if the open mode string is invalid.
	* drivers/serial/serial.c:  Do not disable Rx interrupts on each byte.
	  Rather, only disable Rx interrupts when the Rx ring buffer may be empty.
patacongo's avatar
patacongo committed
	* include/nuttx/usb/audio.h:  USB Audio 1.0 definitions (in progress).
	* arch/arm/src/stm32/stm32fxx_dma.c:  STM32 F4 DMA now supports circular
	  buffer mode (contributed by Mike Smith)
	* arch/arm/src/stm32/stm32_serial.c:  The serial driver can now support
	  Rx DMA into a circular buffer (contributed by Mike Smith)
	* configs/pic32mx7mmb: Beginning of a configuration for the Mikroelektronka
	  PIC32MX7 Multimedia Board (MMB).
patacongo's avatar
patacongo committed
	* net/recvfrom.c:  Fix a compilation problem.  Some UDP logic was conditioned
	  on TCP, not UDP.
	* drivers/usbdev/cdcacm.c: Fix an infinite loop that occurs when the serial
	  device is unregisters.
	* arch/arm/src/stm32/stm32_otgfs.c: The driver needs to reset the software (in
	  order to flush the requests) and to disable the software connection when the
	  device is unregistered.
	* include/sys/prctl.h, sched/prctl.c, include/pthread.h:  Add interfaces to
	  support getting and setting of the thread or task name.
	* configs/ubw32:  Added a configuration to support the Sparkfun UBW32 PIC32 board.
	* configs/ubw32/nsh:  Added an NSH configuration for the Sparkfun UBW32 PIC32 board.
patacongo's avatar
patacongo committed
	* configs/ubw32/up_buttons.c:  Added button support for Bit Whacker board.
	* configs/stm3240g-eval/nxconsole:  Added a configuration to run the NSH
	  shell in an NX window for the STM3240G-EVAL board.
patacongo's avatar
patacongo committed
	* include/cxx/cunistd:  C++ header file to make sure that everything in
	  unistd.h is in the std:: namespace.
	* configs/sim/nxwm:  Added a configuration for testing the NuttX Window Manager
	  (NxWM)
	* fs/fs_fcntl.h:  On success, always returned OK.  However, some fcntl commands
	  require returning other values on success.
	* Various files.  Fix warnings about variables that were initialized by not used.
	* configs/sim/*/defconfig:  Changes to build a 32-bit simulation on a 32-bit
	  platform did not make into all of the Make.defs files.
	* graphics/nxmu/nx_move.c:  Wrong opcode was being used in the server message;
	  Also there was an error in the offset calculation.
	* graphics/nxglib/fb/nxglib_moverectangle.c:  Offset argument is really a
	  position, not an offset.
	* graphics/nxtk/nxtk_drawframe.c:  Framed windows are now drawn in three
	  colors (instead of just two).
	* drivers/input/stmpe811_*:  Added a driver to support the STMicro STMPE811
	  IO Expander and touchscreen driver.
	* configs/stm3240g-eval/nxwm:  Added to configuration for testing the NxWM
	  window manager on the STM3240G-EVAL board.
	* graphics/nxtk/nxtk_toolbarbounds.c:  Added an interface to get the toolbar
	  bounding box.
	* graphics/nxtk/nxtk_drawframe.c:  Fix an error in drawing the window frame.
	* NX, NxConsole:  Replace CONFIG_NXCONSOLE_NOGETRUN to CONFIG_LCD_GETRUN.  The
	  inability to read from the LCD is a property of the LCD, not of NxConsole.
	  Then add CONFIG_NX_WRITEONLY which is the more generic way of saying that
	  no NX component should try to read from the underlying graphic device (LCD
	  or other).
	* configs/stm3240g-eval/src/up_stmpe811.c:  Add board-specific support for the
	  the STMPE811 I/O expander on the STM3240G-EVAL board.  Verfied that the
	  STM3240G-EVAL touchscreen is now fully functional.
	* include/cxx/cfcntl:  Added std:: header file.
	* graphics/nxbe/nxbe_filltrapezoid.c and graphics/nxglib/fb/nxglib_filltrapezoid.c:
	  Fix several errors in the trapezoid fill logic.
	* include/nuttx/input/touchscreen.h, configs/hymini-stm32, configs/stm3240g-evel,
	* configs/sam3u-ek, configs/sim, arch/sim/src/up_touchscreen.c, and
	  apps/examples/touchscreen: Standardize the board-specific, touchscreen
	  initialization interfaces.
	* drivers/input/stmpe811_base.c and configs/stm3240g-eval:  The STMPE811-based
	  touchscreen seems to work better with edge (vs. level) interrupts
	* drivers/input/stmpe811_tsc.c:  Fix some status checks so that the touchscreen
	  interrupt handling logic does not read data if the fifo is not at the
	  threshold level.
	* include/nuttx/wqueue.h: Add macro work_available() to determine if the
	  previously scheduled work has completed.
	* drivers/stmpe811_tsc.c:  Correct errors: (1) Since all interrupt logic is done on
	  the worker thread, disabling interrupts does not provide protected; Need to
	  disable pre-emption.  (2) Fix handling of touch ID and (2) add some logic to
	  prevent certain kinds of data overrun.
	* include/nx/nxtk.h and graphics/nx/nxtk/nxtk.h:  Move setting
	  of configuration defaults from the internal header file to a place where
	  other logic can use the defaults.
	* graphics/nxtk/nxtk_events.c:  Fixed an important but in the logic that
	  translates the mouse/touchscreen position data for framed windows and toolbars.
	* drivers/input/stmpe811_tsc.c, tsc2007.c, and ads7843e.c:  Need to keep track of
	  when if positional data is valid.  When the touch is released, the X/Y position
	  of the release must be the same as the X/Y position of the last touch (se that
	  the release occurs in the same window as the last touch).
	* graphics/nxtk/nxtk_events.c:  Fix an error in mouse/touchscreen input logic:
	  Was autoraising the window AFTER processing the mouse press.  This raises havoc
	  if the result of processing the mouse click was to raise some other window!
	* graphics/nxtk/nxtk_events.c:  I had to disable the whole autoraise feature
	  for multi-user case because it does not work correctly.  In a scenario where (1) there
	  are multiple queued touchscreen events for the same window and (2) the result of the
	  first input was to switch windows, then the autoraise implementation will cause the
	  window to revert to the previous window.  Not good behavior.
	* sched/sched_mergepending.c:  Add task switching instrumentation.  There is a case
	  here where instrumentation was missing.  Contributed by Petri Tanskanen.
	* CONFIG_STMPE811_THRESHX, CONFIG_STMPE811_THRESHX, and drivers/stmpe811_tsc.c:  Add some
patacongo's avatar
patacongo committed
	  thresholding controls to all slow down processing of touchscreen samples.
	  This is a problem with NX in multi-user mode:  touchscreen data gets sent
	  via a message and when the message queue gets full the sender blocks and
	  touch events are lost.  Basic data overrun.  The badly effects touchscreen
	  human factors.
	* include/sched.h:  Fix a typo (missing semicolon) in prototype of on_exit();
	* sched/on_exit.c and include/nuttx/sched.h:  Fix some old typos that caused
	  compilation errors when CONFIG_SCHED_ONEXIT is defined.
	* configs/stm3240g-eval/nxwm/defconfig:  The default NxWM now uses the STMPE811
	* graphic/nxmu/nxmu_sendserver.c, nxmu_sendwindow.c, and nxmu_sendclient.c:
	  Refactor NX messaging logic in preparation for a new message control
	  feature.
	* graphics/nxtk, graphics/nxmu, include/nuttx/nx:  Add a new window communication
	  to support blocking and flushing of client window messages.  If there are
	  stale, queue window messages at the time that a window is destroyed, very bad
	  things happen.
patacongo's avatar
patacongo committed

patacongo's avatar
patacongo committed
6.19 2012-06-15 Gregory Nutt <gnutt@nuttx.org>

	* graphics/nxconsole/nxcon_kbdin.c:  If selected, the NxConsole will take
	  input from the NX keyboard input callback.  If this option is set, then
	  the interface nxcon_kdbin() is enabled.  That interface may be driven by
	  window callback functions so that keyboard input *only* goes to the top
	  window. If CONFIG_NXCONSOLE_NXKBDIN is not selected, then the NxConsole
	  will receive its input from stdin (/dev/console).  This works great but
	  cannot be shared between different windows.  Chaos will ensue if you
	  try to support multiple NxConsole windows without CONFIG_NXCONSOLE_NXKBDIN
	* graphics/nxmu/nx_kbdin.c:  Fix pointer argument.  This is a error
	  introduced in changes leading up to the 6.18 release.  This error will
	  cause crashes or perhaps simply not work when you try to handle window
	  keyboard data in multi-user mode.
	* graphics/nxconsole/nxcon_kdbind.c:  Fixed unmatched sem_wait and sem_post.
	  Fix some conditional compilation that included a few too many lines of code.
	* drivers/input/stmpe811_tsc.c and stmpe811.h:  Add a timeout to catch missed
	  pen up events.  Now the STM3240G-EVAL touchscreen works very smoothly.
	* configs/stm3240g-eval/nxwm/defconfig: Enable support for NxConsole keyboard
	  input. Increasing spacing of icons.
	* configs/stm3240g-eval/nxwm/defconfig: Use a larger font for the calculator.
	* include/nuttx/lcd/ssd1289.h, drivers/lcd/ssd1289.c and .h:  Generic LCD
	  driver for LCDs based on the Solomon Systech SSD1289 LCD driver.  This
	  of this as a template for an LCD driver that will have to be cusomized
	  for your particular LCD hardware.
	* configs/stm32f4discovery/src/up_extmem.c and up_ssd1289.c:  Add support to
	  STM32F4Discovery for than an external, SSD1289-based LCD.
	* configs/stm32f4discovery/nxlines:  Add an STM32F4Discovery configuration
	  to thest the SSD1289-based LCD.
	* configs/stm3240g-eval/src: Add USB GPIO initialization logic needed
	  in board-specific boot logic.
	* configs/stm32f4discovery/src: Add USB GPIO initialization logic needed
	  in board-specific boot logic.
	* drivers/usbdev/pl2303.c and cdcacm.c:  Fix the request size used for sending
	  packets.  It was not using the maximum request size, but instead the previous
	  request size.  As a result, packets get smaller, and smaller, and ...  This
	  is an important USB serial fix.
	* arch/arc/src/stm32_otgfsdev.c: Bug fix: Don't process TXFE if we have
	  already processed an XFRC interrupt.  We have already done what needs
	  to done in that case.
	* arch/arc/src/stm32_otgfsdev.c:  Fixed some status settings in queuing of write
	  messages. Added a "hack" to work around missing TxFIFO empty interrupts.  The
	  hack is basically to poll for space in the TxFIFO instead of of setting up
	  the interrupt.
	* arch/arm/src/stm32/stm32f2* and chip/stm32f2*:  Update all STM32 F2 file so
	  that they are equivalent to F4 files.  This is kind of a maintenance nightmare.
	* configs/stm3220g-eval/: Update existing configurations to the same level
	  as the corresponding STM3240G-EVAL configurations.  This adds FSMC SRAM,
	  touchscreen, and LCD support.
patacongo's avatar
patacongo committed
	* configs/stm3220g-eval/: Add a NxWM configuration for the STM3220G-EVAL.
	* stmpe11*: Fix a massive naming problem.  All references to STMPE11 should be
	  STMPE812.
	* arch/arm/src/stm32/stm32_otgfsdev.c: Need to enabled USB reset interrupt
	  (contributed by Erik Van Der Zalm).
	* sched/sleep.c:  Fix the return value from sleep().  The correct behavior is
	  to return the number of unwaited seconds; the implementation was always
	  returning zero.
	* sched/usleep.c and include/unistd.h:  Was a void function, but should return
	  0 on success.  usleep() needs to check the return value from sigtimedwait().
	  sigtimewait() returns the signal number that awakened it and an error (EAGAIN)
	  if the timeout expired (normal case).
	* sched/sig_timedwait.c:  Fix sigtimedwait() return value.  On a timeout, it was
	  setting the 8-bit si_signo field to -1 and eded up reported successfully awakened
	  by signal 255!  Now detects the timeout and errors -1 with errno == EGAIN.  If
	  sigtimedwait() is awakened by an unblocked signal, but it is not one of the
	  signals in the waited-for set, it will return -1 with errno == EINTR.
	* arch/arm/src/stm32_i2c.c:  Fix STM32 F2 I2C.  It is apparently bug-for-bug
	  compatible with the F4 and needs the same work-around for the missing BTF
	  signal that was needed for the F4.
	* drivers/lcd/ssd1289.*:  Fix some of the initial register settings.
patacongo's avatar
patacongo committed
	* configs/stm32f4discovery/src/up_ssd1289.c: FSMC address bit 16 is used to
	  distinguish command and data.  But FSMC address bits 0-24 correspond to ARM
	  address bits 1-25, se we need to set bit 17 in order generate output on
	  FSMC_A16.
	* arch/arm/src/lm3s/lm3s_epi.h and lm3s_timer.h:  LM3S header files
	  (contributed by Max Neklyudov).
	* arch/arm/src/stm32/stm32_irq.c:  Some of the interrupt priorities were
	  not be initialized (F2 and F4 only).  Thus, the very high numbered
	  interrupts (like UART6) and cause nested interrupts.  This leads to
	  some very difficult to debug crashes.  Fix contributed by Mike Smith.
	* arch/mips/src/pic32/pic32_head.S and pic32_config.h and
	  configs/pic32mx7mmb/include/board.h:  Extended PIC32 device configuration
	  capabilities and change board.h to support unique clocking requirements
	  of the Mikroelektronika PIC32MX7 MMB.  That board now works!
	* configs/pic32mx7mmb/nsh:  Added and verify a NuttShell configuration
	  for the Mikroelektronika PIC32MX7 MMB board.
	* arch/mips/pic32/pic32mx-ethernet.c:  Fix logic that guesses PHY address;
	  the search loop missed the PHY address needed by the Mikroelektronika
	  PIC32MX7 MMB board.
	* configs/pic32mx7mmb/nsh:  Configuration now supports a network by default.
	* configs/pic32mx7mmb/src:  Add support for the MMC/SD slot on board
	  the Mikroelektronika PIC32MX7 MMB board (not working on initial check-in).
	* arch/mips/src/pic32/pic32mx-spi.c:  Add support for very low-level,
	  register access debug output.
	* configs//pic32mx7mmb/include/board.h:  Reduced peripheral clock to
	  4MHz to match other PIC32 configurations.
	* configs/pic32mx7mmb/src/up_nsh.c:  SD card needs to operate in SPI
	  mode 2.
	* configs/pic32mx7mmb/nsh/defconfig:  MMC/SD card support is now
	  enabled by default in the PIC32MX7 MMB board configuration.
	* configs/pic32mx7mmb/nsh/defconfig:  Verified the USB Mass Storage
	  Class (MSC) using MMC/SD card as the logical unit.  Updated the default
	  PIC32MX7 MMB board configuration so that USB and the mass storage class
	  are enabled by default.
	* drivers/lcd/mio283qt2.c and include/nuttx/lcd/mio283qt2.h:  Add generic
	  support for the MIO283QT2 LCD.
	* configs/pic32mx7mmb/src/up_mio283qt2.c:  Add support for the MIO283QT2
	  LCD on the PIC32MX7 MMB board.
patacongo's avatar
patacongo committed
	* configs/pic32mx7mmb/src/up_touchscreen.c:  Add an ADC-based touchscreen
	  driver for the PIC32MX7 MMB board.  Kind of works, but needs more
	  verification and tuning.
	* arch/mips/src/common/up_idle.c:  Strange but important fix.  For some still-
	  unknown reason, interrupts are left in an unhealthy state in the IDLE
	  when the work queue is enabled.  This is partially because some interrupt
	  related logic is not built in that case.  Simply disabling then re-
	  enabling interrupts restores the proper state.
	* graphics/nxglib/lcd/nxglib_filltrapezoid.c and fb/nxglib_filltrapezoid.c:
	  Fix an error when the trapezoid is only 1 line high.  In this case, a
	  divide by zero error would occur.  The fix is to draw the 1 line high
	  trapezoid as a run.
	* drivers/usbdev/pl2303.c:  Fix a cut'n'paste error that snuck into
	  the PL2303 emulation driver several months back.
patacongo's avatar
patacongo committed
6.20 2012-07-12 Gregory Nutt <gnutt@nuttx.org>
patacongo's avatar
patacongo committed

	* configs/stm3210e-eval/src and arch/arm/src/stm32/: Add beginnings of
	  power management support for the STM32 and the STM3210E-EVAL board, in
	  particular.
	* Documentation/NfsHowTo.html:  Add a How-To document for the new NFS
	  client feature.
	* arch/mips/include/pic32mx and arch/mips/src/pic32mx:  Add support for the
	  PIC32MX1 and PIC32MX2 families.
	* configs/mirtoo:  Add a board configuration to support the DTX1-4000L
	  "Mirtoo" module from http://www.dimitech.com/
	* tools/pic32mx:  All of the duplicate directories containing the same
	  same PIC32 tools were move to this single location.
	* configs/mirtoo:  The basic Mirtoo port is now functional.
	* configs/mirtoo/ostest:  Added support for the microchipOpen toolchain
	  (see http://sourceforge.net/projects/microchipopen/).
	* configs/mirtoo/nsh:  Added a NuttShell (NSH) configuration for
	  the Mirtoo module.
	* configs/mirtoo/scripts:  Move all Mirtoo linker scripts to a common
	  directory.
	* arch/mips/src/pic32mx/pic32mx-gpio.c:  All digital inputs were being
	  configured as outputs.  This is a *critical* bug fix and needs to be
	  incorporated by any PIC32 users.
patacongo's avatar
patacongo committed
	* drivers/mtd/sst25.c:  Added a driver for the SST 25 SPI-based FLASH
	  parts.
	* configs/mirtoo/src/up_nsh.c:  The Mirtoo NSH configuration can now
	  mount the SST 25 devices so that it can be used for a FAT file system.
	  There are are, however, some NSH memory usage issues if this configuration
	  enabled now.  Some tuning is still needed.
	* configs/mirtoo/nxffs:  Add an alternative NSH configure for the Mirtoo
	  module for testing the on-module SST 25 chip using the NXFFS file system.
patacongo's avatar
patacongo committed
	* arch/arm/src/lpc43xx and arch/arm/include/lpc43xx:  The NXP LPC43xx port
	  is slowly evolving in these directories.
	* configs/stm3210e-eval/pm:  Add a new configuration for testing STM32 power
	  management.
	* configs/stm3210e-eval/scripts:  Moved all of the duplicate ST3210-EVAL
	  linker scripts into one set of linker scripts at this location.
	* configs/stm3210e-eval/src/up_buttons.c, up_lcd.c, and up_pm.c:  New logic
	  for testing STM32 power management.
	* configs/lincoln60:  Add a configuration to support the Micromint Lincoln60
	  board.
	* configs/ekk-lm3s3b96:  Add a configuration to support the TI/Stellaris
	  EKK-LM3S3B96 development board.  Contributed by Jose Pablo Rojas V.
	* arch/arm/src/lpc43xx/chip:  Created header files for *all* (really)
	  lpc43xx registers and all bit-fields.
	* configs/lpc4330-xplorer:  Added a configuration for the NXP LPC43XX
	  Xplorer board.  This is just to facilitate testing of the LPC43xx
	  port but will, with any luck, become proper board support for that
	  board.
	* arch/arm/src/lm3s/lm3s_syscontrol.c:  Fix an optimization related problem
	  by adding a volatile qualifier to a timing loop.  Oddly, the consequence
	  of the bug is that when debug was off, the LM3S platform too a long time
	  to boot.  It now boots rapidly whether debug is on or off.
	* arch/*/include/limits.h:  Change all values in all limits.h for all
	  architectures to signed decimal; the hex values were not sign extending
	  appropriate in most uses (reported by Lorenz Meier).
patacongo's avatar
patacongo committed
	* arch/arm/src/stm32/chip/stm32f103/7vc_pinmap:  Fix typographical error in
	  two pinmap definition files.
	* lib/net/lib_inetntoa.c:  Fix typographical error that cause compilation
	  failure on platforms that do not support passing of structures as
	  parameters.
	* arch/arm/*/lpc43xx and configs/lpc4330-xplorer and code complete and
	  ready for testing.  Hopefully, verified LPC43xx support will appear
	  in NuttX-6.20.
	* include/nuttx/stdarg.h:  If CONFIG_ARCH_STDARG_H=y is defined, the top-level
	  makefile will copy the generic (GCC-only) stdarg.h header file from
	  include/nuttx/stdarg.h to include/stdarg.h.  So for the architectures
	  that cannot use their GCC toolchain's stdarg.h file, they can use this
	  alternative by defining CONFIG_ARCH_STDARG_H=y.  If CONFIG_ARCH_STDARG_H,
	  is not defined, then the redirecting stdarg.h header file will stay
	  out-of-the-way in include/nuttx/.
	* configs/lpc4330-xplorer/nsh:  Add an NSH configuration for the LPC4330
	  Xplorer board.
patacongo's avatar
patacongo committed
6.21 2012-08-25 Gregory Nutt <gnutt@nuttx.org>
patacongo's avatar
patacongo committed

	* configs/lpc4330-xplorer/up_nsh.c:  Add support for a basic SPIFI block
	  driver for use by NSH.  Does not work!  Crashes on first SPIFI write.
patacongo's avatar
patacongo committed
	* configs/lpc4330-xplorer/*/defconfig: Calibrate delay loops (this is
	  based on the current "slow" 72MHz M4 clock and will need to be
	  re-calibrated when this is increased).
	* configs/stm3220g-eval/include/board.h and configs/stm3240g-eval/include/board.h:
	  The SDIOCLK frequency in the F2 and F4 derives for PLL48CLK and not HCLK
	  so that the SDIOCLK input frequency should always be 48MHz.
	* sched/os_internal.h, sched_setupidlefiles.c, sched_setuptaskfiles.c, and
	  sched_setupidlefiles.c:  Detangle some conditional compilation.  Allow for
	  a perverse configuration that has socket descriptors and streams but no file
	  descriptors (sure, why not?).
	* sched/: Stylistic clean-up of all files.  Some of these files are pretty old
	  and do not follow current NuttX coding standards in detail.
	* fs/: More stylistic file clean-up.
patacongo's avatar
patacongo committed
	* mm/: More stylistic file clean-up.
	* drivers/ and drivers/serial/: More stylistic file clean-up.
	* arch/arm/src/lpc43xx/lpc43_clockconfig.c:  Fix PLL1 bit manipulation logic.
	  Critical bugfix! This would often cause the LPC43xx to fail to boot.