Update ReleaseNotes in preparation for the 7.5 release
This commit is contained in:
parent
7208eebb39
commit
116158af2e
64
ChangeLog
64
ChangeLog
@ -4458,14 +4458,14 @@
|
||||
* configs/twr-k60n512: Converted configurations to use the
|
||||
konfig-frontends tool (2013-03-25).
|
||||
* arch/arm/src/lpc17xx/lpc17_lcd.c: Add an LCD framebuffer driver
|
||||
for the LPC177x/8x family (2103-3-26).
|
||||
for the LPC177x/8x family (2013-3-26).
|
||||
* arch/arm/src/lpc17xx/lpc17_emc.c and
|
||||
configs/open1788/src/lpc17_sdraminitialize.c: Began testing the
|
||||
Open1788 SDRAM. The SDRAM is basically functional, but there are
|
||||
failures with the SDRAM is stressed by the memory test at
|
||||
apps/example/ramtest (SDRAM support and the RAM test can be configured
|
||||
into the base configs/open1788/nsh configuration as described in
|
||||
configs/open1788/READMT.txt (2103-3-27).
|
||||
configs/open1788/READMT.txt (2013-3-27).
|
||||
* configs/open1788/nxlines: Add a configuration to test both the
|
||||
Open1788 LCD and SDRAM which is used as a framebuffer (2013-3-27).
|
||||
* arch/arm/src/lpc17xx/lpc17_gdma.c and lpc17_sdcard.c: Began
|
||||
@ -7115,7 +7115,7 @@
|
||||
* arch/arm/src/sama5/sam_boot.c, sam_irq.c, chip/sama5d3x_memorymap.h:
|
||||
When running from SDRAM, vectors must lie in SRAM (2014-4-2).
|
||||
* arch/arm/src/armv7-a/arm_head.S and cache.h: On start-up, make
|
||||
certain the the MMU and caches are disabled (probably un-necessary)
|
||||
certain that the MMU and caches are disabled (probably un-necessary)
|
||||
(2014-4-2).
|
||||
* arch/arm/src/sama5/sam_boot.c: If we have to copy vectors, then
|
||||
make sure to clean the DCache to be sure that the copied vectors are
|
||||
@ -7584,10 +7584,10 @@
|
||||
'static const' when possible to save RAM usage. From Kosma
|
||||
Moczek (2014-6-30).
|
||||
* include/stdint.h: Correct naming of [U]INT_LEASTn_{MAX|MIN}
|
||||
and [U]INT_FASTn{MAX|MIN}. From Kosma Moczek (2014-6-30).
|
||||
and [U]INT_FASTn{MAX|MIN}. From Kosma Moczek (2014-6-30).
|
||||
* drivers/mtd/mtd-config: 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 (2014-6-30).
|
||||
erase blocks. From Kosma Moczek (2014-6-30).
|
||||
* drivers/analog/adc.c: Remove empty ADC write method. From Kosma
|
||||
Moczek (2014-6-30).
|
||||
* arch/arm/src/stm32/stm32_serial.c: Unconfigure GPIO pins when
|
||||
@ -8142,7 +8142,7 @@
|
||||
* drivers/net/phy_notify.c, include/net/if.h, ioctl.h, netdev.h, phy.h,
|
||||
and net/netdev/netdev_ioctl.c: Finishes the ioctl definition to
|
||||
subscribe to PHY events. Revamp network ioctl signature to support
|
||||
arguments other than struct mii_ioctl_data (2014-8-16).
|
||||
arguments other than struct mii_ioctl_data (2014-8-16).
|
||||
* arch/arm/src/stm32/stm32_eth.c: Modified to support the change to the
|
||||
network ioctl signature changes. Also add support for new ioctl to
|
||||
setup PHY event notifications (2014-8-16).
|
||||
@ -8182,14 +8182,14 @@
|
||||
net/tcp/tcp_send_buffered.c, and tcp_send_unbuffered.c: If
|
||||
CONFIG_NET_ARP_SEND is enabled, then all ICMP, TCP, and UDP send
|
||||
operations will call arp_send() before attempting the real send
|
||||
operation. arp_send() will check if the the IP address mapping is in
|
||||
operation. arp_send() will check if the IP address mapping is in
|
||||
the ARP table and, if not send ARP requests periodically until it is.
|
||||
This eliminates losing the first outgoing message because there is not
|
||||
mapping in the ARP table (2014-8-18).
|
||||
* net/arp/arp_notify.c, arp_send.c, arp_arpin.c, and arp.h: Add
|
||||
signalling logic so that we do not have to wait so long with the
|
||||
network responses to ARP requests quickly (2014-8-19).
|
||||
* include/nuttx/lcd/ili9341.h: \Add a register definition header file
|
||||
* include/nuttx/lcd/ili9341.h: Add a register definition header file
|
||||
for the ILI9341 LCD (2014-8-19).
|
||||
* net/arp/Kconfig: ARP request logic is no longer EXPERIMENTAL
|
||||
(2014-8-20).
|
||||
@ -8216,10 +8216,10 @@
|
||||
* arch/arm/src/stm32/stm32_uart.h: STM32 F401: Correct support for
|
||||
USART6 on this chip. From Freddie Chopin (2014-8-22).
|
||||
* nuttx/sched/wdog and include/nuttx/wdog.h: Add support for statically
|
||||
allocated watchdog timer (also eliminate some unconvential typing)
|
||||
allocated watchdog timer (also eliminate some unconventional typing)
|
||||
(2014-8-22).
|
||||
* configs/p112/ostest and tools/mkdeps.c: Changes to try to get P112 to
|
||||
compile with laster SDCC (it still does not) (2014-8-22).
|
||||
compile with latest SDCC (it still does not) (2014-8-22).
|
||||
* sched/group/group_leave.c: Need to release the address environment when
|
||||
the task group is released (2014-8-22).
|
||||
* mm/mm_granreserve.c and and mm_granmark.c: gran_reserve(): Add a
|
||||
@ -8247,7 +8247,7 @@
|
||||
* arch/arm/src/armv7-a/arch_coherent_cache.c: New file. These cache
|
||||
operations are called from the ELF loader in order to flush D-cache
|
||||
and invalidate I-cache after an ELF module has been loaded into memory.
|
||||
With this change, ELF modules work correcttly on the SAMA5/Cortex-A
|
||||
With this change, ELF modules work correctly on the SAMA5/Cortex-A
|
||||
platform (2014-8-24).
|
||||
* configs/sim: Add build support for ELF modules. Useless at the moment
|
||||
because there is no x86 relocation logic support (2014-8-25).
|
||||
@ -8295,7 +8295,7 @@
|
||||
clobbers R14. This must be taken account in the inline assembly
|
||||
(2014-8029).
|
||||
* arch/arm/src/armv7-a/arm_syscall.c: Fix hard coded values in
|
||||
dispatch_syscall() inline assembly. Back out/corect part of last
|
||||
dispatch_syscall() inline assembly. Back out/correct part of last
|
||||
change; that was going the wrong direction. With this change, the
|
||||
apps/examples/elf test works with address environments and call
|
||||
gates! (2014-8029).
|
||||
@ -8305,7 +8305,7 @@
|
||||
only from a file system. This new configuration is defined but only
|
||||
partially integrated (2014-8-29).
|
||||
* tools/refresh.sh: Add a tool to make refreshing configurations easier
|
||||
when you wnat to do a lot of them (2014-8-29).
|
||||
when you want to do a lot of them (2014-8-29).
|
||||
* tools/mksyscall.c: Build syscalls that do not need header files (there
|
||||
are none, however) (2014-8-30).
|
||||
* include/nuttx/errno.h syscall/syscall.csv and syscall_funclookup.c:
|
||||
@ -8343,7 +8343,7 @@
|
||||
kfree() to kmm_free() and kuzalloc to kumm_zalloc() for consistency
|
||||
with the rest of the naming (2014-8-31).
|
||||
* mm/mm_sbrk.c, kmm_sbrk.c, umm_sbrk.c, and include/unistd.h: Initial
|
||||
* implementation of sbrk() (2014-9-1).
|
||||
implementation of sbrk() (2014-9-1).
|
||||
* arch/arm/src/armv7-a/arm_pgalloc.c, mm/umm_malloc.c, and mm_zalloc.c:
|
||||
Completes the implementation of sbrk() (untested) (2014-9-1).
|
||||
* configs/cc3200-launchpad: Updates to the CC3200-Launchpad configuration
|
||||
@ -8355,7 +8355,7 @@
|
||||
and sched.h, and arch/*/*/*/Make.defs: There used to be two ways to
|
||||
pass parameters to new tasks, depending upon the configuration: Either
|
||||
(1) argv[] as created as an array with each string strdup'ed. Or (1)
|
||||
argv[] array and strings were created on the stack before the new tas
|
||||
argv[] array and strings were created on the stack before the new task
|
||||
was started. Now, there is only one way, way (1). Way (2) might be
|
||||
slightly more compact, but this is not worth carry the complexity of
|
||||
two different ways of doing the same thing (2014-9-1).
|
||||
@ -8377,16 +8377,16 @@
|
||||
include/nuttx/addrenv.h, and mm/umm_*.c: Add support for delivery
|
||||
of use-mode signals in the kernel build (2014-9-2).
|
||||
* mm/mm_graninit.c: Granule allocator initialization uses wrong
|
||||
allocator to setting aside kernel memory (2014-903).
|
||||
* sched/init/os_start.c: IDLE TCB setup needs to indicate the the
|
||||
IDLE thread is a privileged, kernel thread (2014-903).
|
||||
allocator to setting aside kernel memory (2014-9-3).
|
||||
* sched/init/os_start.c: IDLE TCB setup needs to indicate that the
|
||||
IDLE thread is a privileged, kernel thread (2014-9-3).
|
||||
* include/nuttx/sched.h: Add a flag to group structure: If the group
|
||||
is created by a kernel thread, then all resources in the group must
|
||||
be privileged (2014-903).
|
||||
be privileged (2014-9-3).
|
||||
* sched/group/group_malloc.c, group_zalloc.c, group_free.c,
|
||||
group_create.c, group.h: Group creation logic must use new group flag
|
||||
when allocating resources so that the privileges on the resource are
|
||||
set correctly (2014-903).
|
||||
set correctly (2014-9-3).
|
||||
* sched/Kconfig and sched/init/os_bringup.c: Add capability to perform
|
||||
initial board initialization on a separate worker thread (2014-9-3).
|
||||
* tools/mkexport.sh: Fix 'make export'. Adding subdirectories to the
|
||||
@ -8439,8 +8439,8 @@
|
||||
* configs/sama5d4-ek/README.txt, Kconfig, knsh/defconfig.ROMFS,
|
||||
src/sam_bringup.c, and sama5d4-ek.h: SAMA5D4-EK kernel config can now
|
||||
boot from a ROMFS file system (2014-9-9).
|
||||
* LibTargets.mk, Makefile.unix, and Makefile.win: Move commit library
|
||||
targets out of Makefile.unix and Makeifle.win into a new LibTargets.mk
|
||||
* LibTargets.mk, Makefile.unix, and Makefile.win: Move common library
|
||||
targets out of Makefile.unix and Makefile.win into a new LibTargets.mk
|
||||
(2014-9-9).
|
||||
* LibTargets.mk and configs/sama5d4-ek/knsh/Make.defs: Add logic that will
|
||||
permit us to build user libraries with different CFLAGS than kernel
|
||||
@ -8451,7 +8451,7 @@
|
||||
a named symbol associated with them. The design did not account for
|
||||
that case (2014-9-9).
|
||||
* binfmt/binfmt_execmodule.c: When allocating a stack for a new process
|
||||
using the user-sapce allocator, need to select the address environment
|
||||
using the user-space allocator, need to select the address environment
|
||||
first (2014-9-9).
|
||||
* arch/Kconfig, arm/src/armv7-a/pginline.h, arm_addrenv.c, and
|
||||
arm_pgalloc.c and include/nuttx/addrenv.h: Add configuration to use
|
||||
@ -8473,13 +8473,13 @@
|
||||
configs/ea3131/locked/mklocked.sh: Replace the empty lib_initialize()
|
||||
function with a pre-processor macro (2014-9-11).
|
||||
* libc/misc/lib_stream.c: When a privileged thread exits, we have to use
|
||||
the kernel alloctor to free memory; when an unprivileged thread exits,
|
||||
the kernel allocator to free memory; when an unprivileged thread exits,
|
||||
we don't have to do anything... heap memory will be cleaned up when the
|
||||
address environment is torn down (2014-9-11).
|
||||
* arch/arm/src/stm32/stm32_serial.c and chip/stm32f20xxx_rcc.h: Fix for
|
||||
UART7 and UART8 on STM32 clock enable from Aton (2014-9-11).
|
||||
* arch/arm/src/armv7-a/arm_vectors.S: ARMv7-A: Exception register
|
||||
save/restore needs to work a little differently if we support useri
|
||||
save/restore needs to work a little differently if we support user
|
||||
mode processes (2014-9-11).
|
||||
* configs/cc3200-launchpad/src/cc3200_leds.c and other board files: Add
|
||||
LED support for the CC3200 Launchpad. From Jim Ewing (2014-9-11).
|
||||
@ -8523,7 +8523,7 @@
|
||||
sama5/sam_pgalloc.c, and include/nuttx/addrenv.h: Add a configuration
|
||||
option for dynamic stack management (stack management not yet
|
||||
implemented) (2014-9-13).
|
||||
* arch/Kconfigm arm/src/armv7-a/addrenv.h, arm_addrenv.c, and
|
||||
* arch/Kconfig arm/src/armv7-a/addrenv.h, arm_addrenv.c, and
|
||||
arm_addrenv_utils.c, a1x/Make.defs, and sama5/Make.defs,
|
||||
include/nuttx/addrenv.h and arch.h: Move static helper routines from
|
||||
arm_addrenv.c and may them global so that they can be shared by
|
||||
@ -8544,14 +8544,14 @@
|
||||
process stack to ustack to make room in the name space for a kstack
|
||||
(2014-9-14).
|
||||
* arch/arm/src/armv7-a/arm_addrenv_kstack.c, include/nuttx/addrenv.h,
|
||||
arch.h, and othr files: Add the initial implementation of the process
|
||||
arch.h, and other files: Add the initial implementation of the process
|
||||
kernel stack logic. Not yet integrated into the main OS logic nor
|
||||
tested (2014-9-14).
|
||||
* binfmt/binfmt_execsymtab.c and Makefile, sched/task/task_execv.c,
|
||||
task_posixspawn.c, and Make.defs, include/unistd.h,
|
||||
include/nuttx/binfmt/symtab.h, and libc/unistd/Make.defs: execv() is
|
||||
a basic system interface. It should not be in libc/ but rather in
|
||||
sched/task. Its symboltable helper logic also belongs in the kernel
|
||||
sched/task. Its symbol table helper logic also belongs in the kernel
|
||||
but belongs in binfmt/ with the other symbol table logic (2014-9-15).
|
||||
* include/sys/syscall.h, syscall/syscall.csv, syscall_lookup.h, and
|
||||
syscall_stublookup.c: execl() is not a system interface. It belongs
|
||||
@ -8573,7 +8573,7 @@
|
||||
armv7-a version needs to be different to handle the case where we
|
||||
are dispatch kernel mode signals when running under a user mode group
|
||||
(2014-9-16).
|
||||
* arch/arm/src/armv7-a/arm_syscall.c: Correct stack handling is signal
|
||||
* arch/arm/src/armv7-a/arm_syscall.c: Correct stack handling if signal
|
||||
deliver to user processes (2014-9-16).
|
||||
* arch/arm/src/armv7-a/arm_physpgaddr.c, pgalloc.h, sama5/sam_pgalloc.c,
|
||||
and sam_pgalloc.h: Move some share-able logic from sama5/sam_pgalloc.c
|
||||
@ -8587,12 +8587,12 @@
|
||||
upper half which can enqueue new packets to send. Removed the block
|
||||
altogether, because can_txdone calls can_xmit which disables
|
||||
interrupts if there are no new packets to send. From Daniel Lazlo
|
||||
Sitzer (2103-9-17).
|
||||
Sitzer (2014-9-17).
|
||||
* drivers/can.c: In can_txdone, waiters on the semaphore should be
|
||||
informed regardless of the return value of can_xmit. First it returns
|
||||
-EIO if there are no new packets, and second the information of the
|
||||
waiters is about the last transferred packet. From Daniel Lazlo
|
||||
Sitzer (2103-9-17).
|
||||
Sitzer (2014-9-17).
|
||||
* SAMA5D4-EK: Add documentation/support for Rev E. board. Refresh NSH
|
||||
configuration. Fix some build errors/warnings introduced with recent
|
||||
work with the knsh configuration (2014-9-17).
|
||||
@ -8642,7 +8642,7 @@
|
||||
needed to support the shared memory feature (2014-9-23).
|
||||
* arch/arm/include/arch.h, src/armv7-a/addrenv.h, arm_addrenv.c,
|
||||
arm_addrenv_ustack.c, and arm_addrenv_utils.c: Add logic necessary
|
||||
to handler remapping of shared memory on contex switches (2014-9-23).
|
||||
to handle remapping of shared memory on context switches (2014-9-23).
|
||||
* include/nuttx/gran.h, mm/mm_gran/mm_granrelease.c, and Make.defs: Add
|
||||
interfaces to support un-initializing a granule allocator (2014-9-23).
|
||||
* arch/arm/src/armv7-a/arm_pgalloc.cm sched/group/group_addrenv.c, and
|
||||
|
407
ReleaseNotes
407
ReleaseNotes
@ -6744,7 +6744,7 @@ Additional new features and extended functionality:
|
||||
|
||||
- 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
|
||||
From Pelle Winderstam
|
||||
|
||||
* STMicro STM32 Drivers:
|
||||
|
||||
@ -6955,3 +6955,408 @@ Bugfixes. Only the most critical bugfixes are listed here (see the ChangeLog fo
|
||||
- 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.
|
||||
|
||||
NuttX-7.5
|
||||
---------
|
||||
|
||||
The 105th release of NuttX, Version 7.5, was made on September 28, 2014,
|
||||
and is available for download from the SourceForge website. Note
|
||||
that release consists of two tarballs: nuttx-7.5.tar.gz and
|
||||
apps-7.5.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:
|
||||
|
||||
- Watchdog Timer Allocation: (1) If we run out of pre-allocated
|
||||
watchdog times, the logic will now allocate additional timers
|
||||
from the heap. A reserve of pre-allocated watchdog timers is
|
||||
maintained so that there will always be timers available for
|
||||
interrupt handlers. (2) Added support for statically allocated
|
||||
watchdog timer
|
||||
- Address Environment Support: (2) New OS APIs integrated into all
|
||||
platform-specific context switching logic (up_block_task(),
|
||||
up_unblock_task(), _exit(), and others).
|
||||
- Kernel Build Support: (1) The MPU based "kernel build" renamed to a
|
||||
protected build (CONFIG_BUILD_PROTECTED); added support for the a
|
||||
new MMU-based "kernel build" (CONFIG_BUILD_KERNEL), (2) The system
|
||||
call library can now be built with CONFIG_NUTTX_KERNEL. New
|
||||
selection: CONFIG_LIB_SYSCALL.
|
||||
- System Startup: Add configuration options to start the system from
|
||||
a program on a file system (versus an address in memory).
|
||||
- Startup Parameter Passing. There used to be two ways to pass
|
||||
parameters to new tasks, depending upon the configuration: Either
|
||||
(1) argv[] as created as an array with each string strdup'ed. Or
|
||||
(2) argv[] array and strings were created on the stack before the
|
||||
new task was started. Now, there is only one way, way (1). Way
|
||||
(2) might be slightly more compact, but this is not worth carry the
|
||||
complexity of two different ways of doing the same thing.
|
||||
- Board Initialization: Add capability to perform initial board
|
||||
initialization on a separate worker thread. This is needed because
|
||||
there are many cases where initialization logic cannot execute on
|
||||
the start-up/IDLE thread. That is because blocking or waiting is
|
||||
not permitted on the IDLE thread.
|
||||
|
||||
* Memory Management:
|
||||
|
||||
- Granule Allocator: (1) Add a new function to reserve un-allocatable
|
||||
regions in the granule heap. (2) Add interfaces to support
|
||||
un-initializing a granule allocator.
|
||||
- Page Allocator: Add a simple physical page allocator based on the
|
||||
existing NuttX granule allocator. I am not certain if the granule
|
||||
allocator is sufficiently deterministic for long range use, but it
|
||||
gets get a page allocator in place for testing very quickly.
|
||||
- Remove CONFIG_MM_MULTIHEAP. Non-multiheap operation is no longer
|
||||
supported.
|
||||
- sbrk(): sbrk() is now supported in the kernel build to permit
|
||||
dyanmically sized, per-process heaps.
|
||||
- Per-Process Heaps: Space at the beginning of the process data space
|
||||
is now reserved for user heap management structures. In the kernel
|
||||
build mode, these heap structures are shared between the kernel and
|
||||
use code in order to allocate user-specific data.
|
||||
- User Heap Management: When a privileged thread exits, we have to
|
||||
use the kernel allocator to free memory; when an unprivileged thread
|
||||
exits, we don't have to do anything... heap memory will be cleaned
|
||||
up when the address environment is torn down.
|
||||
- Inter-Process Shared Memory Support: (1) Add implementation and
|
||||
documentation for shmget(), shmctl(), shmat(), and shmdt(). (2)
|
||||
Add system system calls to support the user call gate to the shared
|
||||
memory interfaces. (3) Add platform-specific interface definitions
|
||||
needed to support the shared memory feature.
|
||||
- Virtual Page Allocator: Add support for a per-process virtual page
|
||||
allocator. This is a new member of the task_group_s structure. The
|
||||
allocator must be initialized when a new user process is started and
|
||||
uninitialize when the process group is finally destroyed. It is
|
||||
used by shmat() and shmdt() to pick the virtual address onto which
|
||||
to map the shared physical memory.
|
||||
|
||||
* File Systems/Block Drivers/MTD:
|
||||
|
||||
- SMART FS and SMART FS procfs updates from Ken Pettit.
|
||||
- The MTD Read-ahead/Write buffer layer appears is now functional.
|
||||
|
||||
* Binary Formats:
|
||||
|
||||
- Add logic to initialize the per-process user heap when each user
|
||||
process is started.
|
||||
|
||||
* Graphics:
|
||||
|
||||
- Change all occurrences of NxConsole to NxTerm.
|
||||
|
||||
* Networking:
|
||||
|
||||
- PHY Interrupts: (1) Standardize a PHY interrupt attachment
|
||||
interface. (2) Add support for an ioctl that can be used to notify
|
||||
an application when there is a change in the network status
|
||||
signalled by a PHY interrupt.
|
||||
- Improved Send Logic: In the past, the first packet send to a new
|
||||
network peer would fail; there would be no entry in the ARP table
|
||||
for the peer and so an ARP request qould replace that first packet.
|
||||
Now as an option if CONFIG_NET_ARP_SEND=y, all send logic will (1)
|
||||
check if the peer MAC address is in the ARP table and, if not, (2)
|
||||
send ARP requests periodically to get the mapping and (3) wait for
|
||||
the ARP response. Then (4) when the ARP response is received then
|
||||
the actual send logic will be initiated. Thus there may be a delay
|
||||
with the first packet sent to a new peer, but the packet should not
|
||||
be lost
|
||||
|
||||
* Host Simulation:
|
||||
|
||||
- Emulated SPI FLASH driver for the sim target from Ken Pettit.
|
||||
|
||||
* Intel x86:
|
||||
|
||||
- The default host is now x86_64 and the -m32 option will be
|
||||
automatically selected for simulation builds.
|
||||
|
||||
* Intel 8051 Family:
|
||||
|
||||
- Removed all support for the 8051 family architecture from the NuttX
|
||||
source tree. The obsoleted code along with the removal patch can
|
||||
now be found at misc/Obsoleted/. This code was removed because (1)
|
||||
although some functionality has been demonstrated, I am not aware of
|
||||
any really successful ports of NuttX to any 8051, and (2) the 8051,
|
||||
with its hardware stack, forces limitations and complications to the
|
||||
other architectures and make growth and development of NuttX more
|
||||
complex.
|
||||
|
||||
* ZiLOG ZNeo Boards:
|
||||
|
||||
- configs/16z: Support for this board has been removed from the NuttX
|
||||
source tree (but still can be found in the misc/Obsoleted
|
||||
directory). This port is not ready for usage but may return to the
|
||||
NuttX tree at some point in the future.
|
||||
|
||||
* Atmel SAM3/4 Boards:
|
||||
|
||||
- SAM4E-EK: Add (1) a fully-functional ILI9341-based LCD driver and
|
||||
(2) a fully-functional NxWM configuration.
|
||||
|
||||
* ARMv7-A:
|
||||
|
||||
- Address Environments: Add support for application address
|
||||
environments using the Cortex-A MMU. Implement standardized
|
||||
platform-specific interfaces of NuttX address environment
|
||||
support.
|
||||
- Cache Operations: Implement standardized, platform-specific cache
|
||||
operations. These are called from the ELF loader in order to flush
|
||||
D-cache and invalidate I-cache after an ELF module has been loaded
|
||||
into memory. With this change, ELF modules work correctly on the
|
||||
SAMA5/Cortex-A platform.
|
||||
- Kernel Build: (1) Add implementations of system call gate. (2) Add
|
||||
CRT0 start-up file that can be linked with separately built user
|
||||
programs. (3) Add support for delivery of use-mode signals in the
|
||||
kernel build. (4) Add logic to initialize the per-process user heap
|
||||
when each user process is started. (5) ARMv7-A exception handling
|
||||
needs to work a little differently if we support user mode
|
||||
processes. This is because R13 and R14 are paged differently
|
||||
between user and SVC mode.
|
||||
- Shared Memory Support: (1) Add logic necessary to handle remapping
|
||||
of shared memory on context switches. (2) Extend virtual/physical
|
||||
address conversions to include addresses in shared memory. (3) Add
|
||||
implementation of platform-specific shared memory support.
|
||||
|
||||
* Atmel SAMA5D Drivers:
|
||||
|
||||
- Implement all network ioctls, including the new ioctl to setup PHY
|
||||
event notifications.
|
||||
- In kernel build with address environment, need logic to map user
|
||||
virtual addresses to physical addresses, and vice versa.
|
||||
|
||||
* Atmel SAMA5D Boards:
|
||||
|
||||
- SAMA5D3 Xplained, SAMA5D3-EK, and SAMA5D4-EK: Convert existing
|
||||
board specific PHY interrupt interfaces to use newly defined
|
||||
standard interface.
|
||||
- SAMA5D4-EK: Add a configuration for testing the kernel build
|
||||
configuration. There are configurations to boot either from an SD
|
||||
card or from and in-memory ROMFS file system.
|
||||
- SAMA5D4-EK: Add documentation/support for Rev E. board.
|
||||
|
||||
* STMicro STM32 Drivers:
|
||||
|
||||
- Ethernet: Modified to support the change to the network ioctl
|
||||
signature changes. Also add support for new ioctl to setup PHY
|
||||
event notifications.
|
||||
|
||||
* STMicro STM32 Boards:
|
||||
|
||||
- STM32F4Discovery with STM32F4DIS-BB: Add a network enabled NSH
|
||||
configuration for the STM32F4Discovery board with the STM32F4DIS-BB
|
||||
base board installed. Includes support for the microSD card slot on
|
||||
the STM32F4DIS-BB base board.
|
||||
|
||||
* TI Tiva Drivers:
|
||||
|
||||
- Add support for the TI CC3200. From Jim Ewing.
|
||||
|
||||
* TI Tiva Boards:
|
||||
|
||||
- Add support for the TI CC3200 Launchpad. From Jim Ewing.
|
||||
|
||||
* C Library:
|
||||
|
||||
- Re-implemented poll() delay using sem_timedwait().
|
||||
|
||||
* Configuration/Build System:
|
||||
|
||||
- Export Target: In the kernel or protected builds, (1) only the user
|
||||
libraries should be exported, (2) do not copy internal header files
|
||||
or build scripts if this is a kernel or protected build, and (3)
|
||||
needs to bundle up the user C startup file (crt0), not the kernel
|
||||
head object for the kernel and protected builds.
|
||||
- Add logic that will permit us to build user libraries with different
|
||||
CFLAGS than kernel code. This is needed because we need the
|
||||
-fno-common option when building ELF code to prevent SHN_COMMON
|
||||
relocations.
|
||||
|
||||
* Applications:
|
||||
|
||||
- NSH: Extend the NSH network initialization logic. There is now an
|
||||
option that will create a network monitor thread that will monitor
|
||||
the state of the link. When the link goes down, the code will
|
||||
attempt to gracefully put the Ethernet driver in a down state; When
|
||||
the link comes back, the code will attempt to bring the network back
|
||||
up.
|
||||
- ELF Example: The ELF test/example has been extended so the
|
||||
individual ELF test programs can link against the SYSCALL library
|
||||
(if it is available) or against the C library to eliminate or
|
||||
minimize the need for symbol tables.
|
||||
- Change all occurrences of NxConsole to NxTerm.
|
||||
- MTDRWB Example: Add an example to test MTD R/W buffering.
|
||||
- OS Test Example: Add a trivial test of sem_timedwait.
|
||||
|
||||
* Application Configuration/Build System:
|
||||
|
||||
- Import Target: (1) Add logic that will allow building applications
|
||||
against a NuttX export package (vs. the nuttx/ source tree). (2)
|
||||
Add .config file to export package. (3) Create apps/import. Create
|
||||
apps/import/Make.defs that does things like define CFLAGS; ELF build
|
||||
requires -fno-common in CFLAGS. Copy some base logic from
|
||||
nuttx/tools/Config.mk to apps/import/Make.defs. (4) Add
|
||||
apps/import/scripts/gnu-elf.ld GCC linker script for ELF import
|
||||
builds.
|
||||
- All Makefiles: (1) Add an install target to all makefiles. For
|
||||
the import build, the top-level Makefile now does two passes: (1)
|
||||
builds libapp.a, then (2) installs the programs into apps/bin. (2)
|
||||
Add program installation for CONFIG_BUILD_KERNEL in all Makefiles
|
||||
that build a main(). (3) For kernel build, the object file
|
||||
containing main cannot go into library because of name collisions.
|
||||
The object file must be handled as a special case in every Makefile.
|
||||
- All Built-In Programs: With kernel build (CONFIG_BUILD_KERNEL),
|
||||
entry point to all tasks is main(), not some xyz_main().
|
||||
- NSH: Several commands must be disabled in the kernel build because
|
||||
they depend on interfaces that are not available outside of the
|
||||
kernel: dd, df, losetup, mkfatfs, mkdr, and ps.
|
||||
- apps/tools/: (1) Add mkimport.sh to expload an NuttX import package
|
||||
and install in apps/import. (2) Add mkromfsimg.sh script to create
|
||||
a BOOT ROMFS filesystem image.
|
||||
- ELF and NxFLAT Examples: Do not build test cases that use
|
||||
task_create() if there is an address environment.
|
||||
|
||||
* Tools:
|
||||
|
||||
- refresh.sh: Add a tool to make refreshing configurations easier
|
||||
when you want to do a lot of them.
|
||||
- mksyscall.c: Build syscalls that do not need header files.
|
||||
- mkexport.sh: Add .config file to export package.
|
||||
- See above for new apps/tools scripts.
|
||||
|
||||
Efforts In Progress. The following are features that are partially
|
||||
implemented but present in this release. They are not likely be be
|
||||
completed soon.
|
||||
|
||||
* Processes. Much of the work in this release is focused on the
|
||||
realization of Unix-style user processes in NuttX. There is more to
|
||||
be done, however. The full roadmap and status is available at:
|
||||
http://www.nuttx.org/doku.php?id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes
|
||||
|
||||
* XMega: There are some fragments in place for an XMega port. That
|
||||
port has not really started, however.
|
||||
|
||||
* Galileo: Similarly, there are fragments in place for an Intel Galileo
|
||||
port. The port not been started in earnest either.
|
||||
|
||||
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:
|
||||
|
||||
- Kernel build fixes: (1) IDLE TCB setup needs to indicate that the
|
||||
IDLE thread is a privileged, kernel thread. (2) Don't build
|
||||
task_create() or task_spawn() interfaces if there is an address
|
||||
environment. (3) posix_spawn() kernel proxy thread should be a
|
||||
kernel thread, not a user task.
|
||||
- Several pthread interfaces: Add const storage class to to phthread
|
||||
parameters. From Freddie Chopin.
|
||||
- sched/clock: Remove vestiges of g_tickbias; need, instead, to apply
|
||||
time bias to g_basetime in order to provide the correct system time.
|
||||
- System Calls: (1) Several typos fixed; corrected integration of
|
||||
exevc(), execvl(), posix_spawn, and posix_spawnp system calls. (2)
|
||||
If we are configured to use a kernel stack while in SYSCALL handling,
|
||||
then we need to switch back to the user stack to deliver a signal.
|
||||
|
||||
* File Systems/Block Drivers/MTD:
|
||||
|
||||
- procfs: Fix some procfs breakage introduced by reorganizing some
|
||||
non-reorganizable data structures. From Ken Pettit.
|
||||
- AT45: In at45db_bwrite , the buffer is not increased when writing
|
||||
more than 1 page. Sourceforge bug #34.
|
||||
|
||||
* Binary Formats:
|
||||
|
||||
- ELF relocations. Some relocation types do not have a named symbol
|
||||
associated with them. The design did not account for that case.
|
||||
- ELF Loader: Critical bugfix.. BSS was not being cleared.
|
||||
|
||||
* Memory Management:
|
||||
|
||||
- Granule allocator initialization uses wrong allocator to setting
|
||||
aside kernel memory.
|
||||
- Add a flag to group structure: If the group is created by a kernel
|
||||
thread, then all resources in the group must be privileged.
|
||||
|
||||
* Cryptogrphic Support:
|
||||
|
||||
- crypto/cryptodev.c: Path segments reversed in include file path. Noted by Brennan Ashton.
|
||||
|
||||
* Common Drivers:
|
||||
|
||||
- Common CAN upper-half: In can_txdone, waiters on the semaphore
|
||||
should be informed regardless of the return value of can_xmit. First
|
||||
it returns -EIO if there are no new packets, and second the
|
||||
information of the waiters is about the last transferred packet.
|
||||
From Daniel Lazlo Sitzer.
|
||||
|
||||
* ARM:
|
||||
|
||||
- System Calls: Fix a typo in system call when fetching parameter from
|
||||
the stack: regs[REG_PC]+4 is the address, not regs[REG_PC+4].
|
||||
|
||||
* STMicro STM32 Drivers:
|
||||
|
||||
- STM32 F401 UART: Correct support for USART6 on this chip. From
|
||||
Freddie Chopin.
|
||||
- STM32 FLASH fixes: use size_t instead of uint16_t, make interface
|
||||
more generic. From Freddie Chopin.
|
||||
- Fix for UART7 and UART8 on STM32 clock enable from Aton.
|
||||
- CAN: At the end of the interrupt handler, the interrupts were being
|
||||
disabled, if all packets have been transferred when the interrupt
|
||||
handler was invoked. This is problematic, because the interrupt
|
||||
handler calls can_txdone of the upper half which can enqueue new
|
||||
packets to send. Removed the block altogether, because can_txdone
|
||||
calls can_xmit which disables interrupts if there are no new packets
|
||||
to send. From Daniel Lazlo Sitzer.
|
||||
- Additional STM32 CAN correction suggested by Max Holtzberg.
|
||||
|
||||
* STMicro ST32 Boards:
|
||||
|
||||
- configs/mikroe-stm32f4: Fix a few compile bugs and minor corrections
|
||||
to the mikroe-stm32f4 configuration source. From Ken Pettit.
|
||||
|
||||
* ARM9/ARMv7-A:
|
||||
|
||||
- System Calls: Fix ARM7/9 and Cortex-A SYSCALLs: For threads in SVC
|
||||
mode, the SVC instructions clobbers R14. This must be taken account
|
||||
in the inline assembly.
|
||||
- Task Setup: All tasks, even user mode tasks, must start in
|
||||
supervisor mode until they get past the start-up trampoline.
|
||||
- ARMv7-A: Modify up_fullcontextrestore() for CONFIG_BUILD_KERNEL.
|
||||
It changed CPSR while in kernel. That will crash if the new CPSR is
|
||||
user mode while executing in kernel space. Fixed by adding a
|
||||
SYS_context_restore system call. There is an alternative, simpler
|
||||
modification to up_fullcontextrestore() that could have been done:
|
||||
It might have been possible to use the SPSR instead of the CPRSR and
|
||||
then do an exception return from up_fullcontextrestore(). That
|
||||
would be more efficient, but I never tried it.
|
||||
|
||||
* Atmel SAM3/4 Boards:
|
||||
|
||||
- SAM3X/Arduino Due: Fix typo in sam3x_periphclks.h; add SCLK
|
||||
definitions to board.h header file. From Fabien Comte.
|
||||
- SAM3 RTT: Only SAM4 family has RTTDIS bit in the MR register.
|
||||
SourceForge bug #33 from Fabien Comte.
|
||||
|
||||
* C Library:
|
||||
|
||||
- sscanf(): NuttX libc tried to guess how many characters to parse,
|
||||
extracted them into a buffer, then ran strtol() on that buffer.
|
||||
That guess was often wrong. A better approach would be to call
|
||||
strtol() directly on the input data, using the endptr return value
|
||||
to determine how many characters to skip after parsing. From Kosma
|
||||
Moczek.
|
||||
- Corrected atan2 implementations from Denis Arnst.
|
||||
- Change to lib_dtoa() to fix precision error from trailing zeroes.
|
||||
From Bob Doiron.
|
||||
|
||||
* Applications:
|
||||
|
||||
- Fix NSH PS command: If there are no arguments, it could print
|
||||
garbage for argument list.
|
||||
|
||||
* Configuration/Build System:
|
||||
|
||||
- Null Example: Need to include config.h it order know if this is or
|
||||
is not a kernel build. This problem still exists in several other
|
||||
file that may need to define main().
|
||||
|
Loading…
Reference in New Issue
Block a user