358 lines
13 KiB
Groff
358 lines
13 KiB
Groff
|
NuttX-7.4
|
||
|
---------
|
||
|
|
||
|
The 104th release of NuttX, Version 7.4, was made on August 15, 2014,
|
||
|
and is available for download from the SourceForge website. Note
|
||
|
that release consists of two tarballs: nuttx-7.4.tar.gz and
|
||
|
apps-7.4.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
||
|
file for build information).
|
||
|
|
||
|
Additional new features and extended functionality:
|
||
|
|
||
|
* Core OS:
|
||
|
|
||
|
- Beginnings of a crypto/ subsystem from Max Neklyudov
|
||
|
- Tickless operation: NuttX now supports a mode with no periodic
|
||
|
timer interrupts. Rather, timed events are handle via an interval
|
||
|
timer. This (1) lowers the rate of interrupt processing to timer
|
||
|
events, (2) gives much high timing resolution, and (3) allows lower
|
||
|
power modes of operation where the CPU is not constantly being
|
||
|
interrupted by the timer.
|
||
|
- Restructured the OS files under sched/ to better support the already
|
||
|
modular nature of the RTOS.
|
||
|
|
||
|
* Networking
|
||
|
|
||
|
- Substantial directory and header file reorganization and renaming to
|
||
|
make the NuttX networking implementation more modular.
|
||
|
- Add network device ioctl to access PHY registers. From Daniel Lazlo
|
||
|
Sitzer
|
||
|
|
||
|
* Binary Loader:
|
||
|
|
||
|
- Various changes associated with symbol tables from Pelle Windestam.
|
||
|
|
||
|
* Graphics:
|
||
|
|
||
|
- colorcmp(): New utility to compare two colors.
|
||
|
- The initial background color is now configurable. Includes logic to
|
||
|
eliminates multiple background updates to get the right color.
|
||
|
- Minor configuration changes to handle mouse X/Y and touchscreen
|
||
|
X/Y differently.
|
||
|
|
||
|
* File System/Block Drivers:
|
||
|
|
||
|
- SmartFS: Increase some variables from uint16_t to uint32_t to handle
|
||
|
larger device sizes. From Ken Pettit.
|
||
|
- Add configurable AES encryption support to the block-to-character
|
||
|
(BCH) driver. This allows any block device to be accessed as an
|
||
|
encrypted character device. From Max Nekludov
|
||
|
- Add an MTD layer that will add read-ahead or write buffering to any
|
||
|
MTD driver (incomplete).
|
||
|
- Automounter: Add support for an auto-mounter that will automatically
|
||
|
mount and unmount a file system a media is inserted and removed
|
||
|
|
||
|
* Audio/Audio Drivers
|
||
|
|
||
|
- WM8904 audio CODEC driver.
|
||
|
- PCM .WAV file decoder. Fast forward implemented with sub-sampling
|
||
|
(currently no rewind support).
|
||
|
- Add a NULL audio device that can be used to simply unit-level testing
|
||
|
of audio decoders.
|
||
|
- Audio subsystem now supports interfaces for fast-forward and rewind
|
||
|
needed by CMediaPlayer; add hooks for equalizer settings needed by
|
||
|
the WM8904 CODEC.
|
||
|
|
||
|
* Other Common Drivers:
|
||
|
|
||
|
- MTD: Extend erase block size to 18-bits in order (decrease block
|
||
|
size to 14-bits) to handle parts with large erase blocks. From Kosma
|
||
|
Moczek
|
||
|
- maxTouch: Add support for the Atmel maXTouch touchscreen controller.
|
||
|
|
||
|
* Host Simulation:
|
||
|
|
||
|
- Provides the timers needed to support the Tickless mode of operation.
|
||
|
|
||
|
* Atmel SAM4C:
|
||
|
|
||
|
- Add SAM4CM IPC register header file. From Max Neklyudov
|
||
|
- Various fixes PMC and clock configuration for the SAM4CM port from
|
||
|
Max Neklyudov
|
||
|
|
||
|
* Atmel SAM4E/4S Drivers:
|
||
|
|
||
|
- SAM4 AES driver. Contributed by Max Neklyudov
|
||
|
|
||
|
* Atmel SAMA5:
|
||
|
|
||
|
- Add logic to redirect all SAMA5D4 interrupts to the AIC
|
||
|
- Add a configuration option to reserve DRAM for a framebuffer when
|
||
|
executing out of DRAM. This optional was available before when
|
||
|
executing out of NOR, but needs to work a little differently in
|
||
|
this case.
|
||
|
- Add SAMA5 slow (32.768KHz) clock support.
|
||
|
- Add support for the ARM L2CC-PL310 L2 cache. The system runs with
|
||
|
L2CC cache enabled but there is some issues still with the LCD DMA;
|
||
|
I suspect that the memory timing configuration for L2CC needs to
|
||
|
be tuned.
|
||
|
- Provides the timers needed to support the Tickless mode of operation.
|
||
|
|
||
|
* Atmel SAMA5 Drivers:
|
||
|
|
||
|
- XDMAC-based HSCMI driver for the SAMA5D4
|
||
|
- Adapt the SAMA5D3 LCDC driver to work with the SAMA5D4 which has
|
||
|
no hardware cursor.
|
||
|
- PIO: Add a new interface sam_pio_forceclk() that can be used to
|
||
|
force PIO clocking on. I am afraid I was too conservative with
|
||
|
PIO clocking in the initial design; this is the price.
|
||
|
- TWI: Now supports the up_i2creset() method.
|
||
|
- TWI: Use sam_pio_forceclk() so that we can read the current state
|
||
|
of an open-drain output in the TWI reset logic.
|
||
|
- SSC: SCC Frame Synch Delay and Start Delay are now configurable.
|
||
|
- PCK: Add the slow clock and the main clocks as options for the
|
||
|
PCK configuration.
|
||
|
- Timer/Counter: Can now handle non-constant BOARD_MCK_FREQUENCY. Also
|
||
|
now supports methods to attach client interrupt handlers
|
||
|
- One shot and free-running timers. These are wrappers around the low
|
||
|
level timer/counter logic to provide one-shot and free-running
|
||
|
timers. These were developed to support the Tickless operation, but
|
||
|
can be used for any purpose.
|
||
|
|
||
|
* Atmel SAMA5 Board Support:
|
||
|
|
||
|
- Add a boot loader that runs from ISRAM and loads an Intel HEX file
|
||
|
into DRAM.
|
||
|
- Add a configuration that will load a bootloader into AT25 Serial
|
||
|
FLASH
|
||
|
- SAMA5D4-EK NSH configuration supports many more features: RTC, HSCMI
|
||
|
card detection, maXTouch touchscreen, TM7000 LCD, the command line
|
||
|
media player (currently using the NULL audio device), automounter,
|
||
|
and others.
|
||
|
- SAMA5D4-EK: Add an NxWM configuration using the TM7000 LCD with
|
||
|
the maXTouch multi-touch touchscreen.
|
||
|
- SAMA5D4-EK NxWM: Uses new, larger icons in configuration instead of
|
||
|
scaling.
|
||
|
- SAMA5D4-EK NxWM: The NxPlayer and audio system are now enabled in
|
||
|
the default configuration (but currently using the NULL audio
|
||
|
device). The automounter is used to automatically mount media
|
||
|
on an SD card.
|
||
|
- SAMA5D3x-EK: Add a configuration to support the command line
|
||
|
NxPlayer and to verify the WM8904 CODEC driver.
|
||
|
|
||
|
* STMicro STM32:
|
||
|
|
||
|
- Add support for the STM32F103RC and RD. From Kosma Moczek
|
||
|
- Add a procfs entry to show the state of the CCM heap usage.
|
||
|
From Pelle Winderstam
|
||
|
|
||
|
* STMicro STM32 Drivers:
|
||
|
|
||
|
- Unconfigure GPIO pins when closing a serial port to prevent back
|
||
|
effects from back-powering on the TX pin. From Kosma Moczek
|
||
|
|
||
|
* NXP LPC17xx Drivers:
|
||
|
|
||
|
- ADC: Added burstmode ADC conversion mode, with CONFIG_ADC_BURSTMODE
|
||
|
option in Kconfig. From Max
|
||
|
- Ethernet: Added option to use the kernel worker thread to do most of
|
||
|
the workload with CONFIG_NET_WORKER_THREAD option in Kconfig. From Max
|
||
|
- Ethernet: Critical bugfix: From time to time (after some hours) the
|
||
|
Ethernet receiver would lose one receive interrupt and the IP stack
|
||
|
never recover because there is no receive watchdog as the transmit
|
||
|
watchdog. From Max
|
||
|
|
||
|
* NXP LPC17xx Boards:
|
||
|
|
||
|
- mbed: Port ADC, DAC, and PWM logic from the configs/zkit-arm-1769.
|
||
|
From Max
|
||
|
- mbed: Eliminated a problem with PHY DP83848C : it doesn't need a
|
||
|
specific initialization on mbed. From Max
|
||
|
|
||
|
* Library:
|
||
|
|
||
|
- Adds support for localtime. From Max Neklyudov
|
||
|
|
||
|
* Configuration/Build System:
|
||
|
|
||
|
- Make variable definitions 'static const' when possible to save RAM
|
||
|
usage. From Kosma Moczek
|
||
|
|
||
|
* Applications:
|
||
|
|
||
|
- system/mdio: New PHY tool from Daniel Lazlo Sizter.
|
||
|
- NSH: Networking logic modified to handler the case of SLIP
|
||
|
transport. From Max Neklyudov.
|
||
|
- NSH: Add a configuration to use a USB keyboard for the stdin
|
||
|
device.
|
||
|
- NSH: Software assigned MAC address is now configurable. From Lazlo.
|
||
|
- NSH: Also add an option to let platform-specific logic select the
|
||
|
MAC address.
|
||
|
- NSH: There is now a configuration option that will bring up the
|
||
|
network on an separate thread. Since the network bring-up is
|
||
|
asynchronous, there are no serial console start-up delays due
|
||
|
to the network negotiation time.
|
||
|
- NxPlayer: Changes to integrate with Ken's NxWM::CMediaPlayer.
|
||
|
- NxPlayer: Add interfaces for fast-forward and rewind needed by
|
||
|
CMediaPlayer; add interface for equalizer settings needed by the
|
||
|
WM8904.
|
||
|
- NxPlayer: Supports new way of identifying the end of the audio
|
||
|
stream (see the Audio section above).
|
||
|
- Sudoku: Add a sudoku game.
|
||
|
|
||
|
Bugfixes. Only the most critical bugfixes are listed here (see the ChangeLog for the complete list of bugfixes and for additional, more detailed bugfix information):
|
||
|
|
||
|
* Graphics:
|
||
|
|
||
|
- NxConsole: Fix scrolling for the case of the framebuffer device. In
|
||
|
this case, the logic for clearing the vacated region at the bottom
|
||
|
was missing so garbage would scroll up from the last, uncleared
|
||
|
line.
|
||
|
|
||
|
* Networking:
|
||
|
|
||
|
- Important fix to the read-ahead buffer queue management: Consumed
|
||
|
bytes were being trimmed from the head of the queue, but the queue
|
||
|
head itself was not being updated. From Rony XLN.
|
||
|
- Fix an error in SLIP escaping. From Max Neklyudov
|
||
|
|
||
|
* Network Utilities:
|
||
|
|
||
|
- Fix an include file ordering problem when CONFIG_NET_STATISTICS=y.
|
||
|
- Move statistics from uip.h to new netstats.h to remove a circular
|
||
|
inclusion problem
|
||
|
- Various fixes for networking and tiny webserver from Max
|
||
|
- webclient: Fix to offset calculation from Rony Xln. Prevents 0x0a
|
||
|
at the beginning of lines.
|
||
|
- webserver: Fix some configuration usage issues. From Max.
|
||
|
- webserver: Missing logic to close sockets on loop termination.
|
||
|
|
||
|
* File System / Block Drivers:
|
||
|
|
||
|
- SmartFS: Fix for a bug that would show up if CONFIG_MTD_BYTE_WRITE
|
||
|
was not selected and the SMART sector size was larger than the MTD
|
||
|
device's block size (like it would be if using SMARTFS on larger
|
||
|
flash devices). From Ken Pettit.
|
||
|
|
||
|
* Audio:
|
||
|
|
||
|
- Change how the end of the audio stream is detected by the leaf audio
|
||
|
component. This used to be done by looking for the first partial
|
||
|
buffer. That does not work with the in-place sub-sampling performed
|
||
|
by the PCM decoder: That always reduces the size of the buffer so
|
||
|
that all buffers only partially filled by the time they get to the
|
||
|
leaf. Now, a flag is set in the audio buffer flags set to indicate
|
||
|
the final buffer in the stream.
|
||
|
|
||
|
* Common Drivers:
|
||
|
|
||
|
- RAMLOG putc() method needs to set the errno and return EOF on a
|
||
|
failure.
|
||
|
- Add missing configuration option to select the MAX11802 touchscreen
|
||
|
controller. From Petteri Aimonen
|
||
|
|
||
|
* Atmel SAMA5D3/4:
|
||
|
|
||
|
- Fix logic in conversion of physical and virtual DRAM addresses when
|
||
|
running out of DRAM. This is an important bug fix for the SAMA5D3
|
||
|
and 4 when running out of DRAM .
|
||
|
- Critical SAMA5D3 and 4 bug fix: PIO clocking must be enabled for
|
||
|
all input pins or else the value that is read never changes.
|
||
|
|
||
|
* Atmel SAMA5D3/4 Drivers:
|
||
|
|
||
|
- OHCI: Fix an error in a DEBUGASSERT statement. Caused an
|
||
|
assertion to fire inappropriately when a low- or full-speed device
|
||
|
was removed and CONFIG_DEBUG=y
|
||
|
- OHCI: Pointers to allocated port values were not being
|
||
|
nullified after being deallocated. This caused some assertions
|
||
|
to fire when debug was enabled
|
||
|
- SSC: Needs to account for data offset in audio buffer
|
||
|
|
||
|
* ARMv7-M:
|
||
|
|
||
|
- Correct the initial value of the BASEPRI register. This was
|
||
|
apparently never being initialized! From Max
|
||
|
|
||
|
* STMicro STM32 Drivers:
|
||
|
|
||
|
- I2C: Fix missing configuration of GPIO pins in I2C driver. Fix
|
||
|
from Alex D.
|
||
|
- STM32 OTGFS device: Various changes to try to reduce that amount of
|
||
|
time in interrupts handles and with interrupts disabled. From
|
||
|
Petteri Aimonen
|
||
|
|
||
|
* Atmel SAM3/4 Drivers:
|
||
|
|
||
|
- Ethernet: Wrong bits being cleared before OR-ing in new settings.
|
||
|
- Ethernet: Fix an error in the function that determines the number
|
||
|
of free TX descriptors. This is an important bugfix on busy
|
||
|
networks.
|
||
|
- I2C: Test for read or write operation was reversed. How could
|
||
|
this have worked before?
|
||
|
|
||
|
* Atmel SAM3/4 Boards:
|
||
|
|
||
|
- SAM4S Xplained-Pro: Correct description of LEDs and usage. From
|
||
|
Kosma Moczek
|
||
|
|
||
|
* Atmel SAMA5:
|
||
|
|
||
|
- PIO: Fix definitions that could disable PIO interrupt support if only
|
||
|
PIOE interrupts were enabled
|
||
|
- PIO: Macro SAM_PION_VBASE is not define-able for the SAMA5D4 and must
|
||
|
be replaced with a table lookup.
|
||
|
- PIO: Fix a typo in Schmitt trigger configuration; Configure pin as a
|
||
|
vanilla input first so that final pin configuration is more read-able
|
||
|
(i.e., easier to debug)
|
||
|
- PIO: Logic for Schmitt trigger selection backward
|
||
|
- SAMA5D4: Correct system timer frequency. Input clock is MCK/2, not MCK.
|
||
|
|
||
|
* Atmel SAMA5 Drivers:
|
||
|
|
||
|
- Ethernet: Wrong bits being cleared before OR-ing in new settings.
|
||
|
- Ethernet: Fix an error in the function that determines the number
|
||
|
of free TX descriptors. This is an important bugfix on busy
|
||
|
networks.
|
||
|
- HSMCI: The 8-byte SCR transfer was failing silently with the DMA
|
||
|
transfer, leaving the SD card in single bit mode. Fixed by adding
|
||
|
a non-DMA read transfer mode.
|
||
|
- HSMCI: Fix a problem on card insertion/removal callback handling.
|
||
|
Interrupts were being disable so that the callbacks occurred with
|
||
|
interrupts disabled. This resulted in loss of some interrupts and
|
||
|
some not-so-good behaviors. The solution is to perform all
|
||
|
callbacks on the work thread unconditionally
|
||
|
|
||
|
* Atmel SAMA5 Boards:
|
||
|
|
||
|
- PIO: Fix some cloned errors in SAM GPIO interrupt setup
|
||
|
|
||
|
* NXP LPC17xx Drivers:
|
||
|
|
||
|
- Ethernet: Comment out an assertion that is reported to fire
|
||
|
inappropriately. From Max
|
||
|
|
||
|
* Library:
|
||
|
|
||
|
- stdint.h: Correct naming of [U]INT_LEASTn_{MAX|MIN} and
|
||
|
[U]INT_FASTn{MAX|MIN}. From Kosma Moczek
|
||
|
- unistd.h: POSIX definitions should be defined to a value. rom Kosma
|
||
|
Moczek
|
||
|
- Fixes associated with rint() and related interfaces in the math
|
||
|
library.
|
||
|
|
||
|
* Configuration/Build System:
|
||
|
|
||
|
- NAME_MAX not available on SunOS; use FILENAME_MAX or MAXNAMELEN.
|
||
|
Noted by Douglas Beattie
|
||
|
|
||
|
* Applications:
|
||
|
|
||
|
- NSH: if # appears on line, need to comment ignore additional
|
||
|
commands on the line
|
||
|
- NxPlayer: Check for file read errors and end-of-file with zero
|
||
|
bytes read. Other error handling corrected as well.
|
||
|
- NxPlayer: NxPlayer needs to set curbyte field to zero before
|
||
|
enqueuing a buffer. Otherwise, it looks like beginning of the
|
||
|
buffer has already been consumed.
|