238 lines
8.5 KiB
Groff
238 lines
8.5 KiB
Groff
|
NuttX-7.1
|
||
|
---------
|
||
|
|
||
|
The 101st release of NuttX, Version 7.1, was made on March 15, 2014,
|
||
|
and is available for download from the SourceForge website. Note
|
||
|
that release consists of two tarballs: nuttx-7.1.tar.gz and
|
||
|
apps-7.1.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
||
|
file for build information).
|
||
|
|
||
|
The previous NuttX version was 6.33. The NuttX minor version number is
|
||
|
incremented on each release, but the major version number is incremented
|
||
|
only when an incompatibility with previous versions is included in the
|
||
|
release. In this case, the legacy, manual configuration is no longer
|
||
|
supported by the NuttX build system beginning with NuttX 7.1. Only the
|
||
|
newer configurations generated by the kconfig-frontends tools will generate
|
||
|
viable NuttX configurations.
|
||
|
|
||
|
All board configurations in the NuttX source tree have been converted to
|
||
|
use the newer configuration, but if you have some older style configurations
|
||
|
for you board, you will need to convert those configurations to use the
|
||
|
kconfig-frontends tools before taking any new code from the repository. See
|
||
|
https://cwiki.apache.org/confluence/display/NUTTX/Converting+Legacy+Configurations+to+Use+kconfig-mconf
|
||
|
for some guidelines.
|
||
|
|
||
|
Additional new features and extended functionality:
|
||
|
|
||
|
* Core OS:
|
||
|
|
||
|
- System time logic now includes logic to measure and calculate the
|
||
|
CPU load percentage (from David Alessio). This CPU load logic
|
||
|
extended to keep counts on each thread. The per-thread CPU is
|
||
|
now reported in the procfs under <pid>/loadavg An asynchronous,
|
||
|
"external" clock may be used to drive the CPU load calculations
|
||
|
for more accurate measurements when needed.
|
||
|
|
||
|
* File Systems:
|
||
|
|
||
|
- As mentioned above, the per-thread CPU load information is now
|
||
|
reported in the procfs under <pid>/loadavg.
|
||
|
- Many file system interfaces have been extended to operate on the
|
||
|
top-level NuttX pseudo filesystem. These include rmdir, mkdir,
|
||
|
rename, and unlink. This capability can be disabled with
|
||
|
CONFIG_DISABLE_PSEUDOFS_OPERATIONS in order to keep the footprint
|
||
|
small.
|
||
|
|
||
|
* Networking:
|
||
|
|
||
|
- Numerous updates and improvements to the CC3000 driver from David
|
||
|
Sidrane.
|
||
|
|
||
|
* Common Drivers:
|
||
|
|
||
|
- Defined a mouse interface that is very similar to a touchscreen
|
||
|
interface, but allows reporting of all mouse buttons. Also, unlike
|
||
|
touchscreen drivers, mouse drivers need to report positional data
|
||
|
with no button is pressed so that the mouse position can drive a
|
||
|
cursor.
|
||
|
- Added support for a USB HID boot mouse device. Cursor support is
|
||
|
not integrated and must be provided by the application based upon
|
||
|
the reported mouse data.
|
||
|
- Support added for the MIO283QT9A LCD from Toby Duckworth.
|
||
|
|
||
|
* Atmel SAMA4E:
|
||
|
|
||
|
- Added complete architecture support for the Atmel AT91 SAM4E
|
||
|
Cortex-M4F parts.
|
||
|
|
||
|
* Atmel SAM4E Board Support:
|
||
|
|
||
|
- Add board support for the SAM4E-EK board.
|
||
|
|
||
|
* Atmel SAM4E Drivers:
|
||
|
|
||
|
- Added logic to manage the Cortex-M Cache Control block.
|
||
|
- Developed and integrated an Ethernet MAC driver for the SAM4E.
|
||
|
- Backported the SAMA5 SPI driver to the SAM3/4 architecture. The
|
||
|
SAMA5 version supports both multiple SPI peripherals as needed by the
|
||
|
SAM3A and SAM3X and also supports DMAC (but not PDC) needed by the
|
||
|
SAM4E.
|
||
|
|
||
|
* Atmel SAM D20:
|
||
|
|
||
|
- Added basic architecture support for the Atmel AT91 SAM D20
|
||
|
Cortex-M0+ parts.
|
||
|
|
||
|
* Atmel SAM D20 Board Support:
|
||
|
|
||
|
- Added basic support for SAM D2 Xplained Pro board. Currently, the
|
||
|
NuttShell (NSH) works reliably over a serial port. An SPI driver
|
||
|
has also been developed. Work with the SAM D20 has been temporarily
|
||
|
stopped, however, in order to focus on the SAM4E-EK.
|
||
|
|
||
|
* TI Tiva TMC4C123G:
|
||
|
|
||
|
- Added architecture support for the TI Tiva TM4C123G parts. This was
|
||
|
merged into the existing support for the LM3S and LM4F families.
|
||
|
All directory, file, and function references changed from lm to tiva.
|
||
|
|
||
|
* TI Tiva TMC4C123G Board Support:
|
||
|
|
||
|
- Added basic board support for the TM4C123G-Launchpad. As of this
|
||
|
release the TM4C123G-Launchpad board support is untested and likely
|
||
|
incomplete.
|
||
|
|
||
|
* STMicro STM32 Boards:
|
||
|
|
||
|
- The Mikroe STM32F4 can now support the newer MIO283QT9A LCD. From
|
||
|
Toby Duckworth.
|
||
|
- Miscellaneous changes to better support FPU on STM32F429 Discovery
|
||
|
from David Alessio.
|
||
|
|
||
|
* NXP LPC2378 Drivers:
|
||
|
|
||
|
- Incorporated I2C and SPI drivers for the LPC23xx from Lizhuoyi.
|
||
|
|
||
|
* QEMU i486 Drivers:
|
||
|
|
||
|
- New QEMU keyboard and VGA drivers from Lizhuoyi.
|
||
|
|
||
|
* Documentation:
|
||
|
|
||
|
- Added a coding standards document. See
|
||
|
https://nuttx.apache.org/docs/latest/contributing/coding_style.html
|
||
|
|
||
|
* Configuration/Build System:
|
||
|
|
||
|
- A configuration option, CONFIG_DEFAULT_SMALL, was added to select
|
||
|
default values for configuration variables based upon whether you
|
||
|
want a smaller footprint or more features. This is not very useful
|
||
|
if you are modifying existing configurations because then the
|
||
|
default values do not apply.
|
||
|
- CONFIG_DEFAULT_SMALL has been defined on all tiny MCU configurations
|
||
|
so that they do not grow so rapidly when new, optional features are
|
||
|
added.
|
||
|
- The legacy, manual configuration is no longer supported by the
|
||
|
NuttX build system. Only the newer configurations generated by
|
||
|
the kconfig-frontends tools will generate viable NuttX
|
||
|
configurations. All board configurations in the NuttX source tree
|
||
|
have been converted to use the newer configuration, but if you have
|
||
|
some older style configurations for you board, you will need to
|
||
|
convert those configurations to use the kconfig-frontends tools. See
|
||
|
https://cwiki.apache.org/confluence/display/NUTTX/Converting+Legacy+Configurations+to+Use+kconfig-mconf
|
||
|
for some guidelines.
|
||
|
|
||
|
* Applications:
|
||
|
|
||
|
- NSH can now use an EMACS-like command line editor. This CLE, is
|
||
|
really more like the traditional readline than is the default, tiny
|
||
|
the NuttX readline .
|
||
|
- The touchscreen example can now be configured to work with either a
|
||
|
touchscreen or a mouse device.
|
||
|
- Several NSH commands can now be used to operate on objects in the
|
||
|
top-level pseudo-filesystem: rmdir, mkdir, mv, and rm. This
|
||
|
capability can be disabled with CONFIG_DISABLE_PSEUDOFS_OPERATIONS
|
||
|
in order to keep the footprint small.
|
||
|
- If both the CPU load feature and the procfs features are enabled,
|
||
|
then the NSH 'ps' command will show the CPU load used by each
|
||
|
thread.
|
||
|
|
||
|
Bugfixes (see the ChangeLog for details). Some of these are very important:
|
||
|
|
||
|
* Core OS:
|
||
|
|
||
|
- task_terminate() always returned an error because the return value
|
||
|
was not being set correctly (from Gosha).
|
||
|
- nanosleep() Fix a missing call to re-enable interrupts (from Jason
|
||
|
Jiang).
|
||
|
|
||
|
* File Systems:
|
||
|
|
||
|
- Fixed an error in the FAT logic that can cause file corruption. The
|
||
|
error conditions are rare and only seen with very large files (from
|
||
|
Andrew Tridgell). This replaces a previous, partial fix for the same
|
||
|
problem.
|
||
|
- Fixed memory leaks in the NXFFS open() and stat() implementations
|
||
|
(from Lzyy).
|
||
|
- The interfaces include opendir(), readdir(), et al, were modified so
|
||
|
that errors will not be reported if you attempt to list a empty
|
||
|
pseudo-directory.
|
||
|
|
||
|
* Networking:
|
||
|
|
||
|
- Fix one place where the connection reference count was not being
|
||
|
decremented in the socket close() logic. This is really a cosmetic
|
||
|
change BUT when CONFIG_DEBUG_NET is enabled, it will cause assertions.
|
||
|
- Backed out a small part of the NuttX 6.33 write buffering changed.
|
||
|
David G says that this causes problems in connecting to a server.
|
||
|
- In DHCPD, there was a place where the logic was calling ntohl()
|
||
|
inappropriately; the address was already in the correct order. How
|
||
|
could DHCPD have worked with this bug?
|
||
|
|
||
|
* TI Tiva/Stellaris Drivers:
|
||
|
|
||
|
- Fixed cut'n'paste error that prevented UARTS2-7 from being used with
|
||
|
the LM4F120 Launchpad.
|
||
|
- Fixed several errors there were unmasked with UARTs > UART2 are
|
||
|
enabled (grom Gosha).
|
||
|
|
||
|
* Allwinner A10 Drivers:
|
||
|
|
||
|
- Fixed cut'n'paste error that prevented UARTS2-7 from being used with
|
||
|
the pcDuino.
|
||
|
|
||
|
* NXP LPC17xx Drivers:
|
||
|
|
||
|
- Fix an compilation error that crept into the LPC17xx USB host driver.
|
||
|
|
||
|
* STMicro STM32 Drivers:
|
||
|
|
||
|
- Fix cloned typo in the serial driver: FLOWCONTROL vs FLOWCONROL.
|
||
|
- Disable SPI before changing DPI CR1 register (from David Sidrane).
|
||
|
- stm32 TIM: Set the timer CCMR when selecting timer channel. From
|
||
|
David Sidrane.
|
||
|
- Fix typo in a Makefile: stm32_pwm.c not stm32_psm.c. Noted by Max
|
||
|
Kriegleder.
|
||
|
|
||
|
* Library:
|
||
|
|
||
|
- More sscanf() bug fixes from David Sidrane.
|
||
|
|
||
|
* Header files:
|
||
|
|
||
|
- cstdbool: Ignore _Bool8 if CONFIG_C99_BOOL8=y
|
||
|
|
||
|
* Configuration/Build System:
|
||
|
|
||
|
- Several changes to restore the broken native Windows build
|
||
|
|
||
|
* NuttShell (NSH):
|
||
|
|
||
|
- Use strncpy vs strcpy in the Telnet console logic to avoid
|
||
|
overrunning the username and password buffers (from Bertold Van den
|
||
|
Bergh).
|
||
|
- Add a newline after printing the file in the 'cat' command. This
|
||
|
prevents the NSH prompt from be in the same line as the final line
|
||
|
of the file in the case where there is no newline at the end of the
|
||
|
file.
|