mirror of
https://github.com/apache/nuttx.git
synced 2026-10-11 08:10:21 +00:00
The documentation grew one page at a time, so the tree follows the
history of who wrote what and not the shape of NuttX. Scheduling is
spread over three places, a driver page can sit above the subsystem
that owns it, and the front page lists everything at the same level.
That is a lot to face when all you want to know is where the scheduler
lives.
This change files every page under the code it describes. It is a move,
not a rewrite: outside the ten pages named below, every page keeps the
text that is already in master, and no page's text is deleted.
What it does:
* Groups the table of contents into nine chapters.
* Moves the OS subsystems under os/: scheduling, memory, drivers,
filesystem, networking, IPC, interrupts, libs, time.
* Renames the platform pages to the names the source tree uses, and
derives their tags from the tree instead of by hand.
* Splits guides/ by subject.
* Adds Documentation/redirects.py, with a rule for every page that left
its old path, so old URLs keep working. The redirect page also carries
a link's #anchor across to the new page.
Ten pages have text that is new or rewritten. Nine of them are the
landing page of a chapter, which has to exist for the new structure:
index the front page
os/index OS Design
os/scheduling/index Scheduling
os/interrupts/index Interrupts
os/ipc/index IPC
os/time/index Time and timers
about/index About
developing/index Developing NuttX
ReleaseNotes/index Release notes
The tenth is os/libs/libbuiltin, the only page here with technical
content: libs/libbuiltin/ had no page at all. Five SVG diagrams come
with these pages, hand-written XML with no editor metadata.
Nothing outside Documentation/ is touched.
How it was checked:
* Sphinx builds with -W: no warnings, and no document left outside a
toctree.
* A script, offered in the PR, proves the narrow claim this rests on.
For every page outside the ten named above it erases what a move
touches -- link target, path, tag line, toctree block, table border --
from the whole old text and the whole new text, and requires the two
to be byte for byte identical. It also requires every sentence of a
deleted page to turn up somewhere, and every page that left its old
path to have a redirect, from a URL that existed, to where its content
went. It exits non-zero and names the page if any of that is not true,
and it tests added pages too, so forgetting to declare one cannot make
it pass.
* An independent audit checked 133 factual claims on these ten pages
against the tree, one shell command per claim: 130 confirmed, 1
refuted and fixed here, 2 not checkable.
* tools/checkpatch.sh is clean over the range.
The diff is large because moving a page changes every link that points
to it. Most of it is pure renames, and board pages that gained one tag
line.
Assisted-by: Claude:claude-opus-5
277 lines
11 KiB
Markdown
277 lines
11 KiB
Markdown
NuttX-7.13
|
|
==========
|
|
|
|
The 113th release of NuttX, Version 7.13, was made on December 5, 2015,
|
|
and is available for download from the Bitbucket.org website. Note
|
|
that release consists of two tarballs: nuttx-7.13.tar.gz and
|
|
apps-7.13.tar.gz. These are available from:
|
|
|
|
https://bitbucket.org/patacongo/nuttx/downloads
|
|
https://bitbucket.org/nuttx/apps/downloads
|
|
|
|
Both may be needed (see the top-level nuttx/README.txt file for build
|
|
information).
|
|
|
|
Additional new features and extended functionality:
|
|
|
|
* Core OS:
|
|
|
|
- External RTC: Added OS support for external RTC chips.
|
|
- boardctl(): Add a command to the boardctl() interface to obtain a
|
|
board unique ID.
|
|
|
|
* File Systems:
|
|
|
|
- TMPFS: Add support for a new TMPFS, RAM file system. The TMPFS
|
|
file system does not require any significant amount of memory
|
|
itself. It will grow dynamically as files are added and shrink back
|
|
when files are deleted. A very low overhead way to retain temporary
|
|
files.
|
|
- VFS: The VFS was extended to support standard file operations on
|
|
block drivers (open, close, read, write, etc.). The open() interface
|
|
accomplishes this by creating a temporary character driver to mediate
|
|
the character oriented accesses to the block driver.
|
|
- HOSTFS: Added a HOSTFS file system for use with the simulator. The
|
|
HOSTFS file system mounts in the simulated NuttX context by provides
|
|
proxied access to the file system on the host PC. This is useful for
|
|
providing file system content and nonvolatile storage of files in the
|
|
simulation environment. From Ken Pettit.
|
|
- MTD/PROCFS: Add an interface to un-register an MTD procfs entry.
|
|
From Ken Pettit.
|
|
- filemtd: A new MTD conversion layer that will convert a regular file
|
|
(or driver file) to an MTD device. This is useful for testing on the
|
|
simulation using the HOSTFS. From Ken Pettit.
|
|
- PROCFS: Extended to include networking entries in the procfs. Device
|
|
status, device statistics, and network statistics are now available
|
|
from the PROCFS.
|
|
- PROCFS: The PROCFS file system can now be configured so that it
|
|
supports runtime registration of PROCFS entries with
|
|
CONFIG_FS_PROCFS_REGISTER=y.
|
|
|
|
* Graphics/Graphic Drivers:
|
|
|
|
- ST7565 Driver: Extend to include support for the ERC12864-3. From
|
|
Pierre-noel Bouteville.
|
|
|
|
* Common Device Drivers:
|
|
|
|
- User buttons: Added a character driver to support application access
|
|
to board buttons. Supports notification of button activity via
|
|
signals.
|
|
- User LEDs: Added a character driver to support application access
|
|
to on-board LEDs.
|
|
- Zero Cross: Added a Zero Cross device driver support. From Alan
|
|
Carvalho de Assis.
|
|
- MAX6675: Added support to Thermocouple-to-Digital converter MAX6675.
|
|
From Alan Carvalho de Assis.
|
|
- BCH: Block-to-character (BCH) driver should forward ioctl() calls
|
|
to the contained block driver.
|
|
- S25FL1xx: Added a S25FL1xx QuadSPI FLASH driver.
|
|
- On-Chip FLASH: Added an upper half MTD device that can use the
|
|
interfaces defined in included/nuttx/progmem.h to provide a
|
|
standard MTD driver.
|
|
- Serial: Implemented high level DMA infrastructure for serial
|
|
devices. From Max Neklyudov.
|
|
- AT24XX: Add support for multiple AT24xx EEPROM parts, each with
|
|
unique I2C addresses, but otherwise identical.
|
|
- External RTC: Added drivers for external I2C RTC chips: DS3102,
|
|
DS1307, DS3231, DS3232, and NXP PCF85263.
|
|
- W25: Added support for byte write mode to the W25 FLASH driver. From
|
|
Ken Pettit.
|
|
- dev/loop: Added a loop character device. losetup() and loteardown()
|
|
should not be called directory from applications. Rather, these
|
|
functions are now available as IOCTL commands to the loop driver.
|
|
- dev/smart: Added support for a /dev/smart loop device. From Ken
|
|
Pettit.
|
|
|
|
* Networking:
|
|
|
|
- Driver Statistics: Most network drivers do not support statistics.
|
|
Those that do only supported them when DEBUG is enabled. Each
|
|
driver collected an architecture specific set of statistics and
|
|
there was no common mechanism to view those statistics. Thus,
|
|
the driver feature was mostly useless. This release standardizes
|
|
the driver statistics and puts the definition in the common network
|
|
device structure defined in netdev.h where they can be accessed by
|
|
network applications. All Ethernet drivers that collect statistics
|
|
have been adapted to use these common statistics.
|
|
|
|
* Simulation Platform:
|
|
|
|
- W25 FLASH: Added support for W25 FLASH simulation. From Ken Pettit.
|
|
- HOSTFS: Added support for the HOSTFS file system (see "File Systems",
|
|
above).
|
|
|
|
* Atmel SAMV7:
|
|
|
|
- SAME70: Added support for the SAME70 family of chips.
|
|
- Tickless: SAMV7 now supports the tickless mode of operation.
|
|
|
|
* Atmel SAMV7 Drivers:
|
|
|
|
- MPU: Added MPU and protected build support.
|
|
- QSPI: Added a QuadSPI FLASH driver. This driver operates in the
|
|
memory-mapped, Serial Memory Mode (SMM).
|
|
- FLASH: Added support to write on-chip FLASH.
|
|
- Timer/Counter: TC driver ported to SAMV7 from the SAMA5. Free-running
|
|
and one-short timer logic also ported.
|
|
- PCK: Brought programmable clock (PCK) logic from SAMA5 into SAMV7.
|
|
- Timer/Counter: Support PCK6 as an optional source for the timer/
|
|
counter clock.
|
|
|
|
* Atmel SAMV7 Boards:
|
|
|
|
- SAME70-Xplained: Add NSH and networking configurations for the
|
|
SAME70 Xplained board. Includes verified support for serial console,
|
|
LEDs, buttons, SDRAM, HSMCI SD card, and networking.
|
|
- SAMV7-XULT and SAME70-Xplained: If Tickless mode is selected then
|
|
enable PCK6 as a timer/counter clock source
|
|
|
|
* STMicro STM32:
|
|
|
|
- CCM PROCFS: Is no longer a part of the 'base' procfs entries and can
|
|
now only be supported via run time registration with
|
|
CONFIG_FS_PROCFS_REGISTER=y.
|
|
|
|
* STMicro STM32 Drivers:
|
|
|
|
- Timers: Add a compatible lower-half timer driver for use with the
|
|
common timer upper-half driver. From Wail Khemir.
|
|
|
|
* STMicro STM32 Boards:
|
|
|
|
- STM32F4-Discovery: Add low level support for the Zero Cross driver
|
|
for the STM32F4-Discovery. From Alan Carvalho de Assis.
|
|
- STM32F4-Discovery: Add board config to support for the MAX6675. From
|
|
Alan Carvalho de Assis.
|
|
|
|
* C Library/Header Files:
|
|
|
|
- bsearch(): Added the bsearch() function from NetBSD.
|
|
- freopen(): Added support for freopen().
|
|
- strftime(): Added day-of-week support (when available).
|
|
|
|
* Tools:
|
|
|
|
- nxstyle: Add crappy style checking tool nxstyle.c. See thee tools/
|
|
README file for more info.
|
|
|
|
* Applications: NSH
|
|
|
|
- mksmartfs command: Add configuration option to supported multiple
|
|
rootdirectories. From Ken Pettit.
|
|
- Add support for 'basename' and 'dirname' commands.
|
|
- set command: Like bash, NSH set command now strips off any leading
|
|
or trailing whitespace.
|
|
- mount command: The mount commands now accepts mount options
|
|
(currently needed only for the hostfs file system). From Ken
|
|
Pettit.
|
|
- losetup command: NSH no longer calls losetup() and loteardown
|
|
directly. Now it opens /dev/loop and accomplishes these things
|
|
using ioctl() calls.
|
|
- ifconfig command: If CONFIG_NETDEV_STATISTICS=y, then print the
|
|
network driver statistics in the ifconfig.
|
|
- ifconfig, ifup, and ifdown: These commands now uses /proc/net/<dev>
|
|
to view network device configuration and status and /proc/net/stat
|
|
to show network statistics. A consequence of this is that you
|
|
cannot view this network information if the procfs is not enabled
|
|
and mounted at /proc.
|
|
- losmart command: Added a new NSH losmart command. losmart setups
|
|
up a loop device for the smart MTD driver similar to losetup but
|
|
with different syntax. From Ken Pettit.
|
|
- ps command: The 'ps' command now uses /proc/<pid>/ to obtain task
|
|
status information. A consequence of this is that you cannot use
|
|
the 'ps' command if the procfs is not enabled and mounted at /proc.
|
|
|
|
* Applications: apps/system:
|
|
|
|
- apps/system/hexed: Port the hexed command line hexadeciamal editor
|
|
to NuttX. See http://apps.venomdev.net/hexed/.
|
|
|
|
* Applications: apps/fsutils:
|
|
|
|
- apps/fsutils/smartfs: Move into apps/fsutils from kernel, now uses
|
|
only open and ioctl. From Ken Pettit.
|
|
|
|
* Applications: apps/examples:
|
|
|
|
- apps/examples/fstest: Add a generic file system test. This is
|
|
essentially the same as examples/smart, but has all of the SmartFS
|
|
specific logic ripped out. This was created for testing the new
|
|
TMPFS.
|
|
- apps/examples/zerocross: Add a Zero Cross application example. From
|
|
Alan Carvalho de Assis.
|
|
- apps/examples/media: Add a simple test for access of media via a
|
|
block driver or MTD driver.
|
|
|
|
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):
|
|
|
|
* Core OS:
|
|
|
|
- Fixed an error in clock_timespec_subtract(). Found by Lok.
|
|
- pthreads: CRITICAL BUGFIX: Logic was wiping out the indication that
|
|
of the type of a pthread. Hence, it could be confused as a task.
|
|
Found because this was causing a crash when /proc/nnn/cmdline was
|
|
printed.
|
|
|
|
* File System/Block Drivers:
|
|
|
|
- SMART MTD: Fix some Smart wear-leveling bugs. Fixed SmartFS wear
|
|
level error that occurs when the logical sector size is too small to
|
|
save all wear level status bytes in a single sector. Logical
|
|
sectors 1 and 2 were simply not being allocated and then the
|
|
read_sector and write_sector routines were failing. From Ken
|
|
Pettit.
|
|
|
|
* Graphics/Graphic Drivers:
|
|
|
|
- ILI9432: Fixed errors in orientation. Portrait, RPortrait, and
|
|
Landscript should work correly now. They were displayed mirrored.
|
|
From Marco Krahl.
|
|
|
|
* Common Drivers:
|
|
|
|
- CAN: Fix a problem in the CAN upper-half driver that occurs only
|
|
for CAN hardware that support a H/W FIFO of outgoing CAN messages.
|
|
In this case, there can be a hang condition if both the H/W and
|
|
S/W FIFOs are both full. In that case, there may be no event to
|
|
awaken the upper half driver. Add a new (conditional) CAN upper
|
|
half interface called can_txready() that can be used by the lower
|
|
half driver to avoid this hang condition.
|
|
- MS58xx: Fix some issues with initialization and with CRC
|
|
calculation. From Karim Keddam.
|
|
- W25: Fixed W25 FLASH driver page read/write logic. From Ken Pettit.
|
|
|
|
* Atmel SAMV7 Drivers:
|
|
|
|
- USART1 pin configuration: Reconfigure System I/O when using USART1.
|
|
From Frank Benkert.
|
|
- MCAN: Added a call to can_txready() to the MCAN driver.
|
|
|
|
* STMicro STM32 Drivers:
|
|
|
|
- stm32 F4: Fix some TIM12 pin mappings. From Max Kriegleder.
|
|
|
|
* STMicro STM32 Boards:
|
|
|
|
- STM32F429i-Disco: Calculated partition boundaries based on page
|
|
block sizes but mtd_partition() is expecting calculations based on
|
|
erase block size. From Alan Carvalho de Assis.
|
|
|
|
* C Library/Header Files:
|
|
|
|
- sys/types.h: When building on a 64-bit machine, the size of size_t
|
|
should be 64-bits. In general, I believe that sizeof(size_t) should
|
|
be the same as sizeof(uinptr_t). mmsize_t should always be 32-bits
|
|
in any event. The last change to stddef has been backed out. With
|
|
these changes, the simulator builds without errors or warnings an a
|
|
64-bit machine.
|
|
|
|
* Applications: apps/nshlib:
|
|
|
|
- The I/O buffer, g_iobuffer, should not be a global buffer. That
|
|
will not work in an environment where there are multiple NSH
|
|
sessions. The I/O buffer must, instead, be a part part of the
|
|
session-specific data defined in nsh_console.h.
|