| NuttX-7.29 |
| ---------- |
| |
| The 129th release of NuttX, Version 7.29, was made on March 25, 2019, |
| and is available for download from the Bitbucket.org website. Note |
| that release consists of two tarballs: nuttx-7.29.tar.gz and |
| apps-7.29.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: |
| |
| - Configuration: CONFIG_NFILE_DESCRIPTORS=0 can no longer be used to |
| disable the file system. NuttX with no file system does not make |
| sense and is no longer supported. From Gregory Nutt. |
| - Rename most internal OS functions from sched_* to nxsched_* to |
| indicate that they are NuttX internal functions (some renaming is |
| still needed). From Gregory Nutt. |
| - Rename all internal OS functions from task_* to nxtask_* to indicate |
| that they are NuttX internal functions. From Gregory Nutt. |
| - Rename sched_process_timer to nxsched_process_timer. Rename |
| sched_timer_expiration to nxsched_timer_expiration. Rename |
| sched_alarm_expiration to nxsched_alarm_expiration. Those are the |
| appropriate names for an internal sched/ function (still many named |
| incorrectly). From Gregory Nutt. |
| - Standardize naming: Rename os_start() to nx_start(), rename os_smp* |
| to nx_smp*, rename os_bringup to nx_bringup, rename all internal |
| static functions to begin with nx_ vs os_. From Gregory Nutt. |
| - Initialization: Remove the option CONFIG_BOARD_INITTHREAD. Now, if |
| CONFIG_BOARD_INITIALIZE is selected, then the board_initialize() |
| logic will ALWAYS run on an internal kernel thread. This will |
| prevent the problems people have had doing inappropriate |
| board_initialization on the IDLE thread. From Gregory Nutt. |
| - Initialization: Add support for CONFIG_BOARD_EARLY_INITIALIZE. If |
| this option is selected then nx_start() will call a board-provided |
| function board_early_initialize() immediately after calling |
| up_initialize(). Rename board_initialize() to |
| board_late_initialize(). From Gregory Nutt. |
| - Signal Delivery: Add a flag to the TCB to indicate that we are in a |
| signal handler. Use this flag to assure that a there is never |
| attempts to nest signal handling operations on a thread. This was |
| guaranteed before but when locking of pre-emption during signal |
| delivering was eliminated in a previous commit, there was a remote |
| possibility of an attempt to do nested signal handling. This flag |
| assures that there is only one signal handled at a time. From |
| Gregory Nutt. |
| - Signal Handler Security: The architecture-specific signal handler |
| return register state is saved and available on the user stack. |
| This commit reorders some logic so that certain, critical registers |
| are preserved in the TCB. This eliminates most malicious exploits |
| which more the return address, for example, but does not make the |
| logic 100% secure. From Gregory Nutt. |
| - Timer Interrupt Procssing: Add a configurable call out to a |
| user-provided function, 'timer hook', on each timer interrupt. From |
| Gregory Nutt. |
| - PM Activity: Add pm_staycount() API for get stay numbers. This |
| function is currently not used and a waste of FLASH space. From ligd. |
| - Pthreads: Add support for pthread_mutex_timedlock From Leif Jakob. |
| - Pthread Spinlocks: Add a very preliminary implementation of the new |
| POSIX pthread_spinlock_* interfaces. From Gregory Nutt. |
| - Critical Section Monitor: Remove SCHED_IRQMONITOR_GETTIME to |
| simplify the clock source selection: (1) Use up_critmon_gettime if |
| SCHED_IRQMONITOR, (2) Call clock_systimespec if SCHED_TICKLESS, (3) |
| Don't collect timing info for all other cases. From Xiang Xiao. |
| - Work Queue Notification: Notifier can now work with either lpwork |
| or hpwork. From Xiang Xiao. |
| - Protected Build: Add add a new field (us_heapend) to struct |
| userspace_s that labels the end of the heap. From Xiang Xiao. |
| |
| * Binary Loader/Kernel Modules/Shared Libraries |
| |
| - Shared Libraries: Implement dlerror() using strerror(). From Xiang |
| Xiao. |
| - Shared Libraries: Add LD_LIBRARY_PATH environment variable |
| support. From anchao. |
| - ELF Loaders: Optimize elf load speed: (1) Don't zero out memory, |
| (2) Reduce the initial buffer size to 32 bytes. From Xiang Xiao. |
| - ARM ELF Relocation: Add support for the R_ARM_THM_JUMP11 relocation |
| type. This relocation type may be generated when LTO optimization |
| is enabled. From anchao. |
| - ELF Modules: Add relocation buffer table to reduce filesystem |
| access. From anchao. |
| - ELF Modules: Add symbol buffer table to reduce filesystem access. |
| From anchao. |
| |
| * File Systems/Block and MTD Drivers |
| |
| - Filesystem Mount: Move the union inode_ops_u i_mtd field into the |
| mount section of inode_ops_u and remove the guard to simplify fs |
| which support both block and mtd. From Xiang Xiao. |
| - ROMFS: Add support to mount a ROMFS volume using an MTD driver |
| interface using the standard mount() operation. From Xiang Xiao. |
| - LittleFS: VFS wrapper improvement: (1) Support block device |
| interface, (2) support ioctl, stat and sync file operation, (3) |
| support forceformat and autoformat option, (4) update file->f_pos |
| and dir->fd_position, (5) remove the internal struct from dir, and |
| (6) remove mtd byte read/write requirement. From Xiang Xiao. |
| - UnionFS: Support mount of UnionFS from the NSH command line. From |
| Xiang Xiao. |
| |
| * Networking/Network Drivers: |
| |
| - UsrSock: Add mutual exclusion so that only user can perform a |
| socket request From zhangyuan7. |
| - UDP: Initialize callback address structure to avoid random values |
| in padding. From anchao. |
| |
| * Wireless/Wireless Drivers: |
| |
| - SX127x: Initial support for SX127x LoRA radio From Mateusz Szafoni. |
| |
| * Graphics/Display Drivers: |
| |
| - Graphics: Fix a naming collision: Ye olde nx_start that started |
| the NX graphics is now nxmu_start(). nxmu_start() is now |
| prototyped in nxmu.h (instead of nx.h). From Gregory Nutt. |
| - NX Server Startup: Extend nxmu_start() so that receives a display |
| number as an argument. This makes it possible to have multiple |
| instances of the NX server running on boards that support multiple |
| displays. Also includes updates to boardctl() to accept display |
| number parameters. From Gregory Nutt. |
| - Graphics: nx_openwindow() and nxtk_openwindow() now accept an |
| additional 'flag' parameter. This argument is current used only to |
| select a RAM backed, per-window framebuffer. From Gregory Nutt. |
| - Per-Window Framebuffers: Windows may now be optionally created |
| with a RAM framebuffer backing up the window content. Rending into |
| the window will result in rending into the backup framebuffer, then |
| updating the physical display from the framebuffer. The advantage |
| of this option is that the application that manages window will no |
| longer receive redraw() callbacks. Those calls normally occur when |
| a window "above" moves exposing a portion of the window below. If |
| this option is selected, then the system will redraw the exposed |
| portion of the window from the backup framebuffer without |
| intervention of the window applications. This greatly reduces the |
| complexity of the application and performance of the window at the |
| expense of increased memory usage. Redraw requests in other cases |
| are also suppressed: Changes to window position, size, etc. As a |
| consequence, some manual updates will be required when certain |
| events occur (like removing a toolbar from a window). NOTE: A |
| significant amount of RAM, usually external SDRAM, may be required |
| to use per-window framebuffers. |
| |
| * Other Common Device Drivers: |
| |
| - Driver Notifications: Support signal notification through |
| SIGEV_THREAD in all drivers that provide signal notifications: |
| RTC, Joysticsks, buttons, Zero-Crossing, wireless, FT80x, Timer, |
| PHY. From Xiang Xiao. |
| - Watchdog Driver: Support auto-monitor service From Gregory Nutt. |
| - Timer and Alarm Drivers: Implement up_critmon_gettime and |
| up_critmon_convert and remove the critical section from |
| current_usec to infinite recursion. From Xiang Xiao. |
| - RTC Driver: Protect the RTC state with a semaphore. From Xiang |
| Xiao. |
| - Serial Upper Half: Call pm_activity() when characters are received |
| on a console device. From Gregory Nutt. |
| - MPU60x0: Initial support for TDK InvenSense MPU6000 and MPU6050 |
| 6-axis gyroscope and accelerometers. This commit supports SPI |
| media only. From Bill Gatliff. |
| - EEPROM Driver: Add configurable SPI eeprom frequency. From |
| Valmantas Paliksa. |
| - GPIO Driver: Support reading and writing gpio pins using cat and |
| echo. From Valmantas Paliksa. |
| - MCP2515: Add MCP2515 clock input config to KConfig. From |
| Valmantas Paliksa. |
| - MAX7456: Support for the Maxim MAX7456 on-screen-display chip. |
| From Bill Gatliff. |
| |
| * Common Board Logic: |
| |
| - boardctl(): up_testset() can now be accessed by applications via |
| the boardctl() interface rather than attempting to call it |
| directly. pthread Spinlocks are not available unless the |
| architecture supports the up_testset() operation. From Gregory |
| Nutt. |
| - boardctl(): Add support for BOARDIOC_NXTERM which can be used to |
| create an NxTerm terminal. From Gregory Nutt. |
| - boardctl(): Add boardctl() commands to replace direct calls to |
| nxterm_redraw() and nxterm_kbdin(). From Gregory Nutt. |
| |
| * Microchip PIC32MZ Drivers: |
| |
| - PIC32MZ Timers: Add support for the PIC32MZ timers (driver, |
| lowerhalf, freerun and oneshot) From Abdelatif Guettouche. |
| |
| * Common ARM Options: |
| |
| - arch/arm: Move FPU options to a common place and unify the usage |
| by removing ARCH_CORTEXRxF. From Xiang Xiao. |
| - arch/: Unify the cache interface for all architectures that |
| support a data cache. From Xiang Xiao. |
| - ARMv7-M/A/R: Add a architecture-specific new barriers.h header |
| file that provides the memory barrier definitions that were |
| previously in the (now unified) cache.h header files. From Gregory |
| Nutt. |
| |
| * ARMv7-A |
| |
| - ARMv7-A: Support thumb mode and fix interworking issue. From |
| zhangyuan7. |
| - ARMv7-A: Add weak attribute to arm_data_initialize so platform |
| could provide the new implementation as needed. From zhangyuan7. |
| - ARMv7-A: Add SCR bit definitions. From Xiang Xiao. |
| - ARMv7-A: Add mmu_l1_map_regions() to remove the code duplication. |
| From Xiang Xiao. |
| - ARMv7-A: Add the initial cortex-a7 architecture support From |
| zhangyuan7. |
| |
| * ARMv7-M |
| |
| - ARMv7-M: stackcheck allow faulting stack calculation to make it to |
| the up_assert reg dump From David Sidrane. |
| |
| * Microchip/Atmel SAMD21/L21 Drivers: |
| |
| - SAMD2/L2: Add RS485 support to SAMD2L2 serial. From Alan Carvalho |
| de Assis. |
| |
| * Misoc: |
| |
| - Minerva: Add support for the Minerva architecture. From Ramtin |
| Amin. |
| |
| * Misoc Boards: |
| |
| - misoc: Add support for an NSH configuration using the Verilator |
| board. From Ramtin Amin. |
| |
| * Nordic NRF52: |
| |
| - NRF52: 1. Added 52840 family support 2. Use common IRQ and memory |
| layout header file for 52832 & 52840. From Levin Li. |
| |
| * Nordic NRF52 Drivers: |
| |
| - NRF52 RNG: 1. added RNG device driver 2. added errdata to correct |
| temp which will be used by RNG module 3. use general task_trigger / |
| event_clear inline api for all driver. From Levin Li. |
| |
| * NXP i.MX RT Drivers: |
| |
| - i.MXRT XBAR: Add XBAR Support. From David Sidrane. |
| - i.MXRT USB: Add USB analog header file. From David Sidrane. |
| - i.MXRT OCOTP: Added OCOTP Support. From David Sidrane. |
| - i.MXRT LCD: Adds framebuffer support for the i.MXRT 1050. |
| Includes DCD initialization for SDRAM to provide space for the |
| framebuffer. External code I used/ported is from NXP and is BSD |
| 3-clause license. From Johannes. |
| |
| * NXP i.MX RT Boards: |
| |
| - IMXRT1050-EVK: Adds framebuffer support for the i.MXRT 1050. |
| From Johannes. |
| |
| * NXP LPC17xx |
| |
| - LPC17xx: Add a configuration option to skip over the framebuffer |
| when adding DRAM to the heap. From Gregory Nutt. |
| |
| * NXP LPC17xx Boards |
| |
| - Open1788: Add a configuration to test NxTerms in the PROTECTED |
| mode. From Gregory Nutt. |
| - Open1788: Re-arrange PROTECTED mode link map to make more space |
| for large kernels with debug enabled. From Gregory Nutt. |
| - Open1788: Add a configuration for testing per-window frame buffers |
| using apps/examples/pwfb. From Gregory Nutt. |
| |
| * NXP LPC54xx Boards |
| |
| - LPCXpresso-LPC54628/pwfb: Add per-window framebuffer configuration |
| using apps/examples/pwfb. From Gregory Nutt. |
| - LPCXpresso-LPC54628: Add a configuration for addition per-window |
| framebuffer using apps/examples/pwlines. From Gregory Nutt. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32F0/L0 SPI: Add SPI support for F0. From Mateusz Szafoni. |
| - STM32 ADC, PWM and TIM: (1) configure injected channels external |
| trigger when ADC enabled, (2) update injected conversion queue of |
| context after configuration, (3) support for offset configuration, |
| and (6) support for advanced timers channel 5 and 6. From Mateusz |
| Szafoni. |
| - STM32 DFU Mode: Add logic to reboot the STM32 in DFU mode. |
| Current implementation only works for STM32F2 and F4. From Bill |
| Gatliff. |
| - STM32F7 LSE: Add configuration of LSE oscillator drive capability |
| From Jussi Kivilinna. |
| - STM32F7 I2C: Fix another memory access issue on a bus error. From |
| David Sidrane. |
| - STM32F7 TIM: Add OUTTOGGLE mode for STM32f7 timer From Valmantas |
| Paliksa. |
| - STM32F7 Timer Lower Half: Add timer lowerhalf driver for stm32f7. |
| From Valmantas Paliksa. |
| - STM32F7 ITM: Add ITM syslog support. From Valmantas Paliksa. |
| - STM32F7 CAN: Add CAN driver with support for three bxCAN |
| interfaces. From Valmantas Paliksa. |
| - STM32F7 QSPI: Add stm32f7 Quad SPI support. From Valmantas Paliksa. |
| - STM32L4 LSE: Ports Jussi Kivilinna's recent STM32F7 LSE change to |
| STM32L4. From Juha Niskanen (Haltian). |
| - STM32H7 I2C: Apply David Sidrane's fix for the STM32F7 to the |
| STM32H7. From Gregory Nutt. |
| - STM32H7 DMA: Rename DMA1/2 IRQ names to match those from other |
| STM32. Add auxiliary definitions. Add DMAMAP definitions for |
| MDMA, DMA1, DMA2 and BDMA. Add some address blocks. Change RCC |
| definitions to match other STM32 ports. Enable clock for MDMA and |
| BDMA. Rename DMA channel definitions. Separated files for MDMA, |
| DMA, BDMA and DMAMUX. Add missing definitions for MDMA, BDMA and |
| DMAMUX. SPI DMA mode. Add base addresses for D1, D2 and D3 |
| domain; use 2 bytes to specify memory region. Add D1 domain core |
| prescaler configuration. From Mateusz Szafoni. |
| - STM32H7 OTG: Initial OTG support for STM32H7 and some minor |
| improvements. Add support for HSI48 clock. From Mateusz Szafoni. |
| - STM32H7 Build: Initial support for protected build mode. From |
| Mateusz Szafoni. |
| - STM32L4 I2C: Apply David Sidrane's fix for the STM32F7 to the |
| STM32L4. From Gregory Nutt. |
| |
| * STMicro STM32 Boards: |
| |
| - B-L072Z-LRWAN1: Add SX127x configuration. From Mateusz Szafoni. |
| - Nucleo-F091RC: Add support for SX127x radio. From Mateusz Szafoni. |
| - Nucleo-F091RC: Add SX127x configuration. From Mateusz Szafoni. |
| - Nucleo-F207ZG: Add support for USB and initialize CDCACM if |
| configured. From Mateusz Szafoni. |
| - STM32F429I-DISCO: Add an apps/examples/examples/nxhello |
| configuration. From Gregory Nutt. |
| - Nucleo-F446RE: Add support for the Nucleo F446RE. From Sebastien |
| Lorquet. |
| - B-L072Z-LRWAN1: Use HSI as default clock source. From Mateusz |
| Szafoni. |
| - Nucleo-L073RZ: Add SX127x configuration. From Mateusz Szafoni. |
| - Nucleo-L073RZ: Port button logic from nucleo-f072 which appears to |
| be the same. From Gregory Nutt. |
| - Nucleo-L432KC: Add support for I2C driver initialization. From |
| Nikolay Semenov. |
| - Nucleo-H743ZI: Add support for USB and initialize CDCACM if |
| configured. From Mateusz Szafoni. |
| - OmnibusF4: Initial support for the OmnibusF4 family of flight |
| management units. "OmnibusF4" is not a product name per se, but |
| rather a design spec that many product vendors adhere to. The spec |
| defines the major components, and how those components are wired |
| into the microcontroller. Airbot is one such vendor, and they |
| publish a schematic here: http://bit.ly/obf4pro. Other software |
| that supports the OmnibusF4 family include Betaflight, iNAV, and |
| many others. PX4 recently added support as well, using their own, |
| non-upstreamed, bespoke port of NuttX. No code from those resources |
| is included in this port. From Bill Gatliff. |
| - OmnibusF4: Add MAX7546 support. From Bill Gatliff. |
| |
| * TI CCxx: |
| |
| - CC1312R1: Code complete and builds successfully. Stalled on |
| further radio development. I planned to integrate the IEEE 802.15.4 |
| radio interface, but the Cortex-M0 interface is not available with |
| an open license. |
| |
| * TI CCxx Boards: |
| |
| - LaunchXL-CC1312R1: Add support for on-board LEDs and buttons. The |
| LauchXL-CC1312R1 NSH Configuration is now fully functional. From |
| Gregory Nutt. |
| - LaunchXL-CC1310: Clone LED and button support from the |
| LaunchXL-CC1312R1. The number of LEDs and buttons as well as DIO |
| usage is identical (Still not functional). From Gregory Nutt. |
| |
| * Tools: |
| |
| - tools/rmcr.c: Add a tool to remove carriage returns and dangline |
| whitespace at the end of lines. From Gregory Nutt. |
| - tools/nxstyle.c: Can now detect if the C comment closing is not on |
| a separate line. From Gregory Nutt. |
| - tools/nxstyle.c: Make sure that all files begin with a comment on |
| line 1 (which should be the file header). From Gregory Nutt. |
| - tools/nxstyle.c: Add check for multiple definitions of local |
| variables on a line. From Gregory Nutt. |
| - tools/nxstyle.c: Beef up logic that detects multiple variable |
| definitions per line. From Gregory Nutt. |
| - tools/nxstyle.c: Add capability to detect CamelCase identifiers. |
| From Gregory Nutt. |
| - tools/nxstyle.c: Add logic to detect a blank line following a left |
| brace or a blank line preceding a right brace. From Gregory Nutt. |
| - tools/nxstyle.c: Don't complain about certain lowercase characters |
| in otherwise uppercase pre-processor identifiers: IPv6, IPv4, |
| ICMPv6, IGMPv2, p as a decimal point, d signifying a divisor. It |
| was a bad idea to let the door open a crack for there. While they |
| improve readability, the inconsistently also causes other |
| problems. From Gregory Nutt. |
| |
| * Build System: |
| |
| - Makefiles: Modify tools/Makefiles to add a "Do not Edit" warning |
| on defconfig files From Alan Carvalho de Assis. |
| |
| * Libraries/Header Files: |
| |
| - lib_vsprintf() (Nano): Add newlib-nano lib_vsfprintf has been |
| added and is now the default support for the printf family. This |
| fprintf code was originally adapted from AVR libc and provides |
| improved floating point output support, including 'g' mode and |
| making 'f' mode include digits past the decimal by default. The |
| newlib version can be found here: |
| https://salsa.debian.org/electronics-team/toolchains/newlib-nano. |
| That project is GPL overall, but the newlib-nano printf portions |
| are BSD licensed as described in the COPYING.NEWLIB file. From |
| Keith Packard. |
| - lib_vsprintf() (Nano): Added support for long lont types. From |
| Johannes. |
| - lib_vsprintf() (Nano): Added hh type modifier (without extending |
| the flag variable). From Johannes. |
| - lib_vsprintf() (Nano): Adds configurable support for numbered |
| arguments. From Johannes. |
| - lib_vsprintf() (Nano): Cleaned naming and allow for leading zeros |
| in argument number (which doesn't make sense but should be). From Johannes. |
| - lib_vsprintf() (Legacy): Add support for %g format which, for |
| these purpose, is equivalent to %f except that trailing zeroes are |
| suppressed. From Gregory Nutt. |
| - vscanf(): Moved vscanf logic to lib_sscanf.c Switched to stream |
| interface (tricky, because the old implementation used massive read |
| ahead, which isn't suitable for streams, chars already read are |
| gone). Added hh, h, and ll modifiers. From Johannes. |
| - scanf() and fscanf(): Added scanf and fscanf based on enhanced |
| vscanf(). From Johannes. |
| - uname(): Add build date and time to uname output (like Linux). |
| From Gregory Nutt. |
| - strsep(): Add strsep BSD/Linux function. From Xiang Xiao. |
| - netdb: Hostname support no longer depends on CONFIG_NET since the |
| host name is also useful in the non-network environment. |
| CONFIG_NET_HOSTNAME changed to CONFIG_LIBC_HOSTNAME. From Xiang Xiao. |
| - netdb: Support the nameserver change notification then we can pass |
| DNS info from server to client in usrsock case. From Xiang Xiao. |
| - include/fixedmath.h: Add macros for conversion between types |
| b16_t and type double From Gregory Nutt. |
| - include/limits.h: Define NL_ARGMAX (as well as some of the other |
| 'invariant values' per |
| http://pubs.opengroup.org/onlinepubs/7908799/xsh/limits.h.html). |
| From Johannes. |
| - linclude/limits.h: Add 'range 9 999999' to CONFIG_LIBC_NL_ARGMAX |
| to Kconfig. Per OpenGroup.org, the minimum value for NL_ARGMAX is |
| 9. From Gregory Nutt. |
| - include/nuttx/lcd/edid.h: Add extended EDID block IDs From |
| Gregory Nutt. |
| |
| * apps/ General: |
| |
| - apps/: Follow up the kernel signal-related change in various files |
| under examples/ and graphics/. From Xiang Xiao. |
| - apps/: Update for corrected name of standard header file. Should |
| be dlfcn.h, not dllfcn.h. From Gregory Nutt. |
| - apps/: The file system can no longer be disabled. Remove all |
| conditional logic based on CONFIG_NFILE_DESCRIPTORS==0 From |
| Gregory Nutt. |
| - apps/: Remove/replace all conditional logic based on |
| CONFIG_NSOCKET_DESCRIPTORS == 0. That value is always greater than |
| zero now. In places just replace with #ifdef CONFIG_NET. From |
| Gregory Nutt. |
| - apps/: Some updates due to NuttX renaming: |
| CONFIG_BOARD_INITIALIZE is now CONFIG_BOARD_LATE_INITIALIZE; |
| board_initialize() is now board_late_initialize(). From Gregory |
| Nutt. |
| - apps/: Graphics interfaces nx_openwindow() and nxtk_openwindow() |
| now accept an additional 'flag' parameter. From Gregory Nutt. |
| |
| * NSH: apps/nshlib: |
| |
| - apps/nshlib/nsh_netinit.c: Update for changes to signal |
| notification structures. From Gregory Nutt. |
| |
| * Examples/Tests: apps/examples: |
| |
| - apps/examples/ini_dumper: New example program. ini_dumper is |
| example program that dumps content of ini file in pretty ascii table. |
| It is using inih ini library in fsutils/inih. From Michal Lyszczek. |
| - apps/examples/modbusmaster: Add Simple Modbus master example. |
| This example only supports Read/Write HoldingRegisters, but it is |
| easy to extend it to support Read/Write Input/Coils/etc. |
| Originally created by Vytautas in 2016 and updated with minor fixes |
| for this commit. From Alan Carvalho de Assis. |
| - apps/examples/pwfb: Added a test/example at apps/examples/pwfb |
| that was used for initial testing of the per-window framebuffer |
| feature. From Gregory Nutt. |
| - apps/examples/pwlines: Added another a test/example at |
| apps/examples/pwlines that was used for further testing of the |
| per-window framebuffer feature. From Gregory Nutt. |
| - apps/examples/sx127x: Add sx127x demo From Mateusz Szafoni. |
| |
| * File System Utilities: apps/system |
| |
| - apps/fsutils/inih: New package. inih (INI Not Invented Here) is a |
| simple .INI file parser written in C. |
| https://github.com/benhoyt/inih. From Michal Lyszczek. |
| |
| * Network Utilities: apps/netutils: |
| |
| - apps/netutils/codecs/: Remove the big Base64 stack array. From |
| Xiang Xiao. |
| - apps/netutils/codecs/: Add base64_[de|en]code_length() API From |
| ligd. |
| |
| * System Utilities: apps/system |
| |
| - apps/system/cfgdata: Make builtin task stack size and priority |
| configurable. Set default to 2048 (from 1024) per recommendation |
| of Ken Pettit. From Gregory Nutt. |
| - apps/system/embedlog: Update to version 0.4.0. From Michal Lyszczek. |
| - apps/system/nxplayer and nxrecorder: Change 'int prio' to |
| 'unsigned int prio'. Required by changes to MQ function |
| prototypes. From Michal Lyszczek. |
| - apps/system/psmq: New package. psmq is publish subscribe message |
| queue. It's a set of programs and libraries to implement |
| publish/subscribe way of inter-process communication on top of |
| POSIX message queue. From Michal Lyszczek. |
| - apps/system/zmodem: Switch to the raw mode before transfer and |
| restore to the original setting after finishing the transfer. From |
| Xiang Xiao. |
| |
| * Testing: apps/testing: |
| |
| - apps/testing/: Move all file system tests from examples/ to |
| testing/ (cxxtest, fstest, nxffs, smart, smart_test, smp). From |
| Gregory Nutt. |
| - apps/testing/cxxtest: Add a README file. From Gregory Nutt. |
| - apps/testing/ostest: Add test of pthread_mutex_timedlock() From |
| Gregory Nutt. |
| - apps/testing/ostest: Fix several errors in the setvbuf() test. |
| From Gregory Nutt. |
| - apps/testing/scanftest: Port of Greg King's scanf test |
| (https://github.com/cc65). From Johannes. |
| |
| * Tools: apps/tools: |
| |
| - apps/tools/check-hash.sh: Add a tool check hash on downloaded |
| packages. From Michal Lyszczek. |
| |
| 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: |
| |
| - Signals: Restructure nxsig_deliver() so that the signal handler is |
| not called with the pre-emption disabled (or, at least no with |
| pre-emption disabled by nxsig_deliver() itself). From Gregory Nutt. |
| - Critical Section Monitor: Move up_critmon_* to arch.h avoid the |
| duplicated declaration. From Xiang Xiao. |
| - Assertions: Architecture-specific assertion logic should dump CPU0 |
| IDLE stack only when PID equals 0. IDLE threads of other CPUs do |
| not need this special check. From Xiang Xiao. |
| - Message Queues: Change 'int prio' to 'unsigned int prio'. |
| According to open group specification, priority field in mq_* |
| functions should have unsigned type: |
| http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/mqueue.h.html. |
| From Michal Lyszczek. |
| - Timer Expiration: Fix macro SEC2TICK() 32-bits overflow by using |
| uint64_t in calculation. From ligd. |
| - Kernel Memory Manager: In mm/kmm_heap/kmm_kernel.c, remove unused, |
| duplicated kmm_heapmember(). From Xiang Xiao. |
| - User Memory Manager: Ensure all user allocation try sbrk before |
| fail From Xiang Xiao. |
| - waitid(): Could exit without leaving critical section on some |
| error conditions. From Gregory Nutt. |
| - IOBs: iob_allocwait() should decrease semcount manually. From |
| Xiang Xiao. |
| - IOBs: iob_copyin() should wait for each buffer and adjust the |
| return value of iob_copyin_internal return to simplify the code |
| From Xiang Xiao. |
| - IOB Notifier: Don't check iob_navail in iob_notifier_setup to |
| avoid a potential race condition. From Xiang Xiao. |
| - IOB Debug Dump: Format the whole line before log to avoid the |
| multiple timestamp prefix in each line. From Xiang Xiao. |
| - SHM: Convert bytes to pages by MM_NPAGES instead of MM_PGALIGNUP |
| From Xiang Xiao. |
| - SHM: shmget() should call shm_extend() to allocate the |
| physical memory. From Xiang Xiao. |
| - Page Allocator: mm/pgalloc: shouldn't just allocate one page |
| always. From Xiang Xiao. |
| - Granule Allocator: Fix the wrong data in g_1bit_info and make the |
| internal function static. From Xiang Xiao. |
| - srbk(): Fix a backward conditional test. Should call |
| mm_initialize() when brkaddr equal zero From Xiang Xiao. |
| - sbrk(): Pass ARCH_HEAP_VEND as maxbreak argument From Xiang Xiao. |
| - ELF Headers: Move elf related arch function to include/nuttx/elf.h |
| because the implementation is located in libs/libc/machine and in |
| order to avoid the conflict with the 3rd party libraries and clean |
| up the file inclusion: (1) Remove redundant elf32.h, (2) Remove |
| nuttx/binfmt/elf.h in libs/libc/machine, (2) Remove |
| nuttx/binfmt/elf.h in modlib, and (4) Remove nuttx/module.h in |
| modlib. From Xiang Xiao. |
| - ELF Executables: If there is an address environment |
| (CONFIG_ARCH_ADDRENV), binfmt/elf doesn't need to free ctor/dtor |
| alloc since freeing the address environment releases the heap |
| automatically. From Xiang Xiao. |
| - ELF Configuration: Correct libcxx exception handling by |
| introducing the generic config(CXX_EXCEPTION and CXX_LIBSUPCXX) |
| From Xiang Xiao. |
| - ELF Loaders: Call umm_initialize as soon as possible otherwise |
| elf_loadctors/elf_loaddtors may fail to allocate memory. From |
| Xiang Xiao. |
| |
| * Crypto: |
| |
| - Crypto AES: After NuttX 7.28 crypto/aes.c would no longer |
| compile. From Gregory Nutt. |
| |
| * File System/Block and MTD Drivers: |
| |
| - open(): Fix not returning failure for block_proxy() call. From |
| David Sidrane. |
| - AIO: aio_cancel() needs to signal caller after success. Also fix |
| minor issue in the error handler. From Xiang Xiao. |
| - HostFS: Remove the unnecessary use of host_stat() in |
| hostfs_bind() From ligd. |
| - LittleFS: Fix a minor issue found in code review: (1) Replace |
| printf to finfo/fwarn/ferr, (2) Replace malloc/free to |
| kmm_malloc/kmm_free, (3) define LFS_NAME_MAX to NAME_MAX, (4) Check |
| the big endian using CONFIG_ENDIAN_BIG. From Xiang Xiao. |
| - LittleFS: VFS Lookahead should use bit unit not byte unit. From |
| Xiang Xiao. |
| - NxFLAT: Correct a double free debug assertion. This occurs when |
| groups are enabled: (1) once via binfmt_exit and unload_module, |
| and (2) once via sched_releasetcb(). this was corrected by adding |
| logic to free/unload the memory once and nullify the pointer so |
| that cannot be freed a second time. This commit resolves Bitbucket |
| issue #145. From Valmantas Palikša. |
| - NxFLAT: File descriptor leaks when nxflat loading fails. From |
| Valmantas Palikša. |
| - ProcFS: Fix typo in procfs uptime logic. From Sebastien Lorquet. |
| |
| * Networking/Network Drivers: |
| |
| - Network Configuration: The setup seems to support a network |
| without sockets (CONFIG_NSOCKET_DESCRIPTORS == 0). That is not the |
| case; if the network is enabled, sockets must be provided. From |
| Gregory Nutt. |
| - Networking: The value ERROR should never be returned from internal |
| OS functions. That is reserved for returning values to applications |
| with the errno value set. Within the OS, errors are returned with |
| a negated errno value ALWAYS. From Gregory Nutt. |
| - Networking: The struct in_addr doesn't have the member sin_addr. |
| The function lib_lo_ipv6match() is for IPv6. Correct the function |
| it calls from lib_lo_ipv4matchto() to lib_lo_ipv6match(). Also add |
| CONFIG_NET_IPv6 for configuration. From Kejun ZHOU. |
| - TCP (buffered) send: Fix assertion crash when window size is |
| zero. From Gregory Nutt. |
| - ICMP/ICMPv6: Bind icmp callback from device to connection. |
| Resolves the issue that bind() could not be called before send() |
| From anchao. |
| - TUN/TAP Driver: Re-order all TUN/TAP driver state data. Not only |
| was was with wasting memory due to alignment requirements, it was |
| also causing network packet buffers to be improperly aligned |
| causing problems because the network requires 16-bit packet buffer |
| alignment for uint16_t accesses. This alignment problem was |
| discovered by Alan Carvalho de Assis. From Gregory Nutt. |
| - TUN/TAP Driver: Packet buffer size should include the configured |
| GUARD_SIZE. And, given how the buffers are allocated, the |
| allocation size must be an even number of 16-bit values to preserve |
| alignment. From Gregory Nutt. |
| - Local Sockets: In local_connect(), initialize lc_result before |
| giving lc_waitsem From zhangyuan7. |
| - Local Sockets: Fixed deadlock issue by replacing nxsem_wait() with |
| net_lockedwait() so that we do not wait with the network locked. |
| From zhangyuan7. |
| |
| * Graphics/Display Drivers: |
| |
| - NX Graphics: Remove naming associated with the now non-existent |
| NXFE graphics layer: Rename nxfe_reportposition to |
| nxmu_reportposition. Rename nxfe_redrawreq to nxmu_redrawreq. |
| Rename nxfe.h to nxmu.h. Rename nxfe_state_s to nxmu_state_s. |
| Rename nxfe_conn_s to nxmu_conn_s. From Gregory Nutt. |
| - NxTERM: Remove the nxterm_unregister interface. The correct way |
| to unregister a device is to unlink it. From Gregory Nutt. |
| - NxTerm: Needs to clear display initially. Otherwise, garbage from |
| previous display may still be present from preceding NxWM window. |
| From Gregory Nutt. |
| - Font Cache: Fix a memory leak in the font cache. With a busy |
| NxTerm display, this could drain off all the memory pretty quickly! |
| From Gregory Nutt. |
| - Graphics: Nothing under graphics/ should set the errno. From |
| Gregory Nutt. |
| - Graphics: Fix a coordinate system error in nx_filltrapezoid(). |
| When no clipping rectangle is falls, it falls back to use the |
| entire window as for the clip. However, that window must then then |
| be in window relative coordinates, not in absolute device |
| coordinates. From Gregory Nutt. |
| |
| * Common Board Logic: |
| |
| - boardctl(): Fix compiling error when set |
| CONFIG_BOARDCTL_IOCTL/CONFIG_BOARDCTL_UNIQUEID. From Kevin Liu. |
| |
| * Common Drivers: |
| |
| - INA3221: Fix errors in INA3221 register field addresses and |
| bitfield values. Signed value was losing its signed-ness due to |
| use of unsigned type for register. From Ken Pettit. |
| - Serial Upper Half: Initialize OPOST and ONLCR in uart_register. |
| From Xiang Xiao. |
| - Serial Upper Half: Don't reset the circular buffer on close since |
| DMA may still be transferring data in the background if the user |
| closes the handle too quickly and the handle is opened with |
| O_NONBLOCK. From Xiang Xiao. |
| - 16550 UART: Fix error: 'g_uart0port' undeclared. From Xiang Xiao. |
| - 16550 UART: Fix typo for UART1 flow field initialization From |
| Gregory Nutt. |
| - CDC/ACM HCD: Fixes to the IOCTL method in recovery of UART pointer |
| and in names of Termios-related field. From xhbm. |
| - USB Device: Fix type for USBDEV_TRACE_INITIALIDSET in Kconfig. |
| From Mateusz Szafoni. |
| - TCA64xx: Fix some errors in the TCA64XX driver. From Bruno |
| Schwander. |
| - SYSLOG RAMLog: Fix error: Conflicting types for 'ramlog_addchar' |
| From Xiang Xiao. |
| - NRF24L01: Fix uninitialized irq_work which was causing a |
| hard_fault on interrupt handler whenever something was sent from |
| nrf24l01_term From Petri Ahonen. |
| - MCP2515: Use kmm_zalloc to allocate device state structure. Fix |
| some compiler errors. From Valmantas Paliksa. |
| |
| * Architecture Common: |
| |
| - arch/ Common: Remove architecture-specific watchdog.h and |
| arm-elf.h because they are empty. The arm-elf header file was |
| never used; the empty watchdog.h header file was used in only one |
| place. From Xiang Xiao. |
| - arch/ Common: Move up_pminitialize() after timer_initialize() |
| From ligd. |
| - arch/ Common: Align semi-hosting call style with other syscalls in |
| architecture-specific syscall.h. From Xiang Xiao. |
| - arch/ Common: Every file that uses serial IOCTLs (TIOC*) must |
| explicitly include nuttx/fs/ioctl.h. This was included previously |
| via sneak path in the now deleted arch/serial.h. From Gregory Nutt. |
| - arch/ Interfaces: Rename sched_process_cpuload to |
| nxsched_process_cpuload. All internal sched_ functions should be |
| prefixed with nx. From Valmantas Paliksa. |
| |
| * ARMv7-A: |
| |
| - ARMv7-A MMU: Updating the cp15_wrttb and cp15_wrdacr functions to |
| use inline assembly in the correct way. The incorrect method was |
| generating errors as ARMv7-a expects the MCR/MRC instructions to |
| provide registers as an argument(MRC p15, 0, <Rt>, c2, c0, 0) and |
| the code was providing a constant value(and hence the build |
| error). From Bilal Wasim. |
| - ARMv7-A: Remove inclusion pg_macros.h for armv7-a since this |
| header file does not exist. From zhangyuan7. |
| - ARMv7-A: Guard some assembly files if configuration not selected. |
| From zhangyuan7. |
| - ARMv7-A GIC: Fix assemble error when including gic.h From Xiang |
| Xiao. |
| - ARMv7-A GIC: Don't use GIC_ICDDCR_ENABLEGRP1 for GIC NONSECURE |
| since this bit doesn't exist in this mode. From liuzhuang. |
| |
| * ARMv7-R: |
| |
| - ARMv7-R Syscall: In arch/arm/include/syscall.h, add missing |
| inclusion of arch/armv7-r/syscall.h for Cortex-R. From Xiang Xiao. |
| |
| * ARMv7-M: |
| |
| - ARMv7-M Initialization: As noted by Roland Takacs in Bitbucket |
| issue 141, there is a compilation error for STM32 if CONFIG_NET and |
| CONFIG_NETDEV_LATEINIT are selected. That was due in part to the |
| commit which extended up_netinitialize() with a |
| !defined(CONFIG_NETDEV_LATEINIT) guard but did not add the guard to |
| concrete implementations. I say "in part" because I don't think |
| that the original intent of commit 19e16cb was to enable an |
| alternative initialization of MCU internal Ethernet support but |
| rather to enable support of external Ethernet devices that may have |
| dependencies on, for example, SPI. However, this is still a proper |
| fix to avoid the compilation error that can occur with this |
| combination of configuration options. From Gregory Nutt. |
| - ARMv7-M Configuration: ARCH_HIPRI_INTERRUPT shouldn't select |
| ARMV7M_USEBASEPRI. First because that is a violation of the |
| layered nature of the Kconfig architecture, but also because then |
| Kconfig will generate errors when high priority interrupts are used |
| with other architectures. From Xiang Xiao. |
| - ARMv7-M Vector Table: Make the default NVIC_VECTAB_TBLOFF_MASK |
| safer. The base address of the new vector table must be aligned to |
| the size of the vector table extended to the next larger power of |
| 2. From Xiang Xiao. |
| - ARMv7-M RAM Vectors: Correct bad NVIC_VECTAB_TBLOFF_MASK |
| definitions in previous commit. Were missing bits in the mask. |
| Raised DEBUGASSERT in armv7-m/up_ramvec_initialize.c line: 144. |
| From Mateusz Szafoni. |
| |
| * Espressif ESP32 Drivers: |
| |
| - ESP32 Timer ISR: Fix backward comparison. From Gregory Nutt. |
| - ESP32 Serial: Fix some backward arguments. Correct 2-stop bit |
| setting. From Gregory Nutt. |
| |
| * Microchip/Atmel SAMD2x/L2x Drivers: |
| |
| - SAMD2/L2 Serial: SAMD2/L2 serial driver. It needs |
| sam_usart_enable(). to work From Alan Carvalho de Assis. |
| |
| * Microchip/Atmel SAMD3/4 Drivers: |
| |
| - SAM3/4 Ethernet: Port Anthony Merlino's SAMv7 fix to similar |
| Ethernet driver for the SAM3/4. From Gregory Nutt. |
| |
| * Microchip/Atmel SAMV7 Drivers: |
| |
| - SAMv7 SPI: Fix DMA Tx/Rx timeout issue. From Kevin Liu. |
| - SAMv7 QSPI: Compile error when set CONFIG_SAMV7_QSPI_DLYBCT. |
| From Kevin Liu. |
| - SAMv7 Ethernet: The logic for determining the number of queues for |
| SAMV71 must be extended. All SAMv7 parts increase the number of |
| queues from 3 to 6 at revision B, not just the SAMV71. From |
| Gregory Nutt. |
| - SAMv7 Ethernet: Fixes rxdesc index logic to handle Buffer Not |
| Available (BNA) condition. If a SOF is found, but no EOF, don't |
| move past the frame. Instead, keep the index at the SOF buffer |
| until the rest of the data is written. This fixes a receiver |
| lockup condition where the peripheral and this driver get out of |
| sync with there head pointers. In this case the driver has moved |
| past buffers it owns, without clearing ownership, which results in |
| the peripheral and driver in a deadlock with each other. From |
| Anthony Merlino. |
| |
| * Microchip/Atmel SAMA5Dx Drivers: |
| |
| - SAMA5Dx Ethernet: Port Anthony Merlino's SAMv7 fix to similar |
| Ethernet driver for the SAMA5Dx. From Gregory Nutt. |
| |
| * Microchip/Atmel SAMA5Dx Board: |
| |
| - SAMA5D2-XULT: Move console from FLEXCOM4 to UART1. FLEXCOM4 does |
| not work for the Arduino serial. UART1 is used with the VCOM |
| provided by the EDBG. From Gregory Nutt. |
| |
| * NXP i.MXRT: |
| |
| - i.MXRT Clock Configuration: If SDRAM is activated it was only |
| running at 40MHz. This was because imxrt_clockconfig.c changed the |
| SEMC clock divider after the DCD was configured. This commit |
| corrects that. From Johannes. |
| |
| * NXP i.MXRT Drivers: |
| |
| - i.MXRT GPT: Correct register offsets. From David Sidrane. |
| - i.MXRT TMR: Fix addressing and restructure using common offset. |
| From David Sidrane. |
| - i.MXRT ADC: Error in offset. From David Sidrane. |
| |
| * NXP/Freescacle Kinetis Boards: |
| |
| - Teensy-3.x: Fix a mismatch in types in defconfig. From Gregory |
| Nutt. |
| |
| * NXP LPC17xx: |
| |
| - LPC176x Clock Configuration: The code preserves undocumented |
| reserved bits only if board does not set them to keep previous |
| behavior for boards where developers (hopefully) know what values |
| should be set into these bits. From Pavel Pisa. |
| - LPC17xx Clock Configuration: The enable of EMC clocks has to be |
| preserved when already enabled by loader. EMC and related pins |
| configuration has to be skipped if the system is run from SDRAM. A |
| region of SDRAM which is used by system must not be used for heap. |
| From Pavel Pisa. |
| |
| * NXP LPC17xx Drivers: |
| |
| - LPC17xx CAN: The name can_txready clashes with NuttX CAN core |
| global function. LPC178x has only single LPC17_SYSCON_PCLKSEL with |
| only single divisor. From Pavel Pisa. |
| |
| * NXP LPC17xx Boards: |
| |
| - Open1788: Add missing MPU configuration option. From Gregory Nutt. |
| |
| * On Semi LC823450 Boards: |
| |
| - LC823450-XGEVK: Remove -nostdinc to avoid build error From |
| Masayuki Ishikawa. |
| |
| * STMicro STM32: |
| |
| - STM32: Don't try including stm32_gpio.h from within chip/*.h |
| header files. Not only is bad style for a layered inclusion |
| system, but it doesn't always work. From Gregory Nutt. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 PWM: Fix polarity and IDLE state configuration From Mateusz |
| Szafoni. |
| - STM32 ADC, PWM and TIM: (1) missing T1TRGO2 for JEXTSEL, (2) fix |
| sample time configuration for channels. The array index for |
| channels was missing, (3) fix TRGO/TRGO2 configuration, and (6) |
| support for advanced timers channel 5 and 6. From Mateusz Szafoni. |
| - STM32 Heap: Change 'if CONFIG_STM32_HAVE_CCM' to 'ifdef |
| CONFIG_STM32_HAVE_CCM' to avoid a warning when |
| CONFIG_STM32_HAVE_CCM is not defined. From Gregory Nutt. |
| - STM32 Oneshot Timer: Fix an error introduced be a previous timer |
| commit. From Maximilian Kriegleder |
| - STM32 Tickless Mode and Free-Running Timer: Apply Max's |
| stm32_oneshot.c fix to the tickless implementation and to the |
| freerunning time. From Mateusz Szafoni. |
| - STM32 PWM: Set CCPxP and CCPxNP bits if polarity is negative. |
| Missing commas in initializers could break compilation in certain |
| configurations. From Mateusz Szafoni. |
| - STM32F7 Interrupts: Add the missing macro STM32_IRQ_NIRQS used by |
| arch/arm/src/stm32f7/stm32_irq.c. From Kejun ZHOU. |
| - STM32H7 DMA: Fix AHB1 base addresses memory map. From Mateusz |
| Szafoni. |
| - STM32H7 SysTick: H7 appears to ignore the SysTick CLKSOURCE bit |
| and use the CPU clock in all cases. From Mateusz Szafoni. |
| |
| * STMicro STM32 Boards: |
| |
| - B-L072Z-LRWAN1: Fix typo in SPI1 pin definitions. From Mateusz |
| Szafoni. |
| - STM32F429I-DISCO: Handle multiple calls to the LCD |
| up_fbinitialize() function. From Gregory Nutt. |
| - STM32F769I-DISCO: Florian R. Hölzlwimmer reports that |
| stm32_appinitialize.c often has missing OK and NULL definitions. |
| This should be fixed by including sys/types.h where they are |
| defined. From GregoryN. |
| - STM32F769I-DISCO: Remove CONFIG_STM32F7_QUADSPI=y from the |
| configuration. This was apparently set before the implementation |
| was added. Now that the implementation was added, the configuration |
| will not build because it requires that QSPI GPIO pin definitions |
| be provided in the board.h header file. From Gregory Nutt. |
| |
| * TI AM335x Drivers: |
| |
| - AM335x Serial: Eliminate an error 'TIOCSBRK undeclared. From |
| Gregory Nutt. |
| |
| * C Library/Header Files: |
| |
| - strto*: In all strto* function family, did't consume single '-' |
| or '+', allow sign in strotul(l)). From Johannes. |
| - getopt(): Add logic to reinitialize the stale context for the |
| FLAT/PROTECTED builds. In these builds getopt() global variables |
| may be shared by many tasks. If any task exits the getopt() loop |
| before all command line arguments have been parsed, then getopt() |
| global variables will be left in a bad state. The next time |
| getopt() is called, this logic should detect the bad state and |
| force the state of getopt() to be re-initialized so that it can be |
| reused. This logic is not full proof (it would fail, for example, |
| if you tried to parse the same command line twice) but should catch |
| the typical misuse cases. From Xiang Xiao. |
| - sscanf(): Initialized the lastc pointer to avoid the checks for |
| NULL. Removed a bug in the floating point parsing which allowed |
| several signs after each other. From Johannes. |
| - lib_vsprintf() (Legacy): No precision specifier resulted in |
| precision 0 but should be precision 6. From Johannes. |
| - lib_vsprintf() (Legacy): Correct justification for alternate forms |
| of %p and %P From ligd. |
| - lib_vsprintf() (Nano): Add long long support. |
| CONFIG_LIBC_LONG_LONG needs at least CONFIG_NANO_PRINTLEVEL 2. |
| Code size for compile without CONFIG_LIBC_LONG_LONG shouldn't be |
| affected. From Johannes. |
| - lib_vsprintf() (Nano): Remove CONFIG_LIBC_PRINT_MINIMAL. The |
| output in that configuration is unsatisfactory and inappropriate |
| for use with NuttX. For example, the output from many NSH commands |
| become corrupted and useless. Doesn't belong in this context. |
| From Gregory Nutt. |
| - libs/libc/symtab: Remove unused symtab_findorderedbyvalue(). From |
| Xiang Xiao. |
| - libs/libc/machine/arm: Fix the minor issue in libc arm machine |
| folder; MOVW/MOVT should use zero(not sign) extension. From Xiang |
| Xiao. |
| - libs/libc/libc.csv: Should be locale.h not local.h. From Joao |
| Matos. |
| - libs/libc/libc.csv: Needed logic for correct compilation if not |
| using CONFIG_LIBC_WCHAR. From Joao Matos. |
| - libxx: Always include libxx_cxa_guard.cxx in the build for for |
| uclibcxx. From zhangyuan7. |
| |
| - include/stdbool.h: Define bool only when __cplusplus isn't |
| defined. From Xiang Xiao. |
| - include/nuttx/list.h: Added a Linux-compatible list |
| implementation. From zhuyanlin. |
| - include/nuttx/irq.h: Fix enter_critical_section/spin_lock_irqsave |
| macro typo error and remove the duplicated inclusion of |
| arch/irq.h. From Xiang Xiao. |
| - include/dlfcn.h: Correct naming of standard header file. Should |
| be dlfcn.h, not dllfcn.h. From Gregory Nutt. |
| - include/nuttx/nx/nxmu.h: This header file could be lethal; it |
| declared an #error if CONFIG_DISABLE_MQUEUE=y. From Gregory Nutt. |
| - include/nuttx/compiler.h: Important fix for C++ users. |
| compiler.h was using the value of __STDC_VERSION__ to determine if |
| inline functions are supported or not. If not then the keyword |
| inline was defined out. Good for C but bad for C++ because C++ |
| does not define __STDC_VERSION__ at all. C++ applications may |
| draw in compiler.h indirectly via other head files and this can |
| result in C++ compiler problems since 'inline' is defined out. |
| This fix is to ignore the (undefined) __STDC_VERSION__ if |
| __cplusplus is defined. From Gregory Nutt. |
| - include/nuttx/elf.h: Adds missing extern "C" __cplusplus guard. |
| From Anthony Merlino. |
| - include/poll.h: Remove un-named union from 'struct pollfd'. It |
| is not required by OpenGroup.org and violates the NuttX C coding |
| standard because it is not C89 compatible. From Gregory Nutt. |
| - libs/libc/Makefile, libs/libnx/Makefile, and mm/Makefile: Remove |
| obj-path MKDEPS option since make dependency target (MT) is not |
| supported by some toolchains. From anchao. |
| - include/nuttx/compiler.h: Assume inline support if |
| __STDC_VERSION__ not defined. From Xiang Xiao. |
| |
| * Tools: |
| |
| - tools/convert-comments.c: Fix an error in handling of a blank C++ |
| comment before a comment block. From Gregory Nutt. |
| - tools/lowhex.c: Fix an initialization problem that was causing |
| some odd behavior at the beginning of lines. From Gregory Nutt. |
| - tools/nxstyle.c: Fix logic that detects if an operator is |
| correctly delimited with spaces. sched/: Various changes because |
| sched/ C files were used as Guinea Pigs to test nstyle.c. From |
| Gregory Nutt. |
| - tools/nxstyle.c: Was confusing hex constants with strings staring |
| with 'x'. Added logic to complain about hex constants containing |
| upper case characters. From Gregory Nutt. |
| - tools/nxstyle.c: Fix logic error that prevent detection of '/' and |
| '/=' as operators. net/: Minor updates resulting from testing |
| tools/nxstyle. From Gregory Nutt. |
| |
| * NSH Library: apps/nshlib: |
| |
| - NSH Console: Fix copy paste errors. Some Kconfig configuration |
| names needed CONFIG_ prefix. From David Sidrane. |
| - nshlib/nsh_timcmds.c: Uninitialized struct tm caused 'date -s' to |
| fail. From Valmantas Palikša. |
| |
| * Examples: apps/examples: |
| |
| - apps/examples/nxterm: Replace direct calls to nxtk_register() |
| with legal, indirect calls via boardctrl(BOARDIOC_NXTERM). |
| Replace calls to (deleted) nxterm_unregister(). The correct way |
| to delete a driver is by unlink'ing it. From Gregory Nutt. |
| - apps/examples/nxterm: Most configuration options were not |
| available in the Kconfig file. From Gregory Nutt. |
| - apps/examples/nxterm: Replace illegal direct calls to |
| nxterm_redraw() and nxterm_kbdin() with new boardctl() calls. |
| From Gregory Nutt. |
| - apps/examples/nxterm: NxWM passed the size of the NxTK sub-window |
| but nxterm example passed the size of the complete NxTK window. |
| They must be made consistent. From Gregory Nutt. |
| |
| * Graphics Utilities: apps/graphics: |
| |
| - apps/graphics/NxWidgets/nxwm: Correct an error in the type of the |
| return value in CCalibration. From Gregory Nutt. |
| - apps/graphics/NxWidgets/nxwm: Replace direct calls to |
| nxtk_register() with legal, indirect calls via |
| boardctrl(BOARDIOC_NXTERM). Replace calls to (deleted) |
| nxterm_unregister(). The correct way to delete a driver is by |
| unlink'ing it. From Gregory Nutt. |
| - apps/graphics/NxWidgets: Replace illegal direct calls to |
| nxterm_redraw() and nxterm_kbdin() with new boardctl() calls. |
| From Gregory Nutt. |
| |
| * Modbus: apps/modbus: |
| |
| - apps/modbus/Kconfig: Fix modbus master Kconfig. Modbus Master |
| ASCII compiles correctly. From Alan Carvalho de Assis. |
| |
| * Network Utilities: apps/netutils: |
| |
| - apps/netutils/dhcpc/dhcpc.c: Fix an error for DHCP REQUEST |
| receiving a NAK.In DHCP Request operation, no need to update |
| ciaddr to the client address and keep it as 0. From Kevin Liu. |
| |
| * System Utilities: apps/system: |
| |
| - apps/system/vi/vi.c: Fix an infinite loop bug that can show up in |
| some cases (plus a couple of other items). From Ken Pettit. |
| - apps/system/vi: Condition KEY_CMDMODE_REPEAT with |
| CONFIG_SYSTEM_VI_INCLUDE_COMMAND_REPEAT to avoid build error when |
| option is not selected. From Anthony Merlino. |
| - apps/system/nxplayer/nxplayer.c: Fix build error when only enable |
| CONFIG_AUDIO_EXCLUDE_VOLUME is enabled. From ZhongAn. |
| - apps/system/system/system.c: Correct a path name. From anchao. |
| - apps/system/taskset: Fix command arguments are not passed. From |
| Masayuki Ishikawa. |
| |
| * Testing: apps/testing: |
| |
| - apps/testing/ostest/timedmutex.c: pthread_mutex_timedlock() |
| returns EDTIMEDOUT on a timedout, not EAGAIN. From Gregory Nutt. |
| |
| * Tools: apps/tools: |
| |
| - apps/tools/mksymtab.sh: 'export LC_ALL=C' to get the traditional |
| sort order From anchao. |