| NuttX-7.17 |
| ---------- |
| |
| The 117th release of NuttX, Version 7.17, was made on July 25, 2016, |
| and is available for download from the Bitbucket.org website. Note |
| that release consists of two tarballs: nuttx-7.17.tar.gz and |
| apps-7.17.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: |
| |
| * File System and Block and MTD Drivers: |
| |
| - drivers/mtd: Add a driver of IS25xP SPI flash devices. Based on |
| sst25xx driver. From Marten Svanfeldt. |
| |
| * Networking and Network Drivers: |
| |
| - Break out internal interface psock_ioctl(). |
| |
| * Common Device Drivers: |
| |
| - PTYs: Added support for pseduo-terminals: Device drivers that can be |
| used for communications between tasks (usually with re-directed I/O). |
| Based on existing pipe logic. |
| - Button upper half driver: Added support for poll(). |
| - CAN: Add support for poll. From Paul Alexander Patience. |
| - GPIO: Add support for a simple GPIO driver. It supports only pre- |
| configured input, output, and interrupting pins with basic input and |
| output operations. Interrupt events can lead to notification via a |
| signal. |
| - I/O Expander: Shadow-Mode: The output- and configuration registers of |
| the IO-Expander are held in the microcontrollers memory and only |
| written to the IO-Expander. This reduces bus traffic and is more |
| error-proof than the normal read-modify-write operation. Retry Mode: |
| If enabled and an error occurs while writing to the IO-Expander the |
| current transmission is automatically repeated once. From Michael |
| Spahlinger. |
| - Pipes/FIFOs: Add support to allocating different sizes for pipe and |
| fifo buffers. Adds mkfifo2() and pipe2() which are just like mkfifo() |
| and pipe(), but allow control of the size of the underlying, in-memory |
| circular buffer. Move pipe() and mkpipe() to the C library, they are |
| no longer core OS interfaces. Capability currently used only by PTY |
| logic to support, configurable, smaller buffers for PTYs. |
| |
| * SYSLOG/Debug Output: |
| |
| - SYSLOG: Consolidated all SYSLOG logic in drivers/syslog. Added an |
| abstraction layer that supports: (1) redirection of SYSLOG outpout. |
| This is usually so that you can boot with one SYSLOG output but |
| transition to another SYSLOG output when the OS has initialialized, |
| (2) adds common serialization of interrupt output as a configuration |
| option. Without this configuration setting, interrupt level output |
| will be asynchronous. And (3) vsyslog is now a system call and is |
| usable with other-than-FLAT builds. |
| - SYSLOG: syslog() will now automatically redirect output to |
| lowsyslog() if called from an interrupt handler. |
| - Extended SYSLOG logic so that we can send SYSLOG output to a file. |
| - SYSLOG character device channel will now expand LF to CR-LF. |
| Controllable with a configuration option. |
| - Add a SYSLOG character device that can be used to re-direct output |
| to the SYSLOG channel (Not be be confused the SYSLGO output to a |
| character device). |
| - Debug features are now enabled separately from debug output. |
| (1) CONFIG_DEBUG is gone. It is replaced with CONFIG_DEBUG_FEATURES. |
| (2) The macros dbg() and vdbg() have renamed as _err() and _info(), |
| respectively. This also applies to all of the variants as well, |
| XXdbg() and XXvdbg(). (3) Add a new debug level, _warn() (and |
| all variants XXwarn(), XXvwarn(), etc.). (4) Debug assertions can |
| now be enabled separately from debug output. (5) You can now enable |
| subsystem/device driver debug output at different output levels. For |
| example, CONFIG_DEBUG_FS no longer enables file system debug output |
| It enables general file system debug logic and enables selection of |
| CONFIG_DEBUG_FS_ERROR, CONFIG_DEBUG_FS_WARN, and CONFIG_DEBUG_FS_INFO. |
| - Since the SYSLOG layer now automatically handles low-level vs. |
| high-level output, the low-level (ll) variants of the debug macros |
| were eliminated. |
| - Reviewed all uses of *err(). These macro family should indicate |
| only error conditions. Convert *err() to either *info() or add |
| ERROR:, depending on if an error is reported. |
| - _alert(): New debug macro: _alert(). This is high priority, |
| unconditional output and is used to simplify and standardize crash |
| error reporting. |
| - Many CONFIG_DEBUG_* options did not have matching macros defined in |
| include/debug.h. Rather, there were various definitions scattered |
| throughout the sourse tree. These were collected together and |
| centralized with single macro definitions in include/debug.h |
| |
| * Simulation Platform: |
| |
| - Added the simulated QSPI (N25Q) flash to the simulation and extended |
| flash simulation capabilities to run with MTD drivers based on config |
| options (currently m25p, sst26 and w25). From Ken Pettit. |
| |
| * Atmel SAMV7 Drivers: |
| |
| - SPI: SPI-Freq. 40MHz; VARSELECT; hw-features This change adds the |
| following improvements: |
| |
| o Increase the allowed SPI-Frequency from 20 to 40 MHz. |
| o Correct and rename the "VARSELECT" option This option was |
| included in the code as "CONFIG_SPI_VARSELECT" but nowhere |
| defined in a Kconfig file. The change renames it to |
| "CONFIG_SAMV7_SPI_VARSELECT" and corrects the implementation |
| according the datasheet of Atmel. In short, this option |
| switches the processor from "fixed peripheral selection" |
| (single device) to "variable peripheral selection" (multiple |
| devices on the bus). |
| o Add a new Function to the interface to control the timing and |
| delays of the chip according the ChipSelect lines. This function |
| can control the delay between the assertion of the ChipSelect and |
| the first bit, between the last bit and the de-assertion of the |
| ChipSelect and between two ChipSelects. This is needed to tune |
| the transfer according the specification of the connected devices. |
| o Add three "hw-features" for the SAMV7, which controls the behavior |
| of the ChipSelect: |
| - force CS inactive after transfer: this forces a (short) de- |
| assertion of the CS after a transfer, even if more data is |
| available in time |
| - force CS active after transfer: this forces the CS to stay |
| active after a transfer, even if the chip runs out of data. |
| Btw.: this is a prerequisite to make the LASTXFER bit working |
| at all. |
| - escape LASTXFER: this suppresses the LASTXFER bit at the end |
| of the next transfer. The "escape"-Flag is reset automatically. |
| |
| From Frank Benkert |
| - TWISHS: Driver improvements from Michael Spahlinger. |
| - GPIO-Driver fixed for Open-Drain Pins: |
| |
| o sam_gpioread: Now the actual line level from the pin is read |
| back. This is extremely important for Open-Drain Pins, which |
| can be used bidirectionally |
| o Re-Implemented twi_reset-function and enhanced it so it can be |
| called from inside the driver (see next point) |
| o Glitch-Filter: Added a configuration option to enable the twi- |
| built-in glitch filter |
| o Added a "Single Master Mode": In EMC Testing the TWI-Bus got |
| stuck because the TWI-Master detected a Multi-Master access (but |
| there is no second master). With the option "Single Master" we |
| detect these events and automatically trigger a twi_reset. We |
| also do an automatic recovery if a slave got stuck (SDA stays |
| low). |
| |
| With the above changes I2C-Bus reliability in harsh environments (eg. |
| EMC) is greatly improved. The small change in the GPIO-Driver was |
| necessary because otherwise you cannot read back the correct line |
| status of Open-Drain Outputs and this is needed by the twi_reset |
| function. From Michael Spahlinger |
| |
| * NXP Freescale LPC43xx Drivers: |
| |
| - EMC: Extend LPC43xx EMC code to support SDRAM on a dynamic memory |
| interface. From Vytautas Lukenskas. |
| |
| * NXP Freescale Kinetis: |
| |
| - Kinetis K64: Add basic support for the K64 family. I leveraged the |
| changes from https://github.com/jmacintyre/nuttx-k64f and merged |
| into the existing kinetis code with a lot of changes and additions |
| (like pin multiplexing definitions). |
| |
| * NXP Freescale Kinetis Drivers: |
| |
| - Add a KinetisUSB device controller driver. Derived from the pic32mx |
| usb driver, which uses the same usb controller. From kfazz. |
| - Kinetis pwm support, based on the KL pwm driver. From kfazz. |
| - Kinetis Ethernet: Add support for the KSZ8081 PHY. |
| - Kinetis Ethernet: Modified Ethernet driver to try all PHY addresses |
| and then only fail if the driver cannot find a usable PHY address. |
| This means that you no longer have to specific the PHY address in |
| advance. |
| - Kinetis Ethernet: Add support for CONFIG_NET_NOINTS. The driver no |
| longer runs the networking at interrupt level but can defer interrupt |
| work to the high-priority work queue. |
| |
| * NXP Freescale Kinetis Boards: |
| |
| - Teensy-3.x: Add USB support and a usbnsh configuration. |
| From kfazz (2016-06). |
| - Freedom-K64F: Add support for the NXP Freedom-K64F board at 120MHz. |
| This is primarily the work of Jordan Macintyre. I leveraged this |
| code from https://github.com/jmacintyre/nuttx-k64f which was, itself, |
| a leverage from the old K60 TWR configuration. This includes |
| significant corrections (LEDs, buttons, README, etc) and extensions |
| and updates to match more recent BSPs. |
| - Freedom-K64F: Added a configuration that supports networking. |
| |
| * STMicro STM32: |
| |
| - STM32 F1-4: Added support for the STM32F105R. From Konstantin |
| Berezenko. |
| - STM32 F4: Added support for the STM32FF76xxx and STM32FF7xx |
| families. From David Sidrane. |
| - STM32 F1-4: Add support for Tickless mode (two timer |
| implementation). From Max Neklyudov. |
| - STM32 L4: Add support for tickless OS, and incidentally timers, |
| PWM, oneshot, free-running.... From ziggurat29. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 F1-4: Add the up_getc() function to STM32 in order to support |
| the minnsh configuration. From Alan Carvalho de Assis. |
| - STM32 F7: Add SPI driver. From David Sidrane. |
| - STM32 F7: Add SPI, I2C, and ADC drivers. From Lok Tep. |
| - STM32 L4: Add ioctls to set/get CAN bit timing in stm32l4. Add |
| ioctl hooks to allow future management of can id filters. From |
| Sebastien Lorquet. |
| - STM32 L4: Add some CAN mode IOCTL calls. These will be useful for |
| device autotest when the application boots. They are redundant |
| with the CONFIG_CAN_LOOPBACK option, which can now just be |
| interpreted as a default setting. From Sebastien Lorquet. |
| - STM32 F1-4: Port STM32L4 CAN IOCTLs to STM32. From Sebastien Lorquet. |
| - STM32 L4: Implementation of loopback IOCTLs. From Sebastien |
| Lorquet. |
| - STM32 F7: Added SDMMC1 support for stm32F7 74-75. From Lok Tep. |
| - STM32 F7: Add USB support. From Lok Tep. |
| - STM32 F7: Added PWR, RTC, and BBSRAM support for stm32f7. From David |
| Sidrane. |
| - STM32 F7: Added STMF7xxx RTC. From David Sidrane. |
| - STM32 F7: Added STM32F7 DBGMCU. From David Sidrane. |
| - STM32 L4: Port support for both RX FIFOs from STM32 CAN. From Paul |
| Alexander Patience. |
| |
| * STMicro STM32 Boards: |
| |
| - Added a minnsh configuration for the STM32F103-Minimum board. From |
| Alan Carvalho de Assis . |
| - Added support for the Nucleo-F767ZI board. From David Sidrane. |
| - Nucleo-144/Nucleo-F767ZI: Add test for STM32 F7 SPI. From David |
| Sidrane. |
| - Nucleo-144: Added SDMMC support to Nucleo-144. From David Sidrane. |
| - Olimex STM32-E4077: Add support for Olimex STM32 E407 board. From |
| Mateusz Szafoni. |
| - Nucleo-144: Added USB OTG device to Nucleo-144. From David Sidrane. |
| - Nucleo-144: Added bbsram test to Nucleo-144. From David Sidrane. |
| - STM32F4 Discovery: Add CAN support for STM32F4 Discovery. From |
| Matthias Renner. |
| - STM32F4 Discovery: added a canard configuration files. From |
| Matthias Renner. |
| - STM32F4 Discovery: Add FPU support for ostest for the STM32F4 |
| Discovery platform. From David Alessio. |
| - STM32L476 Discovery: Update stm32l476 disco to include init code for |
| smartfs and nxffs for cases where those fs are included in build. |
| From ziggurat29. |
| |
| * C Library/Header Files: |
| |
| - include/assert.h: Check if NDEBUG is defined. From Paul Alexander |
| Patience. |
| - assert.h: Define static assert for C++ usage. From Paul Alexander |
| Patience. |
| - Add crc64 support. From Paul Alexander Patience. |
| - hex2bin: Move the portable library portion of apps/system/hex2bin |
| the C library with the OS internals. It is used in certain internal |
| boot-loader builds. |
| - Add raise(). |
| - libm: This change should significantly improve the performance of |
| single precision floating point math library functions. The vast |
| majority of changes have to do with preventing the compiler from |
| needlessly promoting floats to doubles, performing the calculation |
| with doubles, only to demote the result to float. These changes only |
| affect the math lib functions that return float. From David Alessio. |
| - printf(): If there are no streams, let printf() fall back to use |
| syslog() for output. |
| - Move pipe() and mkpipe() to nuttx/libc, they are no |
| longer core OS interfaces. Capability currently used only by PTY logi |
| to support, configurable, smaller buffers for PTYs. |
| - Move driver-related files from include/nuttx to include/nuttx/drivers. |
| Move driver related prototypes out of include/nuttx/fs/fs.h and into |
| new include/drivers/drivers.h. |
| - include /nuttx/lib: Move library-related files from include/nuttx to |
| include/nuttx/lib. |
| |
| * Build/Configuration System: |
| |
| - Custom Board Configuration: Add logic to support custom board |
| directories that include a Kconfig file. During the context phase |
| of the build, any Kconfig file in the custom board directory is |
| copied into configs/dummy, replacing the existing Kconfig file with |
| the target Kconfig file. |
| - Remove the includes/apps link to apps/include. It is no longer |
| used. From Sebastien Lorquet. |
| |
| * Tools: |
| |
| - tools/tesbuild.sh will now build NxWM configurations. |
| |
| * Application Build/Configuration System: |
| |
| - Change to the way that apps/ Kconfig files are generated in |
| order to better support reuse of the apps/ directory in NuttX |
| products. Changes include: Make the full tree use wildcards |
| make.defs, Add empty preconfig rules to 'leaf' makefiles, Use |
| directory.mk for recursive dir makefiles, Individual app kconfig |
| fixes, Recursive Kconfig autogeneration, Add kconfig files for |
| pcode and tiff, and fix a gitignore rule, From Sébastien Lorquet. |
| - apps/include directory structure reorganized. There are no longer |
| any header files in the apps/include/. directory. Rather, sub- |
| directories were added to match the partitioning of apps/ sub- |
| directories and the header files were moved into the appropriate |
| sub-directory. This change is intended to help with some changes |
| being considered by Sébastien Lorquet. |
| - Call all includes from <apps/bla/bla.h> to "bla/bla.h". From Sebastien |
| Lorquet. |
| - Add apps/include to include path in top-level Make.defs file. |
| |
| * Applications: apps/nshlib: |
| |
| - Make NSH net-initialization be a configuration option. From Marten |
| Svanfeld. |
| - Add NTP client initialization in NSH network startup logic. From |
| David S. Alessio . |
| - 'ps' command now prints out the stack usage if stack coloration is |
| enabled. From Frank Benkert. |
| - Allow stack usage to be disabled on constrained systems. From David |
| Sidrane. |
| |
| * Applications: apps/netutils: |
| |
| - NTP Client: Add retries. From David S. Alessio. |
| - NTP Client: The NTP client will now optionally use pool.ntp.org as |
| the NTP server; and reset the retry count upon success -- more robust. |
| From David Alessio. |
| - ESP8266: Add logic to set the BAUD rate. From Pierre-noel Bouteville. |
| - ESP8266: In Kconfig, select ARCH_HAVE_NET when NETUTILS_ESP8266 is |
| selected. This allows, among other things, support for network debug |
| output. From Pierre-noel Bouteville. |
| |
| * Applications: apps/fsutils: |
| |
| - flash_eraseall: IOCTL wrapper for MDCIO_BULKERASE command. Was in |
| nuttx/drivers/mtd. Moved to apps/fsutils because the call directly into |
| the OS was incorrect. |
| |
| * Applications: apps/canutils: |
| |
| - canlib: Basic CAN utility library. From Sebastien Lorquet. |
| |
| * Platforms: apps/system: |
| |
| - flash_eraseall: Now uses the IOCTL wrapper at apps/fsutils/flash_eraseall. |
| |
| * Platforms: apps/platform: |
| |
| - Add platform files for Olimex STM32 E407. From Mateusz Szafoni. |
| |
| * Applications: apps/examples: |
| |
| - apps/examples/canard: Add canard example application. From |
| Matthias Renner. |
| - apps/examples/pty_test: PTY test program. From Alan Carvalho de |
| Assis. |
| |
| 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.18. |
| |
| * i.MX6 SMP. Partially functional, but there is more that still |
| needs to be done. |
| |
| 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: |
| |
| - semaphores: Need to set errno to EINVAL on errors in sem_post() |
| and sem_wait(). From Paul Alexander Patience. |
| |
| * File System/Block Drivers/MTD Drivers: |
| |
| - Several MTD FLASH drivers nullify the freed 'priv' structure and |
| failed to return NULL as stated in the comments. Result, will |
| operate on a NULL pointer later. Noted by David Sidrane. |
| - VFS ioctl(). Per comments from David Sidrane, file_ioctl() should |
| not return succeed if the ioctl method is not supported. It |
| probably should return ENOTTY in that case. |
| - SST26 Driver: Before accessing the sst26 flash, the "Global Unlock" |
| command must me executed, which I do in the sst26 driver. BUT re- |
| reading the datasheet, the WREN instruction is required to enable |
| the execution of this command. This was not done. I have no idea how |
| the driver currently works except by chance. The writes should never |
| happen at all, the flash is half-enabled! From Sebastien Lorquet. |
| - N25Qxx Driver: Alter the notion of 'blocksize' to be equivalent to |
| 'flash write page size' in order to align with assumptions in the |
| smartfs driver (at least, maybe other things do as well). Correct a |
| bug that was previously masked by having blocksize=eraseblocksize |
| which would cause buffer overflows and delicious hardfaults. |
| Trivial spelling changes in comments, etc. From ziggurat29. |
| - SmartFS: Fix a 32-byte memory leak. From Ken Pettit. |
| - SMART MTD layer: Fixes freesector logic error when sectorsPerBlk=256, |
| adds DEBUGASSERT for invalid geometry and additional memory debug |
| logic. Also fixes the dangling pointer on error bug. From Ken |
| Pettit. |
| |
| * Common Drivers: |
| |
| - USB CDC/ACM Device Class: cdcacm_unbind leaks write request objects. |
| This arises due to freeing the bulk IN endpoint before the loop |
| that frees the requests via cdcasm_freereq. That function checks |
| the parameters and skips the freeing if either is NULL. Freeing |
| the bulk IN endpoint will cause the first param to be NULL, thereby |
| bypassing the free operation. To fix, I moved the release of the |
| bulk IN endpoint until after to loop (much as was the case for the |
| OUT and read requests, which did not exhibit the problem). From |
| ziggurat29. |
| - Pipes and FIFOs: Add missing configuration for pipe ring buffer |
| size. From Frank Benkert. |
| - UART 16550: Handle when CONFIG_SERIAL_UART_ARCH_IOCTL is not |
| enabled. From Heath Petersen. |
| - Common Serial Upper Half: Fix a race condition noted by Stefan |
| Kolb. Between the test if the TX buffer is full and entering a |
| critical section, bytes may be removed from the TX buffer making |
| the wait unnecessary. The unnecessary wait is an inefficiency, |
| but not really a problem. But with USB CDC/ACM it can be a problem |
| because the entire TX buffer may be emptied when we lose the race. |
| If that happens that uart_putxmitchar() can hang waiting for data |
| to be removed from an empty TX buffer. |
| - USB MSC Device Class: Add locks when removing request from queue. |
| From Wolfgang Reissnegger. |
| - USB MSC Device Class: Fix reversed logic on waiting for SCSI thread |
| start. The scsi thread was waiting for the wrong condition. |
| However, this was masked by the fact that the code creating the |
| scsi thread was also holding usbmsc_scsi_lock(priv) while |
| initializing data, hence this lock synchronized the scsi thread |
| start with init completion. From Wolfgang Reissnegger. |
| |
| * Graphics and Graphic Drivers: |
| |
| - Correct conditional compilation in ST7565 LCD driver. From Pierre- |
| noel Bouteville |
| |
| * Networking: |
| |
| - In both IPv6 and IPv4 incoming logic: (1) Should check if the |
| packet size is large enough before trying to access the packet |
| length in the IP header. (2) In the comparison between the IP |
| length and the full packet length, need to subtract the size of |
| he link layer header before making the comparison or we will get |
| false positives (i.e., the packet is really too small) |
| - TCP Networking: While working with version 7.10 I discovered a |
| problem in TCP stack that could be observed on high network load. |
| Generally speaking, the problem is that RST flag is set in |
| unnecessary case, in which between loss of some TCP packet and its |
| proper retransmission, another packets had been successfully sent. |
| The scenario is as follows: NuttX did not receive ACK for some sent |
| packet, so it has been probably lost somewhere. But before its |
| retransmission starts, NuttX is correctly issuing next TCP packets, |
| with sequence numbers increasing properly. When the retransmission |
| of previously lost packet finally succeeds, tcp_input receives the |
| accumulated ACK value, which acknowledges also the packets sent in |
| the meantime (i.e. between unsuccessful sending of lost packet and |
| its proper retransmission). However, variable unackseq is still set |
| to conn->isn + conn->sent, which is truth only if no further |
| packets transmission occurred in the meantime. Because of incorrect |
| (in such specific case) unackseq value, few lines further condition |
| if (ackseq <= unackseq)is not met, and, as a result, we are going to |
| reset label. From Jakub Lagwa. |
| |
| * ARMv7-M: |
| |
| - ARM stack check: Fix double fault on IDLE task with stack size = 0. |
| From David Sidrane. |
| |
| * Atmel SAMV7 Drivers: |
| |
| - CAN: CAN Message Filtering fixed: (1) stdfilters didn't work because |
| the filter was never enabled (wrong number of bits to shift), and |
| (2) Filters were never used because the configuration register |
| cannot be written without using the initialization mode. Both bugs |
| are fixed by this change. Filtering has been tested with both |
| standard and extended identifiers and is now working properly. From |
| Michael Spahlinger. |
| |
| * Atmel SAMA5: |
| |
| * Atmel SAM3/4 Drivers: |
| |
| - Fix some errors in AFEC header file. From OrbitalFox. |
| - DAC: DACC_WPMR_WPKEY_MASK -> DACC_WPMR_WPKEY. From Wolfgang |
| Reissnegge. |
| - Timer: Fix ops check in TCIOC_STOP. From Wolfgang Reissnegge. |
| - I2C: Fix reversed logic in twi_startmessage(). From Wolfgang |
| Reissnegger. |
| - SAM3/4 UDP: Fix handling of endpoint RX FIFO banks. This fixes |
| a race condition where the HW fills a FIFO bank while the SW is |
| busy, resulting in out of sequence USB packets. |
| |
| * Atmel SAMV7 Drivers: |
| |
| - USBHS Device: This change solves a problem which causes data loss |
| while sending data via USB. This problem is caused by an incorrect |
| handling of the endpoint state in the USB driver sam_usbdevhs. This |
| leads under some circumstances to situations in which an DMA |
| transfer is setup while a previous DMA transfer is currently active. |
| Amongst other things I introduced the new endpoint state |
| USBHS_EPSTATE_SENDING_DMA for the fix. To reproduce the problem, I |
| used a program which send as many data as possible via a CDC/ACM |
| device and verified the received data on the PC. From Stefan Kolb. |
| |
| * NXP Freescale Kinetis Drivers: |
| |
| - Timers: Support up to 8 channels per timer. From kfazz. |
| |
| * NXP Freescale Kinetis Boards: |
| |
| - Teensy 3.x clock fixes: The High Gain bit in MCG_C1 was preventing |
| teensy from booting except after a programming session. The second |
| change doesn't appear to change any functionality, but complies with |
| restrictions in the k20 family reference manual on FEI -> FBE clock |
| transiions. From kfazz. |
| |
| * NXP Freescale LPC17xx Drivers: |
| |
| - LPC17 Ethernet: Needs to correctly ignore PHYID2 revision number |
| when comparing PHY IDs. |
| |
| * NXP Freescale LPC43xx Drivers: |
| |
| - Fix errors in GPIO interrupt logic. From v01d (phreakuencies) |
| - Ethernet: Correct auto-negotiation mode in the LPC43xx Ethernet. |
| From Alexander Vasiljev |
| - Writing zero to NVIC_IRQ_ENABLE has no effect. Disable interrupts |
| with NVIC_IRQ_CLEAR. From Paul Alexander Patience. |
| - SPIFI: If CONFIG_SPIFI_SECTOR512 undefined, lpc43_bwrite doesn't do |
| actual write (probably copy/paste errors). Still not sure about |
| current state of lpc43_spifi implementation, but for me NXFFS works |
| with this change. From Vytautas Lukenskas. |
| |
| * Qemu-i486: |
| |
| - Fix qemu-i486/ostest/Make.defs test for M32. From Heath Petersen. |
| |
| * SiLabs EFM32 Drivers: |
| |
| - Fix EFM32 FLASH conditional compilation. From Pierre-noel |
| Bouteville |
| - Writing zero to NVIC_IRQ_ENABLE has no effect. Disable interrupts |
| with NVIC_IRQ_CLEAR. From Paul Alexander Patience. |
| |
| * STMicro STM32: |
| |
| - STM32 F1-F4: In PWM driver, just update duty if frequency is not |
| changed and PSM started. This removeis glitch or blinking when |
| only duty is frequently changed. From Pierre-noel Bouteville. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 F7: Fixed STM32F7 DMA stm32_dmacapable. DMA working on SDMMC. |
| From David Sidrane. |
| - STM32 F1-F4 Timer Driver: Change calculation of per- timer pre-scaler |
| value. Add support for all timers |
| - STM32 F1-F4: Correct conditional compilation in STM32 timer capture |
| logic. From Pierre-noel Bouteville |
| - STM32 F1-F4: Fix STM32 DMA code and configuration for STM32F37X chips. |
| From Marten Svanfeldt. |
| - STM32 F1-F4: Fix compilation errors in debug mode of stm32_pwm.c. |
| From Konstantin Berezenko. |
| - STM32 F1-F4: Correct the CAN2 RX IRQ number for stm32f10xx chips. |
| From Konstantin Berezenko. |
| - STM32 F1-F4: Move backup domain reset to earlier in the |
| initialization sequence (stm32_rcc.c() in order to avoid disabling |
| LSE during RTC initialization. From Alan Carvalho de Assis. |
| - STM32 F1-F4: When configuring a GPIO via stm32_configgpio() the |
| function will first set the mode to output and then set the initial |
| state of the gpio later on. If you have an application with an |
| externaly pulled-up pin, this would lead to a glitch on the line |
| that may be dangerous in some applications (e.G. Reset Line for |
| other chips, etc). This changes sets the output state before |
| configuring the pin as an output. From Pascal Speck . |
| - STM32 F7: Apply Pascal Speck's GPIO STM32 change to STM32 L4. |
| - STM32 L4: Apply Pascal Speck's GPIO STM32 change to STM32 L4. |
| From Sebastien Lorquet. |
| - STM32 F7: BUGFIX: PLLs IS2 and SAI P Calculation. From David |
| Sidrane. |
| - STM32 L4: STM32 CAN fixes need to be backported to STM32L4 as well. |
| - STM32 F1-F4 and L4: Writing zero to NVIC_IRQ_ENABLE has no effect. |
| Disable interrupts with NVIC_IRQ_CLEAR. From Paul Alexander |
| Patience. |
| - STM32 F7: STMF7xxx RTC: (1) Remove proxy #defines, (2) Ensure the |
| LSE(ON) etal are set and remembered in a) A cold start (RTC_MAGIC |
| invalid) of the RTC, and b) A warm start (RTC_MAGIC valid) of the |
| RTC but a clock change. The change was needed because in bench |
| testing a merge of the latest's STM32 53ec3ca (and friends) it |
| became apparent that the sequence of operation is wrong in the |
| reset of the Backup Domain in the RCC code. PWR is required before |
| the Backup Domain can be futzed with. !!!This Code should be tested |
| on STM32 and if needed rippled to the STM32 families. From David |
| Sidrane. |
| - STM32 F1-F4: STM32 BBSRAM fixed (and formatted) flags. From David |
| Sidrane. |
| - STM32 F7: STM32F7 BBSRAM fixed (and formatted) flags. From David |
| Sidrane. |
| - STM32 L4: Fix incorrect clock setup for LPTIM1. From ziggurat29. |
| - STM32 F4/L4 RTC ALARM: were enabling interrupts too early in the |
| power-up sequence, BEFORE the interrupt system was being |
| initialized. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32 board.h: Fix STM32 timer input clock definitions. From David |
| Sidrane. |
| |
| * TI Tiva Drivers: |
| |
| - Bug Fix in tiva_serial.c - UART5, UART6 and UART7 were not being |
| configured as TTYS0 for printing over serial console. From Shirshak |
| Sengupta. |
| |
| * C Library/Header Files: |
| |
| - include/signal.h: Change type of SIG_ERR, SIG_IGN, ... to |
| _sa_handler_t. The type void does not work with the IAR toolchain. |
| From Aleksandr Vyhovanec. |
| - crc16: fix error. From Paul Alexander Patience. |
| - strtoul() and strtoull(): Fix errno settings required by function |
| definition. Resolved Bitbucket Issue #1. From Sebastien Lorquet. |
| |
| * Build/Configuration System: |
| |
| - Build system: This change fixes a build problem that only occurs |
| when reconfiguring from Linux to Windows or vice-versa. It is a |
| problem that was present but not usually experienced until two |
| things happened: (1) The pre_config target was added to run before |
| the menconfig operation and (2) the context target was added before |
| the pre_config target in order to set up the correct symbolic links |
| (in the apps/platform directory) needed by the pre_config target. |
| But then now if you start with a Linux system and run 'make |
| menuconfig' to switch to Linux, the context target will execute |
| first and set up POSIX style symbolic links before doing the |
| menuconfig. Then after the menuconfig, the make will fail on |
| Windows if you are using a Windows native toolchain because that |
| native toolchain cannot follow the Cygwin- style symbolic links. |
| The fix here is to also execute the clean_context AFTER executing |
| menuconfig. A lot more happens now: It used to be that doing |
| 'make menuconfig' only did the menuconfig operation. Now it does |
| context, pre_config, menuconfig, clean_context. Not nearly as |
| snappy as it used to be. |
| - Need to build the drivers/ directory even it file descriptors are |
| not supported. There are things in the drivers/ directory that are |
| still needed (like SYSLOG logic). |
| - Remove all inclusion of header files from the apps/include |
| directory from NuttX core logic. There should be no dependency on |
| logic within NuttX on logic within apps/. This caused a lot of |
| reshuffling of logic: binfmt pcode support, usbmonitor is now a |
| kernel thread, TZ/Olson database moved to libc/zoneinfo. |
| |
| * Application Build/Configuration System: |
| |
| - Make sure that APPNAME is defined in all Makefiles that generate |
| applications. From Sebastien Lorquet. |
| |
| * apps/builtins: |
| |
| - apps/builtins: exec_builtin was not using the provided open flags. |
| As a result >> redirection was not working; it was treated the same |
| as >. |
| |
| * apps/nshlib: |
| |
| - apps/nshilib: PS Command: When Priority Inheritance is enabled, the |
| format of /proc/<PID>/status changes to show both the current |
| priority and the thread's base priority. This messes up the format |
| of cmd_ps. From David Alessio. |
| |
| * apps/netutils: |
| |
| - apps/netutils, uIP webserver: Fix a data declaration in a header |
| file. |
| |
| * apps/canutils: |
| |
| - apps/canutils/libuavcan: Fix for recent change to STM32 timer |
| frequency definiitions. |
| |
| * apps/examples: |
| |
| - apps/examples/alarm: ioctl call was clobbering file descriptor. |
| - apps/examples/can: Some variables were not declared in all required |
| cases. From Sebastien Lorquet. |
| - apps/examples/media: media example was intended to take either a |
| command line argument, or a compiled-in default value from config. |
| However, the default was ignored, leading to confusing error |
| messages. From ziggurat29. |