Upate ReleaseNotes in prep for 7.19 release.
This commit is contained in:
parent
849a5dc2a9
commit
a002b85fa2
26
ChangeLog
26
ChangeLog
@ -3130,7 +3130,7 @@
|
||||
point numbers.
|
||||
* lib/stdio/lib_libdtoa.c and lib_libvsprintf.c: Correct some floating
|
||||
point options.
|
||||
* arch/arm/lpc43xx/lpc32_usb0dev.c: Add framework for development of
|
||||
* arch/arm/lpc43xx/lpc43_usb0dev.c: Add framework for development of
|
||||
an USB0, device-side driver for the LPC43XX. The initial check-in,
|
||||
however, is simply for the LPC31xx driver with name changes. The
|
||||
LPC31xx has the same USB IP, but will require some additional initialization
|
||||
@ -4440,7 +4440,7 @@
|
||||
* binfmt/binfmt_execmodule.c: Here is a place where I forget
|
||||
to update the call to sched_releasetcb() to pass the thread
|
||||
type as the second parameter (2013-03-23).
|
||||
* arch/arm/src/lm, kinetis, lpc32, and nuc1xx: Add kernel build
|
||||
* arch/arm/src/lm, kinetis, lpc43, and nuc1xx: Add kernel build
|
||||
support to all ARMv7-M and ARMv6-M chips. There are no
|
||||
configurations in place to to verify these additions!
|
||||
(2013-03-24).
|
||||
@ -10964,7 +10964,7 @@
|
||||
(2015-09-09).
|
||||
* configs/nucleo-f303re: Support for the STMicro Nucleo F303RE board
|
||||
from Paul Alexander Patience (2015-09-10).
|
||||
* arch/arm/src/lpc43xx/lpc32_ehci.c and .h: LPC43xx EHCI driver from
|
||||
* arch/arm/src/lpc43xx/lpc43_ehci.c and .h: LPC43xx EHCI driver from
|
||||
Ilya Averyanov (2015-09-10).
|
||||
* ARMv7-M, all "lazy" interrupt stack logic. Assembly instruction
|
||||
that fetches the saved value is incorrect; replace with more
|
||||
@ -12348,7 +12348,7 @@
|
||||
adds DEBUGASSERT for invalid geometry and additional memory debug
|
||||
logic. Also fixes the dangling pointer on error bug. From Ken
|
||||
Pettit (2016-07-14).
|
||||
* arch/arm/src/lpc32xx: Extend LPC43xx EMC code to support SDRAM on a
|
||||
* arch/arm/src/lpc43xx: Extend LPC43xx EMC code to support SDRAM on a
|
||||
dynamic memory interface. From Vytautas Lukenskas (2016-07-19).
|
||||
* arch/sim/src: Add the simulated QSPI (N25Q) flash to the simulation
|
||||
and modify sim up_spiflash.c to enable it to run with different MTD
|
||||
@ -12847,16 +12847,16 @@
|
||||
(2016-10-19).
|
||||
* libc/locale: Allows c++ code to compile with or without
|
||||
CONFIG_LIBC_LOCALE and will generate a link error if CONFIG_LIBC_LOCALE
|
||||
is not defined and setlocale is referneced. With CONFIG_LIBC_LOCALE
|
||||
is not defined and setlocale is referenced. With CONFIG_LIBC_LOCALE
|
||||
defined setlocale will act as if MB string is not supported and return
|
||||
"C" for POSIX. C and "". From David Sidrane (2016-10-19).
|
||||
* Add vectors for interrupt levels 2-6 (2016-10-20).
|
||||
* strtof: Add strtof() as simply a copy of strtod with types and
|
||||
* Xtensa ESP32: Add vectors for interrupt levels 2-6 (2016-10-20).
|
||||
* strtof(): Add strtof() as simply a copy of strtod with types and
|
||||
limits changed (2016-10-20).
|
||||
* arch/arm/src/stm32v7: Register the watchdog device at the configured
|
||||
device path CONFIG_WATCHDOG_DEVPATH vs. hard-coded /dev/wdt. From Frank
|
||||
Benkert (2016-10-21).
|
||||
* configs/*/defdonf The buttons example was changed to archbuttons. As
|
||||
* configs/*/defconfig: The buttons example was changed to archbuttons. As
|
||||
a result all of the button configurations are broken and need some
|
||||
renaming in the defconfig files. Noted by Frank Berkert (2016-10-21).
|
||||
* configs/stm32f103-minimum: Add support to PWM on STM32F103-Minimum
|
||||
@ -12912,7 +12912,7 @@
|
||||
found in the F4. From David Sidrane (2016-10-26).
|
||||
* arch/arm/src/stm32f7: stm32f76xx77xx_pinmap.h Missed one. From
|
||||
David Sidrane (2016-10-26).
|
||||
* LPC32xx serial: Fix a typo in ioctl TIOCSRS485 ioctl. From Vytautas
|
||||
* LPC43xx serial: Fix a typo in ioctl TIOCSRS485 ioctl. From Vytautas
|
||||
Lukenskas (2016-10-27).
|
||||
* sched/clock: Correct clock initialization. The correct range for
|
||||
the month is 0-11 but is entered as 1-12 in the .config file
|
||||
@ -12922,7 +12922,7 @@
|
||||
* sched/Kconfig: Add ranges to START_YEAR, MONTH, and DAY (2016-10-28).
|
||||
* configs/nucleo-f303re: Add STM32 F303RE hello configuration; remove
|
||||
duplicate setting from board.h. From Marc Rechté (2016-10-18).
|
||||
* arch/arm/src/lpc32xx: Restore RS485 mode on serial port open (if
|
||||
* arch/arm/src/lpc43xx: Restore RS485 mode on serial port open (if
|
||||
RS485 is enabled via menuconfig). From Vytautas Lukenskas (2016-10-28).
|
||||
* arch/arm/src/stm32f7: otgdev fixed typo. From David Sidrane
|
||||
(2016-10-28).
|
||||
@ -13101,7 +13101,7 @@
|
||||
argument so that there can be additional usage. From Sebastien Lorquet
|
||||
(2016-11-17).
|
||||
* All timer lower half drivers. Port Sebastien's changes to all all
|
||||
other implementations of the timer lower half. Very many just and
|
||||
other implementations of the timer lower half. Many changes and
|
||||
untested. Expect some problems. (2016-11-17).
|
||||
* sched/irq: irq_csection() has a bad assumption in the SMP case. It
|
||||
assumed that the state of certain variables. That was true on entry
|
||||
@ -13237,7 +13237,7 @@
|
||||
and execute "make" it will not detect that Pin.cxx was modified. I
|
||||
think there is some other place I should modify, but I didn't find
|
||||
it. From Alan Carvalho de Assis (2016-11-27).
|
||||
* ARMv7-A/i.MX6 SMP: Move SMP coherernt cache setup to earlier in
|
||||
* ARMv7-A/i.MX6 SMP: Move SMP coherent cache setup to earlier in
|
||||
initialization of CPUn, n>0 (2016-11-27).
|
||||
* ARMv7 GIC: SGIs are non-maskable but go through the same path as other,
|
||||
maskable interrupts. Added logic to serialize SGI processing when
|
||||
@ -13378,7 +13378,7 @@
|
||||
just how small you could get NuttX, but otherwise it was not useful:
|
||||
(1) the NSH code violated the OS interface layer by callup up_getc and
|
||||
up_putc directly, and (2) while waiting for character input, NSH would
|
||||
call up_getc() which would hog all of the CPU. NOt a reasonably
|
||||
call up_getc() which would hog all of the CPU. Not a reasonable
|
||||
solution other than as a proof of concept (2016-12-13).
|
||||
* Calypso Boards: Remove all Calypso board configurations (2016-12-13).
|
||||
* Calypso: Remove Calypso architecture support and support for Calypso
|
||||
|
791
ReleaseNotes
791
ReleaseNotes
@ -12294,3 +12294,794 @@ detailed bugfix information):
|
||||
|
||||
- apps/examples/oneshot: If the requested delay is > max_delay, then
|
||||
break the delay up into several pieces.
|
||||
|
||||
NuttX-7.19 Release Notes
|
||||
------------------------
|
||||
|
||||
The 119th release of NuttX, Version 7.19, was made on December 26, 2016,
|
||||
and is available for download from the Bitbucket.org website. Note
|
||||
that release consists of two tarballs: nuttx-7.19.tar.gz and
|
||||
apps-7.19.tar.gz. These are available from:
|
||||
|
||||
https://bitbucket.org/nuttx/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:
|
||||
|
||||
- sched/semaphore, sched/phread/, libc/semaphore, libc/pthread: Add
|
||||
pthread_mutexattr_get/set_protocol and non-standard
|
||||
sem_get/set_protocol. These may use to enable or disable priority
|
||||
inheritance on a single semaphore.
|
||||
- Spinlocks: Added capability to provide architecture-specific memory
|
||||
barriers.
|
||||
- SMP: Add spin_trylock(). Use this in conditions where other CPUs need
|
||||
to stopped but we cannot call enter_critical_section().
|
||||
- sched note: Extend OS instrumentation to include some SMP events.
|
||||
Also add spinlock instrumentation; In SMP configurations, add a
|
||||
filter mask to log only notes from certain CPUs.
|
||||
- sched note: Permit spinlock and critical section notes in in-memory
|
||||
buffer iff sched_not_get() interfaces is disabled.
|
||||
- sched note: Add additional note to see if/when CPU is started in SMP
|
||||
mode.
|
||||
- sched note: Record ID enumeration now results on constant values; ID
|
||||
values do not change with configuration. This makes writing post-processing software much easier.
|
||||
- boardctl: Add new boardctl() command, BOARDIOC_NX_START, to start the
|
||||
NX server as a kernel thread.
|
||||
- pthreads: Add pthread_cleanup_push() and pthread_cleanup_pop().
|
||||
- pthreads: Added pthread_setcanceltype() and pthread_testcancel().
|
||||
- pthreads: Add support for cancellation points.
|
||||
- task_delete() now obeys all cancellation point semantics.
|
||||
- Add task_setcancelstate(), task_setcanceltype(), and
|
||||
task_testcancel(). These are non-standard interfaces analogous to the
|
||||
correponding pthread_ interfaces that provide cancellation controls
|
||||
for tasks.
|
||||
|
||||
* Graphics/Display Drivers:
|
||||
|
||||
- boardctl: Add new boardctl() command, BOARDIOC_NX_START, to start the
|
||||
NX server as a kernel thread.
|
||||
|
||||
* Networking/Network Drivers:
|
||||
|
||||
- Network drivers: Add option to use low-priority work queue to all
|
||||
Ethernet and MAC level drivers.
|
||||
- Network Drivers: Adapt all Ethernet (and other MAC) drivers to work
|
||||
as though CONFIG_NET_MULTIBUFFER were set. Remove all references to
|
||||
CONFIG_NET_MULTIBUFFER.
|
||||
- Eliminate CONFIG_NO_NOINTS. There is no longer any support for
|
||||
interrupt level processing of the network stack. Lots of files changed.
|
||||
|
||||
* Other Common Device Drivers:
|
||||
|
||||
- Vishay VEML6070: Add Vishay VEML6070 driver. From Alan Carvalho de
|
||||
Assis.
|
||||
|
||||
* ARMv7-A
|
||||
|
||||
- ARMv7-A/i.MX6: Add SCU register definitions. Add some controls to
|
||||
enable SMP cache coherency in SMP mode. Makes no difference, however
|
||||
-- cache still incoherent on i.MX6.
|
||||
- ARMv7 GIC: SGIs are non-maskable but go through the same path as
|
||||
other, maskable interrupts. Added logic to serialize SGI processing
|
||||
when necessary.
|
||||
|
||||
* Atmel SAM3/4:
|
||||
|
||||
- SAM3/4: Add SMP support for the dual-core SAM4CM. From Masayuki
|
||||
Ishikawa.
|
||||
|
||||
* Atmel SAM3/4 Drivers:
|
||||
|
||||
- Add support for the SAM5CMP-DB board. From Masayuki Ishikawa.
|
||||
|
||||
* Atmel SAM3/4 Boards:
|
||||
|
||||
- SAM4CMP-DB: Add support for the Atmel SAM4CMP-DB board running in an
|
||||
SMP configuration. From Masayuki Ishikawa.
|
||||
- SAM4CMP-DB: Add hooks to auto-mount the procfs file system on startup
|
||||
in board bring-up logic.
|
||||
|
||||
* Atmel SAMV7 Drivers:
|
||||
|
||||
- SAMv7: Register the watchdog device at the configured device path
|
||||
CONFIG_WATCHDOG_DEVPATH vs. hard-coded /dev/wdt. From Frank Benkert.
|
||||
|
||||
* Calypso
|
||||
|
||||
- Calyps: Remove all Calypso board configurations. Remove Calypso
|
||||
architecture support and support for Calypso SERCOMM driver.
|
||||
|
||||
* Misoc LM32:
|
||||
|
||||
- Misoc LM32: Adds basic support for the Misoc procoessors and the LM32
|
||||
in particular. From Ramtin Amin.
|
||||
- Misoc LM32: Add signal handling logic. From Ramtin Amin.
|
||||
- Misoc LM32: Add logic to flush/invalidate caches. From Ramtin Amin.
|
||||
|
||||
* Misoc LM32 Drivers:
|
||||
|
||||
- Misoc LM32 Serial: Add interrupting Misoc serial driver. From Ramtin
|
||||
Amin.
|
||||
- Misoc LM32 Timer: Add timer driver. From Ramtin Amin.
|
||||
- Misoc LM32: Add Misoc Ethernet driver From Ramtin Amin.
|
||||
|
||||
* Misoc LM32 Boards:
|
||||
|
||||
- Misoc LM32 Qemu: Board support for testing Misoc LM32 with Qemu. From
|
||||
Ramtin Amin.
|
||||
- Misoc LM32 Qemu: Integrate network support into configs/misoc/hello.
|
||||
From Ramtin Amin.
|
||||
- Misoc LM32 Qemu: Remove configs/misoc/include/generated directory. I
|
||||
suppose the the intent now is that this is a symbolic link? DANGER!
|
||||
This means that you cannot compile this code with first generating
|
||||
these files a providing a symbolic link to this location! There is a
|
||||
sample directory containing generated sources. This is really only
|
||||
useful for performing test builds. You really must generate the Misoc
|
||||
architecture for a real-life build. From Ramtin Amin.
|
||||
|
||||
* NXP Freescale i.MX6 Drivers:
|
||||
|
||||
- i.MX6: Add an untested SPI driver taken directly from the i.MX1 port.
|
||||
|
||||
* NXP Freescale Kinetis:
|
||||
|
||||
- Kinetis: Added missing headers. Kinetis broke out SPI to
|
||||
kinetis/kinetis_spi.h. Broke out DMA to use the modern Nuttx chip
|
||||
inclusion - still STUBS. Add Kinetis support for ARMV7-M Common
|
||||
Vector and FPU. Allow CONFIG_ARMV7M_CMNVECTOR,
|
||||
CONFIG_STACK_COLORATION, CONFIG_ARCH_FPU. Fix i2c driver offset
|
||||
swapped for value in kinetis_i2c_putreg. From David Sidrane.
|
||||
|
||||
* NXP Freescale Kinetis Drivers:
|
||||
|
||||
- Kinetis: Add UID Unique ID. From Neil Hancock.
|
||||
|
||||
* NXP Freescale Kinetis Boards:
|
||||
|
||||
- Freedom-K64F board: Add support for UID Unique ID. From Neil Hancock.
|
||||
|
||||
* NXP Freescale LPC17xx Boards:
|
||||
|
||||
- Olimex-LPC1766-STK: Enable procfs in NSH configuration. Automount
|
||||
/proc on startup.
|
||||
|
||||
* NXP Freescale LPC43xx Drivers:
|
||||
|
||||
- LPC43xx: Add timer driver: From Alan Carvalho de Assis.
|
||||
- LPC43xx GPDMA driver: The GPDMA block is basically the same as the
|
||||
LPC17xx. Only the clock configuration is different and LPC43xx has
|
||||
four different DMA request sources, where LPC17xx has only two. From
|
||||
Alan Carvalho de Assis.
|
||||
|
||||
* NXP Freescale LPC43xx Boards:
|
||||
|
||||
- Bambino 200E: Add basic support to Micromint Bambino 200E board.
|
||||
This includes contributions from Jim Wolfman. From Alan Carvalho de
|
||||
Assis.
|
||||
- Bambino 200E: Add support for timer driver. From Alan Carvalho de
|
||||
Assis.
|
||||
|
||||
* RGMP:
|
||||
|
||||
- Remove RGMP and RGMP drivers.
|
||||
|
||||
* RISC-V:
|
||||
|
||||
- RISC-V: Add support for the RISC-V architecture and
|
||||
configs/nr5m100-nexys4 board. The board support on this is pretty
|
||||
thin, but it seems like maybe a good idea to get the base RISC-V stuff
|
||||
in since there are people interested in it. From Ken Pettit.
|
||||
|
||||
* STMicro STM32 Drivers:
|
||||
|
||||
- STM32 F3: Implemention of the STM32 F37xx SDADC module. There are
|
||||
also changes to ADC, DAC modules. SDADC has only been tested in DMA
|
||||
mode and does not support external TIMER triggers. This is a work in
|
||||
progress. From Marc Rechté.
|
||||
- STM32 F3: Add PWM driver support for STMF37xx. The changes have been
|
||||
tested successfuly for TIM4 and TIM17 (different IPs). From Marc
|
||||
Rechté.
|
||||
- STM32 F4: Support oversampling by 8 for the STM32 F4. From David
|
||||
Sidrane.
|
||||
- STM32 F4: Added Timers 2-5 and control of SAI and I2S PLLs. Added
|
||||
support for stmf469 SAI and I2S PLL configuration and STM446 fixes.
|
||||
From David Sidrane.
|
||||
- STM32 F4: Expanded OTGFS support to stm32F469 and stm32f446. Added
|
||||
missing bit definitions, Used stm32F469 and stm32f446 bit
|
||||
definitions, Removed unsed header file. From David Sidrane.
|
||||
- STM32 F4: Allow dma in 1 bit mode in STM32F4xxx. From David Sidrane.
|
||||
- STM32 F7: Allow the config to override the clock edge setting. From
|
||||
David Sidrane.
|
||||
- STM32 L4: Support Complementary PWM outputs on STM32L4. From
|
||||
Sebastien Lorquet.
|
||||
- STM32 L4: Add implementation of dumpgpio for stm32l4, was required
|
||||
for pwm debug. From Sebastien Lorquet.
|
||||
|
||||
* STMicro STM32 Boards:
|
||||
|
||||
- STM32F103 Minimum: Add button support. From Alan Carvalho de Assis.
|
||||
- STM32F103 Minimum: Add support to PWM on STM32F103-Minimum board.
|
||||
From Alan Carvalho de Assis.
|
||||
- STM32F103 Minimum: Add RGB LED support on STM32F103 Minimum board.
|
||||
From Alan Carvalho de Assis.
|
||||
- STM32F103 Minimum: Add Vishay VEML6070 driver support to the
|
||||
STM32F103-Minimum board. From Alan Carvalho de Assis.
|
||||
- Nucleo-F303RE: Add STM32 F303RE hello configuration. From Marc
|
||||
Rechté.
|
||||
- Nucleo-L476: Support PWM testing on board Nucleo L476. From
|
||||
Sebastien Lorquet.
|
||||
- Nucleo L476: Add support for timers to Nucleo L476. From Sebastien
|
||||
Lorquet.
|
||||
- Hymini STM32v: Enable CONFIG_RTC in the hymini-stm32v/nsh2
|
||||
(kitchensink) config. From Maciej Wójcik.
|
||||
- Olimex STM32-p407: Add support for the Olimex STM32 P407 board.
|
||||
|
||||
* TI Tiva Drivers:
|
||||
|
||||
- Tiva PWM: Support PWM_PULSECOUNT feature for TI tiva. From Young.Mu.
|
||||
|
||||
* Xtensa/ESP32
|
||||
|
||||
- Xtensa ESP32: Basic architectural support for Xtensa processors and
|
||||
the Expressif. ESP32 added.
|
||||
- Xtensa ESP32: Add EXPERIMENTAL hooks to support lazy Xtensa
|
||||
co-processor state restore in the future.
|
||||
- Xtensa ESP32: Basic port is function in both single CPU and dual CPU
|
||||
SMP configurations. There is an NSH configuration for each CPU
|
||||
configuration. Outstanding issues include missing clock configuration
|
||||
logic, missing partition tables to support correct configuration from
|
||||
FLASH, and some serial driver pin configuration issues.
|
||||
- Xtensa ESP32: Add stack checking logic.
|
||||
|
||||
* Xtensa/ESP32 Boards:
|
||||
|
||||
- ESP32 Core v2: Basic support for Expressif ESP32 Core v2 board
|
||||
added. The initial release includes an NSH and an SMP test
|
||||
configuration.
|
||||
- ESP32 Core v2: Add configuration to support linking NuttX for
|
||||
execution out of IRAM.
|
||||
- ESP32 Core v2: Automatically mount /proc at start-up.
|
||||
- ESP32 Core v2: Add an OS test to verify the port.
|
||||
|
||||
* C Library/Header Files:
|
||||
|
||||
- libc/locale: Add a dummy setlocale() function to avoid drawing the
|
||||
function from newlib. Add clocale header file.
|
||||
- include/locale.h: Modify locale.h to add localeconv() and lconv
|
||||
structure. From Alan Carvalho de Assis.
|
||||
- libc/locale: Allows c++ code to compile with or without
|
||||
CONFIG_LIBC_LOCALE and will generate a link error if
|
||||
CONFIG_LIBC_LOCALE is not defined and setlocale is referenced. With
|
||||
CONFIG_LIBC_LOCALE defined setlocale will act as if MB string is not
|
||||
supported and return "C" for POSIX. C and "". From David Sidrane.
|
||||
- libc/wchar: Add wcslen, wmemchr, wmemcmp, wmemcpy wmemset, btowc,
|
||||
mbrtowc, mbtowc, wcscmp, wcscoll, and wmemmove to NuttX. From Alan
|
||||
Carvalho de Assis.
|
||||
- libc/wctype: Add functions wcrtomb, wcslcpy, wcsxfrm, wctob, wctomb,
|
||||
wctype, localeconv, strcoll, strxfrm, swctype, towlower, towupper and
|
||||
wcsftime. Add wctype.h; Move lib_wctype.c to libc/wctype. From Alan
|
||||
Carvalho de Assis.
|
||||
- include/ctype.h : Add isblank() macro to ctype.h. From Alan Carvalho
|
||||
de Assis.
|
||||
- lic/stdlib: Add strtof() and strtold() as simply a copy of strtod
|
||||
with types and limits changed.
|
||||
- sscanf(): Use strtof() instead of strtod() if a short floating point
|
||||
value was requested. The should help performance with MCUs with
|
||||
32-bit FPU support with some additional code size.
|
||||
- sscanf(): Add scansets to the scanf function. Enabled
|
||||
CONFIG_LIBC_SCANSET option. From Aleksandr Vyhovanec.
|
||||
- include/inttypes.h: Add architecture-specific inttypes.h. From Paul
|
||||
A. Patience.
|
||||
- C Library: Allow option to enable IP address conversions even when
|
||||
the IP address family is not supported.
|
||||
|
||||
* Build/Configuration System:
|
||||
|
||||
- The Smoothie project needs to compile C++ inside config/boardname/src/
|
||||
to use with High Priority Interruption, then I modified the board
|
||||
configs Makefile to support it. It works fine for the first time
|
||||
compilation, but if we execute "touch config/boardname/src/Pin.cxx"
|
||||
and execute "make" it will not detect that Pin.cxx was modified. I
|
||||
think there is some other place I should modify, but I didn't find
|
||||
it. From Alan Carvalho de Assis.
|
||||
|
||||
* Tools:
|
||||
|
||||
- tools/: Add tools/showsize.sh.
|
||||
|
||||
* NSH: apps/nshlib:
|
||||
|
||||
- NSH: dd command will show statistics. From Masayuki Ishikawa.
|
||||
|
||||
* Applications: apps/system:
|
||||
|
||||
- apps/system/sched_note: Extend to include additions to instumentation
|
||||
for SMP.
|
||||
- apps/system/sched_note: Add support for spinlock notes.
|
||||
- apps/system/sched_note: Add support for new scheduler instrumentation.
|
||||
|
||||
* Platforms: apps/platform:
|
||||
|
||||
- ESP32 Core v2: Add platform support for the ESP32 core v2 board.
|
||||
- Olimex STM32-p407: Add platform support for the Olimex STM32 P407.
|
||||
|
||||
* Graphics: apps/graphics
|
||||
|
||||
- graphics/traveler/tcledit and libwld: Add an X11 Tcl/Tk tool that can
|
||||
be used to edit Traveler world files.
|
||||
- Graphics: Remove all NX server taks. Instead, call boardctl() to the
|
||||
NX server kernel thread.
|
||||
|
||||
* Applications: apps/examples:
|
||||
|
||||
- examples/buttons: Add a new buttons example that uses the button
|
||||
character driver instead of the architecture buttons directly. From
|
||||
Alan Carvalho de Assis.
|
||||
- examples/cctype: Add an example to verify cctype functions.
|
||||
- Remove RGMP example.
|
||||
- examples/ostest: Extend the pthread cancellation test to exercise
|
||||
pthread_cleanup_push() (and pthread_cleanup_pop() indirectly via
|
||||
pthread_cancel() and pthread_exit().
|
||||
- examples/ostest: enhance pthread cancellation test some.
|
||||
|
||||
Works-In-Progress:
|
||||
|
||||
* IEEE802.14.5/6LowPAN. Hooks and framework for this effort were
|
||||
introduced in NuttX-7.15. Work has continued on this effort on
|
||||
forks from the main repositories, albeit with many interruptions.
|
||||
The completion of this wireless feature will postponed until at
|
||||
least NuttX-7.20.
|
||||
|
||||
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:
|
||||
|
||||
- sched/semaphore: Within the OS, when a thread obtains a semaphore
|
||||
count it must call sem_addholder() if CONFIG_PRIORITY_INHERITANCE is
|
||||
enabled. If a count is available, then sem_wait() calls
|
||||
sem_addholder(), otherwise it waited for the semaphore and called
|
||||
sem_addholder() when it eventually received the count. This caused a
|
||||
problem when the thread calling sem_wait() was very low priority.
|
||||
When it received the count, there may be higher priority threads
|
||||
"hogging" the CPU that prevent the lower priority task from running
|
||||
and, as a result, the sem_addholder() may be delayed indefinitely.
|
||||
The fix was to have sem_post() call sem_addholder() just before
|
||||
restarting the thread waiting for the semaphore count. This problem
|
||||
was noted by Benix Vincent who also suggested the solution.
|
||||
- Many files: Make sure that priority inheritance is not enabled for
|
||||
semaphores whose primary use is signaling (vs locking of resources) by
|
||||
calling sem_setprotocol().
|
||||
- sched/semaphore: sem_trywait() no longer modifies the errno value
|
||||
UNLESS an error occurs. This allows these functions to be used
|
||||
internally without clobbering the errno value. From Freddie Chopin.
|
||||
- sched/clock: Correct clock initialization. The correct range for the
|
||||
month is 0-11 but is entered as 1-12 in the .config file. Add ranges
|
||||
to START_YEAR, MONTH, and DAY in sched/Kconfig.
|
||||
- sched/clock: Correct calculation for the case of Tickless mode with a
|
||||
32-bit timer. In that case, the calculation was returning millisecond
|
||||
accuracy. That is not good when the timer accuracy is < 1 msec. From
|
||||
Rajan Gill.
|
||||
- Work Queue: When queuing new LP work, don't signal any threads if
|
||||
they are all busy. From Heesub Shin.
|
||||
- Work Queue: Signal sent from work_signal() may interrupt the low
|
||||
priority worker thread that is already running. For example, the
|
||||
worker thread that is waiting for a semaphore could be woken up by the
|
||||
signal and break any synchronization assumption as a result. It also
|
||||
does not make any sense to send signal if it is already running and
|
||||
busy. This change fixes it. From Heesub Shin.
|
||||
- Fix DEBUGASSERT() in group_signal.c. From Masayuki Ishikawa.
|
||||
- Eliminate bad boardctl() commands: Remove all references to
|
||||
BOARDIOC_PWMSETUP and board_pwm_setup(). Remove all references to
|
||||
BOARDIOC_ADCSETUP and board_adc_setup(). Remove
|
||||
BOARDIOC_CAN_INITIALIZE. CAN initialization is now done in the board
|
||||
initialization logic just like every other device driver.
|
||||
- pthreads: Fix an error in pthread_mutex_destroy(). An error could
|
||||
occur while destroying a mutex after a pthread has been canceled while
|
||||
holding the mutex.
|
||||
- task_restart: Make sure new task starts with pre-emption disabled and
|
||||
not in a critical section.
|
||||
- Enter/leave Critical Sections. Major redeign to
|
||||
enter/leave_critical_section logic to deal with the case where
|
||||
interrupts are disabled only on the local CPU. In this case, some
|
||||
rather complex spinlocks must be used to maintain the critical section
|
||||
accross all CPUs.
|
||||
- SMP Critical Sections: Fixes for the SMP case: (1) Change order for
|
||||
SMP case in enter_critical_section: (1) Disable local interrupts
|
||||
BEFORE taking spinlock and (2) If SMP is enabled, if any interrupt
|
||||
handler calls enter_critical_section(), it should take the spinlock.
|
||||
- SMP wdogs: Wdog timers use a tasking interface that to manipulate
|
||||
wdogs, and a different interface in the timer interrupt handling logic
|
||||
to manage wdog expirations. In the single CPU case, this is fine.
|
||||
Since the tasking level code calls enter_critical_section, interrupts
|
||||
are disabled and no conflicts can occur. But that may not be the case
|
||||
in the SMP case. Most architectures do not permit disabling
|
||||
interrupts on other CPUs so enter_critical_section must work
|
||||
differently: Locks are required to protect code. this change adds
|
||||
locking (via enter_critical section) to wdog expiration logic for the
|
||||
the case if the SMP configuration.
|
||||
- SMP vfork(): Fix a race condition in the SMP case. Existing logic
|
||||
depended on the fact that the child would not run until waitpid was
|
||||
called because the child had the same priority as the parent. BUT in
|
||||
the SMP case that is not true... the child may run immediately on a
|
||||
different CPU.
|
||||
- SMP: This change adds a new internal interfaces and fixes a problem
|
||||
with three APIs in the SMP configuration. The new internal interface
|
||||
is sched_cpu_pause(tcb). This function will pause a CPU if the task
|
||||
associated with 'tcb' is running on that CPU. This allows a different
|
||||
CPU to modify that OS data stuctures associated with the CPU. When
|
||||
the other CPU is resumed, those modifications can safely take place.
|
||||
The three fixes are to handle cases in the SMP configuration where one
|
||||
CPU does need to make modifications to TCB and data structures on a
|
||||
task that could be running running on another CPU. Those three cases
|
||||
are task_delete(), task_restart(), and execution of signal handlers.
|
||||
In all three cases the solutions is basically the same: (1) Call
|
||||
sched_cpu_pause(tcb) to pause the CPU on which the task is running,
|
||||
(2) perform the necessary operations, then (3) call up_cpu_resume() to
|
||||
restart the paused CPU.
|
||||
- SMP: Add logic to avoid a deadlock condition when CPU1 is hung waiting
|
||||
for g_cpu_irqlock with interrupts interrupts and CPU0 is waiting for
|
||||
g_cpu_paused.
|
||||
- SMP: Enforce this rule: Tasks which are normally restored when
|
||||
sched_unlock() is called must remain pending (1) if we are in a
|
||||
critical section, i.e., g_cpu_irqlock is locked , or (2) other CPUs
|
||||
still have pre-emption disabled, i.e., g_cpu_schedlock is locked. In
|
||||
those cases, the release of the pending tasks must be deferred until
|
||||
those conditions are met.
|
||||
|
||||
* File System/Block Drivers/MTD Drivers:
|
||||
|
||||
- AT24XX EEPROM MTD driver: Added EEPROM timeout. Fromo Aleksandr
|
||||
Vyhovanec.
|
||||
- fs/procfs: Fix procfs status for SMP case.
|
||||
|
||||
* Graphics/Graphic Drivers:
|
||||
|
||||
- Fonts: Correct some default font IDs. From Pierre-Noel Bouteville.
|
||||
|
||||
* Common Drivers:
|
||||
|
||||
- usbhost/enumerate: Fix possible buffer overwrite. From Janne Rosberg.
|
||||
- usbhost/composite: Fix compile; missing semicolons. From Jann Rosberg.
|
||||
- syslog: Fixes required for file syslog output. From Max Kriegleder.
|
||||
- SPI configuration: Fix Kconfig warning. This change moves the
|
||||
ARCH_HAVE_SPI options outside the check for SPI. Those options don't
|
||||
depend on SPI, and Kconfig files in arch/ enable them even if SPI
|
||||
isn't enabled. Source the driver's Kconfig in drivers/Kconfig only
|
||||
if support for the driver is enabled prevents us from defining these
|
||||
ARCH_HAVE options in the driver's Kconfig. We should probably remove
|
||||
the other checks in drivers/Kconfig and check if the drivers are
|
||||
enabled only in their Kconfig. From Paul A. Patience.
|
||||
- drivers/timer: Remove the timer driver TIOC_SETHANDLER IOCTL call.
|
||||
This calls directly from the timer driver into application code. That
|
||||
is non-standard, non-portable, and cannot be supported. Instead, add
|
||||
timer driver hooks to support signal notification of timer
|
||||
expiration. Signal notification logic added by Sebastien Lorquet.
|
||||
- All timer lower half drivers. Port Sebastien's changes to all other
|
||||
implementations of the timer lower half.
|
||||
- USB MSC Device: Fix length of mode6 sense reply packet. From
|
||||
Wolfgang Reißnegger.
|
||||
- USB Composite Host: Fix end offset in usbhost_copyinterface(). From
|
||||
Janne Rosberg.
|
||||
- USB CDC/ACM Host: Add CDC_SUBCLASS_ACM and CDC_PROTO_ATM to
|
||||
supported class and proto. From Janne Rosberg.
|
||||
- SSD1306: Fix errors in SPI mode configuration. From Gong Darcy.
|
||||
- CDC/ACM Device Class: uart_ops_s portion of cdcacm will not be
|
||||
initalized with correct functions if CONFIG_SERIAL_DMA is selected.
|
||||
|
||||
* Networking/Network Drivers:
|
||||
|
||||
- drivers/net/tun.c: Fix bug in TUN interface driver. From Max Nekludov.
|
||||
|
||||
* ARMv7-A:
|
||||
|
||||
- ARMv7-A SMP: Add SMP logic to signal handling.
|
||||
|
||||
* ARMv7-M:
|
||||
|
||||
- ARMv7-M: Fix double allocation of MPU region in mmu.h.
|
||||
|
||||
* ARMv7-R:
|
||||
|
||||
- ARMv7-R: Fix compilation error. This change fixes compilation errors
|
||||
on MPU support for ARMv7-R. From Heesub Shin.
|
||||
- ARMv7-R: fix invalid drbar handling. In ARMv7-R, [31:5] bits of DRBAR
|
||||
is physical base address and other bits are reserved and SBZ. Thus,
|
||||
there is no point in passing other than the base address. From Heesub
|
||||
Shin.
|
||||
- ARMv7-R: Remove the redundant update on SCTLR. mpu_control() is
|
||||
invoking cp15_wrsctlr() around SCTLR update redundantly. From Heesub
|
||||
Shin.
|
||||
- ARMv7-R: add new Kconfig entries for d/i-cache. Unlike in ARMv7-A/M,
|
||||
Kconfig entries for data and instruction caches are currently missing
|
||||
in ARMv7-R. This change adds those missing Kconfig entries. Actual
|
||||
implmenetation for those functions will be added in the subsequent
|
||||
patches. From Heesub Shin.
|
||||
- ARMv7-R: Add cache handling functions. This change adds functions for
|
||||
enabling and disabling d/i-caches which were missing for ARMv7-R.
|
||||
From Heesub Shin.
|
||||
- ARMv7-R: Fix typo in mpu support. s/ARMV7M/ARMV7R/g. From Heesub Shin.
|
||||
- ARMv7-R: Fix CPSR corruption after exception handling. A sporadic
|
||||
hang with consequent crash was observed when booting. It seemed to be
|
||||
caused by the corrupted or wrong CPSR restored on return from
|
||||
exception. NuttX restores the context using code like this: msr spsr,
|
||||
r1. GCC translates this to: msr spsr_fc, r1. As a result, not all
|
||||
SPSR fields are updated on exception return. This should be: msr
|
||||
spsr_fsxc, r1. On some evaluation boards, spsr_svc may have totally
|
||||
invalid value at power-on-reset. As it is not initialized at boot, the
|
||||
code above may result in the corruption of cpsr and thus unexpected
|
||||
behavior. From Heesub Shin.
|
||||
- ARMv7-R: Fix to restore the Thumb flag in CPSR. Thumb flag in CPSR is
|
||||
not restored back when the context switch occurs while executing thumb
|
||||
instruction. From Heesub Shin.
|
||||
|
||||
* Atmel SAM3/4 Drivers:
|
||||
|
||||
- SAM3/4 UDP: Add delay between setting and clearing the endpoint RESET
|
||||
bit in sam_ep_resume(). We need to add a delay between setting and
|
||||
clearing the endpoint reset bit in SAM_UDP_RSTEP. Without the delay
|
||||
the USB controller will (may?) not reset the endpoint. If the
|
||||
endpoint is not being reset, the Data Toggle (DTGLE) bit will not to
|
||||
be cleared which will cause the next transaction to fail if DTGLE is
|
||||
1. If that happens the host will time-out and reset the bus. Adding
|
||||
this delay may also fix the USBMSC_STALL_RACEWAR in usbmsc_scsi.c,
|
||||
however this has not been verified yet. From Wolfgang Reißnegger.
|
||||
- SAM3/4: Remove unused 'halted' flag from UDP driver. From Wolfgang
|
||||
Reißnegger.
|
||||
- SAM3/4: Remove 'stalled' flag from the UDP driver. This flag is not
|
||||
necessary because the state of the endpoint can be determined using
|
||||
'epstate' instead. From Wolfgang Reißnegger.
|
||||
|
||||
* Atmel SAM3/4 Boards:
|
||||
|
||||
- SAM4S Xplained Pro: Configuration uses old, improper timer interface.
|
||||
CONFIG_TIMER disabled in configuration. Remove obsolete timer
|
||||
initialization logic.
|
||||
|
||||
* Atmel SAMV7 Drivers:
|
||||
|
||||
- SAMv7 USBDEVHS: A problem occurred with the SAMV7 USBDEVHS driver if
|
||||
the USB cable is unplugged while a large amount of data is send over
|
||||
an IN endpoint using DMA. If the USB cable is plugged in again after a
|
||||
few seconds it is not possible to send data over this IN endpoint
|
||||
again, all other endpoints work as expected. The problem occurs
|
||||
because if the USB cable is unplugged while an DMA transfer is in
|
||||
flight the transfer is canceled but the register SAM_USBHS_DEVDMACTRL
|
||||
is left in an undefined state. The problem was fixed the problem by
|
||||
resetting the register SAM_USBHS_DEVDMACTRL to a known state.
|
||||
Additionally all pending interrupts are cleared. From Stefan Kolb.
|
||||
- SAMV7 MCAN: Prevent Interrupt-Flooding of ACKE when not connected to
|
||||
CAN-BUS. An Acknowledge-Error will occur every time no other CAN Node
|
||||
acknowledges the message sent. This will also occur if the device is
|
||||
not connected to the can-bus. The CAN-Standard declares, that the Chip
|
||||
has to retry a given message as long as it is not sent successfully
|
||||
(or it is not cancelled by the application). Every time the chip tries
|
||||
to resend the message an Acknowledge-Error-Interrupt is generated. At
|
||||
high baud rates this can lead in extremely high CPU load just for
|
||||
handling the interrupts (and possibly the error handling in the
|
||||
application). To prevent this Interrupt-Flooding we disable the ACKE
|
||||
once it is seen as long we didn't transfer at least one message
|
||||
successfully. From Frank Benkert.
|
||||
- SAMV7 MCAN: Make delete_filter functions more robust. From Frank
|
||||
Benkert.
|
||||
|
||||
* Atmel SAMA5 Drivers:
|
||||
|
||||
- SAMA5 PWM: Driver does not build when executing from SDRAM before
|
||||
board frequencies are not constant. Rather, the bootloader configures
|
||||
the clocking and we must derive the clocking from the MCK left by the
|
||||
bootloader. This means lots more computations. This is untested on
|
||||
initial change because I don't have a good PWM test setup right now.
|
||||
|
||||
* Misoc LM32:
|
||||
|
||||
- Misoc LM32: Corrects a bug that never occured in qemu on simulation or
|
||||
real fpga. The error was that the r1 register was being modified out
|
||||
of context switching and not restoring it. From Ramtin Amin
|
||||
|
||||
* NXP Freescale i.MX6:
|
||||
|
||||
- i.MX6 interrupt handling: Additional logic needed to handle nested
|
||||
interrupts when an interrupt stack is used. Nesting can occur because
|
||||
SGI interrupts are non-maskable.
|
||||
|
||||
* NXP Freescale LPC43xx Drivers:
|
||||
|
||||
- LPC43xx serial: Fix a typo in ioctl TIOCSRS485 ioctl. From Vytautas
|
||||
Lukenskas.
|
||||
- LPC43xx serial: Restore RS485 mode on serial port open (if RS485 is
|
||||
enabled via menuconfig). From Vytautas Lukenskas.
|
||||
- LPC43xx SD/MMC: Correct some definitions on SMMC control register in
|
||||
lpc43_sdmmc.h. From Alan Carvalho de Assis.
|
||||
- LPC43xx SD card: Correct pin configuration options needed for SD card
|
||||
pins. From Alan Carvalho de Assis.
|
||||
|
||||
* SiLabs EFM32:
|
||||
|
||||
- EFM32: Fix a compilation error. From Pierre-noel Bouteville.
|
||||
|
||||
* STMicro STM32 Drivers:
|
||||
|
||||
- STM32 CHxN channels are always outputs. From Sebastien Lorquet.
|
||||
- STM32 DAC: Fix shift value whenever there are is a DAC2 and, hence,
|
||||
up to three interfaces. From Marc Rechté.
|
||||
- STM32 F1: Add TIM8 to STM32F103V pinmap. From Maciej Wójcik.
|
||||
- STM32 F1: Fix for F1 RTC Clock, tested on F103. From Maciej Wójcik.
|
||||
- STM32 F3: STM32F303xB and STM32F303xC chips have 4 ADCs. From Paul
|
||||
A. Patience.
|
||||
- STM32 F4: A new implementation of the STM32 F4 I2C bottom half. The
|
||||
common I2C as this did not handled correctly in the current
|
||||
implementation (see also https://github.com/PX4/NuttX/issues/54). The
|
||||
changes almost exclusively affect the ISR. From Max Kriegleder.
|
||||
- STM32 F4 OTGHS Host: If STM32F446 increase number of channels to
|
||||
16. From Janne Rosberg.
|
||||
- STM32 F4: I think, that Size is (highest address+1 - Base address).
|
||||
Base address has been removed and if address+count >= size we are
|
||||
outside of the Flash. From David Sidrane.
|
||||
- STM32 F4: Fix ADC compilation error when DMA isn't enabled. From Paul
|
||||
A. Patience.
|
||||
- STM32 F4: STM32F427 was rebooting. Over reached family. From David
|
||||
Sidrane.
|
||||
- STM32 F4: Added STM32F469 RAM size and deliberated STM32F446 size.
|
||||
From David Sidrane.
|
||||
- STM32 F4: Typo in stm32f76xxxx_pinmap.h edited online with
|
||||
Bitbucket. From David Sidrane.
|
||||
- STM32 F7: stm32_i2c.c Dejavu. Fixes a bug previously found in the
|
||||
F4. From David Sidrane.
|
||||
- STM32 F7: OTGDEV fixed typo. From David Sidrane.
|
||||
- STM32 F7: Fix to SPI-Master driver. Without this the chip select
|
||||
decoding feature will not work properly. From Michael Spahlinger.
|
||||
- STM32 F7: STM32F7 SD/MMC driver depends on CONFIG_SDIO_DMA which is
|
||||
only defined in stm32/Kconfig. Changed to CONFIG_STM32F7_SDMMC_DMA
|
||||
and defined in stm32f7/Kconfig.
|
||||
- STM32 F7: Fix some STM32F7 copy paste errors. From David Sidrane.
|
||||
- STM32 L4: Complementary PWM outputs on STM32L4" (1) too many
|
||||
parentheses when calculating max chan count and (2) channel 4 does not
|
||||
have a complementary output. From Sebastien Lorquet.
|
||||
- STM32 L4: Fix I2C devices RCC registers. From Sebastien Lorquet.
|
||||
- STM32 L4: Enable and renaming for 32l4 UARTs 4 and 5. From Sebastien
|
||||
Lorquet.
|
||||
- STM32 L4: Change the way to configure quadrature encoder prescalers.
|
||||
From Sebastien Lorquet.
|
||||
- STM32 L4: Correct USART1/2 definitions. Use default mbed UART4
|
||||
settings. From Sebastien Lorquet.
|
||||
|
||||
* STMicro STM32 Boards:
|
||||
|
||||
- STM32F103 Minimum: Fix Timers 2 to 7 clock frequencies. From Alan
|
||||
Carvalho de Assis.
|
||||
- Nucleo-F303RE: Remove duplicate setting from board.h. From Marc
|
||||
Rechté.
|
||||
- Nucleo F303RE: Various fixes to get the ADC configuration building
|
||||
again after PR. Refresh all configurations.
|
||||
- Nucleo L476RG: Add better selection of timer.
|
||||
|
||||
* TI Tiva Boards:
|
||||
|
||||
- DK-TM4C129x: Typo fix. From Wolfgang Reißnegger.
|
||||
|
||||
* Xtensa ESP32:
|
||||
|
||||
- ESP32 core v2: Flush the UART TX buffer in the esp32 serial shutdown
|
||||
routine. The ROM bootloader does not flush the FIFO before handing
|
||||
over to user code, so some of this output is not currently seen when
|
||||
the UART is reconfigured in early stages of startup. From Angus
|
||||
Gratton.
|
||||
- Xtensa ESP32: Corrects a problem with dispatching to signal
|
||||
handlers: Cannot vector directly to the signal handling function as
|
||||
in other ABIs under the Xtensa Window ABI. In that case, we need to
|
||||
go through a tiny hook when performs the correct window call (call4)
|
||||
otherwise registers will be scrambled in the signal handler.
|
||||
|
||||
* Xtensa ESP32 Boards:
|
||||
|
||||
- ESP32 core v2: Changes the openocd config file's default flash
|
||||
voltage from 1.8V to 3.3V. This is not necessary right now, but may
|
||||
save some hard-to-debug moments down the track (3.3V-only flash
|
||||
running at 1.8V often half-works and does weird things...). From
|
||||
Angus Gratton.
|
||||
|
||||
* C Library/Header Files:
|
||||
|
||||
- libc/stdio: Fixes sscanf() %sn where strlen(data) < n. From David
|
||||
Sidrane.
|
||||
- libc/stdio: Include wchar.h in lib_libvsprintf.c to fix compilation
|
||||
error. From Alan Carvalho de Assis.
|
||||
- include/sys/time.h: timersub macro modified per recommendations of
|
||||
phreakuencies.
|
||||
- include/ctype.h and cxx/cctype: Implement ctype.h functions as inline
|
||||
if possible. cctype can then properly select namespace.
|
||||
- include/: Fix a number of header files with mismatched 'extern C {'
|
||||
and '}'.
|
||||
- libc/unisted: Change brings strtol() and related functions more
|
||||
conformant with POSIX. Corner cases like strtol(-2147483648, NULL,
|
||||
10) now pass clang -fsanitize=integer without warnings. From Juha
|
||||
Niskanen.
|
||||
- libc/unistd: sleep() was returning remaining nanoseconds (kind of),
|
||||
instead the remaining seconds. From Eunbong Song.
|
||||
- termios.h: Fix CRTSCTS define to include input and output flow. From
|
||||
Lorenz Meier.
|
||||
|
||||
* Build/Configuration System:
|
||||
|
||||
- configs/*/defconfig: The buttons example was changed to archbuttons.
|
||||
As a result all of the button configurations are broken and need some
|
||||
renaming in the defconfig files. Noted by Frank Berkert.
|
||||
- config/*/defconfgs: More fallout from name change of
|
||||
apps/examples/buttons to archbuttons.
|
||||
- configs: All QE encoder files. Last change made timer hard-coded to
|
||||
3. Make configurable.
|
||||
- configs: Remove all traces of the no-longer existent ARCHBUTTONS
|
||||
example. Remove all button configurations that depended on the
|
||||
obsoleted ARCHBUTTON example.
|
||||
- minnsh Configurations: Remove minnsh configurations and support
|
||||
logic: up_getc() and lowinstream. This was an interesting exercise
|
||||
to see just how small you could get NuttX, but otherwise it was not
|
||||
useful: (1) the NSH code violated the OS interface layer by callup
|
||||
up_getc() and up_putc() directly, and (2) while waiting for character
|
||||
input, NSH would call up_getc() which would hog all of the CPU. Not a
|
||||
reasonable solution other than as a proof of concept.
|
||||
|
||||
* Application Build/Configuration System:
|
||||
|
||||
- Make.defs: Using wrong link script if native window tool used with
|
||||
Cygwin.
|
||||
|
||||
* apps/platform:
|
||||
|
||||
- ESP32 Core v2 Platform: Fix some naming that prevented building the
|
||||
C++ support.
|
||||
|
||||
* apps/nshlib:
|
||||
|
||||
- NSH Library: nsh_getdirpath(), use snprint instead of sprintf to
|
||||
avoid possibility of buffer overrun. Noted by Chung Hwan Kim.
|
||||
|
||||
* apps/system:
|
||||
|
||||
- Remove std_readline(). This called up_getc() and up_putc() directly,
|
||||
violating the POSIX OS interface.
|
||||
|
||||
* apps/netutils:
|
||||
|
||||
- FTPD: Fixed bug that didn't free ftpd ressources on exit. From Pascal
|
||||
Speck.
|
||||
- NTP client: Fix missing left parenthesis. From Pierre-Noel Bouteville.
|
||||
- cJSON: Import patch to fix:cJSON_PrintUnformatted() behaves unexpected
|
||||
if an empty array shall be printed to text. from Jerome Lang
|
||||
2012-04-19. From Pierre-Noel Bouteville.
|
||||
- esp8266 update cosmetic and many bug fix. From Pierre-Noel Bouteville.
|
||||
- FTPD: Fix bug un ftpd file or socket may be not closed. From
|
||||
Pierre-Noel Bouteville.
|
||||
|
||||
* apps/modbus:
|
||||
|
||||
- Modbus Master is missing many files and doesn't compile at all. More
|
||||
details in
|
||||
https://groups.yahoo.com/neo/groups/nuttx/conversations/topics/13734.
|
||||
From Vytautas Lukenskas.
|
||||
|
||||
* apps/examples:
|
||||
|
||||
- The examples/qencoder app was trying to init the encoder by a direct
|
||||
call into the board, cheating in a local header to declare the
|
||||
normally unavailable function prototype. From Sebastien Lorquet.
|
||||
- apps/examples/timer: Should detach signal handler before exiting.
|
||||
- examples/qencode: The examples/qencoder app was trying to init the
|
||||
encoder by a direct call into the board, cheating in a local header to
|
||||
declare the normally unavailable function prototype. From Sebastien
|
||||
Lorquet.
|
||||
- apps/examples/archbuttons: Removed becaue it violates OS interface
|
||||
principles.
|
||||
- examples/adc, pwm, can: Remove all usage of BOARDIOC_ADCTEST_SETUP,
|
||||
BIOARDIOC_PWMSETUP. Remove BOARDIOC_CAN_INITIALIZE. CAN
|
||||
initialization is now done in the board initialization logic just like
|
||||
every other device driver.
|
||||
- examples/ostest: Add some delays to the pthread cancellation test.
|
||||
With deferred cancellation enabled, things happen more asynchronously.
|
||||
|
Loading…
Reference in New Issue
Block a user