Newer
Older
patacongo
committed
stdint.h. Use type bool and {true, false} from stdbool. This effected
most of the files in the system! Almost all configurations have been
re-built and many have been re-verified in order to get confidence in
these changes.
* graphics/ and examples/nx - Fix numerous build errors that have been
introduced lately. NXGL has suffered some bit-rot from not being used
in some of the most recent ports.
* The misc/pascal NuttX add-on package has been updated to use the new
standard types from stdint.h and stdbool.h and re-integrated with NuttX.
The released pascal-2.0 will be the first version that contains the
compatible changes.
* arch/arm/src/lm3s/lm3s_ethernet.c - Fixed an important bug in the LM3S
ethernet driver: If full packet is received, the packet-too-big check
will fail because it needs to subtract 6 from the packet size (to
account for the 2-byte packet length and the 4-byte packet FCS in the
FIFO).
* net/accept.c - Fixed a bad assertion (only happens when debug is enabled).
* net/send.c net/uip/uip_tcpseqno.c - Fixed a critical error in the TCP/IP
logic. The NuttX port of uIP imcludes logic to send data ahead without
waiting for ACKs from the recipient; this greatly improves throughput.
However, the packet sequence number was not being updated correctly and,
as a result, packets were not be ACKed by the recipient and transfers
would sometimes stall. This is a very important bug fix (in fact, I
don't understand how TCP/IP worked at all without this fix???)
* include/nuttx/arch.h and arch/*/common/up_udelay.c - Change argument
of up_udelay() to type useconds_t to avoid warnings when sizeof(int)
is 16-bits.
* drivers/mmcsd/* - Add casts in constant expressions to avoid warnings
* arch/arm/src/lpc313x and arch/arm/include/lpc313x: Added framework
to support the NXP LPC3131.
* Add configs/ea3131. The LPC3131 port for the Embedded Artist EA3131
(LPC3131) is code complete and waiting for me to get hardware in
hand.
* arch/arm/src/sam3u, arch/arm/include/sam3u, and configs/sam3u-ek -
Added the basic framework needed to begin a port for the SAM3U-EK
development board.
* lib/lib_crc32.c: Add CRC32 logic by Gary S. Brown to lib/. This is
the larger (but faster) table look-up version of the CRC32 algorithm.
* confgs/ea3131/tools: Added a tool to create a image suitable for
use with the LPC313x bootloader.
* configs/sam3u-3k/ostest - Completed verification of the basic NuttX
OS test for the SAM3U.
* arch/arm/src/common/up_createstack - stack was always been cleared
when it was allocated. This is a good feature for monitoring the
stack during debug, but really hurts thread start-up performance.
Clearing is now done if CONFIG_DEBUG=y only. Changes was only made
for arm, but really should be made for all architectures.
* configs/sam3u/nsh - Added NSH configuration for SAM3U
* arch/arm/src/sam3u/sam3u_pio.c - Fix an address calculation error
that caused ports B & C to get mapped to the PIOA base address.
This is an important bugfix! (a patch is available)
* arch/arm/src/lpc313x/lpc313x_boot.c - Fix an error in the vector
initialization was causing a memory fault.
* lib/lib_strtod.c - Add strtod()
* lpc3131/ea3131 - Several bring fixes submitted by David Hewson. The
lpc3131 is almost there! Thanks David!
* arch/arm/src/arm/up_head.S - Corrected backward conditional compilation
that selects if vectors are located at 0x0000:0000 or 0xffff:f000.
This fixes the last show stopper bug in the lpc313x bring-up.
* configs/ea3131/nsh - Added a NuttShell (NSH) configuration for the
EA3131.
* arch/arm/src/lpc313x/lpc313x_usbdev.c - USB driver for the LPC313x
contributed by David Hewson.
* configs/ea3131/src/up_ubstrgc.c, configs/ea3131/usbserial,
configs/ea3131/usbstorage - USB storage and USB serial example support
contributed by David Hewson.
* Several important compilation error fixes in lpc313x and (dualspeed) USB
code also contributed by David Hewson.
* arch/arm/src/sam3u/sam3u_dmac.c - DMA support for the AT90SAM3U.
* arch/arm/src/sam3u/sam3u_hsmci.c - SD memory card support for AT90SAM3U
(Neither the DMA nor the HSMCI driver are functional on the initial checkin).
* drivers/usbdev - Several important fixes to the USB mass storage driver
submitted by David Hewson.
* configs/olimex-lpc2378, arch/arm/include/lpc2378, and arch/arm/src/lpc2378 -
Basic port of the NXP 2378 on the Olimex board contributed by
Rommel Marcelo.
* arch/arm/src/sam3u/sam3u_internal.h - Fixed a critical bug in the AT91SAM3U
PIO decoding. No PIOs greater than 15 could be used on any port! Obviously,
no one has been using this port.
* include/nuttx/lcd.h - Defines an LCD interface.
* graphics/nxglib/fb and lcd - Support LCD and framebuffer rasterizers for NX.
* configs/sam3u-ek/src/up_lcd.c - LCD driver for LCD on SAM3U-EK development
board.
* configs/sam3u-ek/nx - NX graphics configuration for the SAM3U-EK
5.5 2010-05-09 Gregory Nutt <spudmonkey@racsa.co.cr>
* drivers/net/enc28j60.c - Microchip ENC28J60 SPI ethernet chip driver.
(untested on original check-in).
* configs/olimex-str7p11/nettest - examples/nettest configuration using
the ENC28J60 driver on the Olimex STMicro STR-P711.
(unverified on original check-in)
* configs/olimex-str7p11/src/up_enc28j60.c - Add ENC28J60 initialization
logic.
* configs/olimex-str7p11/src/up_spi.c - Fixed some bugs; added support
for ENC28J60.
* arch/arm/src/str7x/str7x_xti.c - Add basic XTI support (external
interrupts).
* arch/arm/src/lm3s and arch/arm/include/lm3s - Add definitions for
LM3S6965
* configs/lm3s6965-ek - Add configuration for Stellaris LM3S6965
Evaluation Kit (including basic examples/ostest configuration)
point values if you select CONFIG_LIBC_FLOATINGPOINT in your
configuration file. Contributed by Yolande Cates. NOTE: these
floating point operations have not been well tested and may not
be portable to all floating point implementations.
* configs/lm3s6965-ek/nsh - Added NuttShell (NSH) configuration for
the LM3S6965 Evaluation Kit. Includes both serial and telnet
interfaces.
* net/net_close.c - Correct a UDP reference counting error
* drivers/lcd/p14201.c - Driver for RiT P14201 series 128x96 4-bit OLED.
* configs/lm3s6965-ek/nx - NX graphics configuration for the LM3S6965
Ethernet Evaluation Kit.
* graphics/ - Numerous fixes to get the P14201 4-bpp grayscale display
working (there may still be some minor issues .. see the TODO list).
* arch/arm/include/lpc17xx and arch/arm/src/lpc17xxx - Began port for
NXP LPC1768. As of the 5.6 release, there is a complete set of
LPC17xx header files defining all bits in all LPC17xx registers,
but little else (I still do not have hardware in hand).
* drivers/mtd/m25px.c - Add support for M25P1 flash part (See NOTE)
* include/nuttx/i2c.h - Extended I2C interface definition to handle
multiple transfers (See NOTE).
* include/nuttx/usbdev.h - Corrected an important macro definition
needed to correctly handle USB null packet transfers (See NOTE).
* arch/arm/src/lpc313x - New drivers: I2C and SPI. Plus several
important LPC313x USB bug fixes (See NOTE).
NOTE: Contributed by David Hewson.
* configs/nucleus2g - Add ostest configuration for the Nucleus 2G
LPC1768 board from 2G Engineering (http://www.2g-eng.com/)
* arch/arm/src/lpc17xx - Added basic LPC17xx boot-up logic,
interrupt handling, and GPIO configuration.
* configs/nucleus2g/ostest - Completed bring-up of LPC1768 on
the Nucleus2G board using the examples/ostest
* configs/nucleus2g/nsh - Added and verified a NuttShell (NSH)
configuration for the LPC1768 on the Nucleus2G board.
* configs/nucleus2g/src/up_nsh.c and up_ssp.c - Add support
for SPI-based MMC/SD cards and integrate into the NSH example.
* arch/arm/src/lm3s/lm3s_vectors.S - Correct vectors for GPIOC & D
interrupts.
* arch/arm/src/lpc17xx/lp17_clockconfig.c - Power was not being
provided to GPIO module. This is a critical bugfix!
* arch/arm/src/lpc17xx/lpc17_serial.c - Improved logic to handle
missed TX interrupts.
* arch/arm/src/lpc17xx/lpc17_ssp.c - Fix a hard fault during SSP
initialization.
* configs/nucleus2g/src/up_led.c - Change how LEDs are controlled
so that they can be used both for NuttX instrumentation and
by application software.
* include/net/uip/igmp.h and uip-igmp.h - Add header files ini
preparation for NuttX IGMP support
* net/uip/uip_igmp*.c - Add IGMP support (untested on initial
checkin).
* examples/igmp - Add a trivial test for IGMP (much more is needed)
* configs/nucleus2g/usbserial and usbstorage - Add USB configurations
for testing purposes.
* arch/arm/src/common/up_internal.h, cortexm3/up_assert.c,
*/*_vectors.S - Correct compilations errors when CONFIG_ARCH_INTERRUPTSTACK
is enabled (feature still not tested)
* examples/nsh/nsh_telnetd.c - Fix compilation errors that happen
when both DHCPC and TELNETD are enabled in the Nuttshell.
* graphics/nxglib/fb/nxglib_moverectangle.c - Fix a logic error
that caused an uninitialized variable warning. I still don't
have a test to prove that the changes are correct.
* configs/olimex-lpc2378 - Add support for the CodeSourcery toolchain
under Linux (contributed by Alan Carvalho de Assis).
* arch/arm/src/lpc17xx/lpc17_gpio.c - Fix an important GPIO configuration
bug: When attempting to set no pull-up or pull-down (floating),
it would, instead, select pull-down.
* arch/arm/src/lm3s/lm3s_gpioirq.c - Fix warning for returning a value
from functions returning void (contributed by Tiago Maluta).
* examples/uip/main.c - if DHCPC is selected, this example now shows
the assigned IP address.
* arch/arm/src/lm3s and arch/arm/include/lm3s - Definitions for the
TI LM3S9B96 contributed by Tiago Maluta.
* arch/arm/src/lm3s/lm3s_gioirq.c - Fix a logic error in the address
table lookup.
* arch/arm/src/lm3s/lm3s_gioirq.c - Also needs to enable the global
* arch/arm/src/lm3s/lm3s_internal.h and lm3s_gpio.c - Fixed the encoding
of GPIO port number that limited support for GPIO ports to 8
* sched/pg_*.c and *.c and include/nuttx/page.h - Implemented the
common, core logic for on-demand paging. See
http://www.nuttx.org/NuttXDemandPaging.html for details.
* drivers/usbdev/usbdev_serial.c - Correct compilation errors that
occur if CONFIG_USBDEV_DUALSPEED is selected.
* configs/ea3131/pgnsh - Add an NSH configuration with on-demand paging
enabled. This is not expected to be a functionality configuration (at
least not yet); it was created in order to debug the on-demand paging
feature.
* configs/ntosd-dm320/*/Make.defs - Codesourcery and devkitARM toolchains
now supported for the Neuros OSD.
* configs/ntosd-dm320 and arch/arm/src/dm320 - Add support for the
Neuros production OSD (changes contributed by bf.nuttx).
5.10 2010-09-07 Gregory Nutt <spudmonkey@racsa.co.cr>
* configs/ea3131/locked - Create logic to support a two pass build
process: The first pass forces critical logic into the locked text
region, the second pass builds the NuttX executable more-or-less as
normal.
* Makefile, arch/arm/src/Makefile, configs/ea3131 - Add logic to
support a two-pass final link. This logic is only in place in
the arch/arm/src/Makefile for now.
* arch/arm/src/lpc17xx/lpc17_internal.h - Add missing parentheses in
macros definitions (patch submitted by Tiago Maluta).
* Documents/NuttxPortingGuide.html, configs/README.txt, etc. -
Replaced CONFIG_EXAMPLE with CONFIG_APP_DIR (see documents for
desciption). This allows NuttX application code to be built
outside of the examples/ directory.
For people who have their own configurations and/or Makefiles,
you will need to make a couple of changes:
CONFIG_APP_DIR=examples/foobar in all of the configuration
files.
- Replace any occurrences of examples/$(CONFIG_EXAMPLE) with
$(CONFIG_APP_DIR)
- Replace any occurrences of lib$(CONFIG_EXAMPLE)$(LIBEXT)
with libapp$(LIBEXT) in your Makefiles.
- Check any other occurrences of CONFIG_EXAMPLE.
* arch/arm/src/lpc313x/lpc313x_spi.c - Fix compilation error when
when CONFIG_DEBUG is enabled.
* arch/arm/src/lm3s and arch/arm/include/lm3s - Support for the
lm3s8962 contributed by Larry Arnold.
* configs/lm328962-ek - Support for the TI/Stellaris EKC-LM3S8962
board (also contributed by Larry Arnold).
* arch/arm/src/lpc313x/lpc313x_boot.c - The call to lpc313x_boardinitialized()
should not be conditioned on CONFIG_ARCH_LEDs being defined!
* arch/arm/src/lpc313x/ - APB0 and APB1 cannot lie in different
sections; they are too close together.
* arch/arm/src/lpc313x/lpc13x_boot.c - Resetting all of the clocking
had a side effect of wiping out the first 6 words of memory where the
interrupt vectors are located (and also not resetting the fractional
dividers). This is not usually noticeable because the IRQ vectors
are after this point, but really causes problems if you want to handle
data and prefectch aborts which are within this zeroed region.
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
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/at32uc3 and arch/avr/src/at32uc3 - Add support
for the AVR32 UC3A/B family of AVR32 MCUs.
* confgs/avr32dev1 - Add support for the Atmel AVR32DEV1 board featuring
the AT32UC3B0256 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().
* 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-11-09 Gregory Nutt <spudmonkey@racsa.co.cr>
* lib/lib_strnlen.c -- Added POSIX 2008 strnlen() function. Contributed
by Michael Hrabanek.
* Fix wild, consistent naming error. For some reason, I called the at32uc3*
parts at91uc* everywhere. Fixed by changing lots of files and directories.
* configs/avr32dev1/ostest - The AVR32 port now successfully passes the
examples/ostest. We have a good AVR32 port!
* configs/avr32dev1/nsh - Added a configuration to support the NuttShell
(NSH). As of this writing, here is a problem receiving serial data (this
is, very likely, my hardware setup).
* lib/lib_open.c - Fix an error in fdopen when a valid file desciptor does
not refer to an open file.
* configs/olimex-lpc1766stk - Add support for the Olimex LPC1766-STK
development board. The OS test and NSH configurations (only) have been
5.14 2010-11-27 Gregory Nutt <spudmonkey@racsa.co.cr>
* configs/olimex-lpc1766stk/nettest - Add examples/nettest configuration to
verify the LPC17xx ethernet driver currently under development.
* arch/arm/src/lpc17xx/lpc17xx_ethernet.c/.h - Began development of
the LPC17xx Ethernet driver. Driver in CVS functional after 2010-11-23.
* sched/timer_settime.c - Fix an error in set-up of a one-shot POSIX timer. It
was using the repititive timer value (which is zero in the one-shot case),
always resulting in a 10Ms timer! Found and fixed by Wilton Tong.
* arch/arm/src/lpc17xx/lpc17_vector.S, stm32/stm32_vector.S, lm3s/lm3s_vector.S,
sam3u/sam3u_vector.S -- Fixed a hard fault problem that can occur if certain
types of interrupts are pending at the time another interrupt returns
(SYSTICK). This has not been verified on all plaforms, but is a critical
fixed that is needed by all Cortex-M3 NuttX users.
* configs/olimex-lpc1766stk/thttpd - Add a THTTPD configuration for the
* net/uip/uip_tcpappsend.c - Correct an important logic bug in some uIP state
data the is used to manage retransmissions. The uIP logic was incompatible
with the retransmission logic of net/send.c in one place. The final error
was that the final packet in a sequence of packets was too large! In the
THTTPD example, this would leave some garbage at the bottom of the display
(or worse). I don't know why I haven't see this bug before???
* net/uip/uip_tcpinput.c -- The change to uip_tcpappsend.c unmasked an
additional error in the TCP sequence number handling. This sympom was that
the send() function would hang with outstanding, unacknowledged data (with
no re-transmit requests). The was due to differences in sequence number
handling in send() and in uip_tcpinput.c; uip_tcpinput.c thought (incorrectly)
that all of the bytes were acknowledged; send.c knew that they were not.
5.15 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
* net/uip/uip_tcpaddsend.c and net/send.c -- Another place where the TCP sequence
number problem "fixed" in 5.14 might occur.
* net/send.c -- Check if the destination IP address is in the ARP table. If
not, then don't consider the packet sent. It won't be, an ARP packet will go
out instead.
* arch/arm/src/lpc17xx/lpc17_emacram.h and lpc17_allocateheap.c -- The Ethernet
logic was using all of AHB SRAM Bank0 for Ethernet packet buffers (16Kb). An
option was added to limit the amount of SRAM used for packet buffering and to
re-use any extra Bank0 memory for heap. configs/olimex-lpc1766stk/nettest
now uses only 8Kb at the beginning of Bank0; the 8Kb at the end of Bank0 is
included in the heap
* arch/arm/src/lpc17xx/lpc17_ssp.c -- Fix compilation errors when SSP1 is
selected.
* configs/olimex-lpc1766stk/nsh -- Enable network and SD/MMC card support in
NSH. Networking and telnetd interface functional. Still testing SPI-based
SD/MMC.
* examples/nsh/nsh_netinit.c -- Fix NSH bug. If CONFIG_NET is selected, but
CONFIG_EXAMPLES_NSH_TELNETD is not selected, then the network is never
initialized and bad things happen if you try to ping.
* drivers/lcd -- Add header files for the Phillips PCF8833 LCD controller and
for the Epson S1D15G10 LCD controller. A driver for the Nokia 6100 LCD is
coming.
* include/nuttx/spi.h and almost all other SPI files -- Added an optional
cmddata() method to the SPI interface. Some devices require and additional
out-of-band bit to specify if the next word sent to the device is a command
or data. This is typical, for example, in "9-bit" displays where the 9th bit
is the CMD/DATA bit. The cmddata method provides selection of command or data.
* drivers/lcd/p14201.c -- Now uses the cmddata() method of the SPI interface.
* arch/arm/src/lpc17xx/lpc17_usbdev.c -- LPC17xx USB driver now appears to
to be fully functional. examples/usbstorage configuration verified (the
examples/usbserial configuration is untested).
* drivers/usbdev/usbserial.c and usbstorage.c -- All USB class drivers need
to call DEV_CONNECT() when they are ready to be enumerated. That is,
(1) initially when bound to the USB driver, and (2) after a USB reset.
* drivers/lcd/nokia6100.c -- A driver for the Nokia 6100 LCD.
* configs/olimex-lpc1766stk/nx -- A NX graphics configuration for the Olimex
LPC1766-STK board using the Nokia 6100 LCD driver.
* include/nuttx/spi.h -- the SPI_SETBITS macro was calling the setmode method.
This is a very important bug-fix in some usages.