1NuttX Release Notes 2=================== 3 4This file contains are the release notes for the NuttX (and apps) packages 5for every release. The text is just as was written at the time of release 6(with perhaps some corrected typos). Over the course of time, NuttX has 7used several different repositories: CVS, two SVN repositories, and 8currently a GIT repository. Therefore, revision information specific to an 9older repository may not be meaningful today. 10 11To make it easier to track there older versions in the current GIT 12repository, a GIT lightweight tag has been applied for each release. The 13tag name is the release name (for example, the release 6.27 has tag name 14"nuttx-6.27"). 15 16NuttX-0.1.0 17----------- 18 19This is the initial. This initial includes the complete NuttX RTOS 20with support for the Linux user mode simulation and the TI TMS320C5471 21(Arm7) processor. Partial support for the 87C52 is included. 22 23This release has been verified on both the Linux user-mode and C5471 24platforms using the test program under examples/ostest. Test results 25for the C5471 can be found in arch/c5471/doc/test-results.txt. 26 27This tarball contains a complete CVS snapshot from March 9,2007. 28 29NuttX-0.1.1 30----------- 31 32This is the second release of NuttX. This release includes the following. 33See the ChangeLog for more detailed description of the changes. 34 35(1) General OS bugfixes (see the ChangeLog for details), 36(2) bugfixes for the TI TMS320C5471 (Arm7) platform (see 37the ChangeLog) 38(3) Complete support for the 87C52. (However, the 87C52 39release is not stable enough for general usage). 40(4) Added the beginning of a shell call NuttShell (nsh) 41 42This release has been verified on the Linux user-mode platform, the 43Spectrum Digital TMS320C5471 EVM, and the PJRC 87C52 development board 44using the test program under examples/ostest. 45 46STATUS: The development status remains as ALPHA until further testing 47is performed. 48 49This tarball contains a complete CVS snapshot from March 14, 2007. 50 51NuttX-0.1.2 52----------- 53 54This is the third release of NuttX. This release is 55primarily a bugfix release with minimal new features. See 56the ChangeLog for a more detailed description of the 57changes. 58 59(1) Several important OS and ARM7 bugfixes, 60(2) opendir(), closedir(), readdir(), etc. added 61(3) Added C5471 watchdog timer. 62(4) Created a shareable, serial driver. 63(5) Added 'ls' command to NuttShell (nsh) 64(6) Added a test of the round robin scheduler 65 66This release has been verified on the Linux user-mode 67platform, the Spectrum Digital TMS320C5471 EVM using the 68test program under examples/ostest. 69 70This tarball contains a CVS snapshot from March 19, 2007. 71 72NuttX-0.2.1 73----------- 74 75This is the fourth release of NuttX. This release adds adds 76support for a new platform, restructures many header files, 77and adds a few new features: 78 79(1) Support for Neuros OSD / DM320 80(2) Restructuring of header files for better POSIX compliance 81(3) Added kill() 82(4) Added POSIX timers 83(5) bugfixes and documentation updates 84 85This release has been verified on the Linux user-mode 86platform, the Spectrum Digital TMS320C5471 EVM, and the 87Neuros OSD using the test program under examples/ostest. Because 88of the stability of these tests, the project status 89has been upgraded to 'beta.' 90 91This tarball contains a complete CVS snapshot from March 22, 2007. 92 93NuttX-0.2.2 94------------ 95 96This is the fifth release of NuttX. There is no major new 97functionality in this release. This release adds support 98for new pthread barrier APIs, changes the directory 99structure, to better handle different board configurations 100using the same processor architecture, and corrects a few 101defects. 102 103See the ChangeLog for a complete list of changes. 104 105This release has been verified on the Linux user-mode 106platform and the Neuros OSD using the test program under 107examples/ostest. There are no known, critical defects but 108the project development status remains at 'beta' status 109pending further test and evaluation. 110 111This tarball contains a complete CVS snapshot from 112March 26, 2007. 113 114NuttX-0.2.3 115------------ 116 117This is the sixth release of NuttX. This release is 118primarily a bugfix release. Numerous problems were fixed 119as detailed in the change log. New functionality includes 120support for timed message queues. 121 122See the ChangeLog for a complete list of changes. 123 124This release has been verified on the Linux user-mode 125platform and the Neuros OSD using the test program under 126examples/ostest. The results of the testing is available in 127the source tree under configs/ntosd-dm320/doc/test-results. 128There are no known, critical defects but the project 129development status remains at 'beta' status pending further 130test and evaluation. 131 132This tarball contains a complete CVS snapshot from March 29, 1332007. 134 135NuttX-0.2.4 136------------ 137 138This is the 7th release of NuttX. This release is only to roll out 139build changes to better support different SoC's that use the same 140processor architecture. In particular, the two existing ARM architectures, 141c5471 and DM320 were combined into a single ARM directory. This was done 142in preparation for an LPC2148 port that is currently in progress. There 143is NO new functionality or significant bugfixes in this release. 144 145See the ChangeLog for a complete list of changes. 146 147This release has been verified on the Linux user-mode platform 148and the Neuros OSD using the test program under examples/ostest. 149The results of the testing is available in the source tree under 150configs/ntosd-dm320/doc/test-results and under configs/sim/doc/test-results. 151There are no known, critical defects but the project development status 152remains at 'beta' status pending further test and evaluation. 153 154This tarball contains a complete CVS snapshot from April 28, 2007. 155 156NuttX-0.2.5 157------------ 158 159This is the 8th release of NuttX. This release includes: 160 161(1) Several bug fixes 162(2) Initial support for FAT filesystems. Testing has not 163been exhaustive and some functionality is missing 164(mkdir, stat, unlink chmod, and rename functionality is 165not yet implemented). 166(3) Support for the NXP lpc2148 processor is included but 167is untested as of this writing. The current 168implementation includes only support for serial console 169and timer interrupt. 170 171See the ChangeLog for a complete list of changes. 172 173This release has been verified only on the Linux user-mode 174platform. 175 176This tarball contains a complete CVS snapshot from May 19, 1772007. 178 179NuttX-0.2.6 180----------- 181 182This is the 9th release of NuttX. This is primarily a 183bugfix release to correct a number of problems introduced 184with the 0.2.5 release. This release does include some FAT 185filesystem extensions including unlink(), mkdir(), rmdir(), 186rename(), opendir(), closedir(), readdir(), seekdir(), 187telldir(), rewindir(). There are some pending FAT changes 188that did not make it into this release including stat(), 189truncate(), and long file names. 190 191See the ChangeLog for a complete list of changes. 192 193This release has been verified only on the Linux user-mode platform. 194 195This tarball contains a complete CVS snapshot from May 26, 2007. 196 197NuttX-0.2.7 198----------- 199 200This is the 10th release of NuttX. This is primarily a bugfix 201release to correct a number of problems reported to me (thanks 202Didier!). This release does include the final changes complete the 203FAT filesystem logic including stat(), statfs(), and non-standard 204APIs to manage FAT attributes. At present, FAT long file names and 205file truncate() are still not supported. 206 207See the ChangeLog for a complete list of changes. 208 209This release has been verified only on the Linux user-mode platform. 210 211This tarball contains a complete CVS snapshot from June 9, 2007. 212 213NuttX-0.2.8 214----------- 215 216This is the 11th release of NuttX. This release: 217(1) corrects important bugs in opendir() and realloc() 218(2) adds support for environment variables 219(3) adds several new C library interfaces 220(4) extends several example programs 221 222See the ChangeLog for a complete list of changes. 223 224This release has been verified only on the Linux user-mode platform. 225 226This tarball contains a complete CVS snapshot from July 2, 2007. 227 228NuttX-0.3.0 229----------- 230 231This is the 12th release of NuttX. This release includes the initial 232integration of a network subsystem and the uIP TCP/IP stack into NuttX 233(see http://www.sics.se/~adam/uip/index.php/Main_Page). Also included 234is a device driver for the Davicom DM90x0 Ethernet controller. 235 236This integration is very preliminary. Only a small portion of the 237network functionality has been integrated and there are a number of 238open issues (see the TODO file). The network subsystem is pre-alpha 239at this point in time. I expect that it will stabilize and mature 240over the next few releases. 241 242The baseline functionality of NuttX continues to mature and remains at 243post-beta (as long as the network is not used). 244 245See the ChangeLog for a complete list of changes. 246 247This release has been verified only on the Neuros OSD (DM320 ARM9) 248platform using the DM90x0 driver. 249 250This tarball contains a complete CVS snapshot from November 6, 2007. 251 252NuttX-0.3.1 253----------- 254 255This is the 13th release of NuttX and the second release containing 256the integration of a network subsystem and the uIP TCP/IP, UDP, and 257ICMP stacks into NuttX (see http://www.sics.se/~adam/uip/index.php/Main_Page). 258 259Many network-related problems have been fixed and the implementation 260has matured significantly. However, the level of network reliability 261is probably still at the pre-alpha or early level. It is sufficiently 262complete that you may begin to perform some network integration and 263is expected to achieve beta level of reliability over the next few 264releases. 265 266The baseline functionality of NuttX continues to mature and remains at 267post-beta (as long as the network is not used). 268 269See the ChangeLog for a complete list of changes. 270 271This release has been verified only on the Neuros OSD (DM320 ARM9) 272platform using the DM90x0 driver. 273 274This tarball contains a complete CVS snapshot from November 19, 2007. 275 276NuttX-0.3.2 277----------- 278 279This is the 14th release of NuttX and the 3rd release containing 280the integration of a network subsystem and the uIP TCP/IP, UDP, and 281ICMP stacks into NuttX (see http://www.sics.se/~adam/uip/index.php/Main_Page). 282 283Many network-related problems have been fixed and the implementation 284has matured significantly. This release consists of: 285 286o TCP-related bug-fixes 287o TCP performance improvements 288o Initial UDP integration 289o Initial uIP micro webserver integration 290 291See the ChangeLog for a complete list of changes. 292 293The level of network reliability is at alpha level is expected to 294achieve beta level of reliability over the next few releases. 295 296The baseline functionality of NuttX continues to mature and remains at 297post-beta. 298 299This release has been verified only on the Neuros OSD (DM320 ARM9) 300platform using the DM90x0 driver. 301 302This tarball contains a complete CVS snapshot from November 23, 2007. 303 304NuttX-0.3.3 305----------- 306 307This is the 15th release of NuttX and the 4th release containing 308the integration of a network subsystem and the uIP TCP/IP, UDP, and 309ICMP stacks into NuttX (see http://www.sics.se/~adam/uip/index.php/Main_Page). 310 311Many network-related problems have been fixed and the implementation 312has matured significantly. This release consists of: 313 314o TCP-related bug-fixes for disconnecting sockets 315o Correction of some TCP read-ahead logic 316o TCP performance improvements 317o Misc. additions and cleanup (See the ChangeLog for a complete list of 318changes). 319 320The level of network reliability is at an early beta release level. The 321baseline functionality of NuttX continues to mature and remains at 322post-beta. Open network-related issues include only: 323 324o Some minor unimplemented BSD socket functionality, 325o Thread safety issues: the same socket cannot be used concurrently on 326different threads. 327o Pending design changes necessary to support multiple network interfaces. 328o IPv6 support is incomplete. 329 330This release has been verified only on the Neuros OSD (DM320 ARM9) 331platform using the DM90x0 driver. Any feedback for improving the network 332reliability/performance would be greatly appreciated. 333 334This tarball contains a complete CVS snapshot from November 28, 2007. 335 336NuttX-0.3.4 337----------- 338 339This is the 16th release of NuttX and the 5th release containing 340the integration of a network subsystem and the uIP TCP/IP, UDP, and 341ICMP stacks into NuttX (see http://www.sics.se/~adam/uip/index.php/Main_Page). 342 343This release is primarily a bug-fix release. New features include 344only: 345 346o TELNET front-end to NSH, 347o DHCPC server functionality, and 348o C5471 Ethernet driver. 349 350Numerous network related problems were fixed related to DHCPC, UDP 351input processing, UDP broadcast, send timeouts, and bad compilation when 352uIP is compiled at high levels of optimization. 353 354The level of network reliability is at a strong beta release level. The 355baseline functionality of NuttX continues to mature and remains at 356post-beta or production level. 357 358Parts of this release were verified only on the Neuros OSD (DM320 ARM9) 359platform using the DM90x0 Ethernet driver and other parts on the Spectrum 360Digital C5471 EVM using the C5471 Ethernet driver. Any feedback about bugs 361or suggestions for improving the network reliability/performance would be 362greatly appreciated. 363 364This tarball contains a complete CVS snapshot from December 10, 2007. 365 366NuttX-0.3.5 367----------- 368 369This is the 17th release of NuttX this release is primarily a bug-fix 370release and intended to synchronize with the current CVS contents. See 371the ChangeLog for a detailed list of changes and fixes. 372 373This release were verified only on the Spectrum Digital C5471 EVM using 374the C5471 Ethernet driver. Any feedback about bugs or suggestions for 375improvement would be greatly appreciated. 376 377This tarball contains a complete CVS snapshot from December 18, 2007. 378 379NuttX-0.3.6 380----------- 381 382This is the 18th release of NuttX. This release contains on a few 383changes. The primary purpose of this release is to synchronize with 384the release of the pascal-0.1.0 add-on package. 385 386This release of NuttX includes the following changes: 387 388* Fixes for use with SDCC compiler 389* Added a simulated z80 target (arch/z80) 390* Fix deadlock errors when using stdio but with no buffering 391* Add support for the add-on Pascal P-Code interpreter (pcode/) 392(see the pascal-0.1.0 package) 393 394This release were verified only on the simulated Z80 and host 395simulation targets. As usual, any feedback about bugs or suggestions 396for improvement would be greatly appreciated. 397 398This tarball contains a complete CVS snapshot from January 6, 2007. 399 400==== 401 402There was an error in the initial 0.3.6 release that prevented 403a successful build unless the Pascal add-on was present. The 404tarball was patched to include the fix. Make sure that you download 405the nuttx-0.3.6.1.tar.gz version to avoid this problem. 406 407NuttX-0.3.7 408----------- 409 410This is the 19th release of NuttX. This release includes the 411preliminary port of NuttX to the ZiLOG z16f 16-bit microcontroller. 412This port was verified using the ZiLOG z16f2800100zcog Development 413and the ZiLOG ZDS-II toolchain. See http://www.zilog.com for 414further information. 415 416I emphasize that this is a preliminary release of the z16f port and 417is only alpha or, perhaps, pre-alpha quality as of this writing. 418There are a list of known issues in the TODO file in the root of 419the NuttX directory. The overall quality of NuttX (excluding the 420z16f port) continues to improve beyond the late beta level. 421 422The z16f port required numerous changes to NuttX to handle: 423 424* NEAR and FAR addressing, and 425* Use of a Windows native toolchain in a Cygwin build environment. 426 427In addition to the z16f port, at least one very critical bug was 428found and corrected in NuttX: The thread-specific errno value of one 429task was being randomly trashed when a different thread exited. 430 431This release were verified on the ZiLOG z16f2800100zcog, Neuros OSD 432(ARM9), and the simulation platforms. As usual, any feedback about bugs 433or suggestions for improvement would be greatly appreciated. 434 435This tarball contains a complete CVS snapshot from January 31, 2008. 436 437NuttX-0.3.8 438----------- 439 440This is the 20th release of NuttX. This is a minor bugfix release. 441It corrects a few minor problems, adds a few minor features, and 442continues the integration of the ZiLOG Z18F and of the Pascal P-Code 443add-on. This release is synchronized with the release of Pascal-0.1.2. 444 445This tarball contains a complete CVS snapshot from February 10, 2008. 446 447NuttX-0.3.9 448----------- 449 450This is the 21st release of NuttX. This is a minor future enhancement 451release. This release includes support for the ZiLOG Z8Encore! micro- 452controller. Also included is the initial framework for support for 453the Z80, XTRS platform (http://www.tim-mann.org/xtrs.html). 454 455This released has been verified only on the ZiLOG ZDS-II Z8Encore! 456chip simulation. 457 458This tarball contains a complete CVS snapshot from March 9, 2008. 459 460NuttX-0.3.10 461------------ 462 463This is the 22nd release of NuttX. This is an important bug fix 464release. This release incorporates fixes to correct critical list 465handling errors in task shutdown logic: One in timer deletion logic 466(timer_delete.c) and one in stream logic (lib_init.c). This release 467also includes support to ZiLOG EZ80Acclaim microcontroller (EZ80F91 468chip) and configurations for the ZiLOG z8f64200100kit (Z8F6423) and 469ez80f0910200kitg (EZ80F091) development kit. 470 471NuttX-0.3.11 472------------ 473 474This is the 23rd release of NuttX. This is another important bugfix 475release. This releases fixes several bugs: 476 477* Two POSIX timer bugs: a memory leak as well a fatal sequencing error. 478* Several FAT filesystem errors. 479* A deadlock that can occur in opendir() 480 481A few new features were also added: 482 483* Support for recursive mutexes 484* Added a RAM disk block driver 485* The host simulator no longer uses direct Linux system calls and 486now also works on Cygwin. 487* The OS test was strengthen and now runs as an endurance test 488 489These changes were verified only on the Host simulator under Cygwin. 490Please report any errors to me. 491 492This tarball contains a complete CVS snapshot from June 1, 2008. 493 494NuttX-0.3.12 495------------ 496 497This is the 24th release of NuttX. This release includes some minor 498bugfixes as well as a few new features. Bugs fixed include: 499 500* Corrected an error in recursive mutex implementation. 501* task_create() was only dup()ing the first three file descriptors. 502* Fixed driver open reference counting errors in dup(), dup2(), and exit(). 503* Fixed error handling logic in fflush(). 504 505New features were also added: 506 507* Pipes and pipe() API 508* FIFOs and mkfifo() API 509* mkfatfs() API can be used to format FAT file systems. 510 511These changes were verified only on the Host simulator under Cygwin. 512Please report any errors to me. 513 514This tarball contains a complete CVS snapshot from August 10, 2008. 515 516NuttX-0.3.13 517------------ 518 519This is the 25th release of NuttX. This release includes some 520important bugfixes as well as a few new features. Bugs fixed 521include: 522 523* Fixed problems with Cygwin-based console input. NSH now works 524with the Cygwin simulator. 525* sched_get_priority_max/min returned error on SCHED_RR 526* Corrected detection of End-of-File in fgets() 527* Fixed an error in opendir() that could cause an assertion to fail 528inappropriately. 529* Corrected an error in the FAT that caused files opened for writing 530with O_APPEND to fail. 531* Fix error in getopt() when called with argc==1 532* Fix error in stat() when used on the root directory 533* Fixed a critical bug that effects the way that environment variables 534are shared among pthreads. 535* uIP port now supports multi-threaded, concurrent socket access. 536So, for example, one thread can be reading from a socket while 537another is writing to the socket. 538 539New features were also added: 540 541* New OS APIs: chdir() and getcwd() 542* The NuttX shell (NSH) has been extended in many ways. 543- New commands: mkfatfs, mkfifo, sleep, usleep, nice, sh, cd, and pwd 544- New memory inspection commands and heap usage commands 545- New capabilities: 546- Execution of commands in background 547- Execution of simple scripts 548- Redirection of command output 549- Last command status ($?) 550- Now supports if-then[-else]-fi construct 551- Other features as noted in the ChangeLog. 552 553These changes were verified only on the Host simulator under Cygwin 554and under Linux and also on the Neuros OSD (ARM9). Please report 555any errors to me. 556 557This tarball contains a complete CVS snapshot from September 1, 2008. 558 559nutt-0.3.14 560----------- 561 562This is the 26th release of NuttX. This release includes some 563important bugfixes as well as a few new features. Critical bugs 564fixed include: 565 566FAT FS: 567* Fixed several critical bugs with regard to fat reading and 568writing and FAT12 accesses. Basically the FAT FS only worked 569with my tiny test files and test cases. A lot of stronger FAT 570tested is still needed! 571* Fixed another FAT bug in implementation of FAT lseek(); 572this prohibited correct random access to large files. 573 574Network: 575* Corrected a critical bug that may prevent recvfrom from receiving 576packets from most remote UDP port numbers. 577* Corrected an error in multi-threaded socket handling in send() and 578sendto(). Outgoing data could overwrite incoming data. 579* Corrected IP checksum calculation in ICMP and UDP message send logic. 580* Corrected an error in send() timeout logic. 581 582New features were also added: 583 584Network: 585* Added support for application access to ICMP protocol stacks 586* Added ping request logic (net/uip). 587* Added basic TFTP client logic (netutils/tftpc). 588 589NuttShell (NSH): 590* New commands: 'test', '[', 'ping', 'mkrd', 'xd', and TFTP 'get' and 'put' 591See the new NuttShell User Guide for additional information. 592 593Other less critical bugs were also fixed and other less important 594features were were added. See the ChangeLog for details. 595 596These changes were verified only on the Neuros OSD (ARM9). Please 597report any errors to me. 598 599This tarball contains a complete CVS snapshot from September 8, 2008. 600 601nutt-0.3.15 602----------- 603 604This is the 27th release of NuttX. This release includes some new features: 605 606* Adds support for the ROMFS filesystem 607* ROMFS supports mmap() to provide eXecute In Place (XIP) capability 608* NuttShell (NSH) can be configured to use ROMFS to provide a tiny read-only 609filesystem with a startup script in /etc. 610* Completed the basic port of the NXP LPC2148 on the mcu123.com board. 611The basic port includes successful booting, timer interrupts, 612serial console, successfully passing the examples/ostest, and a 613NuttShell (NSH) configuration. 614 615These changes were verified only on the mcu123.com NXP LPC2148 616board. Please report any errors to me. 617 618This tarball contains a complete CVS snapshot from September 20, 2008. 619 620nutt-0.3.16 621----------- 622 623This is the 28th release of NuttX. This release includes the first 624support for USB in NuttX. A set of USB APIs were added to support 625USB device controller drivers and bindings to USB device class 626drivers. The form of the interface was inspired by the Linux Gadget APIs. 627 628At present USB device controller drivers are included for: 629* The NXP LPC214x. This driver has been verified and is an early alpha 630stage in quality. 631* TI DM320. Coding for this driver is complete but it is completely 632untested as of this release. 633 634A controller-independent class driver is also included for: 635* USB serial class device driver (emulates the Prolific PL2303 636serial-to-USB adapter). This driver has only been verified with 637the Linux host PL2303 driver. 638 639Other new features include: 640* Add an option to set aside a separate stack for interrupt 641handling (ARM only). This is useful when memory is constrained, 642there are multiple tasks, and the interrupt stack requirement 643is high (as when USB is enabled). 644 645A few bugs were also fixed: 646* Fixed the frequency of system timer interrupts in the NXP LPC214x port 647(off by 20x in nuttx-0.3.15) 648* Fixed serial driver bugs related to (1) open counts and (2) recognizing 649O_NONBLOCK on read. 650* Fixed an error in read(); it was not setting the errno on errors returned 651from the driver. 652 653These changes were verified only on the mcu123.com NXP LPC2148 board 654using with a Linux host. Please report any errors to me. 655 656This tarball contains a complete CVS snapshot from October 10, 2008. 657 658UPDATE 659------ 660This release does not build for the ARM target when USB is disabled. 661Here is the fix: 662 663Index: arch/arm/src/common/up_internal.h 664=================================================================== 665RCS file: /cvsroot/nuttx/nuttx/arch/arm/src/common/up_internal.h,v 666retrieving revision 1.13 667diff -u -r1.13 up_internal.h 668--- arch/arm/src/common/up_internal.h 6 Oct 2008 16:20:52 -0000 1.13 669+++ arch/arm/src/common/up_internal.h 13 Oct 2008 20:48:21 -0000 670@@ -200,7 +200,8 @@ 671extern void up_usbinitialize(void); 672extern void up_usbuninitialize(void); 673#else 674-# define up_netinitialize() 675+# define up_usbinitialize() 676+# define up_usbuninitialize() 677#endif 678 679#endif /* __ASSEMBLY__ */ 680 681NuttX-0.3.17 682------------ 683 684This is the 29th release of NuttX. This release includes the 685additional support for USB in NuttX. The following new features 686were added: 687 688* Added support for SPI-based MMC/SD cards (with an SPI driver 689for the NXP LPC214x). 690* Added USB storage class device side driver (BBB) 691* Added an example that demonstrates the USB storage class by 692exporting the SPI based MMC/SD card on the NXP LPC214x. 693 694This is an early alpha release of these drivers. At present they 695only work with debug features enabled so there are probably some 696race conditions that occur only with debug features disabled. 697(Anyone out there with a USB analyzer? I would love to know what 698is happening.) 699 700Several important bugs were also fixed in the FAT file system, USB 701serial driver and NXP LPC214x USB controller driver. (See the ChangeLog 702for details.) 703 704These changes were verified only on the mcu123.com NXP LPC2148 board 705using a Linux development environment. USB testing was performed 706using both a Linux host and a WinXP host. Please report any errors 707to me. 708 709This tarball contains a complete CVS snapshot from October 28, 2008. 710 711NuttX-0.3.18 712------------ 713 714This is the 30th release of NuttX. This release includes two 715partially completed ports, several new features, and a couple of 716important bug fixes. The two partially completed ports are: 717 718* The STMicro STR71x processor and configuration for the Olimex 719STR-P711 board. 720* The Hitachi SH-1 using the SH1_LCEVB1 (SH-1/US7032EVB1) board 721 722Progress on these ports is stalled (as detailed in the ChangeLog). 723 724The new features focus primarily on management of block devices and 725extensions of the NuttShell (NSH). These include: 726 727* A loop device that converts a file into a block device. 728* A block to character (BCH) driver that allow access a block device as 729if it were character device. 730* Added strcasecmp() and strncasecmp() libc functions. 731* Added the 'dd' and 'losetup' commands to NSH. These commands 732(along with mkfatfs and mount), give good management of filesystems 733on the target. 734 735Several bugs were fixed, the most important of which are: 736 737* Fixed a race condition workaround delay in LPC214X SPI logic. 738This was also the cause of some bad MMC/SD performance on that 739platform. 740 741* Fixed a recently introduced FAT file system problem: It would 742mount a (invalid) FAT file system even if the medium is not formatted! 743 744* Corrected two other important errors in the FAT lseek() implementation: 7451 - The sectors-per-cluster value was being reset to "1". 7462 - Important lseek logic was omitted when the seek position was zero. 747 748The FAT filesystem has had many bugs fixed in it and, I think, is 749now maturing and becoming stable. 750 751These changes were verified only on the mcu123.com NXP LPC2148 752board, the Hitachi SH1_LCEVB1 board, and the Linux simulator, all 753using a Linux development environment. Please report any errors 754to me. 755 756This tarball contains a complete CVS snapshot from November 16, 2008. 757 758NuttX-0.3.19 759------------ 760 761This is the 31st release of NuttX. This release includes the 762following new feature: 763 764* Add poll() and select() APIs that may be used to monitor for 765data availability on character devices or TCP/IP sockets. 766* Implemented support TCP/IP connection backlog. This allows 767select() to wake-up on new connections to a listener socket. 768* Added definition of a framebuffer driver and implement framebuffer 769drivers for the simulated platform and the TI DM320 (untested 770as of the initial check-in). 771* Partially developed a graphics framework based on the framebuffer 772drivers, however, this will not be ready for use for a few more 773releases. Currently this includes only a few color conversion 774routines and some rasterizing functions. A tiny windowing system 775is under development but not ready for check-in yet. 776* Added support for fixed precision math. 777* Added support for outgoing multicast packets. 778 779Several bugs were fixed, the most important of which are: 780 781* Fixed an important bug in the TCP/IP buffering logic. When 782TCP/IP read-ahead is enabled and not recv() is in-place when a 783TCP/IP packet is received, the packet is placed into a read-ahead 784buffer. However, the old contents of the read-ahead buffer 785were not being cleared and old data would contaminate the newly 786received buffer. 787 788* Changed the behavior of the serial driver read. It now returns 789data as it is available rather than waiting for the full requested 790read size. This makes functions like fgetc() work much more 791smoothly. 792 793These changes were verified only on the Neuros OSD (ARM9) using a 794Linux development environment. Please report any errors to me. 795 796This tarball contains a complete CVS snapshot from November 26, 2008. 797 798NuttX-0.4.0 799----------- 800 801This is the 32nd release of NuttX. This release adds graphics 802support and a tiny windowing subsystem. That new graphics subsystem 803is documented at http://nuttx.sourceforge.net/NXGraphicsSubsystem.html. 804No other substantial changes were made. 805 806These changes were verified only on the NuttX simulation platform 807with X11 windows simulating a device framebuffer. Please report any 808errors to me. 809 810The version number was bumped up to 0.4.0 in part to reflect the 811new graphics subsystem, but also to recognize the NuttX is approaching 812complete functionality. In the 0.3.x versions, network support was 813added, Pascal P-code runtime support was added, FAT and ROMFS 814filesystems were added, MMC/SD and USB device support were added. 815There were also numerous extensions to the NuttShell, NuttX APIs, 816and architecture ports. 817 818This tarball contains a complete CVS snapshot from December 6, 2008. 819 820NuttX-0.4.1 821----------- 822 823This is the 33rd release of NuttX. This is a minor bugfix release. 824The primary reason for this release is to correct numerous build 825errors that have accumulated for the ZiLOG ZDS-II based targets. 826All ZDS-II targets now build correctly (but have not been re-tested). 827In addition to platform-specific build failures, this release also 828adds the following features which were not tested as of the time 829of the release: 830 831* Board support for the ZiLog ez80Acclaim! ez80f910200zco Development Kit 832* ZiLOG eZ80F91 EMAC driver 833 834These changes were verified only on the NuttX simulation platform. 835Please report any errors to me. 836 837This tarball contains a complete CVS snapshot from February 6, 2009. 838 839NuttX-0.4.2 840----------- 841 842This is the 34th release of NuttX. This release adds no new OS 843features but does include support for two new architectures: 844 845* ez80Acclaim! Basic support has been integrated and verified 846for the ez80f910200zcog-d board (eZ80F91-based). That basic 847support includes timer interrupts and serial console. Ongoing 848work includes an EMAC driver that should be integrated for the 849next release nuttx-0.4.2. eZ80Acclaim! support has been in the 850code base for some time, but has only just been integrated due 851to toolchain issues. 852 853* Renesas M16C/20. Support for the Renesas SKP16C20 board has 854been included in the NuttX source tree. However, as the 855eZ80Acclaim!, testing and integration of that port is stalled 856due to toolchain issues. 857 858These changes were verified only on the ZiLOG eZ80910200zcog-d 859board. Please report any errors to me. 860 861This tarball contains a complete CVS snapshot from February 28, 2009. 862 863NuttX-0.4.3 864----------- 865 866This is the 35th release of NuttX. This release one important new 867OS feature and corrects and extends the eZ80 port: 868 869* Priority Inheritance. The basic NuttX waiting logic was extended 870to support priority inheritance. See the NuttX User Manual for 871further information: 872http://nuttx.apache.org/docs/latest/reference/user/05_counting_semaphore.html. 873 874* ez80Acclaim! Corrected several critical, show-stopping bugs on that 875platform including: 876- Errors in the serial driver interrupts. 877- An error in the eZ80 table. 878* eZ80Acclaim!: Completed integration of the eZ80F91 EMAC driver. 879 880These changes were verified only on the ZiLOG eZ80910200zcog-d board 881and on Cygwin-based simulation platform in various configurations. 882Please report any errors to me. 883 884This tarball contains a complete CVS snapshot from March 13, 2009. 885 886NuttX-0.4.4 887----------- 888 889This is the 36th release of NuttX. This release focuses on bugfixes 890and extending and verifying certain networking features. 891 892* Important bugs were fixed in NSH, UDP checksum calculation, UDP 893bind() behavior for port==0, the eZ80Acclaim! EMAC driver, Z80 894interrupt handling, and in the C libraries. 895 896* Testing was extended to further verify the tiny webserver, 897DHCPD, wget(), and sendmail. 898 899See the Changelog for a detailed description of these changes. 900 901These changes were verified only on the ZiLOG eZ80910200zcog-d board 902using the ZDS-II toolchain in Cygwin-based environment. Please 903report any errors to me. 904 905This tarball contains a complete CVS snapshot from March 29, 2009. 906 907NuttX-0.4.5 908----------- 909 910This is the 37th release of NuttX. This release focuses on a few new features. 911 912* The basic port for the Freescale ARM920T i.MX1 processor on the 913Freescale MX1ADS board. Coding is complete for this port, but 914it is has not yet fully integrated 915* Extended I2C and SPI interface definitions 916* Add basic support for C++ applications. Very simple C++ 917applications can now be built against NuttX without any external 918libraries. At present, only the most primitive C++ programs 919are supported, but it is hoped that this support will be extended 920in future releases. 921 922See the Changelog for a detailed description of these changes. 923 924This tarball contains a complete CVS snapshot from April 19, 2009. 925 926NuttX-0.4.6 927----------- 928 929This is the 38th release of NuttX. The release features support 930for the Micromint Eagle-100 development board. This board is based 931around, the Luminary LM3S6918 MCU. This is the first ARM Cortex-M3 932architecture supported by NuttX. This initial, basic port includes 933timer and serial console with configurations to execute the NuttX 934OS test and to run the NuttShell (NSH). Work is still underway on 935this port and current plans are to have I2C, SSI, MMC/SD, and 936Ethernet driver in the 0.4.7 release. 937 938Additional work was done on the MXADS i.MX1 port, however, that 939work has been set aside until I complete work on the Eagle-100 (I 940also need to come up with a 3V power supply). 941 942Other changes in this release include: Extensions to the SPI interface 943definition in order to handle 9-bit interfaces to displays. Several 944bugs were fixed (see the ChangeLog for a complete list of changes). 945 946This tarball contains a complete CVS snapshot from May 19, 2009. 947 948NuttX-0.4.7 949----------- 950 951This is the 39th release of NuttX. This release focuses on cleaning 952up and extending the Eagle100/LM3S6918 port released in nuttx-0.4.6 953and on improved MMC/SD support. New features include: 954 955* Improved reliably and additional drivers for the Eagle-100 board 956(LM3S6918 ARM Cortex-M3). Additional drivers include Ethernet, 957SSI, and support for the on-board LEDs and microSD cards. 958 959* The SPI-based MMC/SD driver was extended to support SDHC Version 9602.xx cards. 961 962In addition, this release includes several important bugfixes for 963the LM3S6918, the LPC2148, the SPI-based MMC/SD driver, and to 964FAT32. See the ChangeLog for details of these bugfixes. 965 966This tarball contains a complete CVS snapshot from May 29, 2009. 967 968NuttX-0.4.8 969----------- 970 971This is the 40th release of NuttX. This release adds: 972 973* Support for the Olimex STRP711 board. That board is based on 974the STMicro STR711 MCU (ARM7TDMI). Integration is complete on 975the basic port (boot logic, system time, serial console). Two 976configurations have been verified: (1) The board boots and 977passes the OS test with console output visible on UART0, and 978the NuttShell (NSH) is fully functional with interrupt driven 979serial console. An SPI driver is available but untested (because 980the Olimex card slot appears to accept only MMC cards; I have 981only SD cards). Additional needed: USB and driver, MMC 982integration. 983 984* Support for the CodeSourcery and devkitARM Windows-native GNU 985toolchains. Makefiles have been modified for the LM3S6918, 986LPC2148, and STR711 to support these toolchains under Cygwin. 987 988This tarball contains a complete CVS snapshot from June 13, 2009. 989 990NuttX-0.4.9 991----------- 992 993This is the 41st release of NuttX. This release adds: 994 995* Support for a new binary format call NXFLAT that can be used to 996execute separately linked programs in place in a file system. 997See https://nuttx.apache.org/docs/latest/components/nxflat.html. 998 999* Several important bugs were files related to networking and ROMFS. 1000See the ChangeLog for a complete list. 1001 1002This tarball contains a complete CVS snapshot from June 26, 2009. 1003 1004NuttX-0.4.10 1005----------- 1006 1007This is the 42nd release of NuttX. This released focused on the 1008port of Jeff Poskanzer's THTTPD HTTP server (see 1009http://acme.com/software/thttpd/). As of the 0.4.10 release, that 1010port is still not fully complete and functional. However, numerous 1011related bug-fixes and functional additions for THTTPD were added: 1012 1013* Several new standard C-library functions (fileno, strstr, 1014strpbrk, fcntl). 1015* Improved and extended timing APIs (mktime, gmtime, gmtime_r, 1016gettimeofday, localtime, localtime_r, and strftime) 1017* Networking enhancements: recvfrom() and accept() now work with 1018non-blocking sockets. 1019* NXFLAT extensions (exec) 1020* Pattern matching logic. 1021* And miscellaneous bug fixes (see the ChangeLog for details). 1022 1023This tarball contains a complete CVS snapshot from August 8, 2009. 1024 1025NuttX-0.4.11 1026------------ 1027 1028This is the 43rd release of NuttX. This release of NuttX incorporates 1029the verified port of Jeff Poskanzer's THTTPD HTTP server (see 1030http://acme.com/software/thttpd/). Many of the key features of 1031THTTPD have been tested on the Micromint Eagle-100 development board 1032(Cortex-M3). These tests verify: 1033 1034* Serving of files from any file system 1035* Execution of CGI executable. This release supports execution 1036of NXFLAT executables on a ROMFS file system 1037(https://nuttx.apache.org/docs/latest/components/nxflat.html) 1038 1039A standard CGI interface is used: Information is pasted to the CGI 1040program via POST commands and via environment variables. CGI socket 1041I/O is redirected to stdin and stdout so that the CGI program only 1042need to printf() to send its content back to the HTTP client. 1043 1044Another value to this THTTPD integration effort has been that THTTPD 1045has provided a very good test bed for finding NuttX networking bugs. 1046Several very critical networking bugs have been fixed with this 10470.4.11 release (see the ChangeLog for details). Networking throughput 1048has also been greatly improved. Anyone using NuttX networking 1049should consider upgrading to this release. 1050 1051This tarball contains a complete CVS snapshot from September 16, 2009 1052 1053NuttX-0.4.12 1054------------ 1055 1056This is the 44th release of NuttX. This release adds basic support 1057for the STMicro STM32, Cortex-M3 MCU. The specific port is to the 1058STMicro STM3210E-EVAL development board based around the STM32F103ZET6 1059MCU. Some highlights of this port: 1060 1061* This basic port includes boot-up logic, interrupt driven serial 1062console, and system timer interrupts. 1063* Includes a basic STMicro RIDE7 project that can be used to 1064perform basic STM32 board bring-up (due to RIDE7 size limitations, 1065it cannot be used for the full NuttX bring-up). 1066* Working, Tested Configurations: the NuttX OS test and the 1067NuttShell (NSH) example. 1068 1069This basic STM32 port will be extended in the 0.4.13 NuttX release. 1070Functionality needed for complete STM32 support includes: USB 1071device driver, LCD driver and NX bringup on the development board's 1072display and MicroSD support. An SPI driver and a DMA support was 1073included in this 0.4.12 release, but is not yet tested. 1074 1075This tarball contains a complete CVS snapshot from October 17, 2009 1076 1077NuttX-0.4.13 1078------------ 1079 1080This is the 45th release of NuttX. The release extends the support 1081for the STMicro STM32 microcontroller. Minimal support for the 1082STM3210E-EVAL development board based around the STM32F103ZET6 MCU 1083was released in NuttX-0.4.12. This release adds: 1084 1085* A simple interface definition to support some FLASH, EEPROM, 1086NVRAM, etc. devices. 1087* Verified SPI operation using driver for SPI based FLASH parts 1088M25P64 and M25P128. 1089* Improved Cortex-M3 context switching. This should improve 1090context switching performance be 2x in certain cases. 1091* Added a USB device-side driver for the STM32. This is an early 1092release of a very complex driver; some bugs are expected. 1093* The USB driver has been verified against the USB serial device 1094class driver. There is at least one known outstanding issue 1095(see the full bug description in the TODO list). 1096 1097This release also corrects some important bugs in the early STM32 release: 1098 1099* Fixed several errors the prevented operation of NuttX on an 1100STM32 development board using USART2 as the serial console. 1101* Fixed and optimization-dependent race condition in the clock 1102initialization. 1103* Fixed a critical bug in the interrupt control logic that could 1104cause interrupt operations to failed used for interrupts in a 1105certain range. 1106 1107This tarball contains a complete CVS snapshot from November 4, 2009 1108 1109NuttX-4.14 1110---------- 1111 1112This is the 46th release of NuttX. The release extends the support 1113for the STMicro STM32 microcontroller. Minimal support for the 1114STM3210E-EVAL development board based around the STM32F103ZET6 MCU 1115was released in NuttX-0.4.12 and extended in NuttX-0.4.13 to include 1116initial USB support. This completes the STM32F103ZET6 and adds: 1117 1118New Generic RTOS Features: 1119 1120* Added generic support that can be included in any block driver 1121to provide read-ahead buffering and write buffering for improved 1122driver performance. 1123* Added a generic worker thread that can used to defer processing 1124from an interrupt to a task. 1125* Defined a generic SD/SDIO interface can can be bound to a MMC/SD 1126or SDIO driver to provide SDIO support. 1127* Implemented a an SDIO-based MMC/SD driver using this new SDIO 1128interface. 1129 1130New STM32 Features: 1131 1132* Add support to configure an STM32 input GPIO to generate an 1133EXTI interrupt. 1134* Added support for buttons on the STM3210E-EVAL board. 1135* Implemented an STM32 version of the common the SDIO interface. 1136* Added a configuration to exercise the STM32 with the USB mass 1137storage device class example. 1138 1139This release also corrects some important bugs in the early STM32 release: 1140 1141* Correct error handling in the mount() logic. 1142* Fixed several STM32 DMA-related issues. Integrated and debugged 1143STM32 DMA functionality that was added in 0.4.12. 1144* Fixed several bugs in the STM32 USB device-side driver. 1145 1146NOTE: This version, 4.14, is equivalent to what would have been 1147called 0.4.14 to follow 0.4.13. The zero has been eliminated from 1148the front of the version number to avoid confusion about the state 1149of development: Some have interpreted the leading zero to mean 1150that the code is in some way unstable. That was not the intent. 1151Beginning in January 2010, I will switch to the 2010.nn versioning 1152as many others have done to avoid such confusion. 1153 1154This tarball contains a complete CVS snapshot from December 2, 2009 1155 1156NuttX-5.0 1157--------- 1158 1159This is 47th release of NuttX and the successor to nuttx-4.14. This 1160major revision number has been incremented to indicate that an 1161incompatibility with previous nuttx releases has been introduced. 1162This version adopts standard fixed width integer names as specified 1163by the ANSI C99 standard. The core logic of NuttX is older than 1164that standard and did not conform to it. 1165 1166If you have applications running on NuttX-4.14, those applications 1167should continue to build and execute without problem on NuttX-5.0. 1168However, if you have device drivers or other OS-internal logic, you 1169will probably have to make some minor changes to your code to use 1170this version. Below is a summary of those changes: 1171 1172* If you include sys/types.h to get the non-standard, fixed width 1173integer types (uint32, uint16, ubyte, etc.), that is no longer 1174necessary. 1175* Instead, you will need to include stdint.h where the new fixed 1176width integer types are defined (uint32_t, uint16_t, uint8_t, etc). 1177* You will have to change all occurrences of the following types: 1178 1179uint32 -> uint32_t 1180uint16 -> uint16_t 1181ubyte -> uint8_t 1182uint8 -> uint8_t 1183sint32 -> int32_t 1184sint16 -> int16_t 1185sint8 -> int8_t 1186 1187* In addition, the non-standard type 'boolean' must replaced with 1188the standard type 'bool'. The type definition for 'bool' is in 1189stdbool.h 1190 1191This change in typing caused small changes to many, many files. It 1192was verified that all configurations in the release still build 1193correctly (other than the SDCC-based configurations). Regression 1194testing was performed on a few configurations, but it is possible 1195that minor build issues still exist. (If you encounter any, please 1196let me know and I will help you to fix them.) 1197 1198In the course of the regression testing, several important bugs 1199unrelated to the type changes were found and corrected. 1200 1201* Fixed an important error in the RX FIFO handling logic of the 1202LM3S6918 Ethernet driver. 1203* Corrected the handling of TCP sequence numbers in the TCP stack. 1204* And other less important bugs as detailed in the ChangeLog. 1205 1206The primary focus of this release was standards compatibility, but 1207a few new features were added including a (1) Flash Translation 1208Layer (FTL) that will support filesystems on a FLASH device and (2) 1209partial ports for the STM32F107VC and HCS12 C9S12NE64 MCUs. Those 1210ports are very incomplete as of this writing. 1211 1212This tarball contains a complete CVS snapshot from December 21, 2009 1213 1214NuttX-5.1 1215--------- 1216 1217This is the 48th release of NuttX. This release adds support for 1218two new MCU architectures in various states of development: 1219 1220* AT91SAM3U (http://www.atmel.com/products/at91/sam3landing.asp?family_id=605) 1221 1222This release adds support for the SAM3U-EK development board with 1223the AT91SAM3U4E MCU 1224(http://www.atmel.com/dyn/products/product_card_mcu.asp?part_id=4562). 1225As with most NuttX architecture releases, the release will be 1226rolled out in two parts: A basic port and an extended port. 1227 1228NuttX-5.1 includes the basic port for the SAM3U-EK board. This 1229release passes the NuttX OS test and is proven to have a valid 1230OS implementation. It supports the basic boot-up, serial console 1231and timer interrupts. A configuration to support the NuttShell 1232is also included. 1233 1234The extended port will also include support for SDIO-based SD 1235cards and USB device (and possible LCD support). These extensions 1236may or may not happen by the NuttX 5.2 release as my plate is 1237kind of full now. 1238 1239* LPC3131 (http://ics.nxp.com/products/lpc3000/lpc313x.lpc314x.lpc315x/) 1240 1241This release also adds the complete implementation of the basic 1242port for the NXP LPC3131 MCU on the Embedded Artists EA3131 board 1243(http://www.embeddedartists.com/products/kits/lpc3131_kit.php). 1244That port, unfortunately has stalled due to tools issues. Those 1245tool issues have been resolved and I am confident that the verified 1246basic port will be available in NuttX-5.2. 1247 1248The extended release will follow and should include SDIO-based 1249SD card support and device USB. 1250 1251A few additional features and bugfixes of a minor nature were also 1252incorporated as detailed in the ChangeLog. 1253 1254NuttX-5.2 1255--------- 1256 1257This is the 49th release of NuttX. This release completes the 1258verification of the basic port for the NXP LPC3131 MCU on the 1259Embedded Artists EA3131 board 1260(http://www.embeddedartists.com/products/kits/lpc3131_kit.php). 1261This basic port includes basic boot-up, serial console, and timer 1262interrupts. This port has been verified on the using the NuttX OS 1263test and includes a working implementation of the NuttShell (NSH). 1264 1265An extended release will follow and should include SDIO-based SD 1266card support and device USB. 1267 1268NuttX-5.3 1269--------- 1270 1271This is the 50th release of NuttX. This release support for one new 1272architecture: 1273 1274* A basic port for the NXP LPC2378 MCU on the Olimex-LPC2378 1275development board was contributed by Rommel Marcelo. 1276 1277And extensions to two existing architectures: 1278 1279* David Hewson contributed a dual-speed (full/high) USB device-side 1280driver for the NXP LPC3131 on the Embedded Artists EA3131 1281development board. 1282 1283* A DMA driver and a high speed MCI driver for the Atmel AT91SAM3U 1284are included (but not fully tested in this release). 1285 1286Two important bugfix was also included: 1287 1288* An important fix to the USB mass storage driver was contributed 1289by David Hewson. 1290* A serious error in the AT91SAM3U PIO handling was fixed. 1291 1292NuttX-5.4 1293--------- 1294 1295This is the 51st release of NuttX. This release includes one new, 1296important extension to th NX graphics system (See 1297https://nuttx.apache.org/docs/latest/components/nxgraphics/index.html). 1298 1299NX was develop a couple years back on hardware that supported only 1300framebuffer devices, that is, video hardware with video memory 1301directly converts the memory content to video. However, most MCUs 1302that NuttX focuses on do not support such video memory; rather, 1303that typically only support LCDs via parallel or serial interfaces. 1304 1305This release of NuttX extends NX so that now renders directly to 1306the LCD device via its serial or parallel interface. No in-memory 1307copy of the screen memory need be maintained so this solution should 1308also work in MCUs with very limited SRAM. 1309 1310This initial release of this feature includes the verified NX 1311extensions plus a driver for the HX8347, 16-bit parallel LCD. This 1312LCD supports 16-bit RGB (5:6:5). 1313 1314NuttX-5.5 1315--------- 1316 1317This is the 52nd release of NuttX. This release includes one new 1318port, some new drivers and some important bugfixes: 1319 1320* NuttX was ported to the Luminary/TI LM3S6965 Ethernet Evaluation 1321Kit. At present, that port includes an OS test configuration 1322and a NuttShell (NSH) configuration with Telnet support. 1323 1324MMC/SD and Networking support are provided but not thoroughly 1325verified in this release: Current development efforts are focused 1326on porting the NuttX window system (NX) to work with the 1327Evaluation Kits OLED display. 1328 1329* A NuttX Ethernet driver for the Microchip ENC28J60 SPI Ethernet 1330chip is available in the source tree (but has not yet been fully 1331verified because I haven't properly connected it to hardware 1332yet). 1333 1334* The Olimex STR-P711 NuttX port was extended to support the 1335ENC28J60 and some new networking configurations were added. 1336The ENC28J60 has not been tested on the STR-P711, however, 1337because of hardware issues (I don't think the USB powered board 1338provides enough power for the ENC28J60 and I don't have the 1339right wall wart yet). 1340 1341Along the way, external interrupt support (XTI) was added to 1342the STMicro STR-P711 port and some important bugs were fixed 1343in the STR-P711 SPI driver. 1344 1345* Added (optional) floating point support for printf(). 1346(Contributed by Yolande Cates.) 1347 1348* Corrected an important UDP reference counting error. It was 1349not a serious error, but it trigger an assertion was IS a serious 1350error. 1351 1352NuttX-5.6 1353--------- 1354 1355This is the 53rd release of NuttX. This release includes one several 1356new drivers for existing NuttX ports: 1357 1358* This port adds support for the RiT displays P14201 4-bpp, 1359greyscale OLED. 4-bpp greyscale support was integrated into 1360the NX graphics sub-system and verified using the TI/Luminary 1361LP3S6965 Ethernet Evaluation Kit. 1362 1363* The M25Px driver was extended for the M24P1 FLASH part (see NOTE). 1364 1365* An I2C driver and (basic) SPI driver were added for the NXP 1366LPC313x port. The I2C interface definition was extended to 1367efficiently handle multiple I2C transfers. 1368(Contributed by David Hewson.) 1369 1370As well as a few, important USB-related bugfixes (See the ChangeLog 1371for details). 1372 1373This release also includes the beginnings of a port for the NXP 1374LPC1768 MCU. However, it is too early for that port to be useful 1375(stay tuned for a future announce of the availability of the LPC1768 1376port). 1377 1378NuttX-5.7 1379--------- 1380 1381This is the 54th release of NuttX. This release adds basic support 1382for one new ARM Cortex-M3 architecture: 1383 1384* Added support for NXP LPC1768 MCU as provided on the Nucleus 13852G board from 2G Engineering (http://www.2g-eng.com). 1386* Some initial files for the LPC17xx family were released in NuttX 13875.6, but the first functional release for the NXP LPC1768/Nucleus2G 1388occurred with NuttX 5.7. 1389* That initial basic release included timer interrupts and a 1390serial console and was verified using the NuttX OS test. 1391* That release includes a verified NuttShell (NSH) configuration 1392(see the https://nuttx.apache.org/docs/latest/components/nsh/index.html). 1393* Also included are unverified SPI and USB device drivers. 1394 1395Further efforts include: 1396(1) development of a DMA support library 1397(2) SPI-based MMC/SD support 1398(3) verification of the USB driver 1399 1400Watch for announcement of the completed LPC1768 port expected in 1401NuttX-5.8. 1402 1403NuttX-5.8 1404--------- 1405 1406This is the 55th release of NuttX. This includes several important 1407bugfixes: 1408 1409* Corrects some interrupt vectoring for the TI/Stellarix LM3S 1410port 1411* Correct initialization logic for NXP LPC17xxx NuttX ports: 1412Power was not being provided to the GPIO module! 1413* Corrected (but did not verify) implementation of the optional 1414interrupt stack feature (all Cortex M3 architectures). 1415* Correct a HardFault in the LPC17xx SSP driver. 1416 1417Additional minor fixes are also included as detailed in the ChangeLog. 1418 1419Several new features have been fully developed and included in this 1420release, but full verification of most of these new features has 1421been blocked for a variety of issues: 1422 1423* Added microSD support for the NuttShell (NSH) configuration in 1424the Nucleus2G LPC1768 port. For reasons that have not yet been 1425determined, I have not successfully accessed the microSD card 1426as of this writing. 1427* Two USB configurations were also added for the Nucleus2G board: 1428One to support the USB serial device and one for the USB mass 1429storage device. Some testing of the USB driver was performed, 1430but full verification is stalled for an OTG style USB cable. 1431* LEDs now work correctly on the Nucleus2G LPC1768 board. 1432* The NuttX/uIP networking subsystem now supports IGMPv2 client. 1433IGMP (Internet Group Multicast Protocol) network "appliances" 1434to join into multicast groups. Outbound traffic to enter and 1435leave multicast groups has been verified, but full verification 1436will require a switch capable of multicast. Issues associated 1437with the receipt of multicast packets are likely. 1438 1439NuttX-5.9 1440--------- 1441 1442This is the 56th release of NuttX. This release is difficult to 1443categorize; NuttX-5.9 was really released because there were too 1444many changes accumulating in CVS -- a few important, some unfinished 1445implementations, and a couple of important bugfixes. 1446 1447* By far biggest change in this release is the complete implementation 1448of on-demand paging support. This feature will allow you to 1449execute large programs on a mass storage device (such as SPI 1450FLASH) in a small RAM. All of the core on-demand paging logic 1451was completed 1452(see https://nuttx.apache.org/docs/latest/components/paging.html) 1453and support was implemented for the ARM-9 family. A test 1454configuration is in place for the NXP LPC3131. It has been 1455verified that this new logic does not interfere with normal 1456fixed-page ARM9 operation, but otherwise this new on-demand 1457paging feature is untested. 1458* Add support for the CodeSourcery toolchain to the Olimex-lpc2378 1459port and for the Neuros OSD port. 1460* The Neuros OSD port has been updated to work with the production 1461v1.0 OSD (previously it only worked with the development board). 1462* And some miscellaneous feature enhancements as detailed in the 1463ChangeLog. 1464 1465This includes several important bugfixes: 1466 1467* NXP LPC17xx - Fixed a critical bug in the GPIO configuration 1468logic: When attempting to set no pull-up or pull-down (floating), 1469it would, instead, select pull-down. 1470 1471* TI/Luminary LM3Sxxxx - Fixed: 1472(1) A logic error in an address table lookup. 1473(2) GPIO port encoding the limited support to only 8 GPIO ports. 1474 1475* Corrected the lease time in the DHCPC implementation: It was 1476not in host byte order. 1477 1478* And several other less important bugs as documented in the 1479ChangeLog: Warnings, cornercase compilation problems, etc. 1480 1481NuttX-5.10 1482---------- 1483 1484This is the 57th release of NuttX. This release includes a combination 1485of some new features as well as several bugfixes. New features 1486include: 1487 1488* TI/Luminary Stellaris LM3S9B96: 1489Header file changes contributed by Tiago Maluta. 1490* TI/Luminary Stellaris LM3S8962: 1491Header file changes and support for the Stellaris LM3S8962 1492Ethernet+CAN Evaluation Board contributed by Larry Arnold. 1493* On-Demand Paging Support: 1494The basic logic for the On-Demand Paging feature is complete, 1495implemented for the NXP LPC3131, and partially tested. See 1496https://nuttx.apache.org/docs/latest/components/paging.html. 1497Some additional test infrastructure will be needed in order to complete 1498the verification. See configs/ea3131/README.txt for details. 1499* Two Pass Build Support: 1500The make system now supports a two pass build where a relocatable, 1501partially linked object is created on the first pass and that 1502object is linked with the NuttX libraries to produce the final 1503executable on the second pass. This two pass build is currently 1504only used to support the On-Demand paging feature: The first 1505pass link forces critical logic into the locked text region; 1506the second pass builds the NuttX executable more-or-less as 1507normal. 1508* CONFIG_APP_DIR: 1509Generalized the way in which applications are built and linked 1510with NuttX. The new configuration CONFIG_APP_DIR replaces 1511CONFIG_EXAMPLE. CONFIG_EXAMPLE used to identify the sub-directory 1512within the NuttX examples/ directory that held the example 1513application to be built. That made it awkward to configure to 1514build an application that resides outside of the NuttX examples/ 1515directory. CONFIG_APP_DIR is more general; it can be used to 1516refer to any directory containing the application to be built. 1517 1518For people who have their own configurations and/or Makefiles, 1519you will need to make a couple of changes: 1520 1521- Replace all occurrences of CONFIG_EXAMPLE=foobar with 1522CONFIG_APP_DIR=examples/foobar in all of the configuration 1523files. 1524- Replace any occurrences of examples/$(CONFIG_EXAMPLE) with 1525$(CONFIG_APP_DIR) 1526- Replace any occurrences of lib$(CONFIG_EXAMPLE)$(LIBEXT) 1527with libapp$(LIBEXT) in your Makefiles. 1528- Check any other occurrences of CONFIG_EXAMPLE. 1529 1530* Several bugfixes are included as well as code changes to eliminate 1531some warnings. See the ChangeLog for details. 1532 1533NuttX-5.11 1534---------- 1535 1536This is the 58th release of NuttX. This is a bugfix release. 1537 1538* One very important bug fixes a race condition that can occur 1539using semaphores that can be awakened by signals. Under this 1540particular race condition, a task could hang waiting for a 1541semaphore. 1542* Corrections to lm3s8962 port contributed by Larry Arnold. That 1543port is purported to work correctly with these changes in place. 1544 1545Plus less critical bugfixes as detailed in the ChangeLog. New features 1546include: 1547 1548* A new configuration to support the mbed.org LPC1768 board. 1549(Contributed by Dave Marples.) 1550* A driver for the Atmel AT45DB161D 4Mbit SPI FLASH part 1551 1552NuttX-5.12 1553---------- 1554 1555This is the 59th release of NuttX. This is a critical bugfix release. 1556 1557* Fixed an important error in the signal trampoline logic. 1558Essentially, interrupts are re-enabled while the signal handler 1559executes, but the logic to re-disable the interrupts before 1560returning from the signal handler trampoline was missing. Under 1561certain circumstances, this can cause stack corruption. This 1562was discovered by David Hewson on an ARM9 platform, but since 1563the code has been leveraged, the bug has been propagated from 1564ARM to Cortex-M3, AVR32, M16C, SH1, ZNEO, eZ80, Z8, and Z80 -- 1565almost every architecture. The correction has been incorporated 1566for all architectures but only verified on a few. 1567 1568Other notable changes in NuttX-5.12: 1569 1570* A complete port for the AVR32 (AT32UC3B0256) is incorporated 1571in the source tree. Testing of this port is underway now. This 1572release was made before verifying this port in order to get the 1573important bugfix in place. 1574 1575* Other miscellaneous bugfix and enhancements as noted in the 1576ChangeLog. 1577 1578NuttX-5.13 1579---------- 1580 1581This is the 60th release of NuttX. Headlines for this release 1582include: 1583 1584* AVR32, www.mcuzone.com AVR32DEV1 1585 1586The port for the www.mcuzone.com AVRDEV1 board based on the 1587Atmel AT32UC3B0256 MCU was (almost) fully integrated. The port 1588now successfully passes the NuttX OS test (examples/ostest). 1589A NuttShell (NSH) configuration is in place (see the NSH User 1590Guide at https://nuttx.apache.org/docs/latest/components/nsh/index.html). 1591Testing of that NSH configuration, however, has been postponed 1592(because it got bumped by the Olimex LPC1766-STK port -- see below) 1593 1594Current Status: I think I have a hardware problem with my serial 1595port setup. There is a good chance that the NSH port is complete 1596and functional, but I am not yet able to demonstrate that. At 1597present, I get nothing coming in the serial RXD line (probably 1598because the pins are configured wrong or I have the MAX232 1599connected wrong). 1600 1601A complete port will include drivers for additional AVR32 UC3 1602devices -- like SPI and USB --- and will be available in a 1603later release, time permitting. 1604 1605* LPC1766, Olimex LPC1766-STK 1606 1607Support for the Olimex-LPC1766 is newly added to NuttX and is 1608still undergoing development, test, and integration. Verified 1609configurations for the NuttX OS test and for the NuttShell (NSH, 1610see the NSH User Guide at 1611https://nuttx.apache.org/docs/latest/components/nsh/index.html . 1612Additional USB configurations are in the release as well, but 1613they have not yet been verified. Goals for NuttX-5.14 include: 1614(1) An Ethernet driver, (2) Verified USB support, and (3) SD 1615card support. 1616 1617* Additional changes and bugfixes as detailed in the ChangeLog. 1618 1619NuttX-5.14 1620---------- 1621 1622The 61st release of NuttX, NuttX-5.14, was made on November 27, 16232010. This release includes multiple, important bugfixes as well 1624as a new driver for the NXP LPC1766. 1625 1626This release corresponds with SVN release number: r3137 1627 1628Important bugfixes include: 1629 1630* Cortex-M3 Hard Fault. Fixed a hard fault problem that can occur 1631if certain types of interrupts are pending at the time another 1632interrupt returns. This problem has only been observed on the 1633LPC1766 (returning from a SYSTICK interrupt with a pending 1634Ethernet interrupt). However, it is assumed that all Cortex-M3 1635ports could have this as a latent bug. 1636 1637* TCP/IP Sequence Number Bug. Corrected errors some important 1638logic in the way that sequence numbers are managed when send() 1639sends out packets before a previous packet has been acknowledged. 1640Some of that send() logic was incompatible with logic in the 1641uIP layer. Errors seen include: (1) The final final packet in 1642a sequence of packets might be too large! In the THTTPD example, 1643this might leave some garbage at the bottom of the display. Or 1644(2) send() might hang with outstanding, unacknowledged data 1645(and with no re-transmission requests). This was due to 1646differences in sequence number handling in send() and in 1647uip_tcpinput.c; uip_tcpinput.c thought (incorrectly) that all 1648of the bytes were acknowledged; send.c knew that they were not. 1649 1650* One-Shot POSIX Timer Bug. Fixed an error in set-up of a one-shot 1651POSIX timer. It was using the repetitive timer value (which 1652is zero in the one-shot case), always resulting in a 10Ms timer! 1653Found and fixed by Wilton Tong. 1654 1655Additional support has been included for the Olimex-LPC1766. Support 1656for that board was added to NuttX 5.13. This release extends that 1657support with an Ethernet driver. Verified configurations are now 1658available for the NuttX OS test, for the NuttShell (NSH, see 1659https://nuttx.apache.org/docs/latest/components/nsh/index.html), 1660for the NuttX network test, and for the THTTPD webserver. 1661(Additional USB configurations are in the release as well, but those 1662have not yet been verified. Goals for NuttX-5.15 (and beyond) include: 1663(1) Verified USB support, (2) SD card support, and (3) LCD support. 1664 1665NuttX-5.15 1666---------- 1667 1668The 62nd release of NuttX, NuttX-5.15, was made on December 12, 16692010. This release includes several bugfixes as well as feature 1670enhancements, primarily for the Olimex LPC1766-STK board. 1671 1672Important bugfixes included: 1673 1674* Additional fixes needed with the TCP sequence number problem 1675"fixed" in NuttX-5.14. 1676* In the send() logic, now checks if the destination IP address 1677is in the ARP table before sending the packet; an ARP request 1678will go out instead. This improves behavior, for example, on 1679the first on the first GET request from a browser 1680* All USB class drivers need to call DEV_CONNECT() when they are 1681ready to be enumerated. That is, (1) initially when bound to 1682the USB driver, and (2) after a USB reset. 1683* The SPI_SETBITS macro was calling the SPI setmode method. 1684* And several other bug fixes of lower importance (see the 1685ChangeLog for details). 1686 1687And feature enhancements: 1688 1689* The LPC176x Ethernet driver was using all of AHB SRAM Bank0 for 1690Ethernet packet buffers (16K). An option was added to limit 1691the amount of SRAM used for packet buffering and to re-use any 1692extra Bank0 memory for heap. 1693 1694* Enabled networking and SD/MMC card support in the Olimex 1695LPC1766-STK NuttShell (NSH) configuration. 1696 1697* The LPC176x USB driver is now fully fully functional. 1698* Added an optional cmddata() method to the SPI interface. Some 1699devices require an additional out-of-band bit to specify if the 1700next word sent to the device is a command or data. The cmddata 1701method provides selection of command or data. 1702 1703* A driver for the Nokia 6100 LCD (with either the Phillips PCF8833 1704LCD controller and for the Epson S1D15G10 LCD controller) and 1705an NX graphics configuration for the Olimex LPC1766-STK have 1706been added. However, neither the LCD driver nor the NX 1707configuration have been verified as of the this release. 1708 1709NuttX-5.16 1710---------- 1711 1712The 63rd release of NuttX, Version 5.16, was made on January 10, 17132010 and is available for download from the SourceForge website. 1714This release includes initial support for USB host in NuttX. The 1715USB host infrastructure is new to NuttX. This initial USB host release 1716is probably only beta quality; it is expected the some bugs remain 1717in the logic and that the functionality requires extension. 1718 1719Below is a summary of the NuttX USB host implementation as extracted 1720from the NuttX Porting Guide: 1721 17226.3.9 USB Host-Side Drivers 1723* include/nuttx/usb/usbhost.h. All structures and APIs needed to 1724work with USB host-side drivers are provided in this header 1725file. 1726* struct usbhost_driver_s. Each USB host controller driver must 1727implement an instance of struct usbhost_driver_s. This structure 1728is defined in include/nuttx/usb/usbhost.h. Examples: 1729arch/arm/src/lpc17xx/lpc17_usbhost.c. 1730* struct usbhost_class_s. Each USB host class driver must implement 1731an instance of struct usbhost_class_s. This structure is also 1732defined in include/nuttx/usb/usbhost.h. Examples: 1733drivers/usbhost/usbhost_storage.c 1734* USB Host Class Driver Registry. The NuttX USB host infrastructure 1735includes a registry. During its initialization, each USB host 1736class driver must call the interface, usbhost_registerclass() 1737in order add its interface to the registry. Later, when a USB 1738device is connected, the USB host controller will look up the 1739USB host class driver that is needed to support the connected 1740device in this registry. Examples: drivers/usbhost/usbhost_registry.c, 1741drivers/usbhost/usbhost_registerclass.c, and 1742drivers/usbhost/usbhost_findclass.c, 1743* Detection and Enumeration of Connected Devices. Each USB host 1744device controller supports two methods that are used to detect 1745and enumeration newly connected devices (and also detect 1746disconnected devices): 1747+ int (*wait)(FAR struct usbhost_driver_s *drvr, bool connected); 1748Wait for a device to be connected or disconnected. 1749+ int (*enumerate)(FAR struct usbhost_driver_s *drvr); 1750Enumerate the connected device. As part of this enumeration 1751process, the driver will (1) get the device's configuration 1752descriptor, (2) extract the class ID info from the configuration 1753descriptor, (3) call usbhost_findclass() to find the class 1754that supports this device, (4) call the create() method on 1755the struct usbhost_registry_s interface to get a class instance, 1756and finally (5) call the connect() method of the struct 1757usbhost_class_s interface. After that, the class is in charge 1758of the sequence of operations. 1759* Binding USB Host-Side Drivers. USB host-side controller drivers 1760are not normally directly accessed by user code, but are usually 1761bound to another, higher level USB host class driver. The class 1762driver exports the standard NuttX device interface so that the 1763connected USB device can be accessed just as with other, similar, 1764on-board devices. For example, the USB host mass storage class 1765driver (drivers/usbhost/usbhost_storage.c) will register a 1766standard, NuttX block driver interface (like /dev/sda) that can 1767be used to mount a file system just as with any other other 1768block driver instance. In general, the binding sequence is: 1769 17701. Each USB host class driver includes an initialization entry 1771point that is called from the application at initialization 1772time. This driver calls usbhost_registerclass() during this 1773initialization in order to makes itself available in the 1774event that the device that it supports is connected. Examples: 1775The function usbhost_storageinit() in the file 1776drivers/usbhost/usbhost_storage.c 17772. Each application must include a waiter thread thread that 1778(1) calls the USB host controller driver's wait() to detect 1779the connection of a device, and then (2) call the USB host 1780controller driver's enumerate method to bind the registered 1781USB host class driver to the USB host controller driver. 1782Examples: The function nsh_waiter() in the file 1783configs/nucleus2g/src/up_nsh.c and the function nsh_waiter() 1784in the file configs/olimex-lpc1766stk/src/up_nsh.c. 17853. As part of its operation during the binding operation, the 1786USB host class driver will register an instances of a standard 1787NuttX driver under the /dev directory. To repeat the above 1788example, the USB host mass storage class driver 1789(drivers/usbhost/usbhost_storage.c) will register a standard, 1790NuttX block driver interface (like /dev/sda) that can be 1791used to mount a file system just as with any other other 1792block driver instance. Examples: See the call to 1793register_blockdriver() in the function usbhost_initvolume() 1794in the file drivers/usbhost/usbhost_storage.c. 1795 1796NuttX-5.17 1797---------- 1798 1799The 64th release of NuttX, Version 5.17, was made on January 19, 18002011 and is available for download from the SourceForge website. 1801This release follows close on the heels of the 5.16 release and 1802extends the USB host capabilities first introduced in that version. 1803 1804* The LPC17xx USB host controller driver was extended to (1) add 1805support for low-speed devices, (2) handle multiple concurrent 1806transfers on different endpoints (still only one TD per endpoint), 1807and (3) handle periodic interrupt endpoint types. 1808 1809* Add a USB host HID keyboard class driver. Now you can connect 1810a standard USB keyboard to NuttX and receive keyboard input for 1811an application. 1812 1813And other changes as detailed in the ChangeLog. 1814 1815NuttX-5.18 1816---------- 1817 1818The 65th release of NuttX, Version 5.18, was made on February 27, 18192011 and is available for download from the SourceForge website. 1820This is first release from the new NuttX SVN repository. This 1821release is made primarily to keep the release tarball in synchronization 1822with SVN. Many smaller changes have been made as identified in the 1823ChangeLog. Headlines include: 1824 1825* Incorporate several important uIP patches -- including the well 1826known patch to handle missing SYNACK. 1827* The Freescale mc8s12ne64 port is code complete but testing has 1828not yet begun due to toolchain issues. Added support for the 1829Future Electronics Group NE64 Badge board. 1830* Added support for a new STM32 board, the ISOTEL NetClamps VSN 1831V1.2 ready2go sensor network platform. This board is based on 1832a STM32F103RET6 and includes some interesting power saving/clock 1833control extensions. 1834* USB host support expanded to handle vendor specific USB devices. 1835* Incorporated the LUFA HID parser. 1836* Various bugfix as detailed in the ChangeLog 1837 1838NuttX-5.19 1839---------- 1840 1841The 66th release of NuttX, Version 5.19, was made on March 12, 2011 1842and is available for download from the SourceForge website. This 1843release includes several new features in various states of integration 1844and maturity: 1845 1846* 486SX QEMU port. This port supports the Intel 486SX architecture 1847using the QEMU simulator. Initial functionality is in place a 1848partially tested. There are still some outstanding issues with 1849timer interrupts. 1850* Platform specific application support. A new apps/ directory 1851appears in this port. This apps/ directory provides a mechanism 1852for applications using NuttX to have a highly customized 1853initialization process. It supports a set of end-user applications 1854than can be executed (1) standalone so you can have a fully 1855customized application startup, or (2) on top of NSH. Think 1856of it this way: In a buckled-up embedded application, your 1857end-user programs will probably have their own dedicated start-up 1858logic. But, during development, you might want to have you 1859applications available and executable from the NSH command line. 1860This apps/ add-on (and NSH hooks) was contributed by Uros to 1861accomplish just that. 1862* NSH was also extended to support application specific ROMFS 1863/etc/init.d/rcS start-up scripts. This feature, as well, as 1864all of the above-mentioned apps/ directory support was contributed 1865by Uros Platise 1866* Additional NSH improvements and bug fixes. See the Changelog 1867for details. 1868* This release also provides a new SLIP network driver. This 1869driver should support point-to-point network communications to 1870a host using TCP/IP or UDP. This driver is code complete, but 1871not tested in this release. 1872* New RAMTRON FRAM driver (contributed by Uros Platise) 1873* New generic 16550 UART driver. 1874* Cortex-M3 Power improvements: Waits for Interrupt (WFI) in idle 1875loop for reduced power consumption (LPC17xx and STM32 only - 1876contributed by Uros Platise)) 1877* New waitpid() system interface. 1878* Additional bugfixes: pipes, stdint.h, STM32 SDIO and SPI drivers 1879 1880NuttX-6.0 1881--------- 1882 1883The 67th release of NuttX, Version 6.0, was made on March 21, 2011 1884and is available for download from the SourceForge website. The 1885version number of this release was bumped from 5.19 to 6.0. A 1886change in the major revision number is used to reflect an incompatibility 1887with previous versions. In this release, the NuttX core OS 1888functionality has been separated from NuttX application-related 1889functionality. These are provided as separate tarballs: 1890 1891* nuttx-6.0.tar.gz, and 1892* apps-6.0.tar.gz 1893 1894The purpose of this separation is both to better organize and 1895modularize the NuttX source tree, but also to provide better support 1896for incorporation of end-user applications with NuttX. 1897 1898The incompatibility results from the changes to the board configuration 1899logic needed to supported the separable application. The major 1900changes to the configuration include: 1901 1902* CONFIG_APPS_DIR - This should not be set. The default is 1903../apps. This should only be set if you have a custom, 1904product-specific application directory in some different location. 1905 1906* appconfig - Each board configuration now requires a new file 1907called 'appconfig.' As its name suggests, this file provides 1908new configuration information needed by the logic in ../apps. 1909 1910In addition to this major reorganization in the directory structure, 1911this release also includes some important extensions to existing 1912features and some important bugfixes. These include: 1913 1914* The SLIP driver was been well debugged and significantly 1915re-designed. Now you can have an Ethernet connection to you 1916board even if you have no Ethernet hardware. How cool is that? 1917 1918* The QEMU i486 port is now functional. It has also been reported 1919to work on the Bifferboard (see http://bifferos.bizhat.com/). 1920 1921* And extensions to the uIP driver interface, and 1922 1923* Bug fixes to fopen() and STM32 GPIO configuration 1924 1925Please see the ChangeLog for details. 1926 1927NuttX-6.1 1928--------- 1929 1930The 68th release of NuttX, Version 6.1, was made on April 10, 2011 1931and is available for download from the SourceForge website. The 19326.0 release introduced a detach-able application environment to 1933build applications outside of the NuttX source tree. The primary 1934purpose of this release is to correct numerous build problems 1935introduced by that architectural change: 1936 1937* In many newer environments, NuttX produced strange Makefile 1938errors but built correctly in older environments. A fix provided 1939by Rafael Noronha was incorporated and is reported to fix those 1940build problems. 1941* The apps/ directory build system would not handle Windows-native 1942toolchains due to obscure path formatting issues. 1943* And other problems as detailed in the Changelog. 1944 1945Many additional changes were made in the 6.1 release for another 1946major architectural change: NuttX will now build as a separately 1947linked microkernel. In this build option the RTOS builds as a 1948kernel, applications build separately and interface with kernel via 1949system calls. Applications run in user mode and kernel logic users 1950in kernel-mode. This provides a secure environment for NuttX. This 1951feature is fully coded in NuttX-6.1, but has not been tested due 1952to higher priority tasks that have arisen. 1953 1954Related to this change, support for the Cortex-M3 memory protection 1955unit (MPU) has been integrated with the NuttX kernel build to provide 1956an even higher level of security. 1957 1958NOTE: This kernel build is an option; the default build configuration 1959is still the standard, flat, unsecured RTOS as in previous releases. 1960 1961Additional new features in this release: 1962 1963* Support for LPC17xx GPIO interrupts (with much support from 1964Decio Renno). 1965* Basic timer support for STM32 (Contributed by Uros Platise) 1966* A binfs file system. This is a tiny pseudo file system that 1967lets named applications to be viewed and accessed in NSH under 1968the /bin directory. 1969* An I2C-based driver for the LIS331DL MEMS motion sensor. 1970(Contributed by Uros Platise.) 1971* A configuration for the Embedded Artists LPCXpresso LPC1768 board. 1972* The user_initialize() interface has been removed. 1973 1974And several bugfix associated with SD drivers, opendir(), signed 19758-bit types (int8_t), and USB serial device. See the ChangeLog for 1976details. 1977 1978NuttX-6.2 1979--------- 1980 1981The 69th release of NuttX, Version 6.2, was made on May 6, 2011 and 1982is available for download from the SourceForge website. The 6.2 1983release includes several new features: 1984 1985* NXFFS: The obvious new feature is NXFFS, the NuttX wear-leveling 1986FLASH file system. This new file system is intended to be 1987small for the MCU usage and has some limitations. No formal 1988documentation of NXFFS yet exists. See the fs/nxffs/README.txt 1989file for details (see 1990http://svn.code.sf.net/p/nuttx/code/trunk/nuttx/fs/nxffs/README.txt?view=log) 1991* Support for NXP LPCXpresso LPC1768 board on the Embedded 1992Artists base board. The Code Red toolchain is supported under 1993either Linux or Windows. Verified configurations include 1994dhcpd, nsh, nx, ostest, thttpd, and usbstorage. 1995* Support for the Univision UG-9664HSWAG01 OLED with Solomon 1996Systech SD1305 LCD controller. 1997* A new RAM MTD driver with FLASH simulation capability. 1998* A version.h file is now automatically generated so that C code 1999can now be version aware. 2000 2001In addition to these new feature, several important bugfixes are 2002included in this release correcting problems with dup2(), LPC17xx 2003GPIO interrupts, LPC17xx UART2/3, the FAT file system, build issues, 2004and strrch(). See the ChangeLog for more details. 2005 2006NuttX-6.3 2007--------- 2008 2009The 70th release of NuttX follows only a nines days after the release 2010of version 6.2. It was released on May 15, 2011. This special 2011back-to-back release was made so that the current released version 2012of NuttX will correspond to the initial release from the RGMP 2013project. 2014 2015This release adds architecture support and build configuration for 2016RGMP. RGMP is a project for running GPOS and RTOS simultaneously 2017on multi-processor platforms. See 2018http://rgmp.sourceforge.net/wiki/index.php/Main_Page for further 2019information about RGMP. 2020 2021This release also includes support for STM32 FLASH, build improvements, 2022and initial, incomplete support for the MicroChip PIC32MX MCU. Bug 2023fixes are included for some build problems, USB host class driver 2024error handling, NX graphics color mapping, and problems with C 2025standard I/O buffer flushing. See the ChangeLog for further details. 2026 2027NuttX-6.4 2028--------- 2029 2030The 71st release of NuttX, Version 6.4, was made on June 5, 2011 2031and is available for download from the SourceForge website. The 20326.4 release includes several new features: 2033 2034* A new, full-featured FTP client. This client may be used as a library 2035for automated FTP or via an FTP client shell. The FTP shell 2036supports the following commands: cd, chmod, get, help, idle, 2037login, ls, quit, mkdir, noop, put, pwd, rename, rhelp, rm, 2038rmdir, size, time, and up. A configuration is available for 2039the NXP LPC17xx to demonstrate this functionality. 2040* A functional C1101 wireless driver (contributed by Uros Platise) 2041* A PCI-based E1000 Ethernet driver (contributed by Yu Qiang) 2042* New C library functions: inet_addr() (contributed by Yu Qiang), 2043strndup(), asprintf() 2044* Reduced memory allocation overhead for MCUs with small heaps (<64K). 2045* fdopen() now works with socket descriptors allowing standard 2046buffered C functions to be used for network communications. 2047* The NSH ifconfig command can now be used to set or change the 2048IP address (contributed by Yu Qiang) 2049 2050This release also includes some completed but untested functionality. 2051 2052* The MicroChip PIC32MX port is now code complete and ready to 2053begin testing. Unfortunately, testing will be delayed due to 2054tool issues. 2055* Support for the NXP LPC315x MCUs. 2056 2057Additional miscellaneous enhancements and bug fixes to task_delete(), 2058recvfrom(), and other changes as noted in the ChangeLog. 2059 2060NuttX-6.5 2061--------- 2062 2063The 72nd release of NuttX, Version 6.5, was made on June 21, 2011 2064and is available for download from the SourceForge website. The 20656.5 release is all about support for the Atmel 8-bit AVR family. 2066I have been interested in the AVR family for some time but because 2067of the severe SRAM constraints and because of the availability of 2068many tiny schedulers for the AVR, it has not been "on the radar 2069screen." However, I have recently become interested because of 2070interest expressed by members of the forum and because of the 2071availability of newer, larger capacity AVR parts (that I don't have 2072yet). 2073 2074This release corresponds with SVN release number: r3730 2075 2076This release includes support for the following AVR boards. As 2077with any initial support for new architectures, there are some 2078incomplete areas and a few caveats that need to be stated. Here 2079they are, ordered from the least to the most complete: 2080 2081* SoC Robotics Amber Web Server (ATMega128). 2082 2083This port of NuttX to the Amber Web Server from SoC Robotics 2084(http://www.soc-robotics.com/index.htm). Is only partially in 2085place. The Amber Web Server is based on an Atmel ATMega128 2086(128K FLASH but only 4K of SRAM). 2087 2088STATUS: Work on this port has stalled due to toolchain issues. It 2089is complete, but untested. 2090 2091* Micropendous 3 AT9USB647 2092 2093This port of NuttX to the Opendous Micropendous 3 board. The 2094Micropendous3 may be populated with an AT90USB646, 647, 1286, 2095or 1287. See http://code.google.com/p/opendous/. I have only 2096the AT90USB647 version for testing. This version has very 2097limited memory resources: 64K of FLASH and 4K of SRAM. 2098 2099STATUS: The basic port was released in NuttX-6.5. This basic 2100port consists only of a "Hello, World!!" example that demonstrates 2101initialization of the OS, creation of a simple task, and serial 2102console output. The tiny SRAM limits what you can do with the 2103AT90USB647 (see issues below). 2104 2105* PJRC Teensy++ 2.0 AT9USB1286 2106 2107This is a port of NuttX to the PJRC Teensy++ 2.0 board. This 2108board was developed by PJRC (http://pjrc.com/teensy/). The 2109Teensy++ 2.0 is based on an Atmel AT90USB1286 MCU with 128K 2110of FLASH and 8K of SRAM; a little more room to move than the 2111AT90USB647. 2112 2113STATUS: The basic port was released in NuttX-6.5. This basic 2114port consists of a "Hello, World!!" example and also slightly 2115simplified NuttShell (NSH) configuration (see the NSH User Guide 2116at https://nuttx.apache.org/docs/latest/components/nsh/index.html). 2117 2118An SPI driver and a USB device driver exist for the AT90USB as 2119well as a USB mass storage configuration. However, this 2120configuration is not fully debugged as of the NuttX-6.5 release. 2121 2122AVR-specific issues. The basic AVR port is solid and biggest issue 2123for using AVR is its tiny SRAM memory and its Harvard architecture. 2124Because of the Harvard architecture, constant data that resides to 2125flash is inaccessible using "normal" memory reads and writes (only 2126SRAM data can be accessed "normally"). Special AVR instructions 2127are available for accessing data in FLASH, but these have not been 2128integrated into the normal, general purpose OS. 2129 2130Most NuttX test applications are console-oriented with lots of 2131strings used for printf and debug output. These strings are all 2132stored in SRAM now due to these data accessing issues and even the 2133smallest console-oriented applications can quickly fill a 4-8K 2134memory. So, in order for the AVR port to be useful, one of two 2135things would need to be done: 2136 21371. Don't use console applications that required lots of strings. 2138The basic AVR port is solid and your typical deeply embedded 2139application should work fine. 2140 21412. Create a special version of printf that knows how to access 2142strings that reside in FLASH (or EEPROM). 2143 2144NuttX-6.6 2145--------- 2146 2147The 73rd release of NuttX, Version 6.6, was made on July 11, 2011 2148and is available for download from the SourceForge website. The 21496.6 release adds several smaller features but is mostly a bugfix 2150release. 2151 2152Bugfixes include 2153 2154* Fixed several NX Graphics bugs: Rendering fonts at >8 bits-per-pixel, 2155graphics move logic, and display artifacts that appear when a 2156window is closed. 2157* Corrections to the USB host mass storage class driver 2158* STM32 bugfixes: serial driver, GPIO interrupt handling 2159* LPC17xx: Changes for a success compilation with no console. 2160* Corrections to the Teensy AT90USB SD driver 2161* Changes for a clean compilation under the ZDS-II toolchain. 2162 2163Minor features: 2164 2165* Add logic to extract printf strings from FLASH (but there are 2166still printf issues for that target) 2167* Added a configuration for the Sure Electronics PIC32MX board. 2168However, higher priority tasks have stopped work on that 2169configuration. 2170* Added several new configurations for the STMicro STM3210E-EVAL 2171board. 2172* Added support for the STM3210E-EVAL board: (1) LCD in either 2173landscape or portrait mode, and (2) interrupting buttons. 2174* Added a configuration option to use different serial ports for 2175debug and for the NSH serial console (there are some issues 2176with CR-LF expansion and character echo if NSH is not run on 2177the console). 2178* Standardized the button press and button interrupt interfaces 2179so that they are common across all boards. 2180* Added a new graphics example that focuses on placing text on 2181the background while pop-up windows occur. Text should continue 2182to update normally with or without the popup windows present. 2183* Added ARM stack checking logic. 2184 2185See the ChangeLog for a detailed description of these changes. 2186 2187NuttX-6.7 2188--------- 2189 2190The 74th release of NuttX, Version 6.7, was made on August 2, 2011 2191and is available for download from the SourceForge website. Note 2192that release consists of two tarballs: nuttx-6.7.tar.gz and 2193apps-6.7.tar.gz. Both may be needed (see the top-level nuttx/README.txt 2194file for build information). Changes in this release are summarized 2195below: 2196 2197* New OS APIs: Add the standard sem_timedwait() interface. 2198* FAT File System: Adds (optional) support for VFAT long file 2199names. 2200* USB: Now the mass storage device can be connected when needed 2201and disconnected when not needed (or re-connected as a different 2202kind of device). 2203* Touchscreen Support: Defined a new NuttX touchscreen interface. 2204Added a driver for the TI TSC2007 touchscreen controller chip. 2205* NX Fonts: Add support for multiple fonts; developed a tool to 2206convert open source fonts into NuttX format; Converted and 2207installed nine new, high quality fontsets. 2208* NX Graphics: Add new NX APIs to support drawing of wide lines 2209in any orientation. Added new low level routines to set 2210individual pixel more efficiently. 2211* Build system: Added a export target that will bundle up all 2212of the NuttX libraries, header files, and the startup object 2213into an exportable tarball. 2214* LPC17xx: A CAN driver was contributed by Li Zhuoyi (Lzyy). 2215* STM32: New NX-related configurations to exercise text and 2216graphic image displays. 2217* C Library: Added a fixed precision atan2() math function. 2218* Bugfixes: Serial RX overrun error, FAT upper/lower NT 8.3 name 2219handling fixed. FAT directory allocation and initialization 2220bug. STM32 SDIO DMA race condition bug. eZ80 UART1 serial 2221driver errors (Paul Osmialowski) 2222 2223NuttX-6.8 2224--------- 2225 2226The 75th release of NuttX, Version 6.8, was made on August 19, 2011 2227and is available for download from the SourceForge website. Note 2228that release consists of two tarballs: nuttx-6.8.tar.gz and 2229apps-6.8.tar.gz. Both may be needed (see the top-level nuttx/README.txt 2230file for build information). Changes in this release are summarized 2231below: 2232 2233* NuttX has been ported to run on the Freescale Cortex-M4 "Kinetis" 2234boards. Two board ports are available for (1) the Kinetis 2235KwikStik-K40 and (2) the Kinetis TWR-K60N512 tower. 2236* Support for RGMP 0.3. This version of RGMP now runs on the 2237OMAP4430 (arm) pandaboard 2238* LPC17xx CAN driver extended to support both CAN1 and CAN2 2239(submitted by Li Zhuoy (Lzzy)) 2240* Fixed several critical bugs related to signal handling 2241initialization and for signals the wake up tasks that are waiting 2242to send or receive message queues.Both are important. (submitted 2243by hkwilton). 2244* drivers/can.c: Fixed a semaphore overflow problem in the CAN 2245driver (reported by Li Zhouy (Lzzy)). 2246* Added a new ADC driver infrastructure and TI ADS1255 driver 2247both developed and submitted by Li Zhouy (Lzzy)). 2248 2249See the Changelog for additional changes included in this release. 2250 2251NuttX-6.9 2252--------- 2253 2254The 76th release of NuttX, Version 6.9, was made on September 11, 2011 2255and is available for download from the SourceForge website. Note 2256that release consists of two tarballs: nuttx-6.9.tar.gz and 2257apps-6.9.tar.gz. Both may be needed (see the top-level nuttx/README.txt 2258file for build information). 2259 2260This release includes a few new features and several important bug fixes. 2261The new features (some still incomplete) include: 2262 2263* Analog Support/ NXP LPC17xx: New DAC sub-system including ADC and DAC 2264drivers for the LPC17xx. Extensions to the ADS1255 driver. 2265(Contributed by Li Zhuoyi (Lzyy)) 2266 2267* Power Management: Added a new NuttX power management sub-system for 2268controlling and coordinating reduced power states. At present, only 2269verified in a simulation environment. 2270 2271* I2C Test Tool: A new application was added that can be used to 2272verify and debug I2C interfaces from the NuttShell (NSH) command 2273line. 2274 2275* NuttShell (NSH): In addition to the I2C test tool, a date command 2276is now supported (if CONFIG_RTC is defined) that can be used to 2277read and set the RTC. 2278 2279* NXP LPC17xx: I2C and DAC driver for the NXP LPC17xx family submitted by Li Zhuoyi 2280(Lzyy) 2281 2282* Kinetis Cortex-M4: Added a SDHC driver for the Kinetis parts. 2283Complete debug of the Kinetis SDHC driver was not completed, however, 2284do to some higher priority tasks that forced me to stop work. 2285 2286* Other new drivers: Driver for I2C-based at24cxx EEPROM submitted by 2287Li Zhuoyi (Lzyy); Driver for the LM-75 temperature sensor. Support 2288for the LM-75 temperature sensor integrated into the SM3210E-EVAL 2289development board. 2290 2291* NuttX Graphics (NX): Added new NX interfaces for drawing circles, 2292both circle outlines and filled circles. 2293 2294* FLASH: Added a function that accepts the path to a block driver and 2295then erases the underlying FLASH memory 2296 2297* Build System: The Make export logic now also tries to track down all 2298architecture-specific header files and include these in the NuttX 2299export bundle as well. Various changes and modifications so that 2300NuttX wil build on FreeBSD using the ASH shell (submitted by Kurt Lidl). 2301 2302Bugfixes, order roughly on decreasing criticality include: 2303 2304* STM32 I2C Driver: Add resets, timeout, and other fixes to work 2305reliably with the I2C tool. Corrected a major error introduced in 2306NuttX 6.8. 2307 2308* BCH Driver. Several important bugs (noted by Li Zhuoyi (Lzyy)) 2309were fixed. 2310 2311* C Library: Fixed errors in gmtime() and gmtime_r() that could lead to 2312errors in date calculations. 2313 2314* Timing: Correct an error in the tv_nsec calculation that happens 2315only config CONFIG_RTC is enabled 2316 2317* Build System: Use of -print-libgcc-file-name to get path to 2318libgcc.a might select the wrong libgcc.a if a multilib toolchain 2319is used 2320 2321NuttX-6.10 2322---------- 2323 2324The 77th release of NuttX, Version 6.10, was made on October 6, 2011 2325and is available for download from the SourceForge website. Note 2326that release consists of two tarballs: nuttx-6.10.tar.gz and 2327apps-6.10.tar.gz. Both may be needed (see the top-level nuttx/README.txt 2328file for build information). 2329 2330This release corresponds with SVN release number: r4028 2331 2332This release includes a few new features and several important bug fixes. 2333The new features (some still incomplete) include: 2334 2335* CDC ACM serial class device-side driver 2336 2337* RTC: Now supports hi-res and lo-res hardware RTC. The lo-res RTC 2338runs at 1Hz. 2339 2340* STM32 I2C driver. Now supports faster, polled mode of operation. 2341Added an I2C trace capability. 2342 2343* ADS7843E touchscreen driver. As used on the SAM3U-EK development 2344board. 2345 2346* AT91SAM3U SPI driver. To support the ADS7843E toucscreen 2347 2348* X11 Support on simulation target. Build errors in the X11 windows 2349for the simulated target have been correct. Added support for a 2350simulated touchscreen on the X11 window (based on mouse inputs). 2351 2352* System Timer. Added support for a 64-bit system timer. 2353 2354* TIFF Support. Added a TIFF library (currently used for storing 2355LCD screen shots). 2356 2357* LCD Support. Added a test to verify that we read and write correct 2358to LCD GRAM memory. 2359 2360* I2C tool. Extended to support to include a verify command and 2361repetitions and auto-address increment for most commands. 2362 2363* USB terminal example. Line oriented serial bridge connects a host 2364USB serial terminal to a host UART serial terminal. 2365 2366* Build System. apps/ Makefile will now include external directories 2367in the application build. 2368 2369Bugfixes, order roughly on decreasing criticality include: 2370 2371* Message Queues. Correct errors in mq_timedsend() and 2372mq_timedreceive(). 2373 2374* FAT. Writes that cross sector boundaries, stray write into the FAT, 2375and a FAT long file name issue 2376 2377* NXFFS. Added a missed error check. Files cannot be opened for 2378writing if they are already opened for reading. 2379 2380* Library: fopen() for append modse was not appending. 2381 2382* STM32 I2C driver. Correct another conflict between concurrent FSMC 2383and I2C1 accesses. Fixed some bad error detection logic. 2384 2385* STM32 SDHC driver. Interrupts were being left disabled. 2386 2387NuttX-6.11 2388---------- 2389 2390The 78th release of NuttX, Version 6.11, was made on November 12, 2011 2391and is available for download from the SourceForge website. Note 2392that release consists of two tarballs: nuttx-6.11.tar.gz and 2393apps-6.11.tar.gz. Both may be needed (see the top-level nuttx/README.txt 2394file for build information). 2395 2396This release corresponds with SVN release number: r4090 2397 2398This release is a maintenance release that includes a few new features 2399and some important bugfixes. New features include: 2400 2401* NX Graphics: New interfaces to read from graphics memory 2402* Drivers: AT24 FLASH driver will now supports clustering of blocks 2403to achieve a larger, more usable block size for NXFFS. 2404* STM32: LCD color corrections 2405* PIC32: Board configuration for the Microchip PIC32 Ethernet Starter kit 2406(not yet verified), new GPIO support library, button and LED support 2407for the Sure Electronics PIC32MX board. A lot of progress has been 2408made on the PIC32 NuttX port, but it is still not ready for prime time. 2409* NXP LPC3152: Board configuration for the Embedded Artists EA3152. 2410 2411Bugfixes, order roughly on decreasing criticality include: 2412 2413* NXFFS: Corrected critical bugs in initialization, some full FLASH handling, 2414and errors in certain cases where the FLASH is repacked. 2415* ARM EABI: Fix stack alignment required for passing floating point values. 2416* Build system: Fix build issues when g++ is used as the compiler. 2417* NX Graphics: Bitmap error handling, correct RGB color conversion macros, 2418Error when the background window is released. 2419* STM32: RTC build fixes, LCD color corrections 2420* Simulation target: build fixes 2421* C Library: fclose() return value. 2422 2423See the change log for more detailed information. 2424 2425NuttX-6.12 2426---------- 2427 2428The 79th release of NuttX, Version 6.12, was made on December 6, 2011 2429and is available for download from the SourceForge website. Note 2430that release consists of two tarballs: nuttx-6.12.tar.gz and 2431apps-6.12.tar.gz. Both may be needed (see the top-level nuttx/README.txt 2432file for build information). 2433 2434This release corresponds with SVN release number: r4141 2435 2436New features in this release include: 2437 2438* STM32. Basic support added for the STM32 F4 family. Board support 2439verified for the STMicro STM3250G-EVAL board. 2440* FAT. Enhanced partition handling. 2441* SDIO-Based SD Card support. Add support for large (>4Gb) devices 2442* Graphics. Added four new small sans serif fonts. 2443* Drivers. Fix a banding problem with the R61580 LCD. 2444 2445Bugfixes, order roughly on decreasing criticality include: 2446 2447* FAT. Fix errors in how the first entries in the root directory are 2448added. Fix errors in FAT date/time handling. 2449* Signals. Fix bug in certain sig_timedwait() error handling. 2450* Drivers. Fix cloned errors in poll() handling in several drivers. 2451* Message Queues. errno was not being set correctly by mq_notify(). 2452* C Library. wchar_t is a built-in type for C++ 2453 2454NuttX-6.13 2455---------- 2456 2457The 80th release of NuttX, Version 6.13, was made on December 26, 2011 2458and is available for download from the SourceForge website. Note 2459that release consists of two tarballs: nuttx-6.13.tar.gz and 2460apps-6.13.tar.gz. Both may be needed (see the top-level nuttx/README.txt 2461file for build information). 2462 2463This release corresponds with SVN release number: r4231 2464 2465New features in this release include: 2466 2467* Drivers. New standard interface for PWM drivers and common 2468"upper half" PWM driver. Updated the MP25x driver to support 2469the Macronix MX25 chips (submitted by Mohammad Elwakeel). 2470* STM32 F1/F4. Added an Ethernet driver, ADC drivers, DAC driver, 2471PWM driver, CAN driver, F4 RTC driver, F4 DMA support, 2472logic for saving/restoring F4 FPU registers in context switches. 2473* STM32 Boards. Added STM3240G-EVAL DHPCD and nettest configuration. 2474Support for a new STM32 board, the HY-Mini STM32v board, was 2475contributed by Laurent Latil 2476* PIC32. The port to the Microchip PIC32MX is finally functional and 2477reliable. The NuttX PIC32 port has verified configurations for 2478the OS test and the NuttShell (NSH) both exist. 2479* Tests: New re-usable tests (in apps/examples) for PWM, ADC, and 2480CAN loopback. Several existing tests can now be built as NSH built-in 2481applications (dhcpd, nettest, and all of the new tests). 2482 2483Bugfixes, order roughly on decreasing criticality include: 2484 2485* STM32: Correct handling of data overrun conditions. Existing logic 2486would hang with infinite interrupts when a data overrun occurred. 2487* DHCPD. Fix several problems using host order address where network 2488addresses expected (and vice versa). 2489 2490And several others. See the ChangeLog for more details. 2491 2492NuttX-6.14 2493---------- 2494 2495The 81st release of NuttX, Version 6.14, was made on January 15, 2012, 2496and is available for download from the SourceForge website. Note 2497that release consists of two tarballs: nuttx-6.14.tar.gz and 2498apps-6.14.tar.gz. Both may be needed (see the top-level nuttx/README.txt 2499file for build information). 2500 2501This release corresponds with SVN release number: r4301 2502 2503New features in this release include: 2504 2505* Drivers. The upper-half PWM driver will now support a pulse count (as 2506would be needed to control a stepper motor). 2507 2508* STM32. The CAN driver has been verified in loopback mode. ADC driver 2509support for the STM32 F4. Add support for UART4-5 and USART6 2510(Contributed by Mike Smith). The PWM driver now supports a pulse 2511count for TIM1 and TIM8. Timer driver now supports the F4's 32-bit 2512timers (Contributed by Mikhail Bychek) 2513 2514* STM32F4Discovery. Support for the STM32F4-Discovery board contributed 2515by Mike Smith. 2516 2517* STM3240G-EVAL. Add support for user control of LEDs. 2518 2519* LPC17xx. Add support for loopback mode to CAN driver. CAN TX done 2520perations are now interrupt driver. Now supports configurable CAN bit 2521rate. 2522 2523* LPC1766-STK. Add support for on-board buttons. Add support for user 2524control of LEDs. 2525 2526* LM3S. Add support for the LM3S6432S2E on the TI RDK-S2E (Contributed 2527by Mike Smith) 2528 2529* PIC32MX. USB device-side driver (needs further testing). A partial 2530Ethernet driver is also in place. 2531 2532* Library. Support added for fixed floating point fieldwidths in output 2533formatting (Contributed by Mikhail Bychek) 2534 2535* Build. New targets apps_clean and apps_distclean to simplify working 2536with application directories. 2537 2538Bugfixes include: 2539 2540* Drivers. Fixed a buffer-full test in the upper-half CAN driver. 2541 2542* STM32. GPIO initialize logic (submitted by Mike Smith). Fix the 2543debug logic that dumps the GPIO configuration. 2544 2545* LPC17xxx. Correct an integer overflow in GPIO interrupt setup 2546(prevented pins > 15 from being used as interrupt sources). Correct 2547a value used in GPIO interrupt number range test. 2548 2549* FAT. Now returns the correct error value when it is unable to 2550recognize the file system. 2551 2552* Build. macOS build fixes (submitted by Mike Smith) 2553 2554And several others. See the ChangeLog for more details. 2555 2556NuttX-6.15 2557---------- 2558 2559The 82nd release of NuttX, Version 6.15, was made on February 12, 2012, 2560and is available for download from the SourceForge website. Note 2561that release consists of two tarballs: nuttx-6.15.tar.gz and 2562apps-6.15.tar.gz. Both may be needed (see the top-level nuttx/README.txt 2563file for build information). 2564 2565This release corresponds with SVN release number: r4387 2566 2567New features and extended functionality: 2568 2569* General Drivers: Add support for (29-bit) extended CAN IDs. Add an 2570infrastructure to support battery drivers. Add a driver for MAX17040x 2571battery "fuel gauge". Add support for Composite USB drivers (in 2572particular for a CDC/ACM with MSC USB composite driver). 2573 2574Added a new RAM logging driver. This will allow debug output into 2575a RAM buffer associated with a character driver at /dev/ramlog. 2576Added the new command 'dmesg' to NSH that can be used to dump the 2577current contents of the log. This is useful for systems that do not 2578have the usual serial console (for example, if you only have a 2579Telnet console with NSH). 2580 2581* Networking: Add a lower level, primitive socket interface. Telnet 2582driver: 2583 2584A New Telnet daemon was created. It wraps a Telnet session within a 2585character driver that can serve as a "controlling terminal." The 2586Telnet session will then be inherited by tasks created from the 2587Telnet session and the stdin/stdout from the created task will 2588still go through the same Telnet connection. 2589 2590* STM32 Drivers. PWM driver pulse count was limited to 128; now is 2591(essentially) unlimited. Add support for (29-bit) extended CAN IDs. 2592Add support for I2C3. The SDIO driver is (mostly) verified on the 2593STM32 F4 platforms. 2594 2595* LPC17xx Drivers. Extended the CAN driver so that the TSEG1 and TSEG2 2596bit times can be set via the NuttX configuration. Add support for 2597(29-bit) extended CAN IDs. 2598 2599* PIC32 Drivers. The PIC32 Ethernet driver is code complete (but still 2600untested). 2601 2602* FTPD. Add a new FTP server daemon. This is based loosely on 2603the hwport_ftpd library provided by Jaehyuk Cho. 2604 2605* Library: Add support for on_exit(). Implemented tcsetattr() and 2606tcgetattr(). Moved the old, too-smart fgets() to a new application 2607library function called readline(). Dumbed down the original fgets(). 2608Add strcasestr(), avsprintf(), inet_ntop(), and inet_pton(). 2609Add support to enable or disable debug output. 2610 2611* Build system: Support for building a 32-bit simulation executable on 2612a 64-bit Linux machine. Correct a dependency issue in the arch/*/src/board 2613directory. 2614 2615Bugfixes: 2616 2617* System: Correct PTHREAD_MUTEX_INITIALIZER 2618 2619* FAT: Fix an error in the FAT statfs() reported by David Sidrane. 2620 2621* STM32: Fix clock frequencies for APB2 timers. Correct AFIO register 2622offset. 2623 2624* PIC32. Correct GPIOs used for LEDs on the Sure PIC32MX board. 2625 2626* NSH. Wait for a USB connection if a USB serial class is used to 2627interface with the host. 2628 2629Additional bugfixes, name changes, and other differences as detailed in the 2630ChangeLog. 2631 2632NuttX-6.16 2633---------- 2634 2635The 83rd release of NuttX, Version 6.16, was made on March 10, 2012, 2636and is available for download from the SourceForge website. Note 2637that release consists of two tarballs: nuttx-6.16.tar.gz and 2638apps-6.16.tar.gz. Both may be needed (see the top-level nuttx/README.txt 2639file for build information). 2640 2641This release corresponds with SVN release number: r4475 2642 2643New features and extended functionality: 2644 2645* ARMv7M Support: Includes new, streamlined Cortex-M exception 2646handling provided by Mike Smith. Context switching support for the 2647Cortex-M4 FPU registers is now provided (in both "lazy" and "non-lazy" 2648modes) 2649 2650* General Drivers: Added a generic "upper half" Quadrature Encoder driver. 2651The USB CDC/ACM serial driver can now be dynamically connected or 2652disconnected from the host (programmatically or using NSH commands). 2653 2654* STM32 Drivers: Added a "lower half" Quadrature Encoder driver. 2655Verified the STM32 F4 DMA driver; Added F4 DMA support to the existing 2656STM32 SDIO driver. 2657 2658* STM32 Board Support. Added support for the STM32 F2 family and 2659for the STM3220G-EVAL board (contributed by Gary Teravskis). 2660Support is now included for C++ static constructors (verified using 2661the Atollic toolchain). Added support for the SRAM available on the 2662STM3240G-EVAL board. 2663 2664* PIC32 Drivers. PIC32MX USB (device) driver is now functional. 2665The PIC32MX Ethernet driver not yet fully verified (and an 2666unverified SPI driver is also available). 2667 2668* Networking. Added a lower-level, thread-independent socket layer. 2669Parts of this layer were created in 6.15 to support the FTPD 2670controlling terminal; this support has been extended in order 2671to support an NFS file system (not yet released). 2672 2673* NuttShell (NSH). NSH will now support a USB serial connection for 2674the console (such as CDC/ACM). This is useful in environments 2675where there is no physical serial port on the board. 2676 2677* Build System. Reorgnaization of networking header files. 2678 2679Critical Bugfixes. The following bug fixes are considered critical: 2680 2681* Networking: Fixed a "leak" in the TCP/IP read-ahead buffering logic. 2682Corrected an error in TCP/IP sequence numbering/ACK logic which 2683occurred when read-ahead buffering memory is exhausted. 2684 2685* STM32 Drivers: Fixed an buffer sizing error in the STM32 Ethernet 2686driver. 2687 2688Additional Bugfixes: Other important bug fixes are listed below. See 2689the ChangeLog of a complete, detailed list of bug fixes. 2690 2691* Networking: Corrected recv()/recvfrom() return value. Added logic to 2692monitor for loss of connection after a new connection has been 2693established via accept() (Contributed by Max Nekludov). Add 2694logic to select() to correctly handle POLLHUP (Contributed by Max 2695Nekludov) 2696 2697Additional bugfixes, name changes, and other differences as detailed in the 2698ChangeLog. 2699 2700NuttX-6.17 2701---------- 2702 2703The 84th release of NuttX, Version 6.17, was made on April 14, 2012, 2704and is available for download from the SourceForge website. Note 2705that release consists of two tarballs: nuttx-6.17.tar.gz and 2706apps-6.17.tar.gz. Both may be needed (see the top-level nuttx/README.txt 2707file for build information). 2708 2709This release corresponds with SVN release number: r4607 2710 2711New features and extended functionality: 2712 2713* Networking: Additional low-level, thread-independent socket 2714interfaces (for NFS client support). 2715 2716* RTC: Added a new interface call clock_synchronize(). This function 2717will reload the system time from an RTC and is required when the 2718system re-awakens from certain deep-sleep modes. 2719 2720* Graphics: Add NxConsole. This is a character device driver that 2721wraps an NX window and can be re-directed for stdout. This allows, 2722for example, a pop-up graphics window that contains a NuttShell (NSH) 2723session. A test of NxConsole is available at apps/examples/nxconsole. 2724 2725* Watchdog Drivers: Added an interface definition an "upper half" 2726driver to support watchdog timers. 2727 2728* Calypso: Support for TI Calypso-based cellphones (as supported by 2729the Osmocom-BB project) was contributed by members of the Osmocom-BB 2730team. This includes configurations for the Compal e88 and e99 phones. 2731 2732* USB Device Interface: Needed to extend the USB device interface 2733because there was no mechanism for passing endpoint OUT data that 2734may need to accompany a setup request. 2735 2736* STM32 drivers: Added some power management controls for entering 2737reduced power consumption states. An OTG FS driver was completed 2738and partially verified (this driver seems to be functional but since 2739it has been test so lightly, it might better be listed in the 2740next section "Work in progress"). 2741 2742* PIC32 drivers: The PIC32 Ethernet driver is now stable. The PIC32 2743USB device controller driver is now functional (but not yet stable). 2744 2745* PIC32 boards: Added support for the Sure DB-DP11212 PIC32 General 2746Purpose Demo Board. There is now a PIC32 Starter Kit that 2747provides NSH only through a Telnet connection. 2748 2749* Build System: Some header files were moved into include/nuttx. 2750The goal is to move any non-standard header files to include/nuttx 2751or include/arch. Moved include/math.h to include/nuttx/math.h; 2752this file is now only instantiated as the 'system' math.h if 2753CONFIG_ARCH_MATH_H=y is defined. 2754 2755* Tools: Added tools/cmpconfig.c, a tool for comparing two 2756configuration files. 2757 2758Work in progress. This release includes some partially completed 2759work that is still not ready for prime time. 2760 2761* NFS Client: Work is progressing on support for an NFS client 2762file system. This is a port of the BSD NFS client file system 2763that is being done by Jose Pablo Rojas V. 2764 2765* Automated Configuration: Automated configuration based on the 2766kconfig-frontends tool is being incorporated into the build 2767system. The configuration is still not complete enough for 2768general use in this release. 2769 2770* STM32 Drivers: Added files that will (eventually) hold an STM32 2771OTG FS host driver. This is still a work in progress. 2772 2773Bugfixes: 2774 2775* Networking: Corrected a deadlock that only occurred when 2776executing the NSH 'ifconfig' command over Telnet. 2777 2778* File system: Fix incorrect return errno value from read() when 2779the file is opened write-only. 2780 2781* Graphics: Fix several compilation errors that have crept into the 2782multi-user NX server because of lack of use. 2783 2784* STM32: In order to use CAN2, both CAN1 and CAN2 clocking must be 2785enabled. Fixed a troublesome bug in the STM32 F4 I2C driver that 2786resulting in timeouts. 2787 2788* LPC17xx: Fixes for errors the crept in the LPC17xx DAC logic 2789Contributed by Lzyy). 2790 2791* Build System: Reordered the link command line to account for new 2792versions of libgcc.a that require symbols from the application 2793(abort()). 2794 2795NuttX-6.18 2796---------- 2797 2798The 85th release of NuttX, Version 6.18, was made on May 19, 2012, 2799and is available for download from the SourceForge website. Note 2800that release consists of two tarballs: nuttx-6.18.tar.gz and 2801apps-6.18.tar.gz. Both may be needed (see the top-level nuttx/README.txt 2802file for build information). 2803 2804The majority of changes in this release are focused on supporting the 2805synchronized release of NxWM, the NuttX tiny window manager. That 2806window manager is released as part of the NxWidgets package, but depends 2807upon many of the changes in this NuttX release. 2808 2809This release corresponds with SVN release number: r4751 2810 2811New features and extended functionality: 2812 2813* Drivers. Added a watchdog timer driver infrastructure. Add general 2814support for STMicro STMPE811 I/O Expander/touchscreen device. 2815 2816* STM32. Add support for the STM32 IWDG and WWDG watchodog timers. DMA 2817now supports circular buffer mode; serial driver now uses circular 2818DMA to improve Rx performance (Contributed by Mike Smith). 2819 2820* STM3240G-EVAL Board. Add support for the LCD and for the STMPE811 2821I/O Expander as a touchscreen controller. 2822 2823* PIC32 Boards. Board support for the Mikroelektronika PIC32MX7 2824Multimedia Board (MMB) and for the Sparkfun UBW32 PIC32 board. 2825 2826* NX. Framed windows are now draw in three colors instead of just two. 2827Numerous other extensions needed to support NxWM (see the ChangeLog 2828for details). 2829 2830* Library. Add prctl() command that can be used to setting and getting 2831the names of threads. This (plus several other improvements and bug 2832fixes) are part of a larger effort to improve task monitoring 2833capabilities. 2834 2835Work in progress. This release includes some partially completed 2836work that is still not ready for prime time. 2837 2838* NFS Client. Work is progressing on support for an NFS client 2839file system. This is a port of the BSD NFS client file system 2840that is being done by Jose Pablo Rojas V. 2841 2842* Automated Configuration. Automated configuration based on the 2843kconfig-frontends tool is being incorporated into the build 2844system. The configuration is still not complete enough for 2845general use in this release. 2846 2847* STM32 Drivers. Added files that will (eventually) hold an STM32 2848OTG FS host driver. This is still a work in progress. 2849 2850Bugfixes (see the change log for details) : 2851 2852* sched_setscheduler() return value (Contributed by Richard Cochran). 2853 2854* stdio. Ignore CONFIG_STDIO_LINEBUFFER if the file was opened in binary mode. 2855 2856* fopen(). Correct an error in parsing open mode string. 2857 2858* serial driver. Improved performance be reducing the amount of time 2859that Rx interrupts are disabled. 2860 2861* recvfrom(). Fix a compilation problem. 2862 2863* CDC/ACM device driver. Fix an infinite loop that occurs when the serial 2864device is unregistered. 2865 2866* STM32 OTG FS device driver. Numerous fixes and the driver is partially 2867functional but there are still some issues that become apparent when 2868debug output is disabled. 2869 2870* fcntl(). Always returned zero on success; however, some fcntl commands 2871need to return non-zero values on success. 2872 2873* graphics: Many multi-use mode fixes added to support NxWM (see the 2874ChangeLog for details). Auto-raise is temporarily disabled in multi- 2875user mode because it causes some problems with NxWM. 2876 2877* on_exit(): Fix compilation errors if CONFIG_SCHED_ONEXIT is enabled. 2878 2879NuttX-6.19 2880---------- 2881 2882The 86th release of NuttX, Version 6.19, was made on June 15, 2012, 2883and is available for download from the SourceForge website. Note 2884that release consists of two tarballs: nuttx-6.19.tar.gz and 2885apps-6.19.tar.gz. Both may be needed (see the top-level nuttx/README.txt 2886file for build information). 2887 2888This release corresponds with SVN release number: r4847 2889 2890This release features new support for a Network File System (NFS) client. 2891This feature allows a tiny, embedded MCU to mount a remote file system 2892exported by an NFS server and then to access the file system as it would 2893any local file system. Then the tiny MCU can effectively have terabytes 2894of storage! 2895 2896This might be useful for data collection, for MCU configuration information, 2897for software updates, for providing modular, loadable code modes, controlling 2898a "farm" of MCUs, ... there are many possibilities and opportunities for 2899innovation! 2900 2901The NuttShell (NSH) now supports the following command: 2902 2903nfsmount <server-address> <mount-point> <remote-path> 2904 2905That command will mount the remote NFS server directory <remote-path> at 2906<mount-point> on the target machine. <server-address> is the IP address of 2907the remote server. 2908 2909The NFS development was the graduation project of Jose Pablo Rojas V. who 2910is a student at the Instituto Tecnológico de Costa Rica (ITCR, or TEC). 2911A lot of effort went into understanding what a tiny, embedded NFS client should 2912do and getting the target resource usage to a bare minimum. Only around a 2913kilobyte or so of memory is required to run the NFS client (and most of that 2914for I/O buffers). Jose Pablo has spent several months living with NFS and 2915should be congratulated. 2916 2917Additional new features and extended functionality: 2918 2919* Drivers: SSD1289 LCD driver, MIO283QT2 LCD driver 2920 2921* LM3S: Additional register definition header files (contributed by Max 2922Neklyudov). 2923 2924* STM32 Boards: The STM32F4Discovery will now support an SSD1289 LCD, 2925The STM3220G-EVAL board support is now equivalent to the STM3240G-EVAL 2926board support. 2927 2928* PIC32 Boards: The Mikroelektronika PIC32MX7 MMB board port is now 2929functional, very complete, and stable. 2930 2931* Graphics: The NxConsole will now take keyboard input from the NX graphics 2932subsystem. This means that if there are multiple NxConsole windows, only 2933the top instance that has focus will receive the keyboard input. 2934 2935* apps/: Add the capability to use an arbitrary USB device as the console 2936(not necessarily /dev/console). Additional enhancements for USB consoles. 2937Added the 'mv' command. 2938 2939Work in progress. This release includes some partially completed 2940work that is still not ready for prime time. 2941 2942* Automated Configuration. Automated configuration based on the 2943kconfig-frontends tool is being incorporated into the build 2944system. The configuration is still not complete enough for 2945general use in this release. 2946 2947* STM32 Drivers. Added files that will (eventually) hold an STM32 2948OTG FS host driver. This is still a work in progress. 2949 2950Bugfixes (see the change log for details) : 2951 2952* General: sleep() and usleep() return values, sig_timedwait() errno setting 2953on timeout. 2954* Drivers: STMPE811 touchscreen driver, USB PLC2303, USB CDC/ACM 2955* STM32: Several USB device controller driver fixes, F4 interrupt priorities 2956(contributed by Mike Smith). 2957* Graphics: Keyboard input, fill trapezoid bug 2958 2959As well as other, less critical bugs (see the ChangeLog for details) 2960 2961NuttX-6.20 2962---------- 2963 2964The 87th release of NuttX, Version 6.20, was made on July 12, 2012, 2965and is available for download from the SourceForge website. Note 2966that release consists of two tarballs: nuttx-6.20.tar.gz and 2967apps-6.20.tar.gz. Both may be needed (see the top-level nuttx/README.txt 2968file for build information). 2969 2970This release corresponds with SVN release number: r4937 2971 2972Additional new features and extended functionality: 2973 2974* Power Management: An evolving power management example is being 2975created by Diego Sanchez. This effort currently involves on the 2976STM32 F1 but clearly demonstrates the NuttX power management 2977system which will automatically drive the system to lower power 2978usage states due to lack of use. 2979 2980* Drivers: Added a driver for the SST 25 SPI-based FLASH parts. 2981 2982* PIC32: Added support for the PIC32MX1 and PIC32MX2 families. 2983Added support for the microchipOpen and Pinguino toolchains. 2984 2985* NXP LPC43XX: Added support for the entire LPC43xx family 2986 2987* PIC32 boards: Added support for the DTX1-4000L "Mirtoo" module 2988from http://www.dimitech.com/ (PIC32MX2). 2989 2990* NXP LPC43XX Boards: Added support for NGX LPC4330-Xplorer board. 2991 2992* NXP LPC17XX Boards: Added support for Micromint Lincoln60 board 2993(LPC1769). 2994 2995* LM3S Boards: Add a configuration to support the TI/Stellaris 2996EKK-LM3S3B96 development board. Contributed by Jose Pablo Rojas V. 2997 2998* Library: NuttX now supports platform-specific stdarg.h header 2999files. 3000 3001Work in progress. This release includes some partially completed 3002work that is still not ready for prime time. 3003 3004* Automated Configuration. Automated configuration based on the 3005kconfig-frontends tool is being incorporated into the build 3006system. The configuration is still not complete enough for 3007general use in this release. 3008 3009* STM32 Drivers. Added files that will (eventually) hold an STM32 3010OTG FS host driver. This is still a work in progress. 3011 3012Bugfixes (see the change log for details) : 3013 3014* PIC32: GPIO output configuration (critical bug) 3015* STM32: Typos in pin mapping files. 3016* LM3S: Fixed an optimization related but that caused slow start-up 3017times if optimization was disabled. 3018* Library: Fixed signed extension but in all limit.h files 3019(reported by Lorenz Meier). inet_ntoa compilation failure 3020on Z80. 3021 3022As well as other, less critical bugs (see the ChangeLog for details) 3023 3024NuttX-6.21 3025---------- 3026 3027The 88th release of NuttX, Version 6.21, was made on August 25, 2012, 3028and is available for download from the SourceForge website. Note 3029that release consists of two tarballs: nuttx-6.21.tar.gz and 3030apps-6.21.tar.gz. Both may be needed (see the top-level nuttx/README.txt 3031file for build information). 3032 3033This release corresponds with SVN release number: r5052 3034 3035Additional new features and extended functionality: 3036 3037* Core: Add support for multiple registered atexit() functions. Syslog 3038extended: Now any character driver may be used for the debug logging 3039device. Mountpoint traversal logic. 3040* Drivers: Added support for the TI PGA112-7 amplifier/multiplexor. 3041* LPC43xx: Added clock ramp-up logic to run at 204 MHz 3042* LPC43xx Drivers: SPIFI block driver, RS-485 support, Minimal termios 3043support. Framework for USB0 device controller driver. 3044* LPC17xx Drivers: Minimal termios support 3045* STM32: Support for STM32 F1 "Value Line" (contributed by Mike Smith). 3046Add support for STM32 F107 "Connectivity Line" (contributed by Max 3047Holtzberg). 3048Clock restart logic needed for recovery from low power modes. 3049* STM32 Drivers: RTC alarm support. Usable for wakeup from sleep mode, 3050Minimal serial termios support. USB OTG FS host driver (alpha). 3051* STM32 Boards: Add power management hooks for the STM32F4Discovery, 3052Add support for the Olimex STM32-P107 (contributed by Max Holtzberg). 3053* PIC32: Add support for the Pinguino MIPS toolchain. 3054* PIC32 Drivers: GPIO driver now supports F1 analog regiaters (ANSEL). 3055* PIC32 Boards: Add support for the PGA117 on the Mirtoo module. 3056* Calypso: Add support for the SSD1783 LCD on the Compal E99. 3057* Library: cfsetispeed(), cfsetospeed(), tcflush(), memchr(), and 3058memccpy(). 3059* Applications: Port of freemodbus-v1.5.0. Add support for testing 3060devices with multiple ADC, PWM, and QE devices. 3061NSH: NSH 'mount' command (with no arguments) will now show mounted 3062volumes. Add new NSH 'df' command. Extended 'help' support. NSH 3063now catches the return value from spawned applications (provided 3064by Mike Smith). 3065* Build System: mkconfig will not define CONFIG_DRAM_END. A lot of 3066progress has been made on the automated NuttX configuration logic 3067(Thanks go to Richard Cochran). 3068* Documentation: Document ways to customize the behavior of NSH. 3069 3070Bugfixes (see the change log for details) : 3071 3072* Serial drivers (all): Fix ioctl return value. Common "upper half" 3073serial driver will now return with EINTR if a serial wait is 3074interrupted by a signal. 3075* FAT: Fix statfs() file name length. 3076* LPC43xx: Clock configuration. 3077* STM32: Pinmap fixes, SPI driver re-initialization 3078* STM32 Boards: Correct and lower SDIO frequency for F2 and f4 boards. 3079* AVR: C++ build issues. 3080* PM: Fix a place where interrupts were not be re-enabled. 3081* Applications: NSH application start-up race conditions. 3082* Library: Fieldwidth and justification for %s format. Fixed several 3083issues with presenting floating point numbers. NULL definition 3084for C++ 3085 3086As well as other, less critical bugs (see the ChangeLog for details) 3087 3088NuttX-6.22 3089---------- 3090 3091The 89th release of NuttX, Version 6.22, was made on September 29, 2012, 3092and is available for download from the SourceForge website. Note 3093that release consists of two tarballs: nuttx-6.22.tar.gz and 3094apps-6.22.tar.gz. Both may be needed (see the top-level nuttx/README.txt 3095file for build information). 3096 3097This release corresponds with SVN release number: r5206 3098 3099Note that all SVN information has been stripped from the tarballs. If you 3100need the SVN configuration, you should check out directly from SVN. Revision 3101r5206 should equivalent to release 6.22 of NuttX 6.22: 3102 3103svn checkout -r5206 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code 3104 3105Or 3106 3107svn checkout -r5206 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code 3108 3109Additional new features and extended functionality: 3110 3111* RTOS: Application entry point is no longer user_start, but can be 3112configured using CONFIG_INIT_ENTRYPOINT. NuttX now supports two work 3113queues: A lower priority work queue (for extended processing) and a 3114higher priority work queue (for quick, high priority operations). 3115 3116* Memory Management: Added a new granule-based allocated that can be 3117used to manage, aligned and quantized DMA memory. 3118 3119* File System: Add hooks to allocate I/O memory with and external 3120allocated (need if required by DMA). 3121 3122* Networking: ENC28J60 driver is (finally) verified. 3123 3124* Drivers: Add hooks USB device drivers to allocate I/O memory with and 3125external allocated (need if required by DMA). Driver for the Windbond 3126SPI FLASH family (W25x16, W25x32, W25x64, and others). ADS7843E driver 3127extended for TSC2046 and XPT2046 and verified. 3128 3129* ARMv7-M: Added logic to reset the MCU using the NVIC. 3130 3131* STM32: Add support for STM32F103VET6. 3132 3133* STM32 Drivers: Add logic to re-initialize UARTs a second time to 3134enable DMA (Mike Smith). I2C driver error recovery (Mike Smith). 3135 3136* STM32 boards: Support for USB host added add to several configurations 3137(or at least explained in README files). Support for the Shenzhou 3138STM32F107 board (see www.armjishu.com). Support for M3 Wildfire 3139STM32F103 board (v2 and v3). 3140 3141* Build System: Kconfig string de-quoting logic. Remove comments from 3142defconfig files (Kate). Add tool to create NuttX-style symbol tables. 3143Numerous changes to configuration logic as needed for the new mconf-based 3144configuration (much of this from Richard Cochran). Refactor common 3145Make.defs logic into tools/Config.mk (Richard Cochran). 3146 3147* Library: Configurable terse output from strerror(). Added perror() (Kate). 3148Add %n format to sscanf() (Kate). 3149 3150* Applications: Numerous changes and extensions to the old uIP web server 3151(from Kate and Max Holtzberg, see the ChangeLog for specific extensions). 3152UDP network discovery utility (Max Holtzberg). Embeddable Lightweight 3153XML-RPC Server (http://www.drdobbs.com/web-development/an-embeddable-lightweight-xml-rpc-server/184405364, Max Holtzberg). 3154 3155Bugfixes (see the change log for details). Some of these are very important 3156(marked *critical*): 3157 3158* RTOS: Fixes to priority inheritance logic (*critical*). waitpid() 3159critical section. Assertion in work_cancel() (Mike Smith). mmap() (Kate). 3160 3161* FAT File System: Improper Boolean expression caused un-necessary writes 3162and performance issues (*critical*, Ronen Vainish). 3163 3164* Networking: Remove an un-necessary delay from recvfrom(). This greatly 3165improves network performance (*critical*, Max Holtzberg). 3166 3167* Graphics: NX parameter checking errors. 3168 3169* Drivers: Fix double release of memory in SDIO-based, MMC/SD driver 3170(Ronen Vainish). 3171 3172* LPC17xx: Ethernet driver fixes needed for certain PHYs (Kate). 3173 3174* AVR: Fix build error (Richard Cochran). 3175 3176* STM32: USB OTG FS host driver NAKing an retries. Power management 3177compilation errors (Diego Sanchez). Missing SPI3 remap logic. 3178 3179* STM32 Drivers: Fix for Ethernet errata for STM32F107 (*critical*). 3180Ethernet buffer alignment check. Add "kludge" to Ethernet driver to 3181handle DM9161 PHY which (at least on the Shenzhou board), sometimes 3182does not come up correctly. 3183 3184* Applications: THTTPD (Kate). NSH ping when IP address is on a different 3185network (Darcy Gong). 3186 3187* Library: fread(), fflush(), fdopen(): Fix error handling logic (Ronen 3188Vainish). Fix some field-width handling issues in sscanf() 3189 3190As well as other, less critical bugs (see the ChangeLog for details) 3191 3192NuttX-6.23 3193---------- 3194 3195The 90th release of NuttX, Version 6.23, was made on November 5, 2012, 3196and is available for download from the SourceForge website. Note 3197that release consists of two tarballs: nuttx-6.23.tar.gz and 3198apps-6.23.tar.gz. Both may be needed (see the top-level nuttx/README.txt 3199file for build information). 3200 3201This release corresponds with SVN release number: r5313 3202 3203Note that all SVN information has been stripped from the tarballs. If you 3204need the SVN configuration, you should check out directly from SVN. Revision 3205r5313 should equivalent to release 6.23 of NuttX 6.23: 3206 3207svn checkout -r5313 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code 3208 3209Or 3210 3211svn checkout -r5313 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code 3212 3213Additional new features and extended functionality: 3214 3215* RTOS: If both atexit() and on_exit() are enabled, use on_exit() to 3216implement atexit(). Updates for RGMP 4.0. 3217 3218* Binfmt: Add support for loading and executing ELF binary modules from 3219a file system. 3220 3221* Drivers: Maxim MAX11802 touchscreen controller (Petteri Aimonen) 3222 3223* STM32 Driver: Implementation of /dev/random using the STM32 Random Number 3224Generator (RNG). 3225 3226* STM32 Boards: ADC support for the Shenzhou IV board. Relay support for 3227the Shenzhou IV board. 3228 3229* C Library: Support is now included for the add-on uClibc++ C++ 3230standard library support. This includes support for iostreams, strings, 3231STL, RTTI, exceptions -- the complete C++ environment. (uClibc++ is 3232provided as a separate add-on package due to licensing issues). 3233 3234Optimized generic and ARM-specific memcpy() function. Optimized 3235memset() function. 3236 3237Add support for ferror(), feof(), and clearerror(). Add support for 3238__cxa_atexit(). 3239 3240Math Library: Port of the math library from Rhombus OS by Nick Johnson 3241(Darcy Gong). 3242 3243* Applications: New NSH commands: ifup, ifdown, urlencode, urldecode, 3244base64enc, bas64dec, md5 (Darcy Gong). Add support for NSH telnet login 3245(Darcy Gong). Enancements to NSH ping command to support pinging hosts 3246with very long round-trip times. Extensions to the ifconfig command 3247Darcy Gong), 3248 3249Many extensions to the webclient/wget and DNS resolver logic from Darcy 3250Gong. JSON, Base64, URL encoding, and MD5 libraries contributed by Darcy 3251Gong. 3252 3253New examples: ELF loader, JSON, wgetjson, cxxtest, relays. 3254 3255Bugfixes (see the change log for details). Some of these are very important 3256(marked *critical*): 3257 3258* Drivers: W25 SPI FLASH 3259 3260* STM32 Drivers: ADC reset 3261 3262* Graphics: Missing implementation of the blocked method (*critical*, 3263Petteri Aimonen). 3264 3265* C Library: Floating point numbers in printf and related formatting functions 3266(Mike Smith), cf[get|set]speed() (Mike Smith) 3267 3268As well as other, less critical bugs (see the ChangeLog for details) 3269 3270NuttX-6.24 3271---------- 3272 3273The 91st release of NuttX, Version 6.24, was made on December 20, 2012, 3274and is available for download from the SourceForge website. Note 3275that release consists of two tarballs: nuttx-6.24.tar.gz and 3276apps-6.24.tar.gz. Both may be needed (see the top-level nuttx/README.txt 3277file for build information). 3278 3279This release corresponds with SVN release number: r5447 3280 3281Note that all SVN information has been stripped from the tarballs. If you 3282need the SVN configuration information, you should check out directly from 3283SVN. Revision r5447 should equivalent to release 6.24 of NuttX 6.24: 3284 3285svn checkout -r5447 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code 3286 3287Or (HTTP): 3288 3289svn checkout -r5447 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code 3290 3291Additional new features and extended functionality: 3292 3293* RTOS: 3294 3295- Implemented the POSIX pause() function (still has some compiance 3296issues). 3297- Tasking logic is extended to support the notion of address 3298environments. An address environment is the key notion underlying 3299"process" vs. tasks. If tasks are created with address environments 3300(by binfmt), the OS will propagate that environment to child threads 3301and will destroy the address environment when the "process" exists. 3302- If support for the PATH variable is enabled, the OS start up logic 3303will create an initial environment containing the default PATH 3304setting (CONFIG_PATH_INITIAL). This initial PATH will then be 3305inherited by all tasks. 3306 3307* Binfmt 3308 3309- The NuttX binary loaders have been updated to support the PATH 3310environment variable. Now, if the PATH is properly defined, programs 3311can be executed from mass storage using only the file name. This 3312feature is added to support more standard behavior (eventually, NSH 3313will support execution of programs in file systems by just entering 3314the file name, perhaps in 6.25?). 3315- The NXFLAT and ELF binary loaders have been extended to create 3316address environments for any new tasks executed from the file system. 3317This feature requires that the architecture support a memory management 3318unit (MMU) and the address environment interfaces declared in 3319include/nuttx/arch.h (currently, this is only supported by the z180). 3320 3321* Drivers: LCD driver for the Univision UG-2864AMBAG01 OLED 3322 3323* STM32: Support for STM32F100 high density chips contributed by Freddie 3324Chopin. 3325 3326* STM32 Drivers: Added optional RS-485 direction bit control (from 3327Freddie Chopin). 3328 3329* STM32 Boards: 3330 3331- Support for generic STM32F100RC board contributed by Freddie Chopin. 3332- stm32f4discovery/nxlines: STM32F4Discovery support for the 3333UG-2864AMBAG01 OLED. 3334- stm32f4discovery/winbuild: A version of the NuttX OS test 3335configured to build natively on Windows. 3336- stm32f4discovery/elf: Now uses the PATH variable to find ELF 3337executables. 3338- configs/cloudctrl: Added for Darcy Gong's CloudController board 3339 3340* PIC32 Boards: Update the Mirtool configuration for Release 2 of the 3341Mirtoo module. 3342 3343* Calypso: Add Calypso keypad driver. From Denis Cariki. 3344 3345* ZiLOG: 3346 3347- Add support for the z180 chip family and, specifically, for 3348the P112 retro hardware (see http://p112.feedle.net/). 3349- All ZiLOG configurations updated to use the current ZDS-II 3350and/or SDCC toolchains. 3351 3352* Graphics: 3353 3354- Add a semaphore handshake so that operations on buffers from 3355the NXMU client will be blocked until the NX server operates on the 3356buffer data (from Petteri Aimonen). 3357- nxtk_subwindowmove() and nxtk_getwindow(): Improvements to clipping 3358logic from Petteri Aimonen. 3359 3360* C Library: lib/ sub-directory renamed libc/ (there is a new lib/ sub- 3361directory that is used to hold all archives). 3362 3363* C++: Exception stubs from Petteri Aimonen. 3364 3365* Applications: 3366 3367- Add NSH hexdump command to dump the contents of a file (or character 3368device) to the console (contributed by Petteri Aimonen). 3369- Extend the NSH ifconfig command plus various DHCPC improvements 3370(from Darcy Gong). 3371 3372* apps/examples: 3373 3374- ostest: Replace large tables with algorithmic prime number 3375generation. This allows the roundrobin test to run on platforms 3376with minimal SRAM (Freddie Chopin). 3377- keypadtest: A new keypad test example contributed by Denis Carikli. 3378- elf and nxflat: If CONFIG_BINFMT_EXEPATH is defined, these examples 3379will now use a relative path to the program and expect the binfmt/ 3380logic to find the absolute path to the program using the PATH 3381variable. 3382 3383* Build system: 3384 3385- New top-level Makefiles: Makefile.unix and Makefile.win (along with 3386numerous changes to other make-related files). This adds basic 3387support for building NuttX natively under Windows from a CMD.exe 3388window (rather than in a POSIX-like environment). This build: (1) 3389Uses all Windows style paths, (2) Uses primarily Windows batch 3390commands from cmd.exe, with (3) a few extensions from GNUWin32. 3391 3392This capability should still be considered a work in progress 3393because: (1) it has not been verfied on all targets and tools, 3394and (2) still lacks some of the creature-comforts of the more 3395mature environments (like a function configure.sh script and 3396'make menuconfig' support). 3397 3398- Example Windows native builds for STM32F4Discovery, eZ80, z16f, z8, 3399Z80, and Z180. 3400- Several configurations have been converted to work the kconfig- 3401frontends mconf configuration tool: stm32f4discovery/nxlines, and 3402all eZ80, z16f, z8, Z80, and Z180 configurations. 3403- Architectures now include a common Toolchain.defs file that can be 3404used to manage toolchains in a more configurable way (most of this 3405contributed by Mike Smith). 3406 3407* Build tools: 3408 3409- Renamed tools/winlink.sh to tools/copydir.sh. 3410- Several new tools/scripts to support the Windows native build: 3411tools/mkdeps.bat, tools/mkdeps.c, tools/link.bat, unlink.bat, and 3412copydir.bat. 3413- tools/incdir.sh and incdir.bat now support an -s option to generate 3414system header file paths. 3415- tools/b16.c: Fixed precision math conversion utility. 3416 3417Bugfixes (see the change log for details). Some of these are very important 3418(marked *critical*): 3419 3420* RTOS: Fix some backward conditional compilation in the work queue 3421logic (Freddie Chopin). 3422 3423* File System: Uninitialized variable caused assertions (from Lorenz 3424Meier). 3425 3426* Drivers: Partial fix for STM32 OTGFS device drivers and fix for short, 3427unaligned writes in the flash translation layer (drivers/mtd/ftl.c), 3428both from Petteri Aimonen. 3429 3430* STM32 Drivers: 3431 3432- Qencoder driver and TIM3 driver fixes from Ryan Sundberg. 3433- Fix timeout delay calculation in the STM32 OTG FS host driver. 3434 3435* LPC17xx Drivers: Resources not being properly released when I2C 3436driver is un-initialized. 3437 3438* Graphics: 3439 3440- Fix logic when the mouse drags outside of the window; fix 3441another "blocked message" handling case (both from Petteri Aimonen). 3442- nxtk_filltrapwindow(): Correct an offset problem (also from Peterri 3443Aimonen). 3444- nxglib_splitline(): Correct the "fat flat line" bug. 3445 3446* C Library: 3447 3448- nrand() changes to prevent coefficients from becoming zero which 3449would "lock up" the random number generate. 3450- Add rounding functions to the math library (contributed by Petteri 3451Aimonen). 3452 3453* Build system: Changes to MIN definitions in all limit.h header files 3454to avoid integer overflows. For example from (-128) to (-127 - 1) 3455(from Petteri Aimonen). 3456 3457* Applications: Modbus fixes from Freddie Chopin. 3458 3459As well as other, less critical bugs (see the ChangeLog for details) 3460 3461NuttX-6.25 3462---------- 3463 3464The 92nd release of NuttX, Version 6.25, was made on February 1, 2013, 3465and is available for download from the SourceForge website. Note 3466that release consists of two tarballs: nuttx-6.25.tar.gz and 3467apps-6.25.tar.gz. Both may be needed (see the top-level nuttx/README.txt 3468file for build information). 3469 3470This release corresponds with SVN release number: r5595 3471 3472Note that all SVN information has been stripped from the tarballs. If you 3473need the SVN configuration information, you should check out directly from 3474SVN. Revision r5595 should equivalent to release 6.25 of NuttX: 3475 3476svn checkout -r5595 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code 3477 3478Or (HTTP): 3479 3480svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code 3481 3482Additional new features and extended functionality: 3483 3484* OS Initialization 3485 3486- Removed support for CONFIG_BUILTIN_APP_START. This is not really a 3487useful feature and creates a violation of the OS layered 3488architecture. 3489 3490* Task Creation: 3491 3492- Implement a simple vfork(). In NuttX-6.25, this interface is 3493available only for ARM7/9, ARMv7-M (Cortext-M3/4), and MIPS32 3494(PIC32MX) platforms. 3495- exec() now sets the priority of the new task to the same priority as 3496the parent task (instead of the arbitrary value of 50). 3497- New, partially compliant implementations of execv() and execl(). 3498These are only partially compliant because they do not overlay any 3499existing "process space" but rather create the new task and exit(). 3500- Add a complete implementation of posix_spawn(). This standard 3501interface is a better match for an MMU-less architecture than are 3502vfork() plus execv() or execl(). 3503- Add a task start hook that will be called before the task main 3504is started. This can be used, for example, to schedule C++ 3505static constructors to run automatically in the context of the 3506new task. 3507 3508* Task Parentage 3509 3510- Repartitioned tasking data structures. All shared resources are now 3511collected together in a "task group". A task group includes the 3512original task plus all of the pthreads created by the task. 3513- Added support for remember the parent "task group" when a new task is 3514started. 3515- Added optional support to record the membership of each thread in 3516the "task group". 3517- Implement support for retaining child task status in the "task group" 3518after the child task exists. This is behavior required by POSIX. 3519But in NuttX is only enabled with CONFIG_SCHED_HAVE_PARENT and 3520CONFIG_SCHED_CHILD_STATUS 3521- Add internal logic to "reparent" a task. This is useful, 3522for example, where the child task is created through a trampoline 3523task that redirects I/O. Reparenting allows the caller of posix_spawn() 3524to be reparented for the eventual child thread. 3525- Added support for SIGCHLD. Sent to all members of the parent task 3526group when the file member of the child task group exits. 3527- If SIGCHLD and retention of child task exist status are enabled, then 3528a more spec-compliant version of waitpid() is enabled. 3529- New interfaces waitid() and wait() are also enabled when SIGCHLD 3530is enabled. 3531 3532* File System 3533 3534- dup() and dup2() can new be used with opened files in a mounted file 3535system. This supports re-direction of output in NSH to files. 3536- The binfs file system was moved from apps/builtin to fs/binfs. The 3537binfs file system was extended to support execution of "builtin 3538applications" using exec(), execv(), execl(), or posix_spawn(). 3539- Added logic based on SIGCHLD to automatically unload and clean-up 3540after running a task that was loaded into memory. 3541 3542* Binary Formats 3543 3544- Much of the logic for "builtin applications" was moved from 3545apps/builtin to nuttx/binfmt/libbuiltin. Includes some extensions 3546contributed by Mike Smith. 3547- A binary loader was added for builtin applications to support 3548execution of "builtin applications" using exec(), execv(), 3549execl(), or posix_spawn(). 3550 3551* Drivers: 3552 3553- Added logic to marshal and serialized "out-of-band" keyboard 3554commands (such as cursor controls and key release events) intermixed 3555with normal ASCII keypress data. The encoding is partially integrated 3556in the HID keyboard driver and the decoding full integrated into the 3557apps/examples hidkbd and keypadtest (the latter contributed by Denis 3558Carlikli). 3559- Driver for the UG-2864HSWEG01 OLED contributed by Darcy Gong. 3560- Add support for removable serial devices (like USB serial). This 3561support is enabled by CONFIG_SERIAL_REMOVABLE. 3562 3563* ARMv7-M: 3564 3565- Added an option to use the BASEPRI register to disable interrupts 3566(instead of the PRIMASK). This eliminates some innocuous hardfaults 3567that interfere with some debug tools. You need to switch to the 3568BASEPRI method only if you have such tool interference. 3569 3570* STM32 Drivers 3571 3572- Bring STM32 F1 DMA capabilities up to par with the STM32 F2/F4 3573(contributed by Mike Smith). 3574- Add support for USART single wire mode (Contributed by the PX4 3575team). 3576- Updates to support for SPI DMA on the STM32 F1/F2/F4. From 3577Petteri Aimonen. 3578 3579* STM32 Boards: 3580 3581- New configuration to support the UG-2864HSWEG01 OLED on the 3582STM32F4Discovery board. 3583- Added a posix_spawn() test configuration for the STM32F4Discovery. 3584 3585* LM3S/LM4F 3586 3587- Files and directories repartitioned to support both LM3S and LM4F 3588using the STM32 organization as a model. 3589- Partial definitions for the LM4F contributed by Jose Pablo Carballo 3590(this is still a work in progress). 3591 3592* LM3S Boards 3593 3594- Added scripts and documentation to use OpenOCD with the LM3S (from 3595Jose Pablo Carballo). 3596 3597* LPC176x/LPC178x 3598 3599- Files and directories repartitioned to support both LPC175x/LPC176x 3600and the LPC177x/LPC178x families using the STM32 organization as a 3601model. The LPC1788 port is a work in progress by Rommel Marcelo. 3602 3603* LPC176x/LPC178x Boards: 3604 3605- Added a configuration to support the Wave Share Open1788 board. 3606This is still a work in progress by Rommel Marcelo. 3607 3608* LPC2148 Boards: 3609 3610- Add basic support for the The0.net ZP213x/4xPA board (with the LPC2148 3611and the UG_2864AMBAG01 OLED). 3612- Add an nxlines configuration for the ZP213x/4xPA (with the LPC2148 3613and the UG_2864AMBAG01). 3614 3615* Simulator: 3616 3617- Add an nxlines configuration for the simulator. 3618 3619* Networking: 3620 3621- Add logic to work around delayed ACKs by splitting packets 3622(contributed by Yan T.). 3623- Split net_poll() to create the internal interface psock_poll(). 3624 3625* LCDs: 3626 3627- Added support for LCD1602 alphanumeric LCD (HD4468OU controller). 3628 3629* Graphics: 3630 3631- Added 5x8 monospace font. This tiny font is useful for graph 3632labels and for small bitmapped display. Contributed by Petteri 3633Aimonen. 3634 3635* Build System: 3636 3637- Add an options to better manage toolchain prefixes. 3638- Redesigned how the context target works in the apps/ directory. 3639The old design caused lots of problems when changing configurations 3640because there is no easy way to get the system to rebuild the 3641context. This change should solve most the problems and eliminate 3642questions like "Why don't I see my builtin application in NSH?" 3643 3644* Kconfig Files: 3645 3646- There are several new configurations that use the kconfig-frontends 3647tools and several older configurations that have been converted to 3648use these tools. There is still a long way to go before the conversion 3649is complete: 3650 3651configs/sim/nxwm 3652configs/sim/nsh 3653configs/stm3220g-eval/nxwm 3654configs/stm32f4discovery/posix_spawn 3655configs/olimex-lpc1766stk/nsh 3656configs/olimex-lpc1766stk/hidkbd 3657configs/olimex-lpc1766stk/nettest 3658configs/open1788/ostest 3659configs/stm32f4discovery/nsh 3660configs/stm32f4discovery/usbnsh 3661configs/lm326965-ek (all configurations) 3662configs/mcu123-214x/nsh 3663configs/ubw32/ostest 3664 3665* Tools: 3666 3667- tools/kconfig.bat: Kludge to run kconfig-frontends from a DOS shell. 3668- tools/configure.c: configure.c can be used to build a work-alike 3669program as a replacement for configure.sh. This work-alike 3670program would be used in environments that do not support Bash 3671scripting (such as the Windows native environment). 3672- tools/configure.bat: configure.bat is a small Windows batch 3673file that can be used as a replacement for configure.sh in a 3674Windows native environment. configure.bat is actually just a 3675thin layer that executes configure.exe if it is available. If 3676configure.exe is not available, then configure.bat will attempt 3677to build it first. 3678 3679* Applications: 3680 3681- New and modified examples: 3682 3683apps/examples/wlan: Remove non-functional example. 3684apps/examples/ostest: Added a test of vfork(). Extend signal 3685handler test to catch death-of-child signals (SIGCHLD). Add a 3686test for waitpid(), waitid(), and wait(). 3687apps/exampes/posix_spawn: Added a test of posix_spawn(). 3688 3689- NSH: 3690 3691NSH now supports re-direction of I/O to files (but still not from). 3692The block driver source argument to the mount command is now 3693optional for file systems that do not require a block driver. 3694NSH can now execute a program from a file system using posix_spawn(). 3695Added support for a login script. The init.d/rcS script will be 3696executed once when NSH starts; the .nshrc script will be executed 3697for each session: Once for serial, once for each USB connection, 3698once for each Telnet session. 3699 3700- Supports a new daemon that can be used to monitor USB trace outpout. 3701- Removed non-functional wlan example. 3702 3703Bugfixes (see the ChangeLog for details). Some of these are very important: 3704 3705* Tasking: 3706 3707- Fixed a *critical* task exit bug. Here is the failure scenario: 3708(1) sched_lock() is called increments the lockcount on the current 3709TCB (i.e., the one at the head of the ready to run list), (2) 3710sched_mergepending is called which may change the task at the head 3711of the ready-to-run list, then (3) sched_unlock() is called which 3712decrements the lockcount on the wrong TCB. The failure case that 3713I saw was that pre-emption got disabled in the IDLE thread, locking 3714up the whole system. 3715 3716* Signals: 3717 3718- sigtimedwait() would return a bad signal number if the signal was 3719already pending when the function was called. 3720 3721* Drivers: 3722 3723- Some SD cards will appear busy until switched to SPI mode for 3724first time. Having a pull-up resistor on MISO may avoid this 3725problem, but this fix from Petteri Aimonen makes it work also 3726without pull-up. 3727 3728* STM32 Drivers: 3729 3730- STM32 FLASH driver counting error (from Freddie Chopin). 3731- STM32 F4 maximum SPI frequency was wrong (corrected by Petteri 3732Aimonen). 3733 3734* STM32 Boards 3735 3736- Due to cloning of untested code, the logic to control on-board 3737LEDs did not work on any STM32 boards. 3738- Serial devices number /dev/ttyS0-5 is there is a serial console, 3739but /dev/ttyS1-6 if there is no serial console. 3740 3741* Binary Formats 3742 3743- C++ static constructors execute now using a start taskhook 3744so that they execute in the context of the child task (instead 3745of in the context of the parent task). 3746 3747* File Systems: 3748 3749- Several FAT-related bugs fixed by Petteri Aimonen. 3750 3751* Networking: 3752 3753- Fix poll/select issure reported by Qiang: poll_interrupt() must call 3754net_lostconnection() when a loss of connection is reported. Otherwise, 3755the system will not remember that the connection has been lost and will 3756hang waiting on a unconnected socket later. 3757- Similar issues corrected for recvfrom() and send(). 3758- Telnetd would hang in a loop if recv() ever returned a value <= 0. 3759 3760* Libraries: 3761 3762- fread() could hang on certain error conditions. 3763- Can't handle SYSLOG output to a character device from the IDLE task 3764(because the IDLE task can't block). 3765 3766* Build System: 3767 3768- Serial was driver was not being built if there is no console 3769device. Obviously, the serial driver may be needed even in 3770this case. 3771 3772* Additional Bugfixes: 3773 3774- sig_timedwait() and clock_time2ticks.c: Timing "rounding" logic 3775- ARM9 Compilation issue with low vectors. 3776- readline() return value 3777- Others as detailed in the ChangeLog: HID keyboard, LPC17xx bit 3778definitions, strndup(), PL2303, SYSLOG error handling, AT25, 3779apps/examples. 3780 3781NuttX-6.26 3782---------- 3783 3784The 93rd release of NuttX, Version 6.26, was made on March 15, 2013, 3785and is available for download from the SourceForge website. Note 3786that release consists of two tarballs: nuttx-6.26.tar.gz and 3787apps-6.26.tar.gz. Both may be needed (see the top-level nuttx/README.txt 3788file for build information). 3789 3790This release corresponds with SVN release number: r5745 3791 3792Note that all SVN information has been stripped from the tarballs. If you 3793need the SVN configuration information, you should check out directly from 3794SVN. Revision r5745 should equivalent to release 6.26 of NuttX: 3795 3796svn checkout -r5745 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code 3797 3798Or (HTTP): 3799 3800svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code 3801 3802Additional new features and extended functionality: 3803 3804* OS Initialization: 3805 3806- Add an additional call-out to support board-specific driver 3807initialization during the boot-up phase (available with 3808CONFIG_BOARD_INITIALIZE=y). 3809 3810* Tasking: 3811 3812- New interface task_spawn() that is like posix_spawn(), but uses 3813entry point addresses like task_create(). 3814- Additional data restructuring as a continuation of the task group 3815changes of NuttX 6.25. These data structures were moved from the 3816TCB structure into the task group: pthread join data, 3817atexit/on_exit callbacks, waitpid data structures, and message 3818queues. 3819- TCBs for tasks and pthreads are now separate structures. This 3820saves a little memory since tasks do not have to carry the overhead 3821for threads and vice versa. 3822 3823* Kernel Build: 3824 3825- Extensive changes were made to support the kernel build mode. In 3826this mode, NuttX is built as a monolithic kernel. NuttX is built 3827as a separate kernel mode "blob" and the applications are built 3828as a separate user mode "blob". The kernel runs in kernel mode and 3829the applications run in user mode (with the MPU restricting user 3830mode accesses). Access to the kernel from the user blob is only 3831via system calls (SVCalls). 3832- Extensive changes were made to the syscall, SVCall, and trapping 3833logic. Many internal interfaces were renamed. 3834- The memory manager was extended to support both kernel- and user- 3835mode allocations. Logic within the kernel needs to use the 3836correct kernel- or user-space allocator, depending upon the user 3837of the allocated memory. 3838- The user-space blob now contains a header built in at the beginning 3839of the block that provides the same information that was previously 3840provided by a kludgy, auto-generated header file (user_map.h). 3841- Basic support implemented for the ARMv7-M family with fragments 3842also implemetned for the ARMv6-M and MIPS32 families. 3843- Kernel build supported added for the LPC17xx Open1788 and for 3844the Atmel SAM3U-EK board. All testing is being performed on the 3845Open1788 board. 3846 3847* Signals: 3848 3849- Delivery of signals to threads within a task group is now compatible 3850with the way that signals are delivered to threads within a process. 3851 3852* Drivers: 3853 3854- Add a driver for the SST29VF NOR FLASH parts. 3855- USB device trace/debug feature extended to decode device-specific 3856trace events to make the trace output more readable (from Petteri 3857Aimonen). 3858- USB MSC device driver can not support names of differing sizes 3859in the USB descriptor and the SCSI fields (from Petteri Aimonen). 3860- Locking added to MMC/SD SPI drivers so that MMC/SD can co-exist on 3861the same bus as other SPI devices. Frequency is reset each time 3862that the MMC/SD SPI has the bus locked. (from Petteri Aimonen). 3863 3864* ARMv6-M (Cortex-M0): 3865 3866- Added support for the ARM Cortex-M0 family. 3867 3868* nuvoTon NUC120: 3869 3870- Added support for the nuvoTon NUC120 MCU (Cortex-M0). 3871 3872* nuvoTon NUC120 Boards: 3873 3874- Added basic support for the nuvoTon NuTiny-SDK-NUC120 board (Cortex-M0). 3875 3876* LPC17xx: 3877 3878- Added support for the LPC177x and LPC178x families. Most of this is 3879the work of Rommel Marcelo. 3880 3881* LPC17xx Boards: 3882 3883- Added support for Zilogic System's ARM development Kit, ZKIT-ARM-1769. 3884From Rashid. 3885- The port for the WaveShare Open1788 board is now functional. Basic 3886OS test and NuttShell (NSH) configurations are functional. More 3887driver development and testing is needed (from Rommel Marcelo). 3888 3889* LPC17xx Drivers: 3890 3891- Added an SD card MSI driver for the LPC178x. The driver is marginally 3892functional but requires DMA capability to be reliable. 3893 3894* STM32 3895 3896- Support extended to handle the STM32 F3 family (Cortex-M4 with F1-like 3897peripherals). 3898 3899* STM32 Boards 3900 3901- Added support the STMicro STM32F3Discovery board (STM32 F3). 3902 3903* Stellaris LM3S/LM4F 3904 3905- Basic support for the LM4F120 family is in place, but untested (mostly 3906from Jose Pablo Carballo). 3907 3908* Stellaris LM4F Boards 3909 3910- Add support for the LM4F120 LaunchPad (untested). 3911 3912* Networking: 3913 3914- select() should now allocate a little less memory. 3915 3916* Memory Management: 3917 3918- Extended to support multiple heaps. This is used as part of 3919the kernel build in order to support separator user- and 3920kernel-mode heaps. 3921- The stand-alone memory manager test had to be removed. It 3922was too entangled and made extension of the memory manager 3923nearly impossible. This is a loss. 3924 3925* Build System: 3926 3927- Several configurations converted to use the kconfig-frontends 3928configuration tool. There are still many more that need to 3929be converted. 3930 3931* C Library: 3932 3933- Move the workqueue logic into the C library. There is now a 3934special user-space version of the work queue (which will only 3935be used with a NuttX kernel build). 3936- Implementation of itoa() contributed by Ryan Sundberg. 3937 3938* Applications: 3939 3940- The NSH builtin task logic now uses task_spawn() to start builtin 3941applications. 3942- The OS test now includes a test cased to verify task_restart(). 3943 3944Efforts In Progress. The following are features that are partially 3945implemented but present in this release. Most are expected to be fully 3946available in NuttX 6.27. 3947 3948* LM4F120 LaunchPad port. Code is in place, but nothing has been tested. 3949 3950* WaveShare Open1788 port. This port as actually complete and 3951functional. However, there is still ongoing development and 3952testing of drivers. 3953 3954* Kernel Build. Much progress has been made, but there kernel build is 3955not yet fully functional due to several user resources that are not yet 3956properly disentangled from the kernel blob. 3957 3958* Conversion of old configurations to use the kconfig-frontends 3959tool is an ongoing effort that will continue for some time. 3960 3961Bugfixes (see the ChangeLog for details). Some of these are very important: 3962 3963* Tasking: 3964 3965- The wrong PID was being signalled with SIGCHLD. It should be 3966the PID of the task that create the task group, not the ID of 3967the last thread to leave the task group. 3968- Added logic so that some internal resources and states are recovered 3969when tasks are deleted or restarted. Handle cases where there are 3970outstanding timed events pending when tasks are deleted or restarted. 3971 3972* ARMv7-M: 3973 3974- Several fixes to the MPU control logic. 3975 3976* Drivers: 3977 3978- Removable serial drivers race conditions fixed. 3979- MAX11802 timing bug (from Petteri Aimonen). 3980 3981* STM32 Drivers: 3982 3983- Handle cases were SPI DMA logic fails if sem_wait is awakened 3984by a signal. Need to clear error flags to prevent corruption of 3985subsequent transfers. Also, bit count should not be changed while 3986the SPI peripheral is enabled (from Petteri Aimonen). 3987- Fixes to the OTG FS device driver from Petteri Aimonen. 3988- Fix typos in DMA register header file (from Yan T.) 3989 3990* Graphics: 3991 3992- Correction to the hyphen in the SANS 17x22 font (from Petteri 3993Aimonen). 3994 3995* Networking: 3996 3997- Corrected errors in the socket poll/select logic. Additional 3998state logic was needed to detect if the socket is still connected 3999before starting the poll wait. (bug reported by Qiang Yu). 4000 4001* Memory Management: 4002 4003- mallinfo() should hold the memory manager semaphore (from Petteri 4004Aimonen. 4005 4006* Build System: 4007 4008- Resolved several build errors reported by Mike Smith. 4009 4010* Applications: 4011 4012- Fixed an NSH memory leak: Needed to detach after creating each 4013pthread. 4014- readline() now returns EOF on any failure (instead of a negated 4015errno value). This is because the underlying read is based on 4016logic similar to getc. The value zero (meaning end-of-file) 4017was being confused with a NUL. So if a NUL was received, the 4018NSH session would terminate because it thought it was the end of 4019file. 4020 4021NuttX-6.27 4022---------- 4023 4024The 94th release of NuttX, Version 6.27, was made on April 28, 2013, 4025and is available for download from the SourceForge website. Note 4026that release consists of two tarballs: nuttx-6.27.tar.gz and 4027apps-6.27.tar.gz. Both may be needed (see the top-level nuttx/README.txt 4028file for build information). 4029 4030Additional new features and extended functionality: 4031 4032* OS Initialization: 4033 4034- Add missing registration of /dev/zero. Registration of /dev/null 4035should depend upon conditional compilation. From Ken Pettit. 4036 4037* Tasking: 4038 4039- Added a new interface to set aside memory on the task's stack. This 4040is used (at least in the kernel build) to hold task arguments. 4041- Remove up_assert_code(). One assertion routine is enough. 4042 4043* Kernel Build: 4044 4045- Extensive changes were made to support the kernel build mode. In 4046this mode, NuttX is built as a monolithic kernel. NuttX is built 4047as a separate kernel mode "blob" and the applications are built 4048as a separate user mode "blob". The kernel runs in kernel mode and 4049the applications run in user mode (with the MPU restricting user 4050mode accesses). Access to the kernel from the user blob is only 4051via system calls (SVCalls). 4052- Kernel build configurations for the Open1788 board and for the 4053STM32F4Discovery now execute correctly. 4054- Changes were made to task and thread start-up routines, signal 4055handling, data structures, ARMv7-M SVCalls, stack management 4056interfaces, 4057 4058* Drivers: 4059 4060- Driver for the ST7567 LCD Display Module from Univision Technology 4061Inc. Contributed by Manikandan.S 4062- SPI initialize functions renamed so that multiple SPI blocks can 4063be initialized. 4064- Extended to support the RAMTRON FM25V01 device. Contributed by 4065Lorenz Meier 4066- Serial drivers: TIOCSERGSTRUCT ioctls now conditioned on 4067CONFIG_SERIAL_TIOCSERGSTRUCT 4068 4069* ARMv7-M (Cortex-M3/4): 4070 4071- Added support for modifiable interrupt vectors in RAM 4072 4073* nuvoTon NUC1xx: 4074 4075- Added kernel build support 4076 4077* Freescale Kinetis: 4078 4079- Add kernel build support 4080- Add support for the Kinetis L family of Cortex-M0+ MCUs. Contributed 4081by Alan Carvalho de Assis. 4082 4083* LPC17xx: 4084 4085- Now holds off sleep mode in the IDLE loop is DMA is in progress 4086(because sleep mode will disable CPU SRAM). 4087 4088* LPC17xx Boards: 4089 4090- ZKIT-ARM-1769: Now supports the ST7567 LCD display module. Added 4091an nxhello configuration for testing (Manikandan.S). 4092- ZKIT-ARM-1769: Add support for both CAN1 and CAN2. Contributed by 4093M.Kannan 4094 4095- Open1788: Basic support for the WaveShare Open1788 board is complete 4096with working OS test, NSH, and graphics configurations. 4097- Open1788: Integrated the LPC178x LCD driver with the WaveShare display. 4098Touchscreen support is included, however, there appears to be an 4099issue with the Open1788 touchscreen interrupt signal. 4100- Open1788: Now supports SDRAM (used to provide the LCD framebuffer). 4101- Open 1788: Reversed sense of the IDLE LCD. It is now off when the 4102LPC17 is sleeping and on when awake. That is much a better visual 4103indication of the dynamic CPU load 4104 4105* LPC17xx Drivers: 4106 4107- Added an LCD framebuffer driver for the LPC177x/8x family. 4108- Implemented LPC17xx GPDMA support. 4109- Integrated the LPC17xx GPDMA support into the SD card driver. 4110- SSP driver adapted to work with the LPC178x family. 4111- Separate LPC176x and LPC178x GPIO logic; this logic is too different 4112to maintain in one file with conditional compilation. 4113- Re-design of the GPIO logic for the LPC178x family by Rommel Marcelo. 4114 4115* LPC43xx: 4116 4117- Added kernel build support 4118 4119* STM32: 4120 4121- Added support for kernel mode build. 4122- Added architecture support for the STM32 F427/F437 chips. Contributed 4123by Mike Smith 4124 4125* STM32 Boards: 4126 4127- Added a configuration to support a kernel mode build of the OS test 4128on the STM32F4Discovery 4129 4130* Stellaris LM3S/LM4F: 4131 4132- Added kernel build support 4133- Added support for the 7 UARTs on the LM4F120 4134 4135* Stellaris LM4F Boards: 4136 4137- Added scripts and instructions to simplify use of OpenOCD with ICDI 4138(JP Carballo) 4139- The basic for the Stellaris LM4F120 Launchpad is complete. This 4140includes support for OS test and NSH configurations. Additional 4141driver development is needed. 4142 4143* Build System: 4144 4145- Directories where the same sources files are used to build different 4146objects in the first and second pass kernel builds need to keep those 4147objects in separate directories so that they are not constantly 4148rebuilt. 4149 4150* Applications: 4151 4152- apps/system/ramtest: Add a simple memory test that can be built 4153as an NSH command. 4154 4155* Tools: 4156 4157- kconfig2html is a new tool which will replace the hand-generated 4158documentation of the NuttX configuration variables with auto- 4159generated documentation. 4160 4161Efforts In Progress. The following are features that are partially 4162implemented but present in this release. Most are expected to be fully 4163available in NuttX 6.28. 4164 4165* A port to the Freescale Freedom KL25Z is complete but not yet stable 4166enough. The KL25Z is a low-cost Cortex-M0+ part with 128KB of FLASH 4167and 16KB of SRAM. This is is the effort of Alan Carvalho de Assis. 4168 4169* Conversion of old configurations to use the kconfig-frontends 4170tool is an ongoing effort that will continue for some time. 4171At this time, only 32% of the configurations have been converted 4172to use the kconfig-frontends tools. 4173 4174Bugfixes (see the ChangeLog for details). Some of these are very important: 4175 4176* Tasking: 4177 4178- Fixed a critical bug: When there is pending C buffered output 4179and the system is very busy, the a pthread may be blocked at 4180a critical point when trying to exit. Blocking at this critical 4181point would cause crashes. All entire task/thread exit logic 4182paths were reviewed and failsafe mechanisms were put in place 4183to assure that exitting tasks never block after task teardown 4184has been started. 4185 4186* ARMv6-M: 4187 4188- Fixed parameter passing for all system call inline functions with > 3 4189parameters 4190- Fixed a major problem: The Cortex-M0 has no BASEPRI register but the 4191logic of NuttX-6.26 was using it to manage interrupts. Switch to 4192using the PRIMASK instead. This means that hardfaults will (again) 4193occur when SVC instructions are executed 4194 4195* ARMv7-M: 4196 4197- Corrected Correct MPU sub-region settings for unaligned regions. 4198- In exception handling with CONFIG_NUTTX_KERNEL, need to explicitly 4199set and clear the privilege bit in the CONTROL 4200- Fixed parameter passing for all system call inline functions with > 3 4201parameters 4202 4203* Drivers: 4204 4205- Support for O_NONBLOCK was not supported in the "upper half" 4206serial driver. 4207- PL2303 compilation errors 4208 4209* Stellaris LM3S/4F: 4210 4211- Corrected typos in alternate function definitions. 4212 4213* LPC17xx Drivers: 4214 4215- Added a work-around for an ADC errata. From Chris Taglia 4216- Only one ADC pin was configured. Need to configure all that 4217are in the ADC0 set. From MKannan 4218 4219* File Systems: 4220 4221- The FAT logic was not making a distinction between directory 4222non-existence and file non-existence so when it you try to 4223create a file in a non-existent directory, it would create a 4224file with the name of the missing directory. Reported by Andrew 4225Tridgell 4226- Several fixes to the FAT file system from Ronen Vainish. These 4227fixes mostly involve the logic to extend directory clusters for 4228the case of long file names but also include a few important 4229general fixes (such as for storing 32 bit FAT values) 4230- mkfatfs was writing the boot code to the wrong location. From 4231Petteri Aimonen 4232 4233* Networking: 4234 4235- Fixed a compilation error when socket options are are disabled. 4236Reported by Daniel O'Connor 4237 4238* C Library: 4239 4240- Corrected an error in sscanf. If %n occurs in the format statement 4241after the input data stream has been fully parsed, the %n format 4242specifier will not be handled. Reported by Lorenz Meier 4243- strchr(str, '\0') should return a pointer to the end of the string, 4244not NULL. From Petteri Aimonen 4245 4246* Build System: 4247 4248- Fix naming of NuttX target if EXEEXT is defined. 4249 4250* Applications: 4251 4252- OS test: Fix timing error in non-cancelable thread test. 4253- NSH: Correct the test of the skip input parameter. Was limiting the 4254range to <= count. From Ken Petit. 4255 4256NuttX-6.28 4257---------- 4258 4259The 95th release of NuttX, Version 6.28, was made on June 14, 2013, 4260and is available for download from the SourceForge website. Note 4261that release consists of two tarballs: nuttx-6.28.tar.gz and 4262apps-6.28.tar.gz. Both may be needed (see the top-level nuttx/README.txt 4263file for build information). 4264 4265Additional new features and extended functionality: 4266 4267* File Systems: 4268 4269- SMART FLASH file system (contributed by Add Ken Pettit). 4270 4271* MTD (FLASH) Drivers: 4272 4273- Add support of MTD partitions via a new MTD driver that manages a 4274set of MTD devices, each managing a subset of the FLASH region 4275managed by the parent MTD driver. 4276- Extended the MTD interface to provide an (optional) method to 4277perform byte oriented writes if supported by the FLASH part. 4278- M25Px driver re-architected to use the byte write capability (when 4279possible) and to use 4KB sectors for the erase block size when the 4280part supports it (from Ken Pettit). 4281 4282* LCD Drivers: 4283 4284- New interface definitions to support audio devices (from Ken Pettit) 4285and alphanumeric, segment LCDs. 4286 4287* Wireless Drivers: 4288 4289- Added new driver for the wireless nRF24L01+ transceiver (from 4290Laurent Latil). 4291 4292* Calypso: 4293 4294- Added support for the Pirelli DP-L10 phone (from Craig Comstock via 4295Alan Alan Carvalho de Assis) 4296 4297* STM32: 4298 4299- Added an option to conditionally disable the "wfi" sleep mode. This 4300is needed with certain JTAG debuggers to prevent the debug session 4301from being disconnected (from Ken Pettit). 4302- Added support for the STM32L (STM32L15X/STM32L16x) family. 4303- Added STM32F103C4 and F103C8 chip support (from Laurent Latil). 4304- Added a new interface function, stm32_dmacapable() that can be used 4305to determine if DMA is possible from the specified memory address 4306(from Petteri Aimonen) 4307 4308* STM32 Drivers: 4309 4310- If CONFIG_STM32_DMACAPABLE is defined, the STM32 SPI driver now uses 4311stm32_dmacapable() to determine if it is possible to perform DMA 4312from the specified address. This change is important for the STM32 4313F4 which may have SPI data buffers allocated on the stack in CCM 4314memory which cannot support the DMA (from Petteri Aimonen). 4315 4316* STM32 Boards: 4317 4318- Support added for the MikroElektronika Mikromedia for STM32F4 4319development board (from Ken Pettit) with the MIO283QT2 LCD and 4320touchscreen. Several graphics configurations are included. 4321- The HY-mini STM32v board now uses the common SSD1289 driver 4322and supported the card detect interrupt. Several new 4323configurations also added and some removed (from Laurent Latil). 4324- Support added for the R65105-based LCD that comes with some 4325HY-Mini STM32v boards (from Christian Faure). 4326- Added basic support for the STM32L-Discovery board. Drivers 4327for the on-board segment LCD are included. 4328- Added support for the STM32 Tiny development board based on the 4329STM32 F103C8T6 MCU. This includes support for the nRF24L01+ 4330wireless on the board (from Laurent Latil). 4331 4332* Stellaris LM3S/LM4F: 4333 4334- Support added for a TI/Stellaris internal FLASH MTD driver (from Max 4335Holtzberg). 4336 4337* Stellaris LM4F Boards: 4338 4339- The LM3S6965-EK now has configurations for the UDP discovery tool and 4340for the TCP echo server (both from Max Holtzberg) 4341 4342* Atmel ATSAM3/4: 4343 4344- Reorganized, renamed, and updated directory structure to better 4345support additional members of the SAM3/4 family. 4346- Added support for both the ATSAM4S and ATSAM4L families. The 4347ATSAM4S is similar to the ATSAM3U, but the ATSAM4L is quite a 4348different beast, really much more akin to the AVR32s SoCs but 4349with a Cortex-M4. 4350 4351* Atmel ATSAM3/4 Boards: 4352 4353- Added support for the Atmel SAM4L Xplained Pro development board. 4354This board features the ATSAM4LC4C MCU (Cortex-M4 with 256KB FLASH + 435532KB SRAM). 4356- Added support for the Atmel SAM4S Xplained development board. This 4357board features the ATSAM4S16C MCU (Cortex-M4 with 1MB FLASH + 128KB 4358SRAM). 4359 4360* PIC32MX Boards: 4361 4362- Added support for the 1602 segment LCD on-board the Sure PIC32MX 4363board. This board will now also support a USB NuttX console and 4364the USB monitor test program. 4365 4366* Build System: 4367 4368- Clean-up of almost all .gitignore files: Made scope of ignore to be 4369only the current directory; Ignore .dSYM files in directories where 4370.exe's may be built. Also, in Makefiles, clean .dSYM files in 4371directories where an .exe may be built. 4372- Standardize and consolidated all build-as-an-NSH-application 4373configuration settings. Now only CONFIG_NSH_BUILTIN_APPS is 4374sufficient to build an application, test, or or example as an NSH 4375builtin application. 4376- Added support for a generic ARM, ARMv6-M and ARMv7-M Windows EABI 4377toolchains. 4378 4379* Libraries: 4380 4381- Added encoder/decoder logic to marshal and serialize special segment 4382LCD (SLCD) commands intermixed with normal ASCII data. This is the 4383similar to the encoding/decoding logic that is used to marshal 4384special commands from a keyboard. 4385- Add dprintf() and vdprintf() (the latter from Andrew Tridgell). 4386- Add an application that may be built as an NSH builtin command that 4387will erase FLASH using a flash_eraseall NSH command (from Ken Pettit). 4388 4389* Applications: 4390 4391- Added an MTD partition test/examples. Currently used with (1) the a 4392simulation configuration to test MTD partitions on a RAM emulation 4393of FLASH and (2) with the Mikroe STM32F4 configuration. 4394- Added a test/example to verify alphanumeric, segment LCDs. 4395- Added a simple single threaded, poll based TCP echo server based 4396on W. Richard Stevens UNIX Network Programming Book (from Max 4397Holtzberg). 4398- Added several tests of the SMART block driver and file system (from 4399Ken Pettit). 4400- Added a runtime configuration for the UDP discover utility (from 4401Max Holtzberg). 4402- Added an example application to demo the nRF24L01 driver (from 4403Laurent Latil). 4404- New and modified NSH commands: 4405Added a -h option to the df command to show the volume information 4406in human readable form (from Ken Petit). 4407Add a new mksmartfs command (from Ken Petit). 4408 4409Efforts In Progress. The following are features that are partially 4410implemented but present in this release. Most are expected to be fully 4411available in NuttX 6.28. 4412 4413* Audio System: 4414 4415- A complete audio subsystem include CODECs, higher level management, 4416interface definitions, and audio drivers was contributed by Ken 4417Pettit. This work has not been completely verified as of this 4418release and so is categorized as a work-in-progress. At present, 4419progress is blocked due to issues interfacing with the VS1053 4420audio DAC on the Mikroe STM32F4 board. 4421 4422* kconfig-fronted Configuration: 4423 4424- Conversion of old configurations to use the kconfig-frontends 4425tool is an ongoing effort that will continue for some time. 4426At this time, only 43% of the configurations have been converted 4427to use the kconfig-frontends tools. 4428 4429Bugfixes (see the ChangeLog for details). Some of these are very important: 4430 4431* Tasking: 4432 4433- Modify assertion in the priority inheritance logic that is reported 4434to cause false alarm assertions. 4435 4436* Kernel Build: 4437 4438- Typo in syscall proxying logic corrected by Ken Pettit. 4439 4440* Networking: 4441 4442- Poll setup/teardown logic should ignore invalid (i.e., negative) 4443file descriptors (from Max Holtzberg). 4444- When readahead data is available, the network poll() logic should 4445set POLLIN (or POLLRDNORM), not POLLOUT (from Max Holtzberg). 4446 4447* LCD Drivers: 4448 4449- Correct power controls in the MIO283QT2 LCD driver. 4450 4451* USB Device Controller Drivers: 4452 4453- Change the default IN request buffer size from 64 to 96. This will 4454avoid requests of exactly MAXPACKET size and, hence, avoid so many 4455NULL packets. Also, fix the OUT request buffers size to exactly the 4456max packet size. It really cannot be any other size. 4457 4458* STM32 Drivers: 4459 4460- Correct some bad STM32 F1 DMA definitions that crept into the system 4461a few months ago a broke STM32 F1 DMA (from Laurent Latil) 4462- Fixed an error in NULL packet handling in the STM32 F1 USB device 4463controller driver: If the NULL-packet needed flag ever got set, 4464then it was not being cleared and infinite NULL packets resulted. 4465This only affects the CDC/ACM class and was the cause of the 4466failures using the USB CDC/ACM device as a NuttX console. With this 4467change the USB works well as an alternative NuttX console device for 4468the STM32 F1 family. 4469- Correct some bad condition compilation in the RCC logic (CONFIG_ 4470missing from setting names). This affects some STM32 FLASH pre- 4471fetch settings (from Lorenz Meier). 4472- Change for hardware flow control support for STM32. The change also 4473fixes incorrect operation of USART2 and UART5 in current master 4474(from Lorenz Meier and Mike Smith). 4475- Fixed a backward conditional in USB OTG FS host controller driver 4476that prevented detection of disconnection events (from Scott). 4477 4478* LPC17xx Drivers: 4479 4480- I2C interrupt control. Also correction for a single byte read 4481timeout error (from M. Kannan). 4482 4483* Freescale Kinetis: 4484 4485- Freedom KL25Z pin multiplexing and LED control corrections (from 4486Alan Carvalho de Assis) 4487 4488* PIC32MX: 4489 4490- Fix NULL packet handling in the PIC32 USB device driver. Without 4491this fix the CDC/ACM driver cannot be used reliably with the PIC32 4492USB. With this change the USB works well as an alternative NuttX 4493console device. 4494 4495* Graphics: 4496 4497- Default priorities for NxWidget and NxWM threads should be 100, 4498not 50, to be consistent with other default priorities. 4499 4500* Applications: 4501 4502- Remove the CONFIG_EXAMPLES_NXTEXT_NOGETRUN option from the NXTEXT 4503example. The test logic was bad for the case where this options is 4504not selected. Also, completed the empty Kconfig file. 4505- C++ name mangling was occurring when this example is built as an NSH 4506built-in application causing the entry to be undefined when called 4507from C code. 4508- Add some missing NSH library configuration values (from Lorenz 4509Meier). 4510 4511NuttX-6.29 4512---------- 4513 4514The 96th release of NuttX, Version 6.29, was made on July 31, 2013, 4515and is available for download from the SourceForge website. Note 4516that release consists of two tarballs: nuttx-6.29.tar.gz and 4517apps-6.29.tar.gz. Both may be needed (see the top-level nuttx/README.txt 4518file for build information). 4519 4520Additional new features and extended functionality: 4521 4522* Drivers: 4523 4524- Generalized the SSD1306 driver and added support UG-2832HSWEG04 4525which is very similar to the existing support for the 4526UG-2864HSWEG01. 4527- Added support for a generic bit-bang SPI driver. This includes 4528both a common "upper half" driver as well as a platformp-specific 4529"lower half" dirvers based on a common "template." 4530 4531* ARMv7-A, Cortex-A5 4532 4533- Added support for the ARMv7-A architecture and the Cortex-A5 in particular. 4534 4535* ARMv7-M, Cortex-M3/4 4536 4537- Modified how some registers are copied during a context switch (with 4538lazy FPU register saving). This should save some context switching 4539time when the context switch is due to interrupt level processing. 4540 4541* STM32: 4542 4543- Added support for a separate CCM heap. This may be useful for 4544segregating allocations for CCM (which cannot be used for DMA) 4545from other allocations (that may be used used for DMA). 4546 4547* STM32 Drivers: 4548 4549- DAC: Added support for DAC DMA (contributed by John Wharington). 4550- I2C: An I2C driver for the STM32 F3 family (from John Wharington). 4551 4552* Atmel AT91 SAM/4: 4553 4554- Add support for SAM3X and SAM3A chips 4555 4556* Atmel AT91 SAM/4 Drivers: 4557 4558- Re-architect the SAM3/4 SPI driver so that is it compatible with the 4559SPI drivers of other MCUs. 4560- Added register definition file for the SAM4L LCD peripheral. 4561- Added SAM4L PDCA register definition file 4562 4563* Atmel AT91 SAM/4 Boards: 4564 4565- SAM4L-Xplained: Added support for the SPI-based SD card on the I/O1 4566module. 4567- SAM4L-Xplained: Added a driver for the LED1 segment LCD module. 4568- SAM4L-Xplained: Added support for the UG-2832HSWEG04 OLED on the 4569SAM4L Xplained Pro's OLED1 module 4570- SAM4S-Xplained: Added support for on-board 1MB SRAM 4571- Arduino Due: Basic support for the Arduino Due (SAM3X) is now 4572included. 4573- SAM3U-EK: The touchscreen is now functional. 4574 4575* Atmel AT91 SAMA5D3 4576 4577- Added support for the Atmel AT91SAMA5D3 Cortex-A5 chip family. 4578 4579* Atmel AT91 SAMA5D3 Boards 4580 4581- Added support for the Atmel SAMA5D3x-EK boards which use the AT9 4582SAMA5D3x chips (x=1,3,4,5). 4583 4584* Freescale KL25Z Drivers 4585 4586- Freescale KL25Z TSI register definitions and example TSI driver for 4587the Freedom KL25Z board from Alan Carvalho de Assis. 4588- Added SPI driver and register definitions for the Freescale KL25Z. 4589- Added a framework for controlling SPI-related discrete inputs and 4590outputs. Taken from work by Alan Carvalho de Assis 4591 4592* Build System: 4593 4594- New sub-directories to hold SPI-related files: includes/nuttx/spi.h 4595moved to include/nuttx/spi/.; SPI-related Kconfig info moved from 4596drivers/Kconfig to drivers/spi/kconfig. 4597- Finally... I changed the naming of configuration variables like 4598CONFIG_DRAM_ to CONFIG_RAM_. This has bothered me for a long time 4599since most boards don't have DRAM. The more generic RAM naming 4600should not produce so much cognitive dissonance 4601 4602* Libraries: 4603 4604- Added CRC16 support. 4605 4606* Applications: 4607 4608- Added Zmodem file transfer support. This may be used as an embedded 4609library or may be built as 'sz' and 'rz' commands that can be 4610executed from NSH. 4611- C++ initializers should be set once and, preferably, in the context 4612of the task that uses any C++ statically initialized classes. This 4613only becomes an issue if cxxtest or helloxx are built as NSH builtin 4614applications. Then you want the initialization done in cxxtext or 4615helloxx and not in NSH (and certainly not twice). Added 4616configuration options to control who does the C++ initialization. 4617NSH now does not do C++ initialization be default and must be 4618configured to do otherwise. Conversely, cxxtest and helloxx 4619will always do C++ initialization unless configured do otherwise. 4620- examples/cxxtext: Add ostream test as provided by Michael. 4621- NSH: Added a 'cmp' command that can be used to compare two files 4622for equivalence. Returns an indication if the files differ. 4623Contributed by Andrew Tridgell (via Lorenz Meier). 4624 4625Efforts In Progress. The following are features that are partially 4626implemented but present in this release. They are not likely to be 4627completed soon. 4628 4629* Audio System: 4630 4631- A complete audio subsystem include CODECs, higher level management, 4632interface definitions, and audio drivers was contributed by Ken 4633Pettit. This work has not been completely verified as of this 4634release and so is categorized as a work-in-progress. At present, 4635progress is blocked due to issues interfacing with the VS1053 4636audio DAC on the Mikroe STM32F4 board. 4637 4638* kconfig-fronted Configuration: 4639 4640- Conversion of old configurations to use the kconfig-frontends 4641tool is an ongoing effort that will continue for some time. 4642At this time, only 45% of the configurations have been converted 4643to use the kconfig-frontends tools. 4644 4645Bugfixes (see the ChangeLog for details). Some of these are very important: 4646 4647* File Systems: 4648 4649- Fixed compilation error if no file systems are enabled: Change 4650error to ERROR. 4651- Read-Ahead/Write buffering: Correct typos that can cause failures 4652in some configurations (From Chia Cheng Tsao). 4653 4654* Drivers 4655 4656- Remove the wait for the touchscreen busy bit in the ADS7843E driver. 4657From my reading of the ADS7843 spec, it would not be appropriate to 4658wait for the BUSY bit to de-asserted anyway (since it is only de- 4659asserted when we read the data). Most boards do not even bother to 4660provide the BUSY bit. 4661- MMC/SD SPI based driver: Driver needs to make sure that the SPI 4662mode and data width are correct. 4663- ENC28J60: Change buffer ordering to work around Errata. From Dave 4664(ziggurat29). 4665 4666* USB Device Controller Drivers: 4667 4668- Fixed a typo in the composite device driver unitialization logic. 4669DEV1 should be DEV2 in one case. 4670- usbdev.h: Fix some typos that cause compiler errors when 4671CONFIG_USBDEV_DMA and CONFIG_USBDEV_DMAMEMORY are selected (From 4672Chia Cheng Tsao). 4673 4674* ARM9: 4675 4676- Fix a bug (uninitialized register error) that crept in the ARM9 4677boot-up code several years ago. Obviously no one has used the 4678ARM9 NuttX port for years! 4679 4680* STM32 Drivers: 4681 4682- Fix STM32 OTF FS endpoint allocation logic. Apparently the same 4683endpoint can be allocated as both an IN or an OUT endpoint. The 4684existing implementation only supported one allocation, either IN or 4685OUT. This resulted in failures to allocate endpoints when used with 4686the CDC/ACM + MSC composite driver (From Chia Cheng Tsao). 4687- SDIO: Add support for the data block end (DBCKEND) interrupt to 4688terminate transfers (From Chia Cheng Tsao). 4689- DAC: Fixed numerous DAC driver errors and added support for DAC 4690DMA (contributed by John Wharington). 4691 4692* SAM3/4: 4693 4694- SAM4S: Correct configuration of PIO pins for SAM4S B and C peripherals. 4695- Need to disable write protection before configuring PIO pins. 4696- GPIO configuration logic must protect against re-entrancy. 4697- Clocking must be applied to the SMC module for the 3X and 3A family in 4698order for the NFC SRAM to be functional. 4699- Fixed some errors for interrupts on ports D-F. 4700 4701* SAM3/4 Drivers: 4702 4703- Common SPI driver: Fix SPI mode setting. In the SAM3/4 family, the 4704clock phase control (CPHA) is inverted (NPHA). Also fixed an 4705incorrect pointer test. Was checking if the wrong pointer was NULL. 4706 4707* SAM3/4 Boards: 4708 4709- SAM3U-EK: Fix polarity of the /PENIRQ signal (it is active low). 4710The SAM3U-EK board now runs at 96MHz. 4711 4712* Applications: 4713 4714- apps/examples/nxhello: Minor fix for compilation error when the 4715display resolution is low (< 8bpp) due to a typo that has been there 4716for a long time. Also Correct default colors when in Y1 code mode. 4717- apps/system/ramtest: The RAM test was not correctly built 4718into the configuration and build system. 4719- apps/examples/composite: Change to prevent some false alarm debug 4720assertions (From Chia Cheng Tao). 4721 4722NuttX-6.30 4723---------- 4724 4725The 97th release of NuttX, Version 6.30, was made on September 14, 2013, 4726and is available for download from the SourceForge website. Note 4727that release consists of two tarballs: nuttx-6.30.tar.gz and 4728apps-6.30.tar.gz. Both may be needed (see the top-level nuttx/README.txt 4729file for build information). 4730 4731Additional new features and extended functionality: 4732 4733* Common Drivers: 4734 4735- Extended TERMIOS support for serial and CDC/ACM drivers. From 4736Mike Smith, Andrew Tridgell and Lorenz Meier. 4737- Added option to disable serial port reordering. From Lorenz Meier. 4738- Several changes to the USB host control interface and extensions to 4739common USB host logic to handle host controllers with multiple 4740downstream ports in the root hub. 4741- USB device tracing: Extended decoding and stringifying of USB trace 4742output to include trace output from class drivers. 4743- USB host tracing: Added support for USB host tracing similar in 4744some ways to USB device tracing: Stringification is an inherent 4745part of the trace decoding (not an option). Only available in the 4746SAMA5 USB host drivers now. 4747 4748* Networking / Network Drivers 4749 4750- Support for the Microchip ENCX24J600 Ethernet driver from Max 4751Holtzberg 4752- CC3000 Networking. Initial support for the TI CC3000 network 4753module on the Freescale Freedom-KL25Z board from Alan Carvalho 4754de Assis. This is still a work in progress. 4755 4756* ARMv7-A, Cortex-A5 4757 4758- Restructured some MMU-related logic and header files. 4759- Hooks added for Cortex-A8, but not yet used. 4760 4761* STM32 Drivers: 4762 4763- STM32 SPI: nbits() interface extended to control bit order as well 4764as bit width (from Teemu Pirinen) 4765 4766* STM32 Boards 4767 4768- Olimex STM32-P107: Incorporate ENCX24J600 networking for the Olimex 4769STM32 P107 board. 4770- LeafLabs Maple Board: Add board support for the LeafLabs Maple and 4771Maple Mini boards. From Librae. 4772 4773* Atmel AT91 SAMA5D3x 4774 4775- Added support for the SAMA5 DMAC controllers. 4776- DMA-capable drivers for the SAMA5 SPI peripherals. 4777- DMA-capable HSCMCI 0/1/2 drivers. 4778- Support for PIO interrupts 4779- Utilities for intelligent conversions between physical and virtual 4780addresses. 4781- Added USB host controller drivers for both the OHCI (low- and full- 4782speed) peripheral and the ECHI (high-speed) peripheral. 4783- Added USB device controller for the SAMA5 UDPHS peripheral (full- 4784and high-speed). 4785- Added a Two Wire (TWI) driver. This is a variant of I2C. 4786 4787* Atmel AT91 SAMA5D3x-EK Development Boards 4788 4789- Now supports onboard SDRAM. Modified heap initialization logic 4790to include SDRAM if configured. 4791- Integrated a FAT file system on the on-board SPI-based AT25 serial 4792FLASH 4793- Integrated HSMCI0 and HSMCI1 support for the microSD and full file 4794SD card slots. Includes PIO interrupts for card detection events. 4795- Integrated USB OHCI and ECHI host and high-speed peripheral support. 4796File system on AT25 now exported via Mass Storage Class. Includes 4797PIO VBUS controls. 4798- Integrated the TWI driver and the I2C tool. Added support for an 4799external AT24 serial EEPROM. 4800 4801* Applications: 4802 4803- apps/examples/cc3000. Initial support for the TI CC3000 network 4804module on the Freescale Freedom-KL25Z board from Alan Carvalho de 4805Assis. Includes the test to verify the CC3000. 4806- apps/examples/usbmsc: apps/examples/usbstorage renamed usbmsc for 4807consistency. Change submitted by CCTSAO. 4808- apps/system/usbmonitor: The USB monitor has been extended so that 4809it can be used with USB device or host trace data. 4810 4811Efforts In Progress. The following are features that are partially 4812implemented but present in this release. They are not likely to be 4813completed soon. 4814 4815* CC3000 Networking 4816 4817- CC3000 Networking. Initial support for the TI CC3000 network 4818module on the Freescale Freedom-KL25Z board from Alan Carvalho 4819de Assis. This is still a work in progress. 4820 4821* kconfig-fronted Configuration: 4822 4823- Conversion of old configurations to use the kconfig-frontends 4824tool is an ongoing effort that will continue for some time. 4825At this time, only 46% of the configurations have been converted 4826to use the kconfig-frontends tools. 4827 4828Bugfixes (see the ChangeLog for details). Some of these are very important: 4829 4830* File Systems: 4831 4832- ROMFS: Fix an error where long (>15) file names were read 4833incorrectly from a ROMFS file system. From Mike Smith 4834- NXFFS: Clean up some compiler warnings. 4835 4836* Common Drivers 4837 4838- MMC/SD driver: Correction for a bad return value when multiple 4839block SDIO transfers are suppressed. By Andrew Tridgell. 4840- USB HID keyboard and mass storage host-side class drivers: Fix some 4841compilation errors and warnings when pre-allocated data structures 4842are used. 4843- USB device-side class drivers: Fix some compilations errors when 4844DUALSPEED (i.e., full- and high-sped) support is enabled. 4845- CDC/ACM and PL2303: Don't use max packetsize assigned to the endpoint 4846when allocating request buffers; The default value of the endpoint 4847max packetsize may be incorrect because the endpoint has not yet 4848been configured. Really only an issue for high-speed endpoints. 4849- USB Host Mast Storage Class: Fixed a problem that was causing some 4850devices to fail to initialize: If device is returning fatal transfer 4851errors while attempting to initialize, don't bother with the startup 4852retries; abort immediately so that the device will be reset and we 4853can try again with a better ready device. 4854- USB Host Mast Storage Class: Correct a reference counting error: 4855When an MSC device transfer fails while waiting for UnitTestReady, 4856the reference count on the class was not being decremented. The end 4857result is a memory leak as can be seen by the USB device numbers 4858incrementing: sda, sdb, sdc, ... 4859- USB Device CDC/ACM: Fix backward conditional compilation in the 4860CDC/ACM driver with regard to remote wakeup and self-powered 4861capabilities. From the PX4 team via Lorenz Meier, 4862 4863* Networking / Network Drivers 4864 4865- ARP IP harvesting: Correct backward condition in netmask task. 4866From Max Holtzberg. 4867- Network connection monitor: Fixes a race condition where a loss of 4868connection may not be detected when the connection is lost before it 4869has been accepted (from Max Holtzberg). 4870- TCP/IP Backlog: Fix a critical bug in the TCP/IP backlog 4871initialization: Only the first backlog buffer was getting added to 4872the free list. From Max Holtzberg. 4873- ENC28J60: Fixes and improvements back-ported from the ENCX24J600 4874to the ENC28J60 by Max Holtzberg. 4875 4876* STM32 Drivers: 4877 4878- STM32 I2C fixes for the STM32 F3 family from John Wharington. 4879- STM32 I2C Correct an error that crept into the STM32 F1 I2C 4880driver with some recent changes. From Librae 4881- STM32 F4: Added some missing CONFIG_SERIAL_TERMIOS support; Fixed 4882some STM32 F4 Timer 8 pin configurations. From CCTSAO. 4883- STM32 SDIO: If CONFIG_SDIO_BLOCKSETUP defined, OS would crash. Now 4884Generate an error if CONFIG_SDIO_BLOCKSETUP is defined; that 4885option is not yet supported by the STM32 SDIO driver. From CCTSAO 4886- STM32 I2C Timers: Some CCER bit settings changed. Submitted by 4887CCCTSAO. 4888- STM32 CAN: Fix access to CAN filter registers. From the PX4 team 4889via Lorenz Meier. 4890- STM32 Kconfig: Fix STM32 UART7/8 Kconfig names and UART DMA. From 4891the PX4 team via Lorenz Meier. 4892 4893* LPC17xx Drivers 4894 4895- Fix #endif with missing #if in USB host header file. Reported 4896by Andrew Bradford, 4897 4898* SAM3/4 Boards: 4899 4900- Corrected DMA-related problems: Bad register definitions, parameters 4901reversed in a function call. 4902- Correct a race condition in the HSMCI driver when an interrupt 4903occurs before the wait for the interrupt begins. 4904- Peripheral clock setup: Correct a typo in a register name. 4905 4906* Atmel AT91 SAMA5D3 4907 4908- Order of some operations changed in boot-up logic to defer 4909enabling of caching of memory regions until SDRAM is initialized. 4910- Correct handling of spurious interrupts. 4911 4912* Freescale KL25Z Drivers 4913 4914- KL25Z SPI: Correct typo in name of a function. From Alan Carvalho 4915de Assis. 4916 4917* Applications: 4918 4919- apps/examples/composite: Fix a typo that can cause a configuration 4920error. From CCTSAO. 4921- apps/examples/pwm: Clean-up some configuration confusion. 4922- apps/netutils/dhcpd/dhcpd.c: Fixed calculation of the next lease 4923address. From Paolo Messina. 4924- apps/examples/usbmsc: Don't try to control USB trace if we are 4925an NSH built-in task. In that case our attempts are inadequate 4926and only interfere with with other logic that is attempting to 4927to do the same thing (in NSH or in the USB monitor). 4928- apps/examples/usbmsc: IMPORTANT bug fix: Change how the msconn 4929works. Because of recent changes the msconn command was hanging. 4930This was because the USB MSC start-up logic creates a pthread; 4931Now waitpid() will wait until all members of the task group 4932exit. So NSH was hanging in waitpid when msconn started even 4933though msconn returned. The USB MSC logic really should not use 4934a pthread, but we are stuck with that for now. The work-around 4935is the msconn now daemonizes itself so that it so that the pthread 4936is created in a different task group. 4937- apps/nshlib: Fix NSH listing output for the case of a single file. 4938From the PX4 team; provided by Lorenz Meier. 4939 4940NuttX-6.31 4941---------- 4942 4943The 98th release of NuttX, Version 6.31, was made on October 28, 2013, 4944and is available for download from the SourceForge website. Note 4945that release consists of two tarballs: nuttx-6.31.tar.gz and 4946apps-6.31.tar.gz. Both may be needed (see the top-level nuttx/README.txt 4947file for build information). 4948 4949Additional new features and extended functionality: 4950 4951* General: 4952 4953- Standardized stack checking logic so the interfaces can be used 4954by common stack monitoring logic. 4955 4956* Audio Subsystem and Audio Drivers: 4957 4958- Ken Pettit has finally released his long awaited audio subsystem. 4959This is a generic audio subsystem that is appropriate for the 4960deeply embedded MCU. Current testing has, however, been focused 4961on the VS1053 CODEC chip. 4962- Ken Pettit's VS1053 audio CODEC driver is now functional. 4963 4964* Networking / Network Drivers 4965 4966- Add the prefix ETH0 to all PHY configuration selections. This 4967will allow us to support to Ethernet MAC drivers with two different 4968PHYs (identified with ETH0 and ETH1). Enabled with CONFIG_NETDEV_MULTINIC. 4969- Add MII/RMII PHY definitions for the Micrel KSZ8051 PHY. 4970- Add GMII/GRMII PHY definitions for the Micrel KSZ9021/31 PHY. 4971- New network-optimized, higher-performance sendfile() implementation 4972from Max Holtzberg. 4973- Added a simple routing table. This table is currently only used (1) 4974when we need to look-up an Ethernet device based on an IP address, 4975and (2) in the ARP logic when we need to request the MAC address of 4976the router, vs the MAC address of the peer. 4977- Make net_close() nonblocking and free unestablished connections if 4978no free connections available. From Max Holtzberg. 4979- Changed the meaning of the uip_*input functions. They now return 4980success when a packet is dropped; This is needed for the ENCX24J600 4981driver that must make a decision to return the packet or not: It 4982should not retry dropped packets. From Max Holtzberg. 4983- David Sidrane has completed integration of the CC3000 networking. 4984This is much more than a network driver: It is a complete 4985replacement for the NuttX networking with off-chip networking support 4986in the CC3000. 4987- Numerous enhancements to the ENCX24J600 driver from Max Holtberg. 4988 4989* Other Common Drivers: 4990 4991- The SST25 serial FLASH MTD driver now includes support for the 4992SST25VF016B. From David Sidrane. 4993- Add a preflight method to the SDIO interface to support the STM32 4994DMA usage model. From Mike Smith. 4995- Enhanced the MMC/SD SDIO driver to perform DMA preflight operations 4996and fail DMA read/write requests that fail preflighting. From Mike 4997Smith. 4998- Add an ioctl command that can be used to trigger ADC/DAC conversion 4999under application control. 5000 5001* File Systems: 5002 5003- Enhanced the FAT32 filesystem code to understand DMA preflight 5004failures, and to use the file sector buffer as a bounce buffer when 5005a user-supplied buffer is not suitable for DMA. From Mike Smith. 5006 5007* Atmel AT91 SAMA5D3x 5008 5009- Add support so that subsets of the total DRAM (and other external 5010memory) can be added to the heap, leaving other memory reserved for 5011other purposes (like the LCDC framebuffers). 5012 5013* Atmel AT91 SAMA5D3x Drivers: 5014 5015- Use more descriptive task names when starting the EHCI and OHCI 5016monitor tasks. 5017- Added a 10/100Base-T Ethernet (EMAC) driver. 5018- Added a 1000Base-T Ethernet (GMAC) driver. 5019- Added a Real Time Clock (RTC) driver and integrated with the NuttX 5020system time logic. 5021- Added support for /dev/random using the SAMA5D3x True Random Number 5022Generator (TRNG). 5023- Added a Watchdog Timer (WDT) driver. 5024- Added a Timer/Counter (TC) library with interface that make be used 5025by other drivers that need timer support. 5026- Added an ADC driver that can collect multiple samples using the 5027sequencer, can be trigger by a timer/counter, and supports DMA data 5028transfers. 5029- Added a touchscreen driver based on the special features of the 5030SAMA5D3 ADC peripheral. 5031- Added an LCD controller (LCDC) frame buffer driver. 5032- Added a CAN driver. However, testing has been delayed because of 5033cabling issues. 5034- Basic header file support is available for the Image Sensor 5035Interface (ISI) camera interface. Work on the camera driver is 5036underway and is expected in the next release. 5037 5038* Atmel AT91 SAMA5D3x-EK Development Boards 5039 5040- Add OS test support for the FPU test. 5041- Enable the task name feature board configuration sto provide 5042prettier ps command output. 5043- Added NX and NxWM configurations to verify the LCD and touchscreen. 5044There are still some outstanding issues with the NxWM configuration 5045as of this release. 5046- The TRNG and /dev/random are now enabled by default in the demo 5047configuration. 5048 5049* Atmel AT91 SAM3/4 Boards: 5050 5051- Add configuration to select revision 3 of the Arduino Due which has 5052some small but important differences. Suggested by gdi@embedders.org. 5053 5054* STMicro STM32: 5055 5056- Add support for the STM32F207ZE chip. From Martin Lederhilger. 5057 5058* STMicro STM32 Boards: 5059 5060- Add configuration for the Spark Core. The initial check-in is 5061basically the Maple Mini board and subsequent development by David 5062Sidrane is his special Spark emulation hardware. The configuration 5063should be very mature when actual Spark hardware is available. 5064- Support for the Olimex STM32 P207 board added by Martin Lederhilger. 5065- Configuration for the Mikroe STM32F4 board configuration updated for 5066audio support by Ken Pettit. 5067 5068* NXP LPC17xx Boards: 5069 5070- zkit-arm-1769: LED1 is now user controllable after booting. From 5071Rashid Fatah. 5072 5073* Kinetis KL Drivers: 5074 5075- PIT and TPM register definitions header files for the from Alan 5076Carvalho de Assis. 5077- Added low-level getc() function for operation with no file system. 5078The KL25Z can now support NSH in a very minimal system that does 5079not even have a file system. 5080 5081* Kinetis KL Boards 5082 5083- A new configuration called minnsh was added is an experiment to 5084see how small we can get the NuttX footprint and still support NSH. 5085From Alan Carvalho de Assis.. 5086 5087* TI Calypso Phones: 5088 5089- Basic board support for the Motorola C139 (Compal E86) phone. From 5090Craig Comstock. 5091 5092* Applications: 5093 5094- Moved several useful examples from apps/examples to apps/system. 5095This includes USB MSC, USB CDC/ACM, and USB Composite. 5096- New addroute and delroute commands added to NSH in order to manage 5097the network routing table. 5098- Numerous enhancements and updates to the CC3000 example from David 5099Sidrane. 5100- Add a new stack monitor daemon that can be used to constantly 5101monitor stack usage by all threads. 5102- Numerous changes to get NSH working with no file system. Basically 5103this suppresses I/O redirection and replaces file I/O with calls to 5104low-level console read/write functions. Suggested by Alan Carvalho 5105de Assis. 5106- apps/system/nxplayer: A new, command-line media player called 5107'nxplayer' from Ken Pettit. 5108- apps/examples/random: Add a simple test that dumps values from 5109/dev/random. 5110- apps/examples/adc: Add support so that a ADC driven by software 5111triggering can be tested. 5112 5113* Build System: 5114 5115- The MKDEP tools now support a new argument that identifies the 5116object file path. 5117 5118Efforts In Progress. The following are features that are partially 5119implemented but present in this release. They are not likely to be 5120completed soon. 5121 5122* kconfig-fronted Configuration: 5123 5124- Conversion of old configurations to use the kconfig-frontends 5125tool is an ongoing effort that will continue for some time. 5126At this time, only 48% of the configurations have been converted 5127to use the kconfig-frontends tools. 5128 5129Bugfixes (see the ChangeLog for details). Some of these are very important: 5130 5131* Initialization and Scheduling: 5132 5133- IDLE thread initialization logic should not call group_setupidlefiles() 5134if there are no file descriptors (and, hence, no file system). 5135- Fix some cornercase error handling logic: If sched_releasetcb() is 5136called as part of a failed pthread startup before the flags field in 5137the TCB has been initialized, then a crash occurs. Pointed out by 5138David Sidrane. 5139 5140* Networking / Network Drivers: 5141 5142- Look up of a device using subnet will fail if the packet is being 5143sent out of our subnet (via a router). The fallback here is just to 5144use the only device ("eth0") if the subnet lookup fails (this logic 5145was extended to handle multiple Ethernet devices by adding a simple 5146routing table). 5147- Fix some backward conditional logic in send() that enabled the 5148check if the ARP address is in the ARP table. From Max Holtzberg. 5149- Notify the socket layer from the network monitor if a connection is 5150lost before the monitoring callback has been registered. From Max 5151Holtzberg. 5152- send(): Reset the send timeout when the data is ACKed, not when the 5153data is sent. Remove conditions on checking for timeout. From Max 5154Holtzberg. 5155- Correct how the TCP/IP initial minimum MSS is calculated. Max 5156Holtzberg. 5157- TCP state machine: Move tcp connection into SYN_RCVD state after 5158aception instead of bypassing and moving directly into ESTABLISHED. 5159From Max Holtzberg. 5160- Numerous fixes to the ENCX24J600 driver from Max Holtberg. 5161 5162* USB Drivers: 5163 5164- Change naming of SELFPOWERED and REMOTEWAKEUP to avoid name 5165collisions. Prepend the name of the driver (for example 5166CDCACM_SELFPOWERED). 5167- CDC/ACM class driver: Change the interval for the interrupt 5168endpoint from 0xff (invalid) to 10. This is not a critical 5169change but will avoid a complaint from the Linux driver when 5170it overrides the 0xff value. 5171 5172* ARM Cortex-A5: 5173 5174- Fix an error in data cache clean and invalidate functions: Fix of 5175addresses to cache line boundaries. 5176 5177* Atmel AT91 SAMA5D3x Drivers: 5178 5179- Correct some inconsistencies in the way that USB configuration 5180settings are used. This caused compilation errors in SAMA5 OHCI 5181when USB debug was ON but USB host tracing was off. 5182- When 480MHz UPLL is used to drive OHCI, it should have a divider 5183of 10. However, that does not work. A divider of 5 does. Why?. 5184- OHCI HCD: Fix a place where DMA-related data needed to be flushed 5185to data cache; Fix another where a virtual address was being used 5186in a register where a physical address was required. 5187- HSMCI Driver: TX DMA disabled. It is just not reliable. No idea 5188why. RX DMA is still used. 5189- STM32F103C pinmapping corrections from David Sidrane. 5190 5191* Atmel SAMA5D3x-EK Board 5192 5193- Increase the number of pre-allocated watchdog timers. The default 5194number of 4 was easily being exhausted in the more complex 5195configurations. 5196 5197* STMicro STM32: 5198 5199- STM32 F4 DMA definitions: Typo fixes for UART7 and UART8 DMA 5200configs. From Mike Smith. 5201- DMA priority configuration corrections from Mike Smith. 5202- Changes to the stm32_dmacapable API. In order to correctly 5203verify that a buffer can be transferred, the transfer count and 5204the CCR value are required. Implemented stm32_dmacapable for 5205stm32f1xx devices. Enhanced stm32_dmacapable for stm32f2xx and 5206stm32f4xx devices to check for additional conditions that will cause 5207DMA to fail or lose data. 5208- STM32 F1 DMA fix from David Sidrane: The DMA_CNDTRx register 5209cannot be modified if the DMA channel is disabled. 5210 5211* STMicro STM32 Drivers: 5212 5213- Fix compilation errors from bad bit definitions in ADC and PWM 5214register. From Martin Lederhilger. 5215- DMA-related fixes to the SPI driver from Ken Pettit. 5216 5217* NXP LPC17xx Drivers: 5218 5219- Remove undefined spi_select() prototype. This was causing compile 5220time warnings. 5221 5222* NXP LPC17xx Boards: 5223 5224- zkit-arm-1768: MMC/SD is on SPI, not SSP0. From Rashid Fatah. 5225 5226* C Library 5227 5228- scanf() fixes from kfrolov: 1) sscanf() function hangs in the 5229following example: sscanf("2", "%u,%u,%u,%u", ...), 2) sscanf() 5230returns incorrect number of parsed numbers if some arguments 5231can't be parsed: sscanf("=2", "%u,%u,%u,%u",...)==1 instead of 52320, and 3) using of char* instead of const char* in vsscanf 5233function leads to warnings from GCC. 5234 5235* Build System 5236 5237- Dependency generation generation was broken for directories that 5238keep objects in a sub-directory. The MKDEP tools now support a new 5239argument that identifies the object file path. 5240- tools/define.sh: 'cut' no longer works as it once did. Script 5241adapted to observed behavior. 5242 5243* Applications: 5244 5245- Remove a warning from the NSH library when DHCP is not enabled. 5246- Default NSH IP address should be 0x0a000001 (10.0.0.1), not 52470xa0000001 (160.0.0.1). Ditto for the gateway. 5248- Add some missing options to the OS test Kconfig file 5249- Fix some bad conditional compilation in the USB monitor. 5250- Fix default I2C frequency used by the I2C tool: 400KHz instead 5251of 4MHz. Suggested by Max Kriegleder. 5252- Increase stack size for the system/info command. Ken Petit 5253reports that this simple command can exceed its 768 stack size 5254under certain conditions. The size is marginal and has been 5255increased to 1024 by default but is also now configurable. 5256- apps/Makefile: Needs to include external/Make.defs if we want 5257allow external applications to participate in the NuttX 5258configuration. Suggested by gdi@embedders.org. 5259- apps/netutils/telnetd: Missing argument to debug statement 5260can cause crashes in certain error conditions. From David 5261Sidrane. 5262- apps/examples/can: Correct an error in a debug statement. From 5263Martin Lederhilger. 5264 5265NuttX-6.32 5266---------- 5267 5268The 99th release of NuttX, Version 6.32, was made on December 7, 2013, 5269and is available for download from the SourceForge website. Note 5270that release consists of two tarballs: nuttx-6.32.tar.gz and 5271apps-6.32.tar.gz. Both may be needed (see the top-level nuttx/README.txt 5272file for build information). 5273 5274Additional new features and extended functionality: 5275 5276* General: 5277 5278- Extension and standardization of stack debug logic. Now includes 5279coloration of the IDLE and interrupt stacks as well as the heap. 5280Suggested by David Sidrane. 5281 5282* Audio Subsystem and Audio Drivers: 5283 5284- I2S interface definition. Integrates with audio sub-system. 5285- VS1053 worker thread stack size is now configurable and assigned a 5286name via pthread_setname_np(). From Ken Pettit. 5287 5288* Networking / Network Drivers 5289 5290- Updates and adaptations to support for TI CC3000 wireless module 5291from David Sidrane. These updates include multi-threading support 5292and interface and header file changes to integrate more seamlessly 5293with NuttX applications. 5294 5295* File Systems: 5296 5297- procfs: Add support for a tiny procfs file system. The initial 5298offering is little more that a proof of concept but may be developed 5299further in subsequent releases. 5300- NXFFS: An initial attempt was made to integrate NXFFS with the NAND 5301MTD driver. Changes were made to handle bad blocks. However, I 5302later realized that NXFFS cannot handle NAND because the way that 5303is re-writes blocks is incompatible with the NAND ECC handling. 5304These changes were backed-out so as not to introduce turmoil, but 5305can be re-enabled if needed via configuration option. 5306- NXFFS: Make the start up scan of the media a configuration option. 5307It just takes to long and is not really necessary! Those rare cases 5308where the scan was helpful can be fixed using MDIOC_BULKERASE IOCTL 5309command. 5310 5311* General Drivers: 5312 5313- I2S: A simple character driver was added to support I2S accesses. 5314This driver in its current state is intended only to support I2C 5315testing and would not be appropriate to used for any real driver 5316application. 5317 5318* MTD Drivers 5319 5320- Add a container for an MTD device that can be used to provide a 5321simple, lightweight interface to configuration data storage that 5322resides on some storage media that is wrapped as an MTD device. 5323From Ken Pettit. 5324- New interface definition for lower half NAND drivers. 5325- MTD Nand: Add MTD NAND driver that will support ONFI devices, 5326non-ONFI devices (via table lookup), bad block checking, software 5327ECC (Hamming), and will interact with the lower-half, hardware- 5328specific, NAND driver. Based on BSD-compatible Atmel sample code. 5329- MTD geometry structure is now packed so that it can support larger 5330erase block sizes needed by NAND without increasing the size of 5331the geometry structure. 5332- SST25: Add another SST25 SerialFlash driver, sst25xx.c. This one 5333differs from sst25.c in that it supports larger SST25 parts: In 5334the larger parts support page write instead of byte/word writes 5335like the smaller parts. From Ken Pettit. 5336 5337* USB Drivers 5338 5339- STM32 F1 USB Device: Add support for decoded USB trace strings. 5340From David Sidrane. 5341 5342* ARM 5343 5344- Add more ARM9 cache management functions to flush and invalidate 5345D-Cache for DMA support. 5346 5347* Atmel AT91 SAMA5D3x Drivers: 5348 5349- Many new drivers including CAN, PWM, SSC/I2S 5350- PCK: Add support for programmable clock outputs. 5351- NAND: Driver with hardware ECC and DMA support 5352 5353* Atmel AT91 SAMA5D3x Boards: 5354 5355- SAMA5D3x-EK: Add support for the apps/examples/i2schar test. 5356- SAMA5D3x-EK: Provides board-specific memory controller initialize 5357for NAND flash. 5358- SAMA5D3x-EK: Add support for "auto-mounting" NAND MTD block driver 5359or NXFFS file system. 5360 5361* Atmel AT91 SAM3/4 Boards: 5362 5363- Basic support for the Atmel SAM4E family. From Mitko. 5364 5365* STMicro STM32: 5366 5367- Added support for the STM32F429. From Ken Pettit. 5368- Added support for GPIOK and GPIOJ. From Ken Pettit. 5369 5370* STMicro STM32 Drivers 5371 5372- STM32 F4 OTG FS/HS Device: OTG FS device and host drivers extended 5373so that they can support either the OTG FS peripheral or the OTG HS 5374peripheral (in FS mode). This was done as a quick way to get USB 5375support on the STM32F429 which has only OTG HS. From Ken Pettit. 5376- Added header files and driver framework for the STM32F429 LTDC 5377framebuffer driver. From Ken Pettit. 5378 5379* STMicro STM32 Boards: 5380 5381- Support for the Spark board was completely by Davide Sidrane. The 5382Spark configuration includes integrated CC3000 wireless support, FAT 5383file system on the SerialFlash and a composite device that can be 5384used both to export the FAT file system and to provide a serial 5385interface. 5386- The Mikroe-stm32f4 now uses /dev/config for configuration data 5387storage. From Ken Pettit. 5388- Added support for the STM32F429I-Discovery board from Ken Pettit. 5389- Added board support for the ViewTool STM32F103/F107 board with the 5390STM32F107VCT6 installed. 5391 5392* NXP LPC31xx Drivers: 5393 5394- USB ECHI HCD: Add a driver for the low-/full-/high-speed variant 5395of the EHCI host controller. 5396 5397* NXP LPC31xx Boards: 5398 5399- Board-specific USB host support for the Embedded Artists EA3131 board. 5400(Missing PCA9532 controls). 5401- Add support for the Olimex LPC-H3131 board. Including USB host 5402support (which does not depend on the PCA8532 interface). 5403 5404* Kinetis KL Drivers: 5405 5406- PWM driver for the Freescale Kinetis KL family from Alan Carvalho 5407de Assis. 5408 5409* Kinetis KL Boards 5410 5411- Freedom-KL25Z: Add PWM support from Alan Carvalho de Assis. 5412 5413* TI Stellaris LM3S 5414 5415- Don't initialize .data in start-up logic if not running from FLASH. 5416 5417* Applications: 5418 5419- apps/platform: A new home for platform-specific application code. 5420- Define a common interface that can be used to manage platform- 5421specific configuration data. From Ken Pettit. 5422- apps/examples/configdata: A unit test for the MTD configuration 5423data driver from Ken Pettit. 5424- Aapps/platform/mikroe-stm32f4: dd platform-specific storage of 5425configuration data for the Mikroe-stm32f4. From Ken Pettit. 5426- apps/examples/cc3000: Fine tuning of memory usage from David Sidrane. 5427- apps/system/nxplayer: Play thread stack size is now configurable. 5428All NxPlayer threads now have names assigned via pthread_setname_np(). 5429From Ken Pettit. 5430- apps/examples/i2schar: The I2S test based on the I2S character 5431driver. 5432- apps/examples/hidkbd/hidkbd_main.c: Now calls a function named 5433arch_usbhost_initialize() that must be provided by the platform- 5434specific code. 5435- NSH: 5436 5437- hexdump: Add skip= and count= options to the hexdump command. From Ken Pettit. 5438- Allow USB trace without a USB console. From David Sidrane. 5439- Mount command updates from Ken Pettit. 5440- Add an option to the mkfatfs command to specify FAT12, FAT16, or FAT32. 5441 5442* Tools 5443 5444- tools/mkctags.sh: A script for creating ctags from Ken Pettit. 5445 5446Efforts In Progress. The following are features that are partially 5447implemented but present in this release. They are not likely to be 5448completed soon. 5449 5450* kconfig-fronted Configuration: 5451 5452- Conversion of old configurations to use the kconfig-frontends 5453tool is an ongoing effort that will continue for some time. 5454At this time, only 50% of the configurations have been converted 5455to use the kconfig-frontends tools. 5456 5457Bugfixes (see the ChangeLog for details). Some of these are very important: 5458 5459* File Systems 5460 5461- FAT: In one error return case, the error return value was not being 5462set, making the failure look like success. From David Sidrane. 5463- mount: SMART FS must be included in the conditional compilation for 5464the set of file systems that require block drivers. From Daniel 5465Palmer. 5466- SmartFS: Fixed a minor bug with SMART partition number reporting 5467that would only be seen if both partition support and multi-root 5468directory support are enabled at the same time. From Ken Pettit. 5469- Deadlock: The inode semaphore must be re-entrant. Here is the re- 5470entrant path that I found: (1) USB host connects to FLASH drive and 5471creates /dev/sda, (2) /dev/sda is mounted, (3) FLASH drive is 5472removed but /dev/sda is not destroyed because there is still a 5473reference on the device because of the mount, (4) umount() is 5474called, taking the inode semaphore, now the driver tries to destroy 5475the block driver by calling unregister_blockdriver(). But (5) 5476unregister_blockdriver() also takes the inode semaphore causing a 5477deadlock if the inode semaphore is not re-entrant. 5478- FAT: Fix a typo in the FAT16 formatting logic. Was this ever able to 5479format a FAT16 volume? 5480 5481* MTD Drivers 5482 5483- MTD Partitions: Fix erase block vs page block confusion. From Ken 5484Pettit 5485- SST25 Serial Flash: Improved write performance by fixing a bug that 5486prevented operation in the faster write mode. From David Sidrane. 5487 5488* USB Drivers: 5489 5490- USB MSC Device: pthread_join() does not work if called from a 5491different task group than the pthread. This is correct behavior, 5492but still a problem. The correct solution would be configure the 5493USB MSC thread to a task, however, this workaround from David 5494Sidrane plugs the hole for now. 5495- USB CDC/ACM, USB MSC, and Composite Device Classes: Un-initialization 5496logic caused re-use of a stale pointer. Changed to a two pass 5497un-initialization for the case of the composite driver: Memory 5498resources are not freed until the second un-initialization pass. 5499From David Sidrane. 5500 5501* STMicro STM32 Drivers: 5502 5503- STM32 F1 USB Device: Fix some errors that cause crashes when the USB 5504was disconnected. From David Sidrane. 5505- STM32 F1 USB Device: Correct EP0 state handling logic when buffers 5506larger than the EP0 packet size are sent. From David Sidrane. 5507- STM32 F1 USB Device: The long outstanding bug involving the handling 5508of OUT SETUP commands has been fixed in the STM32 F1 USB device 5509driver by David Sidrane. 5510- Kconfig: Add missing setup of CAN TSEG1 and TSEG2 values. From 5511Martin Lederhilger. 5512 5513* Tools 5514 5515- tools/mkconfig.c: SMART FS must be included in the conditional 5516compilation for the set of writable file systems. Noted by Daniel 5517Palmer. 5518 5519* Applications: 5520 5521- apps/platform/Makefile: Was not dealing with the bin sub-directory 5522correctly. 5523- apps/system/composite/composite_main.c: The wrong handle was getting 5524nullified. From David Sidrane. 5525 5526NuttX-6.33 5527---------- 5528 5529The 100th release of NuttX, Version 6.33, was made on January 30, 2014, 5530and is available for download from the SourceForge website. Note 5531that release consists of two tarballs: nuttx-6.33.tar.gz and 5532apps-6.33.tar.gz. Both may be needed (see the top-level nuttx/README.txt 5533file for build information). 5534 5535Additional new features and extended functionality: 5536 5537* Core OS Interfaces 5538 5539- nanosleep() added. sleep() and usleep() are no longer core OS 5540interfaces. These have been moved into the library and re-implemented 5541as simple wrappers around nanosleep(). 5542 5543* File Systems 5544 5545- procfs restructured by Ken Pettit. Added files for MTD status. 5546- procfs extended to show uptime and task group status. 5547- procfs now shows stack information. 5548 5549* Networking 5550 5551- Add support for the SO_LINGER socket option. Extended from logic 5552provided by Jason Jiang. Enabled with CONFIG_NET_SOLINGER. 5553- TCP write buffering support added. From Jason Jiang. 5554- Changes from Max Holtzberg to improve how network status is 5555reported. New controls to manage carrier detect. 5556 5557* Graphics 5558 5559- Massive reshuffling of files with little or no logic changes. This 5560reshuffling was necessary to build graphics applications with the 5561kernel builds where the graphics application lie in user space and 5562the core graphic server likes in kernel space. Moved much logic out 5563of nuttx/graphics to a new user library, libnx. 5564 5565* Cortex-A5/A8/A9 5566 5567- Existing Cortex-A5 support updated to include Cortex-A8/9. 5568- Add the syscall.h header file needed for the Cortex-A architecture. 5569- Start-up logic now supports execution from FLASH with .data and 5570.bss in SDRAM. This was not possible prior to this because .bss 5571and .data were initialized before SDRAM was configured. 5572 5573* Allwinner A10: 5574 5575- Basic support for the Allwinner A10 (Cortex-A8) is in place. 5576 5577* Allwinner A10 boards 5578 5579- Support for the pcDuino v1 board has been added. This support 5580is not yet very mature and still lacks many drivers. It is a 5581good starting point, however, if anyone wants to develop A10 5582support. 5583 5584* Atmel SAMA5D3X 5585 5586- Start-up logic now supports execution from FLASH with .data and 5587.bss in SDRAM. This was not possible prior to this because .bss 5588and .data were initialized before SDRAM was configured. 5589 5590* Atmel SAMA5D3X Boards 5591 5592- Partial logic in place to support the OV2640 camera. Still needs 5593quite a bit of additional logic to be useful. 5594 5595* ARMv7-M 5596 5597- Add support for high priority, nested interrupts. This change 5598effects not only core ARMv-7M logic, but all ARMv7-M MCU logic: 5599LM3S, LM4F, LPC17xx, LPC43xx, SAM3, SAM4, and STM32. See 5600https://cwiki.apache.org/confluence/display/NUTTX/High+Performance%2C+Zero+Latency+Interrupts 5601 5602* STMicro STM32 5603 5604- Add clocking support for STM32F107 USB OTG FS (which does not yet 5605work) 5606- Single-wire UART support for the F1 series from Thomas Grubler. 5607 5608* STMicro STM32 Boards 5609 5610- The Viewtool board can now be configured to support either the 5611STM32F103VCT6 or the STM32F107VCT6. 5612- The Viewtool STM32F107VCT6 now supports networking with the 5613DP83848C module installed. 5614- Add support for Viewtool SSD1289-based LCD on the Viewtool 5615STM32F103VCT6 board (untested) 5616- Add support for the XPT2046 touchscreen controller on the Viewtool 5617LCD module connected to the Viewtool STM32F103 board. 5618- Added kernel mode build support for the STM3240G-EVAL board. Added 5619a new kernel mode NxWM build configuration 5620- C++ static constructor logic from the nuttx/configs/stm3240g-eval/ 5621directory to the apps/platform/stm3240g-eval/up_cxxinitialize.c 5622where is belongs so that it is available in user-space in the kernel 5623mode build. 5624- Add native Windows build support for the Olimex STM32 P107. From 5625Max Holtzberg 5626- Support for the STM32VL-Discovery board. Contributed by Alan 5627Carvalho de Assis 5628- Added a configuration for testing simple configurations on the 5629PX4FMU v2. 5630 5631* ZiLOG ZNEO Boards 5632 5633- Add an NSH configuration for the Z16F2800100ZCOG ZNEO board. 5634- Added support for the Toyaga 16Z ZNEO board. The 16Z board is 5635based on the ZiLOG ZNEOZ16F2811AL20EG part. See 5636https://github.com/toyaga/16z for further information 5637- Developed a patch to work around a compiler error that is revealed 5638when building the NSH configuration. 5639 5640* Architecture-Independent Drivers 5641 5642- OV2640 Camera Driver. 5643- Support for the Sharp Memory LCD from Librae. 5644 5645* Library 5646 5647- Pattern matching logic extended to handle set of characters and 5648ranges of character values. From Ken Pettit. 5649- sleep() and usleep() moved into the C library. These are not 5650longer core OS interfaces; they are simple wrappers for the 5651nanosleep(). 5652- Add an implementation of gets_s(). 5653- Extend fopen() to include support for C11 exclusive open ("x") 5654open mode. 5655- Add an implementation of stpcpy() 5656- strtol(), strtoll, strtoul(), strtoull(), and strtod() from 5657libc/string to libc/stdlib where they belong. 5658 5659* Header Files 5660 5661- Add rsize_t to include/sys/types.h 5662- Add the C11 thread.h header file 5663 5664* Configuration/Build System 5665 5666- Top level Makefile now supports qconfig and/or gconfig targets that 5667may be used for configuration. These may be used if you build 5668kconfig-frontends with support for kconfig-qconf and/or 5669kconfig-gconf. 5670- Add CONFIG_DEBUG_NOOPT. Now you can independently enable/disable 5671debug symbols and optimization 5672- File system related header files moved to include/nuttx/fs 5673- Video related header files moved to include/nuttx/video 5674- Changes for native Windows build: fix creation of a .version file 5675if one does not exist. Make sure that the APPDIR environment 5676variable is set before configuring. From Max Holtzberg. 5677- Board configuration sub-directory can now be specified. The default 5678need not be used. This is only useful when CONFIG_ARCH_BOARD_CUSTOM 5679is selected and there is no meaningful default sub-directory. 5680- Many functions renamed to better conform with the naming standard: 5681up_buttoninit() renamed to board_button_initialize(), up_buttons() 5682renamed to board_buttons(), up_irqbutton() renamed to 5683board_button_irq(), up_ledinit() renamed to board_led_initialize(), 5684up_ledon() renamed to board_led_on(), and up_ledoff() renamed to 5685board_led_off(). All prototypes removed from board.h header files. 5686Now ONLY prototypes in include/nuttx/arch.h. 5687 5688* Applications 5689 5690- NSH: Refactor. Separate NSH command handling and command execution 5691from NSH line parsing. 5692- NSH: Will now support multiple commands on a command line, each 5693separated with a semi-colon. 5694- NSH: Add support of commands enclosed in back quotes as command 5695arguments. 5696- NSH: Can now handle arguments that are concatenations of constant 5697strings, command return data, application return data, and 5698environment variables. 5699- NSH: Add true and false commands. 5700- NSH: Add support for while-do-done and until-do-done loops. These 5701only work when executing a script file because they depend on the 5702ability to seek in the file to implement the looping behaviors. 5703Can be conditionally compiled out to reduce footprint. 5704- NSH: Loosen up if-then-else-fi syntax to allow a command to be on 5705the same line as the then or else tokens like: 5706"if true; then echo true; else echo false; fi". More like bash. 5707- NSH: Add a break command that can be executed with a loop to 5708terminate the loop immediately. 5709 5710- system/inifile: A simple .INI file parser. 5711- system/vi: Add support for a tiny, VI work-alike editor. This is 5712a minimal full screen editor that works with a terminal emulator 5713that using VT100 commands. 5714 5715Efforts In Progress. The following are features that are partially 5716implemented but present in this release. They are not likely to be 5717completed soon. 5718 5719* kconfig-fronted Configuration: 5720 5721- Conversion of old configurations to use the kconfig-frontends 5722tool is an ongoing effort that will continue for some time. 5723At this time, only 53% of the configurations have been converted 5724to use the kconfig-frontends tools. 5725 5726Bugfixes (see the ChangeLog for details). Some of these are very important: 5727 5728* Core OS 5729 5730- Added missing sem_timedwait() system call. 5731 5732* Networking 5733 5734- Prevent tcp_connect callback from being double freed. From Max 5735Holtzberg 5736- uiplib: Support new definitions and state passing for network 5737device status. From Maz Holtzberg. 5738 5739* File Systems 5740 5741- FAT: (1) A correction to FAT cluster allocation, and (2) Fix to some 5742root directory logic that was conditionally done only for FAT 32. 5743Apparently this needs to done for all FAT types. Both from Andrew 5744"Tridge" Tridgell via Lorenz Meier. 5745 5746* Binary Formats 5747 5748- Fix a small memory leak when attempting to load a program from a file. 5749 5750* Cortex-A8/9 5751 5752- Fix some errors in the cache invalidation logic (only seem to matter 5753for Cortex-A8). 5754- Add more nop's after enabling the MMU. The cortex-a8 seems to need 5755these 5756 5757* Graphics 5758 5759- Fix a typo that caused a compilation error when 5760CONFIG_NXCONSOLE_BPP < 8. From Librae 5761 5762* ARMv7-M 5763 5764- Correct alignment of RAM vector table. 5765- Interrupt handling: Do not disable and enable the IRQ on each 5766entry, (2) this interferes with controlling the IRQ interrupt 5767setting from interrupt handlers, and (3) up_disable_irq() does 5768not work anyway so that this has never done anything. 5769- Fix all implementations of up_disable_irq() for all Cortex-M3 and 5770M4 architectures: To enable an interrupt on the Cortex-M3/4 CPU, 5771you need to set a bit in the ISER register. To disable the 5772interrupt, you need to set a bit in the ICER register. Existing 5773logic was trying to disable interrupts by clearing the bit in the 5774ISER register. That will not work; writing a '0' to the ISER 5775register has no effect. That means that up_disable_irq() was 5776doing nothing! It turns out that that is not really important 5777because up_disable_irq() is not really used for that purpose. But 5778some spurions STM32 ADC interrupts have been reported to me and this 5779turned out to be the cause in that case. Thanks to Manuel Stühn for 5780the tip. 5781 5782* STMicro STM32 5783 5784- Fix configuration and pin definitions that would prevent building 5785USB for the connectivity and performance lines. 5786- STM32L15xx: Fix a typo in USB pin definitions 5787- Fix pin definition names for SPI2 MOSI and MISO. Noted by Brian Webb 5788- Various fixes for STM32F103ZE SPI3 pin mapping definitions. From 5789Steve Redler IV 5790 5791* STMicro STM32 Boards 5792 5793- Olimex STM32-P107: Failed to build if SPI3 for UEXT is not remapped. 5794From Max Holtzberg 5795 5796* x86 Boards 5797 5798- Add a configuration option to select the -m32 compiler option when 5799building for a 32-bit target on a native 64-bit compiler. So far, 5800only used for the qemu/i486 configuration. 5801- Patch from Matt Campbell to fix 'Error: .size expression for idle_stack 5802does not evaluate to a constant". 5803 5804* Library 5805 5806- strftime(): Needs null termination on the generated string. From 5807Max Holtzberg. 5808- Typo in ctype.h macro name: iscntrl(), not iscontrol(). 5809- If there are no arguments (argc == 1), then getopt() will leave the 5810optind variable in an undefined state (2014-1-20). 5811- ARMv7-M memcpy(): Assembler changes with the gcc-47 distribution 5812from ARM mean that we need to be explicit about branch sizes; one 5813or more of the wide branch opcodes results in bad table branching. 5814From Mike Smith. 5815 5816* Configuration/Build System 5817 5818- Fixes for some tools/ for Windows build issues from Max Holtzberg. 5819- Config.mk: 'cypath' must be called if we are using a Windows native 5820toolchain with the Cygwin 'make' to convert paths to proper 5821Windows paths. From Richard Cochran. 5822- ARM Makefile: Dependency directory list is now computed from the 5823VPATH. From Richard Cochran. 5824- builtin/Makefile: Fixes for native Windows build from Max Holtzberg. 5825- Refactor some configuration dependencies: NSH networking features 5826should depend on netutil selections; netutil selections, in turn, 5827should depend on networking selections. 5828 5829* Applications 5830 5831- NSH: Modified the df -h logic to eliminate truncating numbers in 5832conversion (like 7900 -> 7M). From Ken Pettit. 5833 5834NuttX-7.1 5835--------- 5836 5837The 101st release of NuttX, Version 7.1, was made on March 15, 2014, 5838and is available for download from the SourceForge website. Note 5839that release consists of two tarballs: nuttx-7.1.tar.gz and 5840apps-7.1.tar.gz. Both may be needed (see the top-level nuttx/README.txt 5841file for build information). 5842 5843The previous NuttX version was 6.33. The NuttX minor version number is 5844incremented on each release, but the major version number is incremented 5845only when an incompatibility with previous versions is included in the 5846release. In this case, the legacy, manual configuration is no longer 5847supported by the NuttX build system beginning with NuttX 7.1. Only the 5848newer configurations generated by the kconfig-frontends tools will generate 5849viable NuttX configurations. 5850 5851All board configurations in the NuttX source tree have been converted to 5852use the newer configuration, but if you have some older style configurations 5853for you board, you will need to convert those configurations to use the 5854kconfig-frontends tools before taking any new code from the repository. See 5855https://cwiki.apache.org/confluence/display/NUTTX/Converting+Legacy+Configurations+to+Use+kconfig-mconf 5856for some guidelines. 5857 5858Additional new features and extended functionality: 5859 5860* Core OS: 5861 5862- System time logic now includes logic to measure and calculate the 5863CPU load percentage (from David Alessio). This CPU load logic 5864extended to keep counts on each thread. The per-thread CPU is 5865now reported in the procfs under <pid>/loadavg An asynchronous, 5866"external" clock may be used to drive the CPU load calculations 5867for more accurate measurements when needed. 5868 5869* File Systems: 5870 5871- As mentioned above, the per-thread CPU load information is now 5872reported in the procfs under <pid>/loadavg. 5873- Many file system interfaces have been extended to operate on the 5874top-level NuttX pseudo filesystem. These include rmdir, mkdir, 5875rename, and unlink. This capability can be disabled with 5876CONFIG_DISABLE_PSEUDOFS_OPERATIONS in order to keep the footprint 5877small. 5878 5879* Networking: 5880 5881- Numerous updates and improvements to the CC3000 driver from David 5882Sidrane. 5883 5884* Common Drivers: 5885 5886- Defined a mouse interface that is very similar to a touchscreen 5887interface, but allows reporting of all mouse buttons. Also, unlike 5888touchscreen drivers, mouse drivers need to report positional data 5889with no button is pressed so that the mouse position can drive a 5890cursor. 5891- Added support for a USB HID boot mouse device. Cursor support is 5892not integrated and must be provided by the application based upon 5893the reported mouse data. 5894- Support added for the MIO283QT9A LCD from Toby Duckworth. 5895 5896* Atmel SAMA4E: 5897 5898- Added complete architecture support for the Atmel AT91 SAM4E 5899Cortex-M4F parts. 5900 5901* Atmel SAM4E Board Support: 5902 5903- Add board support for the SAM4E-EK board. 5904 5905* Atmel SAM4E Drivers: 5906 5907- Added logic to manage the Cortex-M Cache Control block. 5908- Developed and integrated an Ethernet MAC driver for the SAM4E. 5909- Backported the SAMA5 SPI driver to the SAM3/4 architecture. The 5910SAMA5 version supports both multiple SPI peripherals as needed by the 5911SAM3A and SAM3X and also supports DMAC (but not PDC) needed by the 5912SAM4E. 5913 5914* Atmel SAM D20: 5915 5916- Added basic architecture support for the Atmel AT91 SAM D20 5917Cortex-M0+ parts. 5918 5919* Atmel SAM D20 Board Support: 5920 5921- Added basic support for SAM D2 Xplained Pro board. Currently, the 5922NuttShell (NSH) works reliably over a serial port. An SPI driver 5923has also been developed. Work with the SAM D20 has been temporarily 5924stopped, however, in order to focus on the SAM4E-EK. 5925 5926* TI Tiva TMC4C123G: 5927 5928- Added architecture support for the TI Tiva TM4C123G parts. This was 5929merged into the existing support for the LM3S and LM4F families. 5930All directory, file, and function references changed from lm to tiva. 5931 5932* TI Tiva TMC4C123G Board Support: 5933 5934- Added basic board support for the TM4C123G-Launchpad. As of this 5935release the TM4C123G-Launchpad board support is untested and likely 5936incomplete. 5937 5938* STMicro STM32 Boards: 5939 5940- The Mikroe STM32F4 can now support the newer MIO283QT9A LCD. From 5941Toby Duckworth. 5942- Miscellaneous changes to better support FPU on STM32F429 Discovery 5943from David Alessio. 5944 5945* NXP LPC2378 Drivers: 5946 5947- Incorporated I2C and SPI drivers for the LPC23xx from Lizhuoyi. 5948 5949* QEMU i486 Drivers: 5950 5951- New QEMU keyboard and VGA drivers from Lizhuoyi. 5952 5953* Documentation: 5954 5955- Added a coding standards document. See 5956https://nuttx.apache.org/docs/latest/contributing/coding_style.html 5957 5958* Configuration/Build System: 5959 5960- A configuration option, CONFIG_DEFAULT_SMALL, was added to select 5961default values for configuration variables based upon whether you 5962want a smaller footprint or more features. This is not very useful 5963if you are modifying existing configurations because then the 5964default values do not apply. 5965- CONFIG_DEFAULT_SMALL has been defined on all tiny MCU configurations 5966so that they do not grow so rapidly when new, optional features are 5967added. 5968- The legacy, manual configuration is no longer supported by the 5969NuttX build system. Only the newer configurations generated by 5970the kconfig-frontends tools will generate viable NuttX 5971configurations. All board configurations in the NuttX source tree 5972have been converted to use the newer configuration, but if you have 5973some older style configurations for you board, you will need to 5974convert those configurations to use the kconfig-frontends tools. See 5975https://cwiki.apache.org/confluence/display/NUTTX/Converting+Legacy+Configurations+to+Use+kconfig-mconf 5976for some guidelines. 5977 5978* Applications: 5979 5980- NSH can now use an EMACS-like command line editor. This CLE, is 5981really more like the traditional readline than is the default, tiny 5982the NuttX readline . 5983- The touchscreen example can now be configured to work with either a 5984touchscreen or a mouse device. 5985- Several NSH commands can now be used to operate on objects in the 5986top-level pseudo-filesystem: rmdir, mkdir, mv, and rm. This 5987capability can be disabled with CONFIG_DISABLE_PSEUDOFS_OPERATIONS 5988in order to keep the footprint small. 5989- If both the CPU load feature and the procfs features are enabled, 5990then the NSH 'ps' command will show the CPU load used by each 5991thread. 5992 5993Bugfixes (see the ChangeLog for details). Some of these are very important: 5994 5995* Core OS: 5996 5997- task_terminate() always returned an error because the return value 5998was not being set correctly (from Gosha). 5999- nanosleep() Fix a missing call to re-enable interrupts (from Jason 6000Jiang). 6001 6002* File Systems: 6003 6004- Fixed an error in the FAT logic that can cause file corruption. The 6005error conditions are rare and only seen with very large files (from 6006Andrew Tridgell). This replaces a previous, partial fix for the same 6007problem. 6008- Fixed memory leaks in the NXFFS open() and stat() implementations 6009(from Lzyy). 6010- The interfaces include opendir(), readdir(), et al, were modified so 6011that errors will not be reported if you attempt to list a empty 6012pseudo-directory. 6013 6014* Networking: 6015 6016- Fix one place where the connection reference count was not being 6017decremented in the socket close() logic. This is really a cosmetic 6018change BUT when CONFIG_DEBUG_NET is enabled, it will cause assertions. 6019- Backed out a small part of the NuttX 6.33 write buffering changed. 6020David G says that this causes problems in connecting to a server. 6021- In DHCPD, there was a place where the logic was calling ntohl() 6022inappropriately; the address was already in the correct order. How 6023could DHCPD have worked with this bug? 6024 6025* TI Tiva/Stellaris Drivers: 6026 6027- Fixed cut'n'paste error that prevented UARTS2-7 from being used with 6028the LM4F120 Launchpad. 6029- Fixed several errors there were unmasked with UARTs > UART2 are 6030enabled (grom Gosha). 6031 6032* Allwinner A10 Drivers: 6033 6034- Fixed cut'n'paste error that prevented UARTS2-7 from being used with 6035the pcDuino. 6036 6037* NXP LPC17xx Drivers: 6038 6039- Fix an compilation error that crept into the LPC17xx USB host driver. 6040 6041* STMicro STM32 Drivers: 6042 6043- Fix cloned typo in the serial driver: FLOWCONTROL vs FLOWCONROL. 6044- Disable SPI before changing DPI CR1 register (from David Sidrane). 6045- stm32 TIM: Set the timer CCMR when selecting timer channel. From 6046David Sidrane. 6047- Fix typo in a Makefile: stm32_pwm.c not stm32_psm.c. Noted by Max 6048Kriegleder. 6049 6050* Library: 6051 6052- More sscanf() bug fixes from David Sidrane. 6053 6054* Header files: 6055 6056- cstdbool: Ignore _Bool8 if CONFIG_C99_BOOL8=y 6057 6058* Configuration/Build System: 6059 6060- Several changes to restore the broken native Windows build 6061 6062* NuttShell (NSH): 6063 6064- Use strncpy vs strcpy in the Telnet console logic to avoid 6065overrunning the username and password buffers (from Bertold Van den 6066Bergh). 6067- Add a newline after printing the file in the 'cat' command. This 6068prevents the NSH prompt from be in the same line as the final line 6069of the file in the case where there is no newline at the end of the 6070file. 6071 6072NuttX-7.2 6073--------- 6074 6075The 102nd release of NuttX, Version 7.2, was made on April 29, 2014, 6076and is available for download from the SourceForge website. Note 6077that release consists of two tarballs: nuttx-7.2.tar.gz and 6078apps-7.2.tar.gz. Both may be needed (see the top-level nuttx/README.txt 6079file for build information). 6080 6081Additional new features and extended functionality: 6082 6083* Core OS: 6084 6085- Add support for CLOCK_REALTIME. From Macs N. 6086 6087* Network Utilities: 6088 6089- Add a very primitive NTP client. 6090- DNS resolver: Long needed major clean up for coding style and 6091unification of naming conventions (resolv vs dns). 6092 6093* Common Drivers: 6094 6095- Add a new MTD driver that can be used to contain another driver and 6096force its apparent sector size to be 512 bytes. 6097- If DCD can support queuing of stall requests, then the USB MSC stall 6098work around delays are not necessary. 6099- Redesign threading module used with the USB MSC driver. It was using 6100pthreads before and these were changed to a kernel thread. The reason 6101for this has to do with task grouping: A pthread is a memory of the 6102group of the task that started it. A kernel thread is independent of 6103the task that started in (other than knowing it as the parent). This 6104allows me to remove so kludge logic to "deparent" the pthread on 6105startup. 6106- Update the MIO183QT-9A LCD driver to support reading from the LCD. 6107From Toby Duckworth. 6108- Timer "upper half" driver and l"lower half" interface definition from 6109Bob Doiron. 6110 6111* Atmel SAM4E/4S Board Support: 6112 6113- All SAM4E configurations updated to run with 120MHz CPU speed and 6114with the CMCC enabled. 6115- Support for the SAM4S Xplained Pro board from Bob Doiron. 6116- Add watchdog driver. From Bob Doiron. 6117 6118* Atmel SAM4E/4S Drivers: 6119 6120- Add a USB full speed device driver (UDP) for the SAM4E. 6121- Add support in HSMCI and SPI drivers to invalidate cached memory if 6122the CMCC is enabled. 6123- Add logic to handle SPI word widths > 8 6124- Port RTC driver from SAMA5 to SAM3/4. From Bob Doiron. 6125- HSMCI: Extensions from Bob Doiron needed to support PDC-based HSMCI 6126DMA transfers. Verified on the SAM4S Xplained Pro. 6127 6128* Atmel SAMA5: 6129 6130- Add support for the SAMA5D36 chip. 6131- Add functions to calculate PLLACK, PCK, and MCK frequencies given 6132the main clock frequency. 6133- Implemented RAM functions. When booting directly into NOR flash, 6134reconfiguring the PLL while executing out of NOR FLASH causes 6135crashes. This was fixed by David Sidrane by implementing RAM 6136functions. The killer code is copied and executed from ISRAM and 6137the crash is avoided. 6138 6139* Atmel SAMA5 Drivers: 6140 6141- Add support for the SAMA5D3 DBGU. 6142 6143* Atmel SAMA5 Board Support: 6144 6145- Add a board support configuration for the Atmel SAMA5D3 Xplained 6146board running out of SDRAM. When booting from SDRAM, start-up logic 6147needd to query the PMC registers to determine the MCK, PCK, etc. 6148- For all SAMA5 boards, added support for 528MHz clocking. 6149 6150* TI Tiva/Stellaris: 6151 6152- Modify the logic to disables the interrupts and sets the default 6153interrupt priority so that it uses the ICTR to get the number of 6154interrupt lines/registers. This is instead of using some fixed 6155number of initializations based a priori knowledge of the number 6156of interrupt lines in the MCU. 6157 6158* STMicro STM32 6159 6160- Add support for the STM401RE. From Frank Bennett. 6161 6162* STMicro STM32 Boards: 6163 6164- STM32F4Discovery: Add support to register keyboard and mouse 6165classes if so configured. From Leo. 6166- Add support for the Nucleo-F401RE board. From Frank Bennett. 6167 6168* STMicro STM32 Drivers: 6169 6170- Add STM32 Ethernet IGMP hashing support. From Manuel Stühn. 6171- OTG FS Host: USB host tracing added by Leo. 6172 6173* Freescale Kinetis 6174 6175- Modify the logic to disables the interrupts and sets the default 6176interrupt priority so that it uses the ICTR to get the number of 6177interrupt lines/registers. This is instead of using some fixed 6178number of initializations based a priori knowledge of the number 6179of interrupt lines in the MCU. 6180 6181* NXP LPC17xx 6182 6183- Modify the logic to disables the interrupts and sets the default 6184interrupt priority so that it uses the ICTR to get the number of 6185interrupt lines/registers. This is instead of using some fixed 6186number of initializations based a priori knowledge of the number 6187of interrupt lines in the MCU. 6188 6189* ZiLOG ZNEO Drivers 6190 6191- Added ZNEO ESPI driver. 6192 6193* Library: 6194 6195- Finish incomplete support for ferror(). From Macs N. 6196 6197* Documentation: 6198 6199- UsbTrace.html: Add some discussion of the USB monitor. 6200 6201* Configuration/Build System: 6202 6203- compiler.h: Add macro UNUSED() that can be used to eliminate 6204warnings about variables that are set to values that are not 6205used. 6206 6207* Debugging Support: 6208 6209- Add a configuration option to enable dumping of the USB trace buffer 6210on assertion. 6211 6212* Applications: 6213 6214- IGMP Example: Fill out Kconfig file; update makefile so that the 6215IGMP example can be used as an NSH built-in application. From Manuel 6216Stühn. 6217- lcdrw Example: Fill out empty Kconfig file. 6218- touchscreen Example: Add a configuration option to indicate if 6219architecture-specific initialized is required, yes or no. 6220- System usbmsc: Back out the USBMSC daemon... it is no longer needed 6221with the recent fix to the USBMSC class driver. 6222- NSH: malloc/free IOBUFFER for 'cat' and 'hexdump' commands instead of 6223using the stack. From Bob Doiron. 6224- cpuhog, serialblaster, and serialrx Examples: Stress test examples 6225added by Bob Doiron. 6226 6227Bugfixes (see the ChangeLog for details). Some of these are very important: 6228 6229* Core OS: 6230 6231- errno_get_errno_ptr() and getpid(): Add some checks. If these 6232functions are called very early in initialization before the tasking 6233structures are initialized, they would not behave properly. 6234 6235* Networking: 6236 6237- IGMP-related bug fixes from Manuel Stühn. 6238- In netdev_findbyaddr(), skip network devices that are in the "down" 6239state. It does not make sense to consider an address match with a 6240"down" device. From Brennan Ashton. 6241 6242* Network Utilities: 6243 6244- DHCPD: The correct value of the PAD option. Should be zero, not 6245one. From Brennan Ashton. 6246- Corrections to the NTP client from Manuel Stuehn. 6247 6248* Common Drivers: 6249 6250- usbhost.h: Fix some USB HID-related conditional compilation. From Leo. 6251- USB HID mouse driver: Don't include NAKs from the device in the error 6252count. From Leo. 6253 6254* TI Tiva/Stellaris: 6255 6256- Add corrected control logic for TM4C125GXL based on logic from Daniel 6257Carvalho with modifications. The LM4F120 also works well with this 6258change. 6259 6260* STMicro STM32 Drivers: 6261 6262- STM32 F2 SPI: Correct a mapping for SPI MOSI pin. From dlsitzer. 6263- OTG FS Host: Fixes related to low-speed devices and interrupt 6264endpoints from Leo. Necessary in order to use a USB HID mouse 6265device. 6266- STM32 SDIO: The dmaflight method must be conditioned on 6267CONFIG_SDIO_PREFLIGHT. Noted by Pelle Windestam. 6268- Sourceforge Ticket #26. up_prioritize_irq should not be called 6269if CONFIG_ARCH_IRQPRIO is not defined. 6270 6271* Atmel SAM3/4: 6272 6273- Fix some backward conditional compilation in the start-up logic. 6274- Fix initialization of the default interrupt priorities. This is 6275a critical bug fix! 6276- SAM4S: Fix error in macros that disable peripheral clocking. From 6277Bob Doiron. 6278 6279* Atmel SAMA5: 6280 6281- Fix double mapping of SDRAM when executing out of SDRAM. In this 6282case, the SDRAM was already mapping in arm_head.S. 6283- In clock configuration, the BMS bit handling was fixed to match 6284what the HW really does. From David Sidrane. 6285- TLB Bufferable bit did not do what I thought it was going to do. 6286I though I was selecting a write-through cache, but the result was 6287that all caching was disabled and NOR FLASH accesses were very slow. 6288- Move the un-definitions of __ramfuncs__ from the clock configuration 6289.c file to the .h file. Otherwise, the attribute will be applied 6290differently for the prototype and the function definition. 6291Sourceforge patch 38 from Luciano Neri. 6292 6293* Atmel SAMA5 Drivers: 6294 6295- Fix a case in the UDPHS driver where received status was not being 6296cleared, causing OUT SETUP commands to fail. 6297- TWI data sending fails to increment the number of bytes transferred 6298on first byte sent. from David Sidrane. 6299- If running from SDRAM, then BOARD_MCK_FREQUENCY is not a constant 6300and cannot be used in conditional compilation. All drivers fixed 6301EXCEPT for the PWM and Timer/Counter drivers which will need some 6302more extensive redesign. 6303 6304* Atmel SAMA5 Boards: 6305 6306- SAMA5D3x-EK: The red LED is controlled by PE24 which is also the 6307camera/ISI interface reset line. So if the a camera is installed, 6308then we must avoid controlling the red LED or we inadvertently 6309also reset the camera module. Noted by David Sidrane. 6310- Header files reference type xcpt_t in certain configurations and 6311so must include nuttx/irq.h. This is Sourceforge bug 25 submitted 6312by Luciano Neri. 6313 6314* NXP LPC17xx Drivers 6315 6316- arm/src/lpc17xx/Kconfig and lpc17_ethernet.c: The default interrupt 6317priority should be default, not the highest priority (2014-4-19). 6318 6319* ZiLOG ZNEO 6320 6321- Fix calculation of timer reload and prescaler. The timer frequency 6322was way too fast. 6323 6324* Library: 6325 6326- strncpy(): Change ordering of test and copy. Logic would have 6327failed if n=0; one byte was always copying before testing 6328for the end of the copy. 6329- Fix a counting error in the return value from sscanf(). Noted by 6330kfrolov. Also, sscanf() should return EOF if no values were 6331converted. 6332- Fix a logic error in ftell(). It was simply using the file offset 6333and did not take into account data buffered in memory. From Macs N. 6334- sccanf(): Use stroul() vs strol() with %u format otherwise, range 6335of values is restricted because of sign bit. From kfrolov. 6336 6337* Configuration/Build System: 6338 6339- Fix a build error that occurs when only USB device tracing is enabled. 6340 6341* NuttShell (NSH): 6342 6343- Fix NuttShell version number display in the NSH welcome message. 6344version.h was not being included. 6345 6346* Other Applications: 6347 6348- sysinfo: CONFIG_VERSION_BUILD is a string an needs to be 6349printed with %s, not %d. Noted by Librae. 6350- nxplayer: Compilation failure in one configuration reported by 6351Manuel Stuhn. 6352- System sdcard: Remove an STM32 dependency. From Bob Doiron. 6353- telnetd Example: Naming is confused. In someplaces 'telnetd', 6354and in others 'shell.' All changes to telnetd. Noted by Pelle 6355Windestam. 6356 6357NuttX-7.3 6358--------- 6359 6360The 103rd release of NuttX, Version 7.3, was made on June 25, 2014, 6361and is available for download from the SourceForge website. Note 6362that release consists of two tarballs: nuttx-7.3.tar.gz and 6363apps-7.3.tar.gz. Both may be needed (see the top-level nuttx/README.txt 6364file for build information). 6365 6366Additional new features and extended functionality: 6367 6368* Core OS: 6369 6370- Dynamic loader: Framework to support Pascal P-Code as a binary 6371format that can be exec'ed from a file system. 6372- Dynamic Loader: Extend the binfmt interface to handle error 6373conditions where format-specific clean-up is needed in the event 6374of error conditions. This is needed by the P-Code binfmt. 6375 6376* Networking 6377 6378- IOB: Add a generic I/O buffer chain logic. This logic uses small, 6379pre-allocated buffers that can be chained together to support 6380transfers of any size, using fewer resources and also without 6381committing in advance to a TCP window size. There is now only 6382one I/O type used in the networking and it is these I/O buffer 6383chains. 6384- TCP Write Buffering: TCP write buffering logic converted to use 6385I/O buffer chains. 6386- TCP Read-Ahead Buffering: TCP read-ahead buffering logic converted 6387to use I/O buffer chains. 6388- Includes logic to support throttling of read-ahead buffering if 6389the read-ahead buffering is competing with write buffering for 6390I/O buffers. 6391- Raw Sockets: Add support for the AF_PACKET socket family. From 6392Daniel Lazlo Sitzer. 6393 6394* Common Drivers: 6395 6396- W25 Serial FLASH driver extended by Mark Whitehorn to support the 63978Mbit W25Q80BV part. 6398- Add support for Fujitsu MB85RS1MT RAMTRON part. From Charles Ash. 6399- Enhancements to the generic timer interface to support capture mode 6400from Bob Doiron. 6401- Add an rxflowcontrol method to the serial interface to better 6402support RX flow control. This involves common changes in addition to minor updates to all MCU-specific serial drivers (only fully implemented for the STM32). From Jussi Kivilinna. 6403 6404* Atmel SAM4C 6405 6406- Add support for the SAM4CM family. From Max Neklyudov. 6407 6408* Atmel SAM4E/4S Drivers: 6409 6410- RTT driver from Bob Doiron. Also added high resolution RTC 6411emulation using the RTT for the sub-second counter. 6412 6413* Atmel SAM4E/4S Board Support: 6414 6415- The SAM4S Xplained Pro now uses the extended timer/counter 6416features. From Bob Doiron. 6417- Added a touchscreen and LCD driver for the SAM4E-EK board (the LCD, 6418however, not yet fully functional). 6419 6420* Atmel SAMA5: 6421 6422- Optimized, high performance, assembly language memcpy(). This is 6423the same optimized memcpy() function that Mike Smith brought in 6424for the ARMv7-M with minor tweaks by David Sidrane to work with 6425the ARMv7-A. 6426- Basic support added for the SAMA5D4 family. 6427 6428* Atmel SAMA5 Drivers: 6429 6430- SAMA5D4: New drivers unique to the SAMA5D4: XDMAC, SAIC, and 6431others. 6432 6433* Atmel SAMA5 Board Support: 6434 6435- SAMA5D4-MB: Initial board support for the SAMA5D4-MB/EK boards. 6436 6437* STMicro STM32 6438 6439- Add support for the STM32152 and STM32162 Medium+ density parts 6440(plus miscellaneous other improvements to the original STM32151 6441logic). From Jussi Kivilinna and Sami Pelkonen. 6442 6443* STMicro STM32 Boards: 6444 6445- Support for the Olimex STM32 H405 board contributed by Martin 6446Lederhilger. 6447 6448* STMicro STM32 Drivers: 6449 6450- Implement the rxflowcontrol method to the serial interface to better 6451support RX flow control. From Jussi Kivilinna. 6452 6453* NXP LPC17xx Drivers: 6454 6455- Added support for the RTC, ADC, DAC, Timers, PWM and MCPWM 6456drivers. From Max (himax). 6457 6458* NXP LPC17xx Boards: 6459 6460- Support for the RTC, ADC, DAC, Timers, PWM and MCPWM integrated 6461in the LPCXpresso LPC1768 board support. From Max (himax). 6462 6463* Library: 6464 6465- Add support for seek-able streams. 6466 6467* Configuration/Build System: 6468 6469- Restructured network directories, header files, and naming to 6470better modularize the networking and to better integrate the 6471networking with the rest of NuttX. 6472 6473* Applications: 6474 6475- prun: An NSH built-in application that can be used to run 6476Pascal P-Code programs either programmatically or from the NSH 6477command line. 6478- netpkt: A "raw" socket test from Lazlo Sitzer. 6479- hex2bin: A library and built-in task to convert from 6480Intel HEX to binary format. It can write the binary data to a file or it can store the binary data to memory (to support, for example, a loader). 6481 6482Bugfixes. Only the most critical bugfixes are listed here (see the ChangeLog for the complete list of bugfixes and for additional, more detailed bugfix information): 6483 6484* Core OS: 6485 6486- Dynamic Loader: Fix an error in a symbol table search function. 6487Noted by Pelle Windestam. 6488- Dynamic Loader: Fix a critical error in exec(); argv was not 6489being passed. 6490- mq_notify: Test for a valid signal number was inverted; this 6491function could not have been working correctly before??? From 6492eero.nurkkala. 6493- Fix typo in conditional compilation: CONFIG_CLOCK_MONOTONIC vs. 6494CLOCK_MONOTONIC. From Manuel Stühn. 6495 6496* Graphics 6497 6498- Fix typos in several RGB conversion macros. 6499 6500* Networking: 6501 6502- Modify TCP timeout handling to provent situations where connections 6503may not be freed. From Max Holtzberg. 6504- Improved TCP fallback allocation logic from Max Holtzberg. Also, 6505fallback mechanism is disabled when SO_LINGER is to prevent 6506deadlocks. 6507- Write Buffering: Add checks from buffer allocation failures. From 6508Max/Himax. 6509 6510* Network Utilities: 6511 6512- webserver: httpd_fs_open() should return OK on success and ERROR on 6513failure, not 1 and 0. 6514 6515* Common Drivers: 6516 6517- Make sure that all references to up_prioritize_irq() are 6518conditioned on CONFIG_ARCH_IRQPRIO. Problem noted by Mike Smith. 6519- CC3000: Correct SPI mode for CC3000 is CPOL=0 CHPA=1. From Jussi 6520Kivilinna. 6521- CC3000: Fix a race condition in thread start-up logic. From Jussi 6522Kivilinna. 6523- CC3000: Additional fixes including a compilation failure if POLL is 6524enabled. From Jussi Kivilinna. 6525 6526* USB Drivers: 6527 6528- CDC/ACM and PL2303 device: Reset RX head to avoid resending last 6529serial data when USB cable disconnected/re-connected. From 6530Lizhuoyi. 6531 6532* TI Tiva/Stellaris Boards: 6533 6534- The Nucleo-F401RE has no on-board crystals and, hence, needs to run 6535with the PLL input from the on-chip HSI clock. 6536 6537* STMicro STM32 Drivers: 6538 6539- Serial: Handle configuration for the case of 8-bit data with 6540parity. From Freddie Chopin. 6541 6542* Atmel SAM3/4 Boards: 6543 6544- There was a cloned error in all SAM3/4 board configurations (and 6545for a few other architectures as well). Button interrupts not 6546being disabled after being detached. As a result, unexpected 6547interrupts could be received after the button interrupt was 6548detached. 6549 6550* Atmel SAMA5: 6551 6552- Fix some critical typos in the SAMA5D3 DMA definitions. 6553 6554* STMicro STM32 Drivers 6555 6556- I2C: Add an alternative I2C implementation for the STM32 F103 that 6557works around errata in that specific part. From Patrizio Simona. 6558- RTCC: Add retry logic to RTC initialization. It sometimes takes 6559longer for the RTC to initialize, at least as noted on an F2 part. 6560From Daniel Lazlo Sitzer. 6561 6562* NXP LPC17xx Drivers 6563 6564- GPDMA: Fix an error when DMA is started: The read-modify-write 6565fails when the DMA is started. This is because the value read is 6566not the same as the value set (on write it is the number of 6567transfers to do; on read it is the number of transfers completed). 6568From Lizhuoyi. 6569 6570* Library: 6571 6572- snprintf(): If the size passed to snprintf() is zero, then 6573snprintf() must write nothing, but instead return the size of the 6574buffer needed to hold the entire string. From Sami Pelkonen. 6575 6576* Configuration/Build System: 6577 6578- The alternate console device CONFIG_NSH_CONDEV must not be defined 6579unconditionally. This causes errors when using Telnet sessions. 6580This was solved by adding CONFIG_NSH_ALTCONDEV: CONFIG_NSH_ALTCONDEV enables or disables the feature then, if 6581enabled, CONFIG_NSH_CONDEV provides the alternative console 6582device name. 6583- Many files: Convert all old-style GCC variadic macros to the C99 6584form. Recent GCC changes tightens up that behavior and can cause 6585some problems (at least for the IAR compiler for some reason). 6586Noted by Bob Grimes. 6587- tools/configure.sh: In-place SED edit messes up permissions on 6588windows. From Hannes Delago. 6589 6590* Build Tools: 6591 6592- tools/mkfsdata.pl: Apparently, the trailing the 0x00 in http 6593server files is seen as a bug in javascript and images. From 6594Max/Himax. 6595 6596* Other Applications: 6597 6598- I2C Tool: Fix to show the updated register address on each 6599fetch (vs. showing the same starting address each time). From 6600Ryan VanSickle. 6601- CLE was not returning the terminating newline character. But 6602reported by Max kriegleder. 6603 6604NuttX-7.4 6605--------- 6606 6607The 104th release of NuttX, Version 7.4, was made on August 15, 2014, 6608and is available for download from the SourceForge website. Note 6609that release consists of two tarballs: nuttx-7.4.tar.gz and 6610apps-7.4.tar.gz. Both may be needed (see the top-level nuttx/README.txt 6611file for build information). 6612 6613Additional new features and extended functionality: 6614 6615* Core OS: 6616 6617- Beginnings of a crypto/ subsystem from Max Neklyudov 6618- Tickless operation: NuttX now supports a mode with no periodic 6619timer interrupts. Rather, timed events are handle via an interval 6620timer. This (1) lowers the rate of interrupt processing to timer 6621events, (2) gives much high timing resolution, and (3) allows lower 6622power modes of operation where the CPU is not constantly being 6623interrupted by the timer. 6624- Restructured the OS files under sched/ to better support the already 6625modular nature of the RTOS. 6626 6627* Networking 6628 6629- Substantial directory and header file reorganization and renaming to 6630make the NuttX networking implementation more modular. 6631- Add network device ioctl to access PHY registers. From Daniel Lazlo 6632Sitzer 6633 6634* Binary Loader: 6635 6636- Various changes associated with symbol tables from Pelle Windestam. 6637 6638* Graphics: 6639 6640- colorcmp(): New utility to compare two colors. 6641- The initial background color is now configurable. Includes logic to 6642eliminates multiple background updates to get the right color. 6643- Minor configuration changes to handle mouse X/Y and touchscreen 6644X/Y differently. 6645 6646* File System/Block Drivers: 6647 6648- SmartFS: Increase some variables from uint16_t to uint32_t to handle 6649larger device sizes. From Ken Pettit. 6650- Add configurable AES encryption support to the block-to-character 6651(BCH) driver. This allows any block device to be accessed as an 6652encrypted character device. From Max Nekludov 6653- Add an MTD layer that will add read-ahead or write buffering to any 6654MTD driver (incomplete). 6655- Automounter: Add support for an auto-mounter that will automatically 6656mount and unmount a file system a media is inserted and removed 6657 6658* Audio/Audio Drivers 6659 6660- WM8904 audio CODEC driver. 6661- PCM .WAV file decoder. Fast forward implemented with sub-sampling 6662(currently no rewind support). 6663- Add a NULL audio device that can be used to simply unit-level testing 6664of audio decoders. 6665- Audio subsystem now supports interfaces for fast-forward and rewind 6666needed by CMediaPlayer; add hooks for equalizer settings needed by 6667the WM8904 CODEC. 6668 6669* Other Common Drivers: 6670 6671- MTD: Extend erase block size to 18-bits in order (decrease block 6672size to 14-bits) to handle parts with large erase blocks. From Kosma 6673Moczek 6674- maxTouch: Add support for the Atmel maXTouch touchscreen controller. 6675 6676* Host Simulation: 6677 6678- Provides the timers needed to support the Tickless mode of operation. 6679 6680* Atmel SAM4C: 6681 6682- Add SAM4CM IPC register header file. From Max Neklyudov 6683- Various fixes PMC and clock configuration for the SAM4CM port from 6684Max Neklyudov 6685 6686* Atmel SAM4E/4S Drivers: 6687 6688- SAM4 AES driver. Contributed by Max Neklyudov 6689 6690* Atmel SAMA5: 6691 6692- Add logic to redirect all SAMA5D4 interrupts to the AIC 6693- Add a configuration option to reserve DRAM for a framebuffer when 6694executing out of DRAM. This optional was available before when 6695executing out of NOR, but needs to work a little differently in 6696this case. 6697- Add SAMA5 slow (32.768KHz) clock support. 6698- Add support for the ARM L2CC-PL310 L2 cache. The system runs with 6699L2CC cache enabled but there is some issues still with the LCD DMA; 6700I suspect that the memory timing configuration for L2CC needs to 6701be tuned. 6702- Provides the timers needed to support the Tickless mode of operation. 6703 6704* Atmel SAMA5 Drivers: 6705 6706- XDMAC-based HSCMI driver for the SAMA5D4 6707- Adapt the SAMA5D3 LCDC driver to work with the SAMA5D4 which has 6708no hardware cursor. 6709- PIO: Add a new interface sam_pio_forceclk() that can be used to 6710force PIO clocking on. I am afraid I was too conservative with 6711PIO clocking in the initial design; this is the price. 6712- TWI: Now supports the up_i2creset() method. 6713- TWI: Use sam_pio_forceclk() so that we can read the current state 6714of an open-drain output in the TWI reset logic. 6715- SSC: SCC Frame Synch Delay and Start Delay are now configurable. 6716- PCK: Add the slow clock and the main clocks as options for the 6717PCK configuration. 6718- Timer/Counter: Can now handle non-constant BOARD_MCK_FREQUENCY. Also 6719now supports methods to attach client interrupt handlers 6720- One shot and free-running timers. These are wrappers around the low 6721level timer/counter logic to provide one-shot and free-running 6722timers. These were developed to support the Tickless operation, but 6723can be used for any purpose. 6724 6725* Atmel SAMA5 Board Support: 6726 6727- Add a boot loader that runs from ISRAM and loads an Intel HEX file 6728into DRAM. 6729- Add a configuration that will load a bootloader into AT25 Serial 6730FLASH 6731- SAMA5D4-EK NSH configuration supports many more features: RTC, HSCMI 6732card detection, maXTouch touchscreen, TM7000 LCD, the command line 6733media player (currently using the NULL audio device), automounter, 6734and others. 6735- SAMA5D4-EK: Add an NxWM configuration using the TM7000 LCD with 6736the maXTouch multi-touch touchscreen. 6737- SAMA5D4-EK NxWM: Uses new, larger icons in configuration instead of 6738scaling. 6739- SAMA5D4-EK NxWM: The NxPlayer and audio system are now enabled in 6740the default configuration (but currently using the NULL audio 6741device). The automounter is used to automatically mount media 6742on an SD card. 6743- SAMA5D3x-EK: Add a configuration to support the command line 6744NxPlayer and to verify the WM8904 CODEC driver. 6745 6746* STMicro STM32: 6747 6748- Add support for the STM32F103RC and RD. From Kosma Moczek 6749- Add a procfs entry to show the state of the CCM heap usage. 6750From Pelle Winderstam 6751 6752* STMicro STM32 Drivers: 6753 6754- Unconfigure GPIO pins when closing a serial port to prevent back 6755effects from back-powering on the TX pin. From Kosma Moczek 6756 6757* NXP LPC17xx Drivers: 6758 6759- ADC: Added burstmode ADC conversion mode, with CONFIG_ADC_BURSTMODE 6760option in Kconfig. From Max 6761- Ethernet: Added option to use the kernel worker thread to do most of 6762the workload with CONFIG_NET_WORKER_THREAD option in Kconfig. From Max 6763- Ethernet: Critical bugfix: From time to time (after some hours) the 6764Ethernet receiver would lose one receive interrupt and the IP stack 6765never recover because there is no receive watchdog as the transmit 6766watchdog. From Max 6767 6768* NXP LPC17xx Boards: 6769 6770- mbed: Port ADC, DAC, and PWM logic from the configs/zkit-arm-1769. 6771From Max 6772- mbed: Eliminated a problem with PHY DP83848C : it doesn't need a 6773specific initialization on mbed. From Max 6774 6775* Library: 6776 6777- Adds support for localtime. From Max Neklyudov 6778 6779* Configuration/Build System: 6780 6781- Make variable definitions 'static const' when possible to save RAM 6782usage. From Kosma Moczek 6783 6784* Applications: 6785 6786- system/mdio: New PHY tool from Daniel Lazlo Sizter. 6787- NSH: Networking logic modified to handler the case of SLIP 6788transport. From Max Neklyudov. 6789- NSH: Add a configuration to use a USB keyboard for the stdin 6790device. 6791- NSH: Software assigned MAC address is now configurable. From Lazlo. 6792- NSH: Also add an option to let platform-specific logic select the 6793MAC address. 6794- NSH: There is now a configuration option that will bring up the 6795network on an separate thread. Since the network bring-up is 6796asynchronous, there are no serial console start-up delays due 6797to the network negotiation time. 6798- NxPlayer: Changes to integrate with Ken's NxWM::CMediaPlayer. 6799- NxPlayer: Add interfaces for fast-forward and rewind needed by 6800CMediaPlayer; add interface for equalizer settings needed by the 6801WM8904. 6802- NxPlayer: Supports new way of identifying the end of the audio 6803stream (see the Audio section above). 6804- Sudoku: Add a sudoku game. 6805 6806Bugfixes. Only the most critical bugfixes are listed here (see the ChangeLog for the complete list of bugfixes and for additional, more detailed bugfix information): 6807 6808* Graphics: 6809 6810- NxConsole: Fix scrolling for the case of the framebuffer device. In 6811this case, the logic for clearing the vacated region at the bottom 6812was missing so garbage would scroll up from the last, uncleared 6813line. 6814 6815* Networking: 6816 6817- Important fix to the read-ahead buffer queue management: Consumed 6818bytes were being trimmed from the head of the queue, but the queue 6819head itself was not being updated. From Rony XLN. 6820- Fix an error in SLIP escaping. From Max Neklyudov 6821 6822* Network Utilities: 6823 6824- Fix an include file ordering problem when CONFIG_NET_STATISTICS=y. 6825- Move statistics from uip.h to new netstats.h to remove a circular 6826inclusion problem 6827- Various fixes for networking and tiny webserver from Max 6828- webclient: Fix to offset calculation from Rony Xln. Prevents 0x0a 6829at the beginning of lines. 6830- webserver: Fix some configuration usage issues. From Max. 6831- webserver: Missing logic to close sockets on loop termination. 6832 6833* File System / Block Drivers: 6834 6835- SmartFS: Fix for a bug that would show up if CONFIG_MTD_BYTE_WRITE 6836was not selected and the SMART sector size was larger than the MTD 6837device's block size (like it would be if using SMARTFS on larger 6838flash devices). From Ken Pettit. 6839 6840* Audio: 6841 6842- Change how the end of the audio stream is detected by the leaf audio 6843component. This used to be done by looking for the first partial 6844buffer. That does not work with the in-place sub-sampling performed 6845by the PCM decoder: That always reduces the size of the buffer so 6846that all buffers only partially filled by the time they get to the 6847leaf. Now, a flag is set in the audio buffer flags set to indicate 6848the final buffer in the stream. 6849 6850* Common Drivers: 6851 6852- RAMLOG putc() method needs to set the errno and return EOF on a 6853failure. 6854- Add missing configuration option to select the MAX11802 touchscreen 6855controller. From Petteri Aimonen 6856 6857* Atmel SAMA5D3/4: 6858 6859- Fix logic in conversion of physical and virtual DRAM addresses when 6860running out of DRAM. This is an important bug fix for the SAMA5D3 6861and 4 when running out of DRAM . 6862- Critical SAMA5D3 and 4 bug fix: PIO clocking must be enabled for 6863all input pins or else the value that is read never changes. 6864 6865* Atmel SAMA5D3/4 Drivers: 6866 6867- OHCI: Fix an error in a DEBUGASSERT statement. Caused an 6868assertion to fire inappropriately when a low- or full-speed device 6869was removed and CONFIG_DEBUG=y 6870- OHCI: Pointers to allocated port values were not being 6871nullified after being deallocated. This caused some assertions 6872to fire when debug was enabled 6873- SSC: Needs to account for data offset in audio buffer 6874 6875* ARMv7-M: 6876 6877- Correct the initial value of the BASEPRI register. This was 6878apparently never being initialized! From Max 6879 6880* STMicro STM32 Drivers: 6881 6882- I2C: Fix missing configuration of GPIO pins in I2C driver. Fix 6883from Alex D. 6884- STM32 OTGFS device: Various changes to try to reduce that amount of 6885time in interrupts handles and with interrupts disabled. From 6886Petteri Aimonen 6887 6888* Atmel SAM3/4 Drivers: 6889 6890- Ethernet: Wrong bits being cleared before OR-ing in new settings. 6891- Ethernet: Fix an error in the function that determines the number 6892of free TX descriptors. This is an important bugfix on busy 6893networks. 6894- I2C: Test for read or write operation was reversed. How could 6895this have worked before? 6896 6897* Atmel SAM3/4 Boards: 6898 6899- SAM4S Xplained-Pro: Correct description of LEDs and usage. From 6900Kosma Moczek 6901 6902* Atmel SAMA5: 6903 6904- PIO: Fix definitions that could disable PIO interrupt support if only 6905PIOE interrupts were enabled 6906- PIO: Macro SAM_PION_VBASE is not define-able for the SAMA5D4 and must 6907be replaced with a table lookup. 6908- PIO: Fix a typo in Schmitt trigger configuration; Configure pin as a 6909vanilla input first so that final pin configuration is more read-able 6910(i.e., easier to debug) 6911- PIO: Logic for Schmitt trigger selection backward 6912- SAMA5D4: Correct system timer frequency. Input clock is MCK/2, not MCK. 6913 6914* Atmel SAMA5 Drivers: 6915 6916- Ethernet: Wrong bits being cleared before OR-ing in new settings. 6917- Ethernet: Fix an error in the function that determines the number 6918of free TX descriptors. This is an important bugfix on busy 6919networks. 6920- HSMCI: The 8-byte SCR transfer was failing silently with the DMA 6921transfer, leaving the SD card in single bit mode. Fixed by adding 6922a non-DMA read transfer mode. 6923- HSMCI: Fix a problem on card insertion/removal callback handling. 6924Interrupts were being disable so that the callbacks occurred with 6925interrupts disabled. This resulted in loss of some interrupts and 6926some not-so-good behaviors. The solution is to perform all 6927callbacks on the work thread unconditionally 6928 6929* Atmel SAMA5 Boards: 6930 6931- PIO: Fix some cloned errors in SAM GPIO interrupt setup 6932 6933* NXP LPC17xx Drivers: 6934 6935- Ethernet: Comment out an assertion that is reported to fire 6936inappropriately. From Max 6937 6938* Library: 6939 6940- stdint.h: Correct naming of [U]INT_LEASTn_{MAX|MIN} and 6941[U]INT_FASTn{MAX|MIN}. From Kosma Moczek 6942- unistd.h: POSIX definitions should be defined to a value. rom Kosma 6943Moczek 6944- Fixes associated with rint() and related interfaces in the math 6945library. 6946 6947* Configuration/Build System: 6948 6949- NAME_MAX not available on SunOS; use FILENAME_MAX or MAXNAMELEN. 6950Noted by Douglas Beattie 6951 6952* Applications: 6953 6954- NSH: if # appears on line, need to comment ignore additional 6955commands on the line 6956- NxPlayer: Check for file read errors and end-of-file with zero 6957bytes read. Other error handling corrected as well. 6958- NxPlayer: NxPlayer needs to set curbyte field to zero before 6959enqueuing a buffer. Otherwise, it looks like beginning of the 6960buffer has already been consumed. 6961 6962NuttX-7.5 6963--------- 6964 6965The 105th release of NuttX, Version 7.5, was made on September 28, 2014, 6966and is available for download from the SourceForge website. Note 6967that release consists of two tarballs: nuttx-7.5.tar.gz and 6968apps-7.5.tar.gz. Both may be needed (see the top-level nuttx/README.txt 6969file for build information). 6970 6971Additional new features and extended functionality: 6972 6973* Core OS: 6974 6975- Watchdog Timer Allocation: (1) If we run out of pre-allocated 6976watchdog times, the logic will now allocate additional timers 6977from the heap. A reserve of pre-allocated watchdog timers is 6978maintained so that there will always be timers available for 6979interrupt handlers. (2) Added support for statically allocated 6980watchdog timer 6981- Address Environment Support: (2) New OS APIs integrated into all 6982platform-specific context switching logic (up_block_task(), 6983up_unblock_task(), _exit(), and others). 6984- Kernel Build Support: (1) The MPU based "kernel build" renamed to a 6985protected build (CONFIG_BUILD_PROTECTED); added support for the a 6986new MMU-based "kernel build" (CONFIG_BUILD_KERNEL), (2) The system 6987call library can now be built with CONFIG_NUTTX_KERNEL. New 6988selection: CONFIG_LIB_SYSCALL. 6989- System Startup: Add configuration options to start the system from 6990a program on a file system (versus an address in memory). 6991- Startup Parameter Passing. There used to be two ways to pass 6992parameters to new tasks, depending upon the configuration: Either 6993(1) argv[] as created as an array with each string strdup'ed. Or 6994(2) argv[] array and strings were created on the stack before the 6995new task was started. Now, there is only one way, way (1). Way 6996(2) might be slightly more compact, but this is not worth carry the 6997complexity of two different ways of doing the same thing. 6998- Board Initialization: Add capability to perform initial board 6999initialization on a separate worker thread. This is needed because 7000there are many cases where initialization logic cannot execute on 7001the start-up/IDLE thread. That is because blocking or waiting is 7002not permitted on the IDLE thread. 7003 7004* Memory Management: 7005 7006- Granule Allocator: (1) Add a new function to reserve un-allocatable 7007regions in the granule heap. (2) Add interfaces to support 7008un-initializing a granule allocator. 7009- Page Allocator: Add a simple physical page allocator based on the 7010existing NuttX granule allocator. I am not certain if the granule 7011allocator is sufficiently deterministic for long range use, but it 7012gets get a page allocator in place for testing very quickly. 7013- Remove CONFIG_MM_MULTIHEAP. Non-multiheap operation is no longer 7014supported. 7015- sbrk(): sbrk() is now supported in the kernel build to permit 7016dynamically sized, per-process heaps. 7017- Per-Process Heaps: Space at the beginning of the process data space 7018is now reserved for user heap management structures. In the kernel 7019build mode, these heap structures are shared between the kernel and 7020use code in order to allocate user-specific data. 7021- User Heap Management: When a privileged thread exits, we have to 7022use the kernel allocator to free memory; when an unprivileged thread 7023exits, we don't have to do anything... heap memory will be cleaned 7024up when the address environment is torn down. 7025- Inter-Process Shared Memory Support: (1) Add implementation and 7026documentation for shmget(), shmctl(), shmat(), and shmdt(). (2) 7027Add system system calls to support the user call gate to the shared 7028memory interfaces. (3) Add platform-specific interface definitions 7029needed to support the shared memory feature. 7030- Virtual Page Allocator: Add support for a per-process virtual page 7031allocator. This is a new member of the task_group_s structure. The 7032allocator must be initialized when a new user process is started and 7033uninitialize when the process group is finally destroyed. It is 7034used by shmat() and shmdt() to pick the virtual address onto which 7035to map the shared physical memory. 7036 7037* File Systems/Block Drivers/MTD: 7038 7039- SMART FS and SMART FS procfs updates from Ken Pettit. 7040- The MTD Read-ahead/Write buffer layer appears is now functional. 7041 7042* Binary Formats: 7043 7044- Add logic to initialize the per-process user heap when each user 7045process is started. 7046 7047* Graphics: 7048 7049- Change all occurrences of NxConsole to NxTerm. 7050 7051* Networking: 7052 7053- PHY Interrupts: (1) Standardize a PHY interrupt attachment 7054interface. (2) Add support for an ioctl that can be used to notify 7055an application when there is a change in the network status 7056signalled by a PHY interrupt. 7057- Improved Send Logic: In the past, the first packet send to a new 7058network peer would fail; there would be no entry in the ARP table 7059for the peer and so an ARP request could replace that first packet. 7060Now as an option if CONFIG_NET_ARP_SEND=y, all send logic will (1) 7061check if the peer MAC address is in the ARP table and, if not, (2) 7062send ARP requests periodically to get the mapping and (3) wait for 7063the ARP response. Then (4) when the ARP response is received then 7064the actual send logic will be initiated. Thus there may be a delay 7065with the first packet sent to a new peer, but the packet should not 7066be lost 7067 7068* Host Simulation: 7069 7070- Emulated SPI FLASH driver for the sim target from Ken Pettit. 7071 7072* Intel x86: 7073 7074- The default host is now x86_64 and the -m32 option will be 7075automatically selected for simulation builds. 7076 7077* Intel 8051 Family: 7078 7079- Removed all support for the 8051 family architecture from the NuttX 7080source tree. The obsoleted code along with the removal patch can 7081now be found at misc/Obsoleted/. This code was removed because (1) 7082although some functionality has been demonstrated, I am not aware of 7083any really successful ports of NuttX to any 8051, and (2) the 8051, 7084with its hardware stack, forces limitations and complications to the 7085other architectures and make growth and development of NuttX more 7086complex. 7087 7088* ZiLOG ZNeo Boards: 7089 7090- configs/16z: Support for this board has been removed from the NuttX 7091source tree (but still can be found in the misc/Obsoleted 7092directory). This port is not ready for usage but may return to the 7093NuttX tree at some point in the future. 7094 7095* Atmel SAM3/4 Boards: 7096 7097- SAM4E-EK: Add (1) a fully-functional ILI9341-based LCD driver and 7098(2) a fully-functional NxWM configuration. 7099 7100* ARMv7-A: 7101 7102- Address Environments: Add support for application address 7103environments using the Cortex-A MMU. Implement standardized 7104platform-specific interfaces of NuttX address environment 7105support. 7106- Cache Operations: Implement standardized, platform-specific cache 7107operations. These are called from the ELF loader in order to flush 7108D-cache and invalidate I-cache after an ELF module has been loaded 7109into memory. With this change, ELF modules work correctly on the 7110SAMA5/Cortex-A platform. 7111- Kernel Build: (1) Add implementations of system call gate. (2) Add 7112CRT0 start-up file that can be linked with separately built user 7113programs. (3) Add support for delivery of use-mode signals in the 7114kernel build. (4) Add logic to initialize the per-process user heap 7115when each user process is started. (5) ARMv7-A exception handling 7116needs to work a little differently if we support user mode 7117processes. This is because R13 and R14 are paged differently 7118between user and SVC mode. 7119- Shared Memory Support: (1) Add logic necessary to handle remapping 7120of shared memory on context switches. (2) Extend virtual/physical 7121address conversions to include addresses in shared memory. (3) Add 7122implementation of platform-specific shared memory support. 7123 7124* Atmel SAMA5D Drivers: 7125 7126- Implement all network ioctls, including the new ioctl to setup PHY 7127event notifications. 7128- In kernel build with address environment, need logic to map user 7129virtual addresses to physical addresses, and vice versa. 7130 7131* Atmel SAMA5D Boards: 7132 7133- SAMA5D3 Xplained, SAMA5D3-EK, and SAMA5D4-EK: Convert existing 7134board specific PHY interrupt interfaces to use newly defined 7135standard interface. 7136- SAMA5D4-EK: Add a configuration for testing the kernel build 7137configuration. There are configurations to boot either from an SD 7138card or from and in-memory ROMFS file system. 7139- SAMA5D4-EK: Add documentation/support for Rev E. board. 7140 7141* STMicro STM32 Drivers: 7142 7143- Ethernet: Modified to support the change to the network ioctl 7144signature changes. Also add support for new ioctl to setup PHY 7145event notifications. 7146 7147* STMicro STM32 Boards: 7148 7149- STM32F4Discovery with STM32F4DIS-BB: Add a network enabled NSH 7150configuration for the STM32F4Discovery board with the STM32F4DIS-BB 7151base board installed. Includes support for the microSD card slot on 7152the STM32F4DIS-BB base board. 7153 7154* TI Tiva Drivers: 7155 7156- Add support for the TI CC3200. From Jim Ewing. 7157 7158* TI Tiva Boards: 7159 7160- Add support for the TI CC3200 Launchpad. From Jim Ewing. 7161 7162* C Library: 7163 7164- Re-implemented poll() delay using sem_timedwait(). 7165 7166* Configuration/Build System: 7167 7168- Export Target: In the kernel or protected builds, (1) only the user 7169libraries should be exported, (2) do not copy internal header files 7170or build scripts if this is a kernel or protected build, and (3) 7171needs to bundle up the user C startup file (crt0), not the kernel 7172head object for the kernel and protected builds. 7173- Add logic that will permit us to build user libraries with different 7174CFLAGS than kernel code. This is needed because we need the 7175-fno-common option when building ELF code to prevent SHN_COMMON 7176relocations. 7177 7178* Applications: 7179 7180- NSH: Extend the NSH network initialization logic. There is now an 7181option that will create a network monitor thread that will monitor 7182the state of the link. When the link goes down, the code will 7183attempt to gracefully put the Ethernet driver in a down state; When 7184the link comes back, the code will attempt to bring the network back 7185up. 7186- ELF Example: The ELF test/example has been extended so the 7187individual ELF test programs can link against the SYSCALL library 7188(if it is available) or against the C library to eliminate or 7189minimize the need for symbol tables. 7190- Change all occurrences of NxConsole to NxTerm. 7191- MTDRWB Example: Add an example to test MTD R/W buffering. 7192- OS Test Example: Add a trivial test of sem_timedwait. 7193 7194* Application Configuration/Build System: 7195 7196- Import Target: (1) Add logic that will allow building applications 7197against a NuttX export package (vs. the nuttx/ source tree). (2) 7198Add .config file to export package. (3) Create apps/import. Create 7199apps/import/Make.defs that does things like define CFLAGS; ELF build 7200requires -fno-common in CFLAGS. Copy some base logic from 7201nuttx/tools/Config.mk to apps/import/Make.defs. (4) Add 7202apps/import/scripts/gnu-elf.ld GCC linker script for ELF import 7203builds. 7204- All Makefiles: (1) Add an install target to all makefiles. For 7205the import build, the top-level Makefile now does two passes: (1) 7206builds libapp.a, then (2) installs the programs into apps/bin. (2) 7207Add program installation for CONFIG_BUILD_KERNEL in all Makefiles 7208that build a main(). (3) For kernel build, the object file 7209containing main cannot go into library because of name collisions. 7210The object file must be handled as a special case in every Makefile. 7211- All Built-In Programs: With kernel build (CONFIG_BUILD_KERNEL), 7212entry point to all tasks is main(), not some xyz_main(). 7213- NSH: Several commands must be disabled in the kernel build because 7214they depend on interfaces that are not available outside of the 7215kernel: dd, df, losetup, mkfatfs, mkdr, and ps. 7216- apps/tools/: (1) Add mkimport.sh to expload an NuttX import package 7217and install in apps/import. (2) Add mkromfsimg.sh script to create 7218a BOOT ROMFS filesystem image. 7219- ELF and NxFLAT Examples: Do not build test cases that use 7220task_create() if there is an address environment. 7221 7222* Tools: 7223 7224- refresh.sh: Add a tool to make refreshing configurations easier 7225when you want to do a lot of them. 7226- mksyscall.c: Build syscalls that do not need header files. 7227- mkexport.sh: Add .config file to export package. 7228- See above for new apps/tools scripts. 7229 7230Efforts In Progress. The following are features that are partially 7231implemented but present in this release. They are not likely to be 7232completed soon. 7233 7234* Processes. Much of the work in this release is focused on the 7235realization of Unix-style user processes in NuttX. There is more to 7236be done, however. The full roadmap and status is available at: 7237https://cwiki.apache.org/confluence/display/NUTTX/Memory+Configurations 7238 7239* XMega: There are some fragments in place for an XMega port. That 7240port has not really started, however. 7241 7242* Galileo: Similarly, there are fragments in place for an Intel Galileo 7243port. The port not been started in earnest either. 7244 7245Bugfixes. Only the most critical bugfixes are listed here (see the ChangeLog for the complete list of bugfixes and for additional, more detailed bugfix information): 7246 7247* Core OS: 7248 7249- Kernel build fixes: (1) IDLE TCB setup needs to indicate that the 7250IDLE thread is a privileged, kernel thread. (2) Don't build 7251task_create() or task_spawn() interfaces if there is an address 7252environment. (3) posix_spawn() kernel proxy thread should be a 7253kernel thread, not a user task. 7254- Several pthread interfaces: Add const storage class to phthread 7255parameters. From Freddie Chopin. 7256- sched/clock: Remove vestiges of g_tickbias; need, instead, to apply 7257time bias to g_basetime in order to provide the correct system time. 7258- System Calls: (1) Several typos fixed; corrected integration of 7259exevc(), execvl(), posix_spawn, and posix_spawnp system calls. (2) 7260If we are configured to use a kernel stack while in SYSCALL handling, 7261then we need to switch back to the user stack to deliver a signal. 7262 7263* File Systems/Block Drivers/MTD: 7264 7265- procfs: Fix some procfs breakage introduced by reorganizing some 7266non-reorganizable data structures. From Ken Pettit. 7267- AT45: In at45db_bwrite , the buffer is not increased when writing 7268more than 1 page. Sourceforge bug #34. 7269 7270* Binary Formats: 7271 7272- ELF relocations. Some relocation types do not have a named symbol 7273associated with them. The design did not account for that case. 7274- ELF Loader: Critical bugfix.. BSS was not being cleared. 7275 7276* Memory Management: 7277 7278- Granule allocator initialization uses wrong allocator to setting 7279aside kernel memory. 7280- Add a flag to group structure: If the group is created by a kernel 7281thread, then all resources in the group must be privileged. 7282 7283* Cryptogrphic Support: 7284 7285- crypto/cryptodev.c: Path segments reversed in include file path. Noted by Brennan Ashton. 7286 7287* Common Drivers: 7288 7289- Common CAN upper-half: In can_txdone, waiters on the semaphore 7290should be informed regardless of the return value of can_xmit. First 7291it returns -EIO if there are no new packets, and second the 7292information of the waiters is about the last transferred packet. 7293From Daniel Lazlo Sitzer. 7294 7295* ARM: 7296 7297- System Calls: Fix a typo in system call when fetching parameter from 7298the stack: regs[REG_PC]+4 is the address, not regs[REG_PC+4]. 7299 7300* STMicro STM32 Drivers: 7301 7302- STM32 F401 UART: Correct support for USART6 on this chip. From 7303Freddie Chopin. 7304- STM32 FLASH fixes: use size_t instead of uint16_t, make interface 7305more generic. From Freddie Chopin. 7306- Fix for UART7 and UART8 on STM32 clock enable from Aton. 7307- CAN: At the end of the interrupt handler, the interrupts were being 7308disabled, if all packets have been transferred when the interrupt 7309handler was invoked. This is problematic, because the interrupt 7310handler calls can_txdone of the upper half which can enqueue new 7311packets to send. Removed the block altogether, because can_txdone 7312calls can_xmit which disables interrupts if there are no new packets 7313to send. From Daniel Lazlo Sitzer. 7314- Additional STM32 CAN correction suggested by Max Holtzberg. 7315 7316* STMicro ST32 Boards: 7317 7318- configs/mikroe-stm32f4: Fix a few compile bugs and minor corrections 7319to the mikroe-stm32f4 configuration source. From Ken Pettit. 7320 7321* ARM9/ARMv7-A: 7322 7323- System Calls: Fix ARM7/9 and Cortex-A SYSCALLs: For threads in SVC 7324mode, the SVC instructions clobbers R14. This must be taken account 7325in the inline assembly. 7326- Task Setup: All tasks, even user mode tasks, must start in 7327supervisor mode until they get past the start-up trampoline. 7328- ARMv7-A: Modify up_fullcontextrestore() for CONFIG_BUILD_KERNEL. 7329It changed CPSR while in kernel. That will crash if the new CPSR is 7330user mode while executing in kernel space. Fixed by adding a 7331SYS_context_restore system call. There is an alternative, simpler 7332modification to up_fullcontextrestore() that could have been done: 7333It might have been possible to use the SPSR instead of the CPRSR and 7334then do an exception return from up_fullcontextrestore(). That 7335would be more efficient, but I never tried it. 7336 7337* Atmel SAM3/4 Boards: 7338 7339- SAM3X/Arduino Due: Fix typo in sam3x_periphclks.h; add SCLK 7340definitions to board.h header file. From Fabien Comte. 7341- SAM3 RTT: Only SAM4 family has RTTDIS bit in the MR register. 7342SourceForge bug #33 from Fabien Comte. 7343 7344* C Library: 7345 7346- sscanf(): NuttX libc tried to guess how many characters to parse, 7347extracted them into a buffer, then ran strtol() on that buffer. 7348That guess was often wrong. A better approach would be to call 7349strtol() directly on the input data, using the endptr return value 7350to determine how many characters to skip after parsing. From Kosma 7351Moczek. 7352- Corrected atan2 implementations from Denis Arnst. 7353- Change to lib_dtoa() to fix precision error from trailing zeroes. 7354From Bob Doiron. 7355 7356* Applications: 7357 7358- Fix NSH PS command: If there are no arguments, it could print 7359garbage for argument list. 7360 7361* Configuration/Build System: 7362 7363- Null Example: Need to include config.h it order know if this is or 7364is not a kernel build. This problem still exists in several other 7365file that may need to define main(). 7366 7367NuttX-7.6 7368--------- 7369 7370The 106th release of NuttX, Version 7.6, was made on November 26, 2014, 7371and is available for download from the SourceForge website. Note 7372that release consists of two tarballs: nuttx-7.6.tar.gz and 7373apps-7.6.tar.gz. Both may be needed (see the top-level nuttx/README.txt 7374file for build information). 7375 7376Additional new features and extended functionality: 7377 7378* Core OS: 7379 7380- Moved name semaphore and message queue support out of the OS and 7381into the VFS. These improves the architecture by unifying the 7382management of named resources, removes redundant resource management 7383logic, and makes named semaphores and message queues visible in the 7384file system. By default, these are visible at /var/lock and 7385/var/mqueue. 7386- Add SIGPOLL for use as part of the AIO implementation. 7387- Remove CONFIG_MAX_TASK_ARGS configuration. There is now no 7388predetermined limit on the number of arguments that may be passed 7389to a new task on start-up. 7390 7391* Work queues: 7392 7393- Add support for priority inheritance on the low priority worker 7394queue. That is, if a higher priority thread has scheduled work, the 7395priority of the low priority worker thread(s) will be boost to the 7396priority of the queuing thread. At work is performed at at least 7397thread priority of the scheduling thread. If there are multiple 7398worker threads, then all threads get reprioritized. Currently 7399only implemented for AIO. 7400- Add support for multiple low-priority work queue threads. This 7401allows individual worker threads to block indefinitely for I/O as 7402necessary without halting the entire work queue. 7403 7404* VFS/General Drivers: 7405 7406- Implement create() (as a macro). 7407- Add pread() and pwrite(). Also added pread() and pwrite() 7408system calls. 7409- AIO: Add aio_read(), aio_write(), aio_return(), aio_error(), 7410aio_suspend(), aio_canel(), lio_listio(), and aio_fsync(). This 7411logic minimizes the creation of new threads by using the new 7412features also added to the low priority work queue with this 7413release. It uses the new low priority worker thread interface 7414to adjust the priority of the worker thread according to the 7415priority of the AIO client thread 7416- Implement standard syslogmask() to control logging (also removing 7417the non-standard syslog_enable()). 7418 7419* File Systems/Block Drivers/MTD: 7420 7421- Extend MTD support to the M25P16. From Sébastien Lorquet. 7422 7423* Drivers: 7424 7425- BCH (Block-to-Character): Add support for seeking in BCH. From 7426Sébastien Lorquet. 7427 7428* Graphics Support/Graphics-Related Drivers: 7429 7430- Add support for a generic ILI9341 LCD driver. From Marco Krahl. 7431- Add ANSI/VT100 foreground and background color commands. 7432- Add driver for ST7565 LCD that works with NHD-C12864KGZ display. From Pierre-noel Bouteville. 7433 7434* Networking: 7435 7436- Verify that multiple networks can be supported. 7437- Add support for the case where there are multiple networks: One 7438being Ethernet and the other not (SLIP, PPP, ...). The primary 7439difference from the standpoint of the stack is that (1) ARP may or 7440may not be necessary, (2) the size of the link layer header will 7441vary, and (3) different MTUs and TCP receive windows may be used 7442with each link. Suggested by Brennan Ashton. 7443- Extensions to UDP and TCP connection structures for the case of 7444multiple networks. In this case, assigned port numbers only have to 7445be unique with respect to the IP address. So, for example, you 7446could have multiple port 80's, one on each network. 7447 7448* Host Simulation: 7449 7450- Removed the old, strange up_stdio.c and implemented a simulated UART 7451driver to provide the console input. The new logic starts a 7452separate, Linux domain pthread to read the console input in raw mode 7453and provides the incoming data to NuttX via standard NuttX domain 7454IPCs. 7455- Add support for 64-bit longjmp/setjmp in simulator platform. This 7456will permit operation of the simulation natively on a 64-bit 7457platform. 7458 7459* ARMv7-M: 7460 7461- Add ARMv7-M CMSIS ITM header file and library. From Pierre-noel 7462Bouteville. 7463- Add ARMv7-M CMSIS DWT and TPI header files. From Pierre-noel 7464Bouteville. 7465- Add ARMv7-M support to use ITM for SYSLOG debug output. Includes 7466logic from Pierre-noel Bouteville. 7467 7468* Atmel SAM3/4 Drivers: 7469 7470- Add support for SAM3/4 basic serial TERMIOS and flow control. 7471There are issues with IFLOW control: PDC or DMAC support is 7472required. 7473 7474* Atmel SAM3/4 Boards: 7475 7476- SAM4E-EK: Add support for PHY interrupt. 7477 7478* Atmel SAMA5D Boards: 7479 7480- SAMA5D3-Xplained: Add a configuration that provides a simple test 7481for the EMAC and GMAC on the SAMA5D3 working together. 7482- SAMA5D4-EK: Add a configuration that provides a simple test for the 7483EMAC0 and EMAC1 on the SAMA5D4 working together. 7484 7485* Freescale KL: 7486 7487- Add an I2C header file for the Freescale KL family. From Alan 7488Carvalho de Assis. 7489 7490* NXP LPC32xx: 7491 7492- Add support for tickless operation using the NXP LPC43xx. From 7493Brandon Warhurst. 7494 7495* SiLabs EFM32: 7496 7497- Add a basic port for the SiLabs EFM32 family. Includes many files 7498contributed by Pierre-noel Bouteville . 7499 7500* SiLabs EFM32 Boards: 7501 7502- Add board support for the EFM32 Gecko Starter Kit. 7503- Add board support for the Olimex EFM32G8809128 STK. NOTE: I am 7504unable to test this configuration due to tool-related issues. 7505- Add board support for the SiLbas EFM32GG Giant Gecko Starter kit. 7506 7507* STMicro STM32: 7508 7509- Add support for the STM32 F411RE from Serg Podtynnyi. 7510- Add support for the STM32F103RG. From Murilo Ponte. 7511 7512* STMicro STM32 Drivers: 7513 7514- STM32 F4: Add logic that implement true high speed support for the 7515STM32 OTGHS peripheral and concurrent support for both LS and HS 7516OTG. New OTGHS drivers provided for both device and host. From 7517Brennan Ashton. 7518 7519* STMicro STM32 Boards: 7520 7521- STM32 Nucleo-F411RE: Extend this board configuration to also support 7522the Nucleo-F411RE. From Serg Podtynnyi. 7523- Add support for the STM32F429i Discovery's LCD (SPI based). From 7524Marco Krahl. 7525- configs/stm32f100rc_generic: Removed this generic board configuration. 7526I have decided to stop support of generic board configurations. Generic 7527board configurations do not provide support for any specific hardware 7528but can be useful only if there are not other examples for the setup 7529for a particular architecture. Not the case here. 7530 7531* C Library: 7532 7533- Add a mostly bogus wchar.h header file. This file is mostly bogus 7534because none of the wide character operations are currently 7535supported in the NuttX C library. The file does provide the wchar_t 7536types needed by some software, however. 7537- Add isatty() function. From Alan Carvalho de Assis. 7538- Add mktemp(), mkstemp(), tmpnam() and tempnam(). 7539 7540* Configuration/Build System: 7541 7542- Add a PRELINK macro to Config.mk. From Kriegleder. 7543- compiler.h: Defines inline functions as not instrumented - this is 7544relevant for anyone using instrumentation. From Lorenz Meier. 7545 7546* Applications: 7547 7548- apps/interpreter/bas: Added in the Michael Haardt's BAS 2.4 adapted 7549for use by NuttX by Alan Carvalho de Assis. Includes support for 7550VT100 terminals and color commands. 7551- Examples: Added bastest/ which holds a special version of Michael 7552Haardt's BAS 2.4 test files adapted for use by NuttX on a ROMFS file 7553system. 7554- Examples: Add a simple UDP relay bridge for testing configurations 7555with multiple networks. Includes a host-side test driver for 7556testing the bridge. 7557- Netutils: Add implementation of timeouts for the netutils webclient. 7558From Brennan Ashton 7559- NSH: Add support for a custom NSH ROMFS startup image header file 7560location. From Martin Lederhilger. 7561- OS test: Add a simple test of named semaphores. 7562- OS test: Add AIO test case in OS test. 7563 7564Efforts In Progress. The following are features that are partially 7565implemented but present in this release. They are not likely to be 7566completed soon. 7567 7568* Processes. Much of the work in this release is focused on the 7569realization of Unix-style user processes in NuttX. There is more to 7570be done, however. The full roadmap and status is available at: 7571https://cwiki.apache.org/confluence/display/NUTTX/Memory+Configurations 7572 7573* XMega: There are some fragments in place for an XMega port. That 7574port has not really started, however. 7575 7576* Galileo: Similarly, there are fragments in place for an Intel Galileo 7577port. The port not been started in earnest either. 7578 7579Bugfixes. Only the most critical bugfixes are listed here (see the 7580ChangeLog for the complete list of bugfixes and for additional, more 7581detailed bugfix information): 7582 7583I ran cppcheck against the entire code base and correct many latent bugs 7584including things as serious as memory leaks, two locations where interrupts 7585were be disabled but never re-enabled, and errors in the Tickless mode of 7586operation. My thanks to the developers of cppcheck! I am impressed! 7587 7588* Core OS: 7589 7590- vfork(): Now that arguments are kept on the stack, the way that 7591arguments are passed from parent to child in vfork() must change. 7592This bug has always been present, but was not visible with the 7593old strdup() way of passing arguments. 7594- vfork() problem: If we get to vfork() via system call, then we 7595need to clone some system call information so that the return form 7596the cloned system call works correctly. 7597- Fixes to tickless operation code, especially in alarm mode. From 7598Brandon Warhurst. 7599- Fix an important bug in the watchdog timer creation logic. 7600- Calling mq_timedreceived() with immediate timeout was getting stuck 7601and not timing out. Immediate timeout is achieved by setting absolute 7602timeout value to past time, for example abstime={ .tv_sec=0, 7603.tv_nsec=0 }. However absolute time was converted to relative time 7604using unsigned integer arithmetic and resulted large ticks count by 7605clock_abstime2ticks, instead of expected negative ticks value. 7606Change corrects clock_abstime2ticks() to return negative ticks, if 7607absolute time is in the past. From Jussi Kivilinna. 7608 7609* Memory Management: 7610 7611- Fix a place in the memory manager where it explicitly assumed that 7612the size of a pointer is 4 bytes. That assumption was OK if the 7613actual size is smaller but made the heap unstable when used with 7614the x86_64 host simulation. 7615- Granule Allocator: If the INTR granule allocator mode is enabled, 7616there is no semaphore to destroy. From Lorenz Meier. 7617 7618* Networking: 7619 7620- Network routing: I don't think that the net_route() function has 7621ever worked correctly. The source IP was updated in the match 7622struct instead of the route IP. From Brennan Ashton. 7623- Move and rename IP header flag definitions. The problem fixed here 7624is that there IP header flag definitions were not available when TCP 7625was disabled. The IP flags are used in ICMP and IGMP. 7626- Network routing: Refuse to perform routing table lookups for the 7627Broadcast IP address. From Brennan Ashton. 7628- Network routing: Add logic to netdev_findbyaddr() to return the 7629correct network device for the case where a broadcast 7630address is used. This change caused trivial ripples through other 7631files because additional parameters are required for 7632netdev_findbyaddr() when CONFIG_NET_MULTINIC. 7633 7634* File Systems/Block Drivers/MTD: 7635 7636- NXFFS Dump: Fix problems with redefinitions of fdbg macro. With the 7637fix to the syslog prototype, a LOG priority must now be the first 7638parameter. Fixed by replacing all occurrences of fdbg with 7639syslog(LOG_DEBUG, and eliminating the macro redefinitions. Noted 7640by Sebastien Lorquet. 7641- poll() was not waking up from signals (for example mq_notify() 7642events). From Jussi Kivilinna. 7643- poll(): Add proper handling for sem_timedwait errnos. From Jussi 7644Kivilinna. 7645- include/nuttx/fs/fs.h: Fix typo in conditional compilation. From 7646Alan Carvalho de Assis. 7647 7648* Graphics/Graphic-Related Drivers: 7649 7650- Remove warnings when CONFIG_NXTK_BORDERWIDTH is set to zero. From 7651Pierre-Noel Bouteville. 7652 7653* Common Drivers: 7654 7655- Make standard syslog and vsyslog POSIX compliant (also modify 7656non-standard syslog functions for compatibility). 7657- R/W buffering: Fix typo that can cause compilation error. 7658 7659* Atmel SAM3/4: 7660 7661- SAM4S: Add missing SPI0 clock configuration macro for the SAM4S. From spasbyspas. 7662 7663* Atmel SAM3/4 Drivers: 7664 7665- SAM4E-EK: Fix an error in a USART1 pin number. 7666 7667* Atmel SAMA5D3/4 Drivers: 7668 7669- SAMA5DF4: Fix several typos that will prevented EMAC1 from 7670initializing properly. 7671 7672* NXP LPC43xx: 7673 7674- Fixes to allow compile of lpc43_gpioint.c. From Brandon Warhurst. 7675 7676* STMicro STM32: 7677 7678- Add missing ADC pinmap definitions for the STM32 F103R from Martin 7679Lederhilger. 7680 7681* STMicro STM32 Drivers: 7682 7683- STM32 EXTI: Correct STM32 RTC EXTI bit definition. From Lazlo. 7684- STM32 IWDG, WWDG, DBGMCU: Fix watchdog stop bit usage. From Lazlo. 7685- STM32 OTGFS: Correct a typo in the STM32 OTGFS register bit definitions. 7686 7687* ARM: 7688 7689- ARM up_internal.h: Add protection from C++ name mangling in the 7690ARM up_internal.h. From Lorenz Meier. 7691 7692* MicroChip PIC32MX: 7693 7694- PIC32MX7: DEVCFG0 bit 2 must be set. Writing bit 2 as zero can 7695brick the CPU on some versions. From Cris Kvist. 7696 7697* C Library: 7698 7699- The implementation of access() as vararg macro has the issue that 7700any function call with the same name (even in a C++ class) will 7701match with it and result in a compile error. Replaced with a small 7702function. This resolves the compile issue, and shouldn't have 7703negative side effects for users of the function. From Lorenz Meier. 7704- The definition of strncpy() is that empty space should be zero- 7705filled, the change adds the zero filling (See the POSIX spec here: 7706http://pubs.opengroup.org/onlinepubs/7908799/xsh/strncpy.html). From 7707Lorenz Meier. 7708- limits.h: Remove the definition of INT_FAST32_MIN which is already 7709defined in stdint.h (the correct location). From Lorenz Meier. 7710 7711* Applications: 7712 7713- apps/: Correct everything under apps to use the corrected syslog 7714interfaces. Remove any non-portable uses of syslog. 7715- NSH: Fix ls -l output for regular files. 7716- NSH: Fix reversed in/out file closing in DD command when an error 7717occurs. From Ken Pettit. 7718- NSH: Add logic to restart the console wait if an error occurs 7719while reading from the console. In USB console startup, the logic 7720must be able to open the USB serial and receive 3 newlines. 7721However, it the USB driver is disconnected or otherwise fails before 7722the 3 newlines are received, the receive loop becomes a killer, 7723infinite loop, CPU hog. Noted by spasbyspas. 7724- Netutils: Fix memcpy of host address in netlib_gethostaddr(). From 7725Brennan Ashton. 7726- Netutils: If you make a DNS request before the DNS address it would 7727cause an assertion. The state of the IP setting is not something the 7728application should be aware of, it should only be concerned with 7729whether or not the name was resolved. From Brennan Ashton. 7730- Netutils: Fix md5 hashing when digest[$i] islower that 16. From 7731Sergey. 7732- Stack Monitor: Fix compile problems introduced when the syslog() 7733prototype changed; Also update Makefile for kernel build From 7734Radoslaw Adamczyk. 7735- Examples: Update NxTerm makefile for kernel-build issues. From 7736Radoslaw Adamczyk. 7737- Examples: Fixes to keypadtest from Pierre-Noel Bouteville. 7738- Examples: These examples all set the IP address of eth1 but the 7739netmask and gateway of eth0 if DHCP is enabled: discover, tcpecho, 7740webserver, xmlrpc. That can't be right. 7741 7742NuttX-7.7 7743--------- 7744 7745The 107th release of NuttX, Version 7.7, was made on January 26, 2015, 7746and is available for download from the SourceForge website. Note 7747that release consists of two tarballs: nuttx-7.7.tar.gz and 7748apps-7.7.tar.gz. Both may be needed (see the top-level nuttx/README.txt 7749file for build information). 7750 7751Additional new features and extended functionality: 7752 7753* Core OS: 7754 7755- Task exit handling: Add logic to clean up after task_delete() or 7756pthread_cancel() if the task happens to be waiting on a semaphore 7757when was is cancelled. 7758- Stack coloration: Removed CONFIG_DEBUG_STACK and replaced it with 7759CONFIG_STACK_COLORATION that does the same thing but without enabling 7760debug. From David Sidrane. 7761 7762* Common Drivers: 7763 7764- Discrete joystick driver: Added an interface definition and upper 7765half driver for a discrete joystick device (where X/Y changes are 7766indicated with button presses). 7767- Analog joystick driver: Added an interface definition and upper 7768half driver for a analog joystick device (where X/Y positions are 7769sampled, numeric values). 7770- Add driver support for the ADXL345 accelerometer. From Alan 7771Carvalho de Assis 7772- Generic serial driver: Add watermark levels to the serial RX flow 7773control logic. Modify the rxflowcontrol method to accept the number 7774of bytes in the buffer and a boolean indication of which watermark 7775was crossed. 7776 7777* File Systems/Block Drivers/MTD: 7778 7779- Add procfs write support. From Ken Petit. 7780- Implemented wear-leveling in the SmartFS. From Ken Pettit. 7781- MMC/SD Interface: MMCSD SDIO: Add support for a new 7782SDWAIT_WRCOMPLETE condition. The previous logic used a busy-wait 7783loop to poll the card R1 status to determine when the card was 7784ready for the next transfer. That busy-wait can be quite long -- 7785up to hundreds of milliseconds. An alternative is to look the SD D0 7786pin which will change state when the card is no longer busy. This 7787change avoids the busy-wait poll by reconfiguring the SD D0 pin as a 7788GPIO interrupt, then waiting for the card to become ready without 7789taking up CPU cycles. From David Sidrane. 7790 7791* Drivers: 7792 7793- Add support for a generic EEPROM driver that accesses EEPROM as a 7794character driver (vs. an MTD driver). From Sébastien Lorquet. 7795 7796* Graphics Support: 7797 7798- Many new fonts converted for use with NuttX and added by 7799Pierre-noel Bouteville 7800 7801* Networking: 7802 7803- IPv4 support is now conditioned on CONFIG_NET_IPv4. 7804- Implemented and verified IPv6 support conditioned on 7805CONFIG_NET_IPv6. Either IPv4 or IPv4 or both may be selected. 7806Sockets, of course, must be bound to one or the other. Added support 7807for IPv6 ioctls to manipulate IP addresses. 7808- Integrated support for ICMPv6 and the ICMPv6 Neighbor Discovery 7809Protocol and ICMPv6 ECHO request/reply needed to support ping logic. 7810- All Ethernet drivers: Modified to support. Most, however, are 7811still missing address filtering logic required for ICMPv6 Neighbor 7812Discovery Protocol. See 7813https://cwiki.apache.org/confluence/display/NUTTX/IPv6 7814- Also added missing raw/packet socket support to all Ethernet drivers. 7815 7816* Host Simulation: 7817 7818- Add a configuration build and test the Traveler first person game 7819using the simulator. 7820- Add an X11 mouse-based simulation of an analog joystick device 7821 7822* Atmel SAMA5D Boards: 7823 7824- Add analog Joystick shield support for the SAMA5D3 Xplained board. 7825 7826* Freescale KL Drivers: 7827 7828- Add GPIO interrupt capability for the KL architecture. From Alan 7829Carvalho de Assis 7830 7831* Freescale KL Boards: 7832 7833- Freedom-KL25Z: Add board support for the ADXL345 accelerometer. From 7834Alan Carvalho de Assis 7835- Freedom-KL25Z: Update the Freedom KL25Z board CC3000 support to use 7836the current CC300 interfaces. From Alan Carvalho de Assis 7837 7838* NXP LPC43xx Boards: 7839 7840- A port of NuttX to the LPC4357-EVB from Toby Duckworth. This port 7841is a leverage of the LPC3330-Xplorer port and still have a some 7842misinformation from that port that needs to be updated for the 7843LPC4357-EVB. 7844 7845* SiLabs EFM32 Drivers: 7846 7847- Serial: Add support for serial termios TCGET and TCSET. For the 7848moment, only set/get speed is implemented. From Pierre-noel 7849Bouteville. 7850- RMU: Add support for the EFM32 reset management unit (RMU). From 7851Pierre-noel Bouteville. 7852 7853* SiLabs EFM32 Boards: 7854 7855- Add support for timer/PWM on the EFM32GG. From Pierre-noel 7856Bouteville 7857 7858* STMicro STM32: 7859 7860- Enable support for the STM32 F102. From the PX4 team. 7861 7862* STMicro STM32 Drivers: 7863 7864- STM32 F429 LTDC: Add interface to perform hardware accelerated layer 7865operation. Provides access to a reference of a specific ltdc layer. 7866From Marco Krahl 7867- STM32 F429 LTDC support: Implemented LTDC framebuffer support for the 7868generic nuttx framebuffer interface. Also implements the interface to 7869perform hardware accelerated layer operation by the ltdc controller 7870and dma2d controller later. From Marco Krahl. 7871- STM32: Add support for the internal low speed clock (LSI) as a 7872source of the RTC clock. Some boards do not have the external 787332kKhz oscillator installed, for those boards we must fallback to 7874the crummy internal RC clock. From Kevin Hester 7875- STM32 SDIO: Add support for the new SDWAIT_WRCOMPLETE condition. 7876From David Sidrane 7877 7878* STMicro STM32 Boards: 7879 7880- Add a discrete Joystick support for the STM3210E-EVAL. 7881- Add analog Joystick shield support for the Nucleo F4x1RE boards. 7882- STM32 F429i-Disco: Add support for initializing of the ltdc 7883controller and the lcd device connected on the stm32f429i-disco. 7884From Marco Krahl. 7885- Removed the px4-v2_upstream configuration. This was not the 7886official configuration for the PX4 board and has led to confusion 7887by NuttX users. The board configuration also requires some ongoing 7888maintenance and customization to support ongoing PX4 testing and 7889evaluation. It is best retained the PX4 repositories where it can 7890be properly maintained and not in the upstream NuttX repository. 7891 7892* TI Tiva: 7893 7894- Add support for the TI Tiva TM4C 129X family. Some unverified 7895support for the TM4C 1294 is also in place. 7896 7897* TI Tiva Drivers: 7898 7899- Added support for Tiva I2C driver. Verified on the Tiva TM4C123G 7900and TM4C129X. 7901- Added a Tiva TM4C129X Ethernet driver. 7902- Add a timer library for generic support of Tiva timers 7903- Add a driver lower half for drivers/timer.c. Only 32-bit periodic 7904timers are supported. This provides userspace access to timers. 7905 7906* TI Tiva Boards: 7907 7908- TM4C123G Launchpad: Add initialization logic for an external AT24 7909EEPROM. This is intended only to support testing of the Tiva I2C 7910driver. 7911- Board support for the Tiva DK-TM4C129x Connected Development Kit. 7912- DK-TMC129X: Add an IPv6-enabled NSH configuration. 7913 7914* C Library/Header Files: 7915 7916- Added support for a variadic ioctl() function. The ioctl() 7917interface is a non-standard, Unix interface. NuttX has always used 7918the older, three-parameter version. Most contemporary systems now, 7919however, use a variadic form of the ioctl() function. Added an 7920option to insert a shim layer to adapt the three-parameter ioctl() 7921to use the variadic interface form. Internally, the ioctl handling 7922is the same three-parameter logic. The only real complexity to the 7923shim is in how the system calls must be handled. 7924- Added sys/custom_file.h. Used when CUSTOM_FILE_IO is define and 7925avoids re-definition errors about the FILE define. From Thomas 7926Gruber via the PX4 repository 7927- Add CRC8 support to the C library. From Ken Pettit. 7928- math.h: Added support for the expm1 functions. From Brennan Ashton 7929 7930* Applications: 7931 7932- apps/examples/djoystick: Add a test of the discrete joystick 7933driver. 7934- apps/examples/ajoystick: Add a test of the analog joystick 7935driver. 7936- apps/examples/ltdc: Add ltdc test example. From Marco Krahl 7937- apps/system/lm75: Add a tiny application to read the temperature 7938from an LM-75 (or compatible) temperature sensor 7939- apps/examples/timer: Add a trivial test of the timer driver 7940 7941- apps/system/cu: Add a minimalist implementation of the 'cu' 7942terminal program (part of Taylor UUCP for ages). Using it, you can 7943simply open a serial port and interact with it. Using '~.' you can 7944leave the terminal program and drop back to nsh. This might come 7945in handy for people that have e.g. GSM modems, GPS receivers or 7946other devices with text based serial communications attached to 7947their NuttX systems. From Harald Welte 7948- apps/interpreters/micropython: A port of Micro Python to NuttX. 7949Contributed by Dave Marples 7950 7951- apps/netutils/dnsclient: Can select to be either IPv4 or IPv6, but 7952not both (IPv6 still does not compile) 7953- apps/netutils/netlib: Add new library functions to manipulate IPv6 7954addresses. 7955- apps/examples/nettest: Update test so that it can be used to test 7956IPv6 TCP sockets 7957- apps/examples/udp: The UDP test example has been extend to support 7958IPv6 domain sockets 7959 7960- apps/nshlib: Add logic to initialize IPv6 addresses 7961- apps/nshlib: Add the ping6 command to support checking IPv6 networks. 7962- apps/nshlib: Clean up network status presentation for IPv6 7963 7964Efforts In Progress. The following are features that are partially 7965implemented but present in this release. They are not likely to be 7966completed soon. 7967 7968* IPv6. While basic IPv6 support was completed in NuttX-7.7, 7969there are lingering issues with getting IPv6 compatibility 7970with applications and network utilities. 7971 7972* Processes. Much of the work in this release is focused on the 7973realization of Unix-style user processes in NuttX. There is more to 7974be done, however. The full roadmap and status is available at: 7975https://cwiki.apache.org/confluence/display/NUTTX/Memory+Configurations 7976 7977* XMega: There are some fragments in place for an XMega port. That 7978port has not really started, however. 7979 7980* Galileo: Similarly, there are fragments in place for an Intel Galileo 7981port. The port probably will not happen (I gave my Galileo board away!). 7982 7983Bugfixes. Only the most critical bugfixes are listed here (see the 7984ChangeLog for the complete list of bugfixes and for additional, more 7985detailed bugfix information): 7986 7987* Core OS: 7988 7989- POSIX message queues: msg type should be char * not void * in 7990mq_send, mq_timedsend, mq_receive, and mq_timedreceive. Noted by 7991Pierre-Noel Bouteville 7992- POSIX message queues: In message queue creation return ENOSPC error 7993if size exceeds the configured size of pre-allocated messages; Use 7994ENOSPC vs ENOMEM per OpenGroup.org. From Pierre-Noel Bouteville. 7995- Task Names: strncpy() will not copy the terminating \0 into the 7996destination if the source is larger than the size of the 7997destination. Ensure that the last byte is always zero and let 7998strncpy() only copy CONFIG_TASK_NAME_SIZE bytes. The issue of 7999unterminated names can be observed in ps when creating a pthread 8000while CONFIG_TASK_NAME_SIZE is set to 8. From Daniel Willmann 8001 8002* Memory Management: 8003 8004- Granule allocator: Fixes some issues found by the PX4 team using 8005Coverity. From Pavel Krienko 8006 8007* Networking: 8008 8009- Several fixes correcting issues with the CC3000 networking. From 8010Jussi Kivilinna 8011- CC3000 Fix: Data can be unaligned. When dereferenced as an input 8012ntosh(), a bad value is returned. Reported by Alan Carvalho de 8013Assis 8014- Correct naming of fields in struct sockaddr_in6: sin6_port and 8015sin6_family, not sin_port and sin_family. 8016- accept(): Correct the value returned by accept() in the case where 8017net_lockingwait() is called. It was returning -1 and losing the 8018errno value. Noted by Rony Xln 8019 8020* Common Drivers: 8021 8022- Loop device should return -EINTR is interrupted by a signal. 8023- M25P serial flash driver: Add subsector size of the M24P16 part. 8024From Lazlo 8025- Common serial driver: In case a thread is doing a blocking operation 8026(e.g. read()) on a serial device, while it is being terminated by 8027pthread_cancel(), then uart_close() gets called, but the semaphore 8028is still blocked. This means that once the serial device is opened 8029next time, data will arrive on the serial port (and driver 8030interrupts handled as normal), but the received characters never 8031arrive in the reader thread. The problem was fixed by re- 8032initializing the semaphores on the last uart_close() on the device. 8033From Harald Welte 8034- Pipes: Fixes some issues found by the PX4 team using Coverity. From 8035Pavel Krienko 8036- CDC/ACM driver: Fixes some issues found by the PX4 team using 8037Coverity. From Pavel Krienko 8038 8039* NXP LPC43xx Drivers: 8040 8041- LPC4357: Changes required to get USART 2 & 3 working on the 8042lpc4357-evb. From Toby Duckworth. 8043 8044* STMicro STM32: 8045 8046- Several fixes correcting issues with the STM32 header files from 8047Jussi Kivilinna 8048 8049* STMicro STM32 Drivers: 8050 8051- Ported Tridge's STM32 I2C noise resilience logic from the PX4 8052repository. 8053- STM32 F2 and F4: Set the GPIO_SPEED_50MHz on all F2 and F4 SPI pin 8054configurations. This is based on an F411 SPI1 errata but the fixed 8055is generalized to all SPI and all F2 and F4. Discovered and fixed 8056by Sebastien Lorquet. 8057- Fix for STM32 OTGHS device driver working in FS mode. From Ken 8058Pettit. 8059- For STM32 OTG HS DEV (in FS mode): Disable ULPI clock enable in RCC 8060AHB1 Register. If Both ULPI and the FS clock enable bits are set in 8061FS mode, then the ARM never awakens from WFI due to a chip issue. 8062This is only an issue if you are using the internal PHY. From Ken 8063Pettit. 8064- STM32 F429 LTDC: Add missing clut register definition. From Marco 8065Krahl 8066- STM32 serial: fix declaration and definition of up_receive() and 8067up_dma_receive() to match fields in the interface definition of 8068struct uart_ops_s. From Freddie Chopin. 8069 8070* TI Tiva Drivers: 8071 8072- Fix Tiva IRQ control logic; was limited to only 64 IRQs. That is a 8073problem for higher numbered IRQs on many platforms 8074 8075* C Library/Header Files: 8076 8077- avsprintf(): Fix a bug in usage of va_list on x86. On x86, 8078va_list is a pointer to a single copy on the stack. avsprintf() 8079calls lib_vsprintf() twice and so traverses the va_list twice using 8080va_start. va_start modifies that single copy on the stack so that 8081the second call to lib_vsprintf() fails. This appears to be an 8082issue with x86 only so far. 8083- stdint.h: Don't use hex values to specify minimum values of fixed 8084width, signed values. Hex values are inherently unsigned and not 8085usable for this purpose in all contexts. 8086- strncpy(): Would trash a lot of memory if n == 0. From Yasuhiro 8087Osaki. 8088- sscanf(). Accept %X and %F as well as %x %f as a format specifiers. 8089From Sébastien Lorquet 8090 8091* Applications: 8092 8093- apps/examples/romfs: fix romfs example builtin app registry issue. 8094From Librae 8095- apps/system/cdcacm, composite and usbmsc: Fix some strangely placed 8096conditional compilation. Looks like an automated update went awry 8097- apps/netutils/telnetd: Add protection when CONFIG_SCHED_HAVE_PARENT 8098is enabled: Call sigaction with SA_NOCLDWAIT so that exit status is 8099not retained (no zombies) and block receipt of SIGCHLD so that 8100accept is not awakened by a signal. If accept() is awakened by a 8101signal, do not do anything crazy like exit. Most from Rony Xln 8102- apps/nshlib/: NSH TFTP get command: Wrong file name used for the 8103destination. From Lazlo 8104 8105NuttX-7.8 8106--------- 8107 8108The 108th release of NuttX, Version 7.8, was made on February 11, 2015, 8109and is available for download from the SourceForge website. Note 8110that release consists of two tarballs: nuttx-7.8.tar.gz and 8111apps-7.8.tar.gz. Both may be needed (see the top-level nuttx/README.txt 8112file for build information). 8113 8114This release is primarily a bugfix release for the NuttX-7.7 version that 8115was release just two weeks prior. That release included substantial 8116modifications in the NuttX networking to accommodate support for IPv6. This 8117release follows close behind NuttX-7.7 in order to correct some the problems 8118discovered in that networking code. This release does, however, include a 8119small number of new features and bug fixes unrelated to NuttX networking. 8120 8121Additional new features and extended functionality: 8122 8123* Core OS: 8124 8125- Tickless Mode: added limit of maximum delay that can be request 8126by the scheduler tickless logic. This is necessary so that the 8127tickless logic does not request a delay beyond the capability of the 8128underlying hardware. From Macs Neklyudov. 8129 8130* Common Drivers: 8131 8132- VFS Unlink: Add an unlink method to both the character and block 8133driver interface. This is important because if the driver inode is 8134unlinked and there are no open references to the driver, then the 8135driver resources will be stranded. On the unlink call, the driver 8136has the opportunity (1) check if there an any open references, and 8137if not, (2) free the driver resources. 8138- Pipes and FIFOs: Implement the unlink method. If the pipe/FIFO is 8139unlinked, it will marked the pipe/FIFO as unlinked. If/when all 8140open references to the driver are closed, all of the driver 8141resources will be freed. 8142- Added an option to use the syslog'ing device as the system console. 8143This option enables a low-level, write-only console device at 8144/dev/console (similar to the low-level UART console device). From 8145Pierre-noel Bouteville. 8146 8147* File Systems/Block Drivers/MTD: 8148 8149- RAM/ROM disk: Add logic to dispose of the driver and RAM buffer 8150when the RAM disk has been unlinked and all open references to the 8151RAM disk have been closed. Add new parameters to romdisk() to 8152specify what should be done with the RAM/ROM buffer in this case -- 8153Should it be freed or not? Changed all calls to ramdisk() to use 8154these new parameters. 8155 8156* Networking: 8157 8158- Add support for local, Unix domain sockets. Support included for 8159both SOCK_STREAM and SOCK_DGRAM style local socket. 8160- UDP enhancement: Add UDP read-ahead support. In addition to 8161eliminating the main reason for lost UDP packets, then change 8162enables support for for poll/select on UDP sockets and also non- 8163blocking UDP sockets. From Macs Neklyudov. 8164- SLIP interface improvements. From Macs Neklyudov. 8165- IPv6 Neighbor Solicitation: Added logic to support verification 8166that we have the IPv6 address in the Neighbor Table before sending 8167any packets. If not, then the Neighbor Solicitation message is 8168sent. This feature is important because otherwise the first packet 8169sent to a remote peer will fail (it would have been replaced with a 8170Neighbor Solicitation). 8171- IPv6 Autonomous Auto-Configuration: Added support for sending 8172ICMPv6 Router Solicitation and receiving Router advertisement. The 8173local IPv6 address, mask, and router address are then auto-configured 8174from the response.. 8175- IPv6 Router Support: Add logic to behave like a router (if so 8176configured) only in the sense that NuttX will send the router 8177advertisement message in response to any received router solicitation 8178messages. Thus, one NuttX node in a network can configure the IPv6 8179addresses of all other nodes in the network. 8180- Optional IPv6 address filtering added to all Ethernet drivers for 8181the all-routers multicast address. 8182 8183* Atmel AVR: 8184 8185- Added architecture support for the Atmel AVR ATMega1284P MCU. From 8186Jedi Tek'Unum. 8187 8188* Atmel AVR Boards: 8189 8190- Added support for the LowPowerLab MoteinoMEGA that is based on the 8191Atmel AVR ATMega1284P MCU. From Jedi Tek'Unum. 8192 8193* Atmel SAMA4: 8194 8195- Add support for Tickless mode of operation for the SAM4CM platform. 8196From Macs Neklyudov. 8197 8198* Atmel SAMA4 Drivers: 8199 8200- Ethernet: The SAM4E Ethernet driver can now be configuration to 8201perform all network processing on the work queue. This greatly 8202reduces the amount of interrupt level processing to service Ethernet 8203packets. 8204- SAM4E Ethernet: Add support multicast address matching and IPv6. 8205 8206* Atmel SAMA4 Boards: 8207 8208- SAM4E-EK: The nsh configuration now configures the Ethernet driver 8209for execution on the work thread. 8210 8211* Atmel SAMA5D Drivers: 8212 8213- SAMA5D4 Ethernet: The SAMA5D4 Ethernet driver can now be configuration 8214to perform all network processing on the work queue. This greatly 8215reduces the amount of interrupt level processing to service Ethernet 8216packets. 8217- SAMA5D3 and SAMA5D4 Ethernet: Add support multicast address matching 8218and IPv6. 8219 8220* Atmel SAMA5D Boards: 8221 8222- SAMA5D4-EK; Added a configuration to testing IPv6. 8223- SAMA5D4-EK: Converted the nsh and ipv6 configurations to configure 8224the Ethernet driver to use the work queue (vs. interrupt level 8225processing). 8226 8227* Freescale KL: 8228 8229- Add architectural support for the K26Z128VLH4 chip. From Derek B. Noonburg. 8230 8231* Freescale KL Boards: 8232 8233- Add board support for the Freedom KL26Z board. From Derek B. Noonburg. 8234 8235* NXP LPC17xx Drivers: 8236 8237- Ethernet: Add support multicast address matching and IPv6. 8238 8239* SiLabs EFM32: 8240 8241- Add configurable option to unconditionally enable LE clocking. Even 8242you don't use core clock LE as source for LFA or LFB, to read are 8243write any register not clocked by HFPERCLK or HFCORECLK, HFCORECLKLE 8244should be enabled. From Pierre-noel Bouteville. 8245 8246* SiLabs EFM32 Drivers: 8247 8248- EFM32 RTC: RTC driver using BURTC. From Pierre-Noel Bouteville. 8249 8250* STMicro STM32 Drivers: 8251 8252- AES: Add driver for STM32L162XX AES peripheral. From Juha Niskanen. 8253- Ethernet: The STM32 Ethernet driver can now be configuration to 8254perform all network processing on the work queue. This greatly 8255reduces the amount of interrupt level processing to service Ethernet 8256packets. 8257- Ethernet: Add support multicast address matching and IPv6. 8258 8259* STMicro STM32 Boards: 8260 8261- Added an IPv6 configuration for the STM32F4-Discovery board (with the 8262STM32-DISCO_BB base board). 8263- Converted all STM32F4-Discovery configurations (with base board) to 8264configure the Ethernet driver to use the work queue (vs. interrupt 8265level processing). 8266 8267* TI Tiva Drivers: 8268 8269- Added support for TM4C123G timers. From Calvin Maguranis. 8270- Added a Tiva ADC driver. From Calvin Maguranis. 8271 8272* TI Tiva Boards: 8273 8274- Added TM4C123G timers on the TM4C123G Launchpad. From Calvin Maguranis. 8275- Added Tiva ADC support to the TM4C123G-Launchpad. From Calvin Maguranis. 8276 8277* C Library/Header Files: 8278 8279- Math Library: Added support for inverse hyperbolic functions, 8280isfinite(), error functions, nan(), copysign(), and trunc() 8281functions. From Brennan Ashton. 8282 8283* Applications: 8284 8285- apps/examples/ustream: Add a simple test of Unix domain stream 8286sockets. 8287- apps/examples/udgram: Add a simple test of Unix domain datagram 8288sockets. 8289- apps/netutils/netlib: Add utilities to convert to/from prefix 8290lengths from/to 128-bit network masks. 8291- apps/nshlib: Modify the NSH IPv6 ifconfig command to show the more 8292standard post-pended prefix value, rather than the full 128-bit 8293netmask. 8294 8295Efforts In Progress. The following are features that are partially 8296implemented but present in this release. They are not likely to be 8297completed soon. 8298 8299* Processes. Much of the work in this release is focused on the 8300realization of Unix-style user processes in NuttX. There is more to 8301be done, however. The full roadmap and status is available at: 8302https://cwiki.apache.org/confluence/display/NUTTX/Memory+Configurations 8303 8304* XMega: There are some fragments in place for an XMega port. That 8305port has not really started, however. 8306 8307Bugfixes. Only the most critical bugfixes are listed here (see the 8308ChangeLog for the complete list of bugfixes and for additional, more 8309detailed bugfix information): 8310 8311* Core OS: 8312 8313- Work Queues: Fix a backward calculation when determining the time 8314to the next interesting event. . From Liio Chen via the PX4 8315repository. 8316- clock_systimespec(): Fixes for compilation errors in certain 8317configurations. From Macs Neklyudov. 8318 8319* Graphics 8320 8321- Fixed a problem with one of the font files. From Pierre-noel Bouteville. 8322 8323* Networking: 8324 8325- IOB Deadlock: There were issues with the TCP write-ahead buffering 8326if CONFIG_NET_NOINTS was enabled: There is a possibility of 8327deadlocks in certain timing conditions: The network should never 8328wait for TCP read-ahead buffering space to be available. It should 8329drop the packets immediately if no buffering is available. This was 8330fixed by duplicating most of the IOB interfaces: The versions that 8331waited are still present (like iob_alloc()), but now there are non- 8332waiting versions of the same interfaces (like iob_tryalloc()). The 8333TCP read-ahead logic now uses only these non-waiting interfaces. 8334- TCP Deadlock: Fix another deadlock when CONFIG_NET_NOINTS is enabled. 8335tcp_write_buffer_alloc() calls sem_wait() with network locked. That 8336worked if CONFIG_NET_NOINTS was not defined because interrupts are 8337automatically restored when the wait happens. But with 8338CONFIG_NET_NOINTS=y, the wait blocks with the network locked -- bad 8339style and also can lead to a deadlock condition. 8340- ARP response waiting: Fixes another CONFIG_NET_NOINTS issue. When 8341called sem_timedwait() with the network locked, the network stays 8342locked while we wait which is not what we want (without CONFIG_NET_NOINTS, 8343interrupts are re-enabled while we wait and all is well). 8344- TCP accept(): Fix a major TCP bug introduced with the NuttX-7.7 8345IPv6 changes: Some connection logic was reordered; setting the 8346socket as 'connected' got moved to BEFORE the point where the check 8347was made if the socket was already connected. The resulting behavior 8348was odd: Telnet would connect, but then when you exit and reconnect, 8349it would fail to connect. But then if try again, it would connect 8350okay. So the symptom was connect-fail-connect-fail-... 8351- Lots of build problems introduced into multiple NIC support with the 8352IPv6 changes of NuttX-7.7. Many places where conditional logic based 8353on CONFIG_NETDEV_MULTINIC is confused with CONFIG_NET_MULTILINK. 8354Lots of code changed with IPv6 that was never compiled with MULTINIC 8355enabled. 8356 8357* Common Drivers: 8358 8359- Pipes and FIFOs: Fix a race condition between FIFO buffer operations 8360and the opening and closing of FIFOs which necessary when the FIFOs 8361are used to support Unix domain, datagram sockets. The default 8362policy is the deallocate FIFO buffering when the last client closes 8363the pipe. When when used for datagram communications, packets left 8364in the FIFO will be lost. Some like UDP read-ahead is needed: The 8365buffered data in the FIFO needs to be retained until the reader gets 8366a chance to re-open the FIFO. Added an ioctl (PIPEIOC_POLICY) to 8367control the buffer policy. Default (0) is the legacy behavior; Unix 8368domain datagram logic sets the alternative policy so that the packet 8369data persists after the FIFO is closed. 8370- RAMTRON: Table of parts is not terminated properly if 8371CONFIG_RAMTRON_FRAM_NON_JEDEC is not defined. Noted by David 8372Sidrane. 8373 8374* All Architectures: 8375 8376- Removed all occurrences of up_maskack_irq() that disables interrupts 8377with up_ack_irq() that only acknowledges the interrupts. This is only 8378used in interrupt decoding logic. Also remove the logic that 8379unconditionally re-enables interrupts with the interrupt exits. This 8380interferes with the drivers ability to control the interrupt state. 8381This is a necessary, sweeping, global change and unfortunately 8382impossible to test. 8383 8384* ARM 8385 8386- ARMv7-A and ARMv7-M memcpy(): Optimized ARM assembly language 8387memcpy's were not returning a value in R0 they are required to do. 8388From David Sidrane. 8389- ARMv7-A interrupt handler should not automatically re-enable interrupts 8390on interrupt return. That interferes with the driver's ability to 8391manage interrupts. Analogous change made to all other architectures 8392as well (ARM7, ARM9, HC, SH, x86, z16, z80, etc,. See above.). 8393 8394* STMicro STM32: 8395 8396- GPIO Interrupts: Disabling any of EXTI 5-9 interrupts was disabling 8397interrupts for all EXTI 5-9. Same issue with EXTI 10-15. From Jussi 8398Kivilinna. 8399 8400* STMicro STM32 Drivers: 8401 8402- RTCC: Fix for recent changes that caused compilation failrues with 8403STM32L15XX configurations. From Jussi Kivilinna. 8404- SPI: The source clock for SPI 4,5, and 6 should be PCLK2, not PCLK1 8405(for F411, F427, and F429). Per David Sidrane. 8406 8407* C Library/Header Files: 8408 8409- execl(): Fix bad logic in counting the number of arguments. 8410execl() parameter passing could never have worked. Noted by 8411Pierre-noel Bouteville. 8412 8413* Applications: 8414 8415- Fix for building with parallel make. Build-server sometimes failed 8416'make -j24' with errors in the builtin line or or sometimes silently 8417succeeds but generated builds that contain a random subset of 8418configured NuttX applications. There are two root causes for this: 8419(1) Recipes for building builtin_list.h and builtin_proto.h are 8420not linearizable, and (2) Nothing ensures that 'make context' is run 8421first for apps/builtin. This change address both issues. From Juha 8422Niskanen. 8423 8424NuttX-7.9 8425--------- 8426 8427The 109th release of NuttX, Version 7.9, was made on April 14, 2015, 8428and is available for download from the SourceForge website. Note 8429that release consists of two tarballs: nuttx-7.9.tar.gz and 8430apps-7.9.tar.gz. Both may be needed (see the top-level nuttx/README.txt 8431file for build information). 8432 8433Additional new features and extended functionality: 8434 8435* Core OS: 8436 8437- Assertions: Add support for dumping board-specific information on 8438assertions. From David Sidrane. 8439- boardctl(): : Add a new non-standard OS interface called boardctl(). 8440This is similar to a driver IOCTL call. But this is an IOCTL call 8441directly on the board logic. This function will eventually replace 8442all of the ad hoc OS interfaces that are current used to perform 8443application specific initialization and application driver test 8444configuration. It essentially formalizes and institutionalizes 8445these rogue interface in to at least a single crazy call. 8446 8447* Graphics: 8448 8449- Line Joins: Line drawing graphic functions now take an argument that 8450will draw a circular "cap" on the ends of lines to support cleaner 8451joining of lines segments.. 8452 8453* Common Drivers: 8454 8455- SPI iInterface: Add an SPIDEV_USER so that there can be board- 8456specific definitions of SPI devices. 8457- I2C Interface: Add a user provided void * argument to the I2C 8458callback method for the I2C slave interface. Suggested by Nate 8459Weibley. 8460- AT24 EEPROM Driver: Add support for (1) the byte-oriented read() 8461method, (2) devices that have extended memory regions, and (3) 8462devices that use 8-bit addressing. 8463- Freescale MPL115A barometer: Add driver for the Freescale MPL115A 8464barometer. From Alan Carvalho de Assis. 8465- CS2100-CP: Add a driver for the CS2100-CP Fractional-N Multipler 8466chip. 8467- RTC IOCTls: Added the definitions of a driver based RTC interfaces 8468and RTC upper half driver. 8469 8470* File Systems/Block Drivers/MTD: 8471 8472- umount2(): Added to support un-mount flags. umount() is now a macro 8473that just calls umount2() with flags = 0. 8474- File system interface: Pass the umount2() flags to every unbind() 8475implementation. That is where the decision to umount or not and how 8476to umount will be made. 8477- FAT unbind: Add support for umount2(target, MNT_FORCE) in the FAT 8478file system. 8479 8480* Networking: 8481 8482- netdev_register(): Improve the network device registration logic. 8483When multiple link types are used, modify how each interface number 8484is assigned to the device name by incrementing the device number 8485individually for each interface link type. From Max Neklyudov. 8486- Add TUN network device. Used to support the Netutils PPPD 8487implementation. From Max Neklyudov. 8488 8489* ARMv7-M 8490 8491- ARM Cortex-M7: Add basic support for the Cortex-M7 architecture. 8492- ARMv7 Common Lazy Exception handling. Add common support for lazy 8493FPU state saving. MCU-specific lazy FPU saving was already in place. 8494This change just makes the code share-able. 8495 8496* Atmel SAMA5D3/4 Drivers: 8497 8498- SAMA5 Serial: Backport support for flowcontrol and termios from 8499SAM3/4. 8500 8501* Atmel SAMV7: 8502 8503- Atmel SAMV7: Add architecture support for the Atmel SAMV7 family 8504(Cortex-M7) 8505 8506* Atmel SAMV7 Boards: 8507 8508- Atmel SAMV71 Xplained Ultra: Add board support for this SAMV7 board. 8509This initialize release includes support for: SDRAM, TWI/I2C, SPI, 8510Ethernet, HSMCI, DMA, GPIOs, UARTs, AT24 EEPROM and the maXTouch 8511Xplained Pro LCD. Drivers are available for SSC/I2C, the WM8904, 8512the maXTouch trouchscreen, and USB device but have not yet been 8513fully integrated in this release. 8514 8515* SiLabs EFM32 Drivers: 8516 8517- EFM32 USB Device is now functional with the efforts of From Pierre- 8518noel Bouteville. 8519- EFM32 I2C: Add I2C driver. From Pierre-noel Bouteville. 8520 8521* STMicro STM32: 8522 8523- STM32F372/F373: Adds architecture support for this STM32 parts. 8524Tested on STM32F373CC. Contributed by Marten Svanfeldt. 8525 8526* STMicro STM32 Drivers: 8527 8528- STM32 RTCC: Break out a new internal interface, stm32_rtc_setdatetime(). 8529This eliminates some un-necessary time conversions. From Freddie Chopin. 8530- STM32 RTCC: Add an implementation of the RTC lower half interface 8531for the STM32. 8532- STM32 RTCC: Extend the RTC interface to support reading subseconds. 8533From Jussi Kivilinna. 8534- STM32 BBSRAM: Adds the ability to use the STM32F2 and STM32F4 Battery 8535Backed SRAM in the file system. With an option to Save Panic context 8536to one of the files. From David Sidrane. 8537 8538* STMicro STM32 Boards: 8539 8540- Olimexino-STM32: Board support for the Olimexino STM32 board from David 8541Sidrane. 8542- Viewtool-STM32F107: Add support for an optional, add-on Freescale 8543MPL115A baramoter. From Alan Carvalho de Assis. 8544 8545* TI Tiva: 8546 8547- TM4C1294: Add support for the TM4C1294. Contributed by Frank Sautter. 8548 8549* TI Tiva Drivers: 8550 8551- Tiva ADC: Updated files to allow for ADC and PWM triggering by a 8552timer. Refactoring of ADC implementation. From Calvin Maguranis. 8553- Tiva Timer: Refactoring by Calvin Maguranis 8554 8555* TI Tiva Boards: 8556 8557- TM4C123G-launchpad: Add ADC support. From Calvin Maguranis. 8558- TM4C123G-launchpad: Add board button interrupt support. From Calvin 8559Maguranis. 8560- TM4C1294 Launchpad: Add support for the TM4C1294 Launchpad. 8561Contributed by Frank Sautter. 8562 8563* Microchip PIC32 8564 8565- PIC32MZ: Add architectural support for the PIC32MZ (MIPS32 M14k). 8566Includes contributions from Kristopher Tate. 8567 8568* Microchip PIC32MZ Boards 8569 8570- PIC32MZ Starter Kit: Add basic board support for the PIC32MZ. 8571Includes contributions from David Sidrane. 8572 8573* C Library/Header Files: 8574 8575- gettimeofday(): This function is no longer a core OS interface. It 8576is only a wrapper around clock_settime(). 8577- settimeofday(): Added. gettimeofday has been deprecated in POSIX 85782008. settimeofday() was never part of POSIX, but I decided to add 8579it to libc as well just for symmetry. 8580- Day-of-Week: Add CONFIG_TIME_EXTENDED to support the last 3 members 8581of the tm struct and support for filling them in with the day of the 8582week. From David Sidrane. 8583- sighold(), sigrelse(), sigignore(), sigset() and sigpause(): New 8584signal handling functions. 8585- sys/select.h: Extend the fd_set type definition so that it can 8586handle more than 32 descriptors (if so configured). From Max 8587Neklyudov. 8588- netdb.h: Add a mostly-commented-out version of the standard netdb.h 8589header file. 8590- include/nuttx/board.h: Remove common board function prototypes from 8591other files and consolidate them in this new header file. 8592 8593* Applications: 8594 8595- OS test: Improved error checking for sem_timedwait() from Juha 8596Niskanen. 8597- OS test: Add a simple test of sigprocmask, sighold, and sigrelse. 8598- PPPD test: Add PPPD test case. Split out from the PPPD daemon by 8599Brennan Ashton. 8600- Netutils: Add a PPP daemon. From Max Neklyudov. 8601- NSH: NSH initialization now calls boardctl(BOARDIOC_INIT) instead 8602of nsh_archinitialize(). Remove support for CONFIG_NSH_ARCHMAC. 8603It is not used and there are better ways to do that operation. 8604- NSH: Allow NSH 'date' command with no hardware RTC. This command 8605is useful without an RTC too. Also, this permits testing on the 8606simulator which never has an RTC. 8607- apps/examples/: Several tests changed (touchscreen adc, pwm, 8608graphics). No longer call directly into the OS, but rather 8609indirectly via boardctl(). 8610- Modbus: Includes extensions to support RTU master mode by 8611Armink(383016632@qq.com): https://github.com/armink/FreeModbus_Slave-Master-RTT-STM32. 8612Ported to NuttX by Darcy Gong. 8613- TZ database: All logic to build timezone database needed for 8614localtime() support. Does not do much else yet. 8615 8616Efforts In Progress. The following are features that are partially 8617implemented but present in this release. They are not likely to be 8618completed soon. 8619 8620* Processes. Much of the work in this release is focused on the 8621realization of Unix-style user processes in NuttX. There is more to 8622be done, however. The full roadmap and status is available at: 8623https://cwiki.apache.org/confluence/display/NUTTX/Memory+Configurations 8624 8625* XMega: There are some fragments in place for an XMega port. That 8626port has not really started, however. 8627 8628Bugfixes. Only the most critical bugfixes are listed here (see the 8629ChangeLog for the complete list of bugfixes and for additional, more 8630detailed bugfix information): 8631 8632* Core OS: 8633 8634- atexit(): Fix compile failure due to reference to undefined variable 8635in certain configurations. From Juha Niskanen. 8636- syscalls: Last changes to message queue prototypes did not make it 8637into call gate logic. Some additional errors had crept as well since 8638the system calls are seldom used. 8639- waitpid(): Do not use uninitialized boolean in waitpid(). From Juha 8640Niskanen. 8641- Timing functions: Fix some nanosecond comparisons. Comparisons should 8642be greater than OR EQUAL TO 1000000000 for maximum value of nanoseconds 8643in struct tm. From Juha Niskanen. 8644- Time initialization: Fix an error in time initialization when there 8645is no RTC and the time is initialized from a fixed configured value. 8646The call to clock_calendar2utc() was returning the time in units of 8647seconds. The initialization logic, however, was expecting to get 8648time in units of days. This problem has been there forever but 8649obviously has not significant impact to behavior in systems where 8650time is not visible. 8651- mq_timedsend(): Should not check for valid time if there is space 8652in the message queue. Noted by Freddie Chopin. 8653- select() and sem_timedwait(): Fix places where the errno value was 8654being overwritten by subsequent actions so that the returned errno 8655value was incorrect. From Max Neklyudov. 8656- clock_systimer64(): Fix a problem in clock_systimer64 that occurs 8657when (1) the 64-bit system time is enabled, and (2) the value of 8658CONFIG_USEC_PER_TICK is less than 1 milliseconds (such as when using 8659the tickless mode of operation). In that case, the conversion of 8660time to 64-bit millisecond value in clock_systmer64() causes some 8661bad times to be returned. Time was converted to milliseconds, then 8662to configured ticks. Precision was lost in the millisecond 8663conversion. The fix is to first convert time to a 64-bit microsecond 8664value, then to the configured tick value. Noted by David Sidrane. 8665- clock_systimespec(): When an RTC is used clock_systimespec() must 8666subtract the basetime from the returned time. It needs to return 8667the time since power up, no the current time. Issue noted by Max 8668Neklyudov. 8669- AIO: correct some backward tests in aio_read() and aio_write(): 8670Socket descriptors have higher numbers than file descriptors. In 8671aio_contain(), Copy u.ptr (void *) when initializing aioc and not 8672the case specific u.aioc_filep. From Michal Ulianko. 8673 8674* File Systems/Block Drivers/MTD: 8675 8676- procfs: Fix potential NULL pointer dereference of 'node'. From 8677Juha Niskanen. 8678- FAT: fat_unbind() was accessing 'fs->fs_sem' after freeing the 'fs' 8679struct. From Juha Niskanen. 8680- mkfatfs: Use DMA memory for mkfatfs when needed. This makes mkfatfs 8681use fat_dma_alloc() when CONFIG_FAT_DMAMEMORY is set. This is needed 8682to ensure mkfatfs operates with boards that use DMA for microSD. 8683From Andrew Tridgell via the PX4/NuttX repository. 8684- FAT unmount: Fix a bug in the FAT unbind() logic. There were 8685problems with the way certain internal list handling was 8686implemented. The end result is that newly opened or cloned file 8687structures were never being added to the list of open files. So 8688when the unmount() happens, it always looked like there were not 8689open files and a crash could ensue. 8690- FAT mounting: Fix misthink when CONFIG_ENDIAN_BIG=y. From Lwazi Dube. 8691 8692* Common Drivers: 8693 8694- CAN upper half driver: Some lines had to be reordered in the can_open 8695function otherwise the open count will only be incremented from 0 to 86961. This caused problems when trying to open the can bus from two 8697different tasks. SourceForge Patch #46. 8698 8699* Crypto: 8700 8701- crypto: Fix issues when AES support was added for the STM32L1. 8702From Juha Niskanen. 8703 8704* Networking: 8705 8706- Network initialization: Divide net_intiialize() into net_setup() and 8707net_initialize() to solve a chicken-and-egg problem. net_setup() 8708must be called before up_initialize() is called so that networking 8709data structures are ready to register new network devices. 8710net_initialize() now does only timer related operations and is 8711called AFTER up_initialize() where the timers are configured. 8712Problem noted by Max Neklyudov. 8713- netdev_unregister(): Fix a list handling error. From Max Neklyudov. 8714- Socket dup: Do not call sockfd_socket() twice. From Juha Niskanen. 8715 8716* Common Drivers: 8717 8718- max11802 touchscreen: Fix possible unmatched IRQ restore (not 8719normally a problem, but could happen in certain configurations). 8720Noted by Juha Niskanen. 8721- MMCSD SPI Multi-block transfers: ACMD23 must be preceded with CMD55 8722command as any other ACMD commands. Also, after the block reading 8723wait loop must be inserted before writing the next block of data to 8724the sd card. From Dmitry Nikolaev via Jussi Kivilinna. 8725- MMCSD SDIO: Fix some bad logic when file system debug is turned on: 8726Arguments to syslog were missing so that garbage was being printed. 8727- Common upper-half serial driver: Report correct number of bytes free 8728in serial buffer with FIONWRITE. From Sami Pelkonen via Jussi Kivilinna. 8729- Pipes/Fifos: Fix zero-lenth writes to pipes/FIFOs. From Jussi Kivilinna. 8730- USB device MSC: Add NULL pointer check. From Juha Niskanen. 8731- BCH driver: Avoid NULL pointer dereference when bch->refs == 255. 8732From Juha Niskanen. 8733- Various drivers: The inode unlink method should not be support if 8734operations on the root pseudo-filesystem are disabled. 8735 8736* ARMv7-M 8737 8738- ARMv7M MPU: Bad syntax in ARMv7-M MPU logic would cause failure to 8739write the correct value to the MPU_RASR register. From Juha Niskanen. 8740 8741* Atmel SAM3/4 Drivers: 8742 8743- SAM3/4 Serial TERMIOS: A side-effect of changing serial settings 8744via TERMIOS (such as tcsetattr) is that serial interrupts were being 8745left disabled. This is not a problem if the serial configuration is 8746changed when there are no open references to the serial device. In 8747that case, serial interrupts are disabled and will not be enabled 8748enabled until the serial device is first opened. But it is fatal if 8749the serial device is already opened and if there is a task waiting 8750to receive data. In that case, the side-effect of disabling 8751interrupts is fatal: That task is then left hanging with interrupts 8752disabled. 8753- SAM3/4 Serial: The IMR register is read-only. This means that 8754sam_restoreints() did not actually re-enable UART interrupts 8755(Fortunately, that function was not being used up to this point). 8756- SAMA5 HSMCI: Fix a bug in SAMA5 HSMCI. The bitfield mask and shift 8757values were reversed resulting in a trashed value for the number of 8758blocks in the BLOCKR register. This was sufficient to prevent DMA 8759writes from working. 8760 8761* Atmel SAMA5 Drivers: 8762 8763- SAMA5 Timer/Counter: Fix typos in timer/counter header file. From 8764Bob Doiron. 8765 8766* STMicro STM32 Drivers: 8767 8768- STM32 PWR and RTC: Changes to support fully write protecting the 8769backup domain. N.B. stm32_pwr_enablebkp did not account for the delay 8770from enable to the domain being writable. The KISS solution is a 8771up_udelay. A more complex solution would be a negated write test 8772with restore. From David Sidrane. 8773- STM32 SPI: Add missing SPI callback functions to the STM32 SPI 8774driver. From Freddie Chopin. 8775- STM32 I2C: Add missing NULL check. From Juha Niskanen. 8776- STM32 USB device: Fix stale initialization invalidating later NULL 8777check. From Juha Niskanen. 8778- STM32 UART: Fix RX DMA setup for UART5. From Jussi Kivilinna. 8779- STM32 UART: Make input hardware flow-control work with RX DMA. From 8780Jussi Kivilinna. 8781- STM32 RTC and clock control: The STM32F4Discovery board doesn't 8782come with a Low speed external oscillator so the default LSE source 8783for the RTC doesn't work. In stm32_rtcc.c the up_rtc_initialize() 8784logic doesn't work with the LSI. The check on RTC_MAGIC on the BK0R 8785register lead to rtc_setup() call that rightfully enables the LSI 8786clock; but the next times, when the rtc is already setup, the 8787rtc_resume() call does NOT start the LSI clock! The right place to 8788put LSE/LSI initialization is inside stm32_stdclockconfig() in 8789stm32fxxxxx_rcc.c. Doing this I checked the possible uses of the 8790LSI and the LSE sources: the LSI can be used for RTC and/or the 8791IWDG, while the LSE only for the RTC (and to output the MCO1 pin). 8792This change is not verified for any other platforms. From Leo 8793Aloe3132 8794 8795* Tiva Drivers: 8796 8797- Tiva GPIO driver needed small fixes in the configuration routines and 8798discovered false-positive bugs in interrupt testing: interrupts are 8799now verified to actually be working reliably. From Calvin Maguranis . 8800 8801* MIPS32: 8802 8803- mips32/Toolchain.mk: Current Pinguino toolchain uses the prefix p32- 8804instead of mips-. 8805 8806* C Library/Header Files: 8807 8808- sigaddset() and sigdelset(): Need to set errno if a bad signal 8809number is received. 8810- sfrtime(): Missing implementation of %C in sfrtime() C (was being 8811treated as %y). From Freddie Chopin. 8812- pthread.h: Fix PTHREAD_COND_INITIALIZER. 8813- ungetc.c: Fix NULL pointer dereference in ungetc() if 'stream' was 8814NULL, 'stream->fs_oflags' was evaluated. From Juha Niskanen. 8815- Fixes to asinh(), atanh(), and sinh(): The 'basic' expansions all 8816exhibited bad cancellation errors near zero (<= 1E-10). This can be 8817easily seen e.g. with x = 1E-30, the results are all zero though they 8818should be extremely close to x. The cutoff values (1E-5, 1E-9) are 8819chosen so that the next term in the Taylor series is negligible (for 8820double). Functions could maybe be optimized to use only first term (x) 8821and a smaller cutoff, just bigger than where the cancellation occurs 8822- localtime(): Inconsistent configuration name: CONFIG_LIBC_TZDIR vs 8823CONFIG_LIBC_TZ_TZDIR. Former wins. 8824 8825* Applications: 8826 8827- Modbus: Fix some compile problems when TCP is enabled. 8828 8829NuttX-7.10 8830---------- 8831 8832The 110th release of NuttX, Version 7.10, was made on June 9, 2015, 8833and is available for download from the SourceForge website. Note 8834that release consists of two tarballs: nuttx-7.10.tar.gz and 8835apps-7.10.tar.gz. Both may be needed (see the top-level nuttx/README.txt 8836file for build information). 8837 8838Additional new features and extended functionality: 8839 8840* Binary Loader: 8841 8842- ARMv-7M, binfmt/, STM32: Add support uClibc++ exceptions. This 8843involved additional handling for relative relation types, additional 8844support for unwinding, as well as additional changes. The 8845culmination of a big effort from Leo Aloe3132. 8846 8847* Graphics/Graphic Drivers: 8848 8849- RA8875 LCD driver contributed by Marten Svanfeldt. 8850 8851* File Systems/Block Drivers/MTD: 8852 8853- Union File System: Add support for a union file system that can be 8854used to overlay and merge the content of two mounted file systems. 8855 8856* USB Host: 8857 8858- USB Hub Support: Bring in USB hub-related files from 8859https://github.com/kaushalparikh/nuttx. This is the work of Kaushal 8860Parikh. This is quite a bit more hub logic was needed in before the 8861USB hub support was fully functional. This involved changing many 8862USB host controller driver interfaces and modifications to many 8863drivers. 8864- USB host CDC/ACM class driver: Added initial implementation of a 8865host-side CDC/ACM driver. Initial version was a great learning 8866experience, but probably should be partially redesigned (as 8867discussed in the top-level TODO file). 8868- IPv6 Routing: Complete implementation of the IPv6 routing logic. 8869From Max Neklyudov. 8870 8871* Networking: 8872 8873- Local Sockets: Add poll support for Unix stream sockets. From Jussi 8874Kivilinna. 8875- net/: ARP, ICMP, ICMPv6, PKT, TCP, and UDP now all receive event 8876notifications from both network device packet processing, but now 8877also from Device-specific events such as when the network goes down. 8878The device notification callback structure is now supports dual 8879linkages so that the client can receive notifications from both 8880source; The device structure now includes a list of clients that 8881want to receive device related notifications. This prevents network 8882actions from hanging when the device goes down and will be an 8883essential part of future support for removable network devices. 8884Some of the core logic was contributed by Max Neklyudov. 8885- TUN: Misc. improvements to the TUN driver, mostly related to poll(). 8886Also several bugfixes. From Max Neklyudov. 8887 8888* Simulation Platform: 8889 8890- Simulator: Add logic to test localtime and TZ database. See 8891apps/system/README.txt for info. 8892- Simulation: Add a configuration for testing the Union File System. 8893 8894* Calypso: 8895 8896- Calypso Compal-E86: Updates for execution out of FLASH on the C139 8897phone. From Craig Comstock. 8898 8899* Atmel SAMD/L: 8900 8901- SAML21 Support: And chip definitions, configuration framework, 8902memory map and pin configuration files for SAML21 support. 8903 8904* Atmel SAMD/L Boards: 8905 8906- SAML21-Xplained: Add a board support for the SAML21 Xplained Pro. 8907This is based on the similar SAMD20 Xplained Pro board. 8908 8909* Freescale/NXP KL: 8910 8911- KL25Z64: Added support for the KL25Z64. The KL25Z64 is a lower 8912memory variant of the KL25Z128 and is used on the Teensy LC. From 8913Michael as SourceForge patch 50. 8914 8915* Freescale/NXP KL Boards: 8916 8917- Teensy-LC: Add board support for the Teensy LC board. Support is 8918based off the Freedom KL25Z board. LED, PWM, and UART0 have been 8919tested. The SPI pins are mapped correctly but have not yet been 8920tested. From Michael Hope as SourceForge patch 51. 8921 8922* NXP LPC111x: 8923 8924- LPC111x: Support for the LPC11xx family (the LPC1115 MCU in 8925particular). Contributed by Alan Carvalho de Assis. 8926 8927* NXP LPC111x Boards: 8928 8929- LPCXpresso LPC1115: Support for the LPCXpression LPC1115 8930board. Contributed by Alan Carvalho de Assis. 8931 8932* NXP LPC17xx Drivers: 8933 8934- LPC17xx Ethernet: Add support for the Micrel KSZ8041 PHY to the 8935LPC17xx Ethernet driver. 8936 8937* NXP LPC17xx Boards: 8938 8939- Lincoln60: Add a network enabled configuration for the Lincoln60 8940board. 8941 8942* Atmel SAM3/4 Drivers: 8943 8944- SAM4CM: Add support for optical mode for the SAM4CM UART1. From 8945Max Neklyudov. 8946 8947* Freescale (NXP) Kinetis: 8948 8949- Kinetis K20: Basic support for the Kinetis K20 architecture. Taken 8950from PX4. This is the work of Jakob Odersky. 8951 8952* Atmel SAMV7 Boards: 8953 8954- SAMV71-Xplained w/maXTouch Xplained Pro: A TWIHS fix was the last 8955barrier to getting the touchscreen working in the maXTouch Xplained 8956Pro LCD. Added the NxWM integrated graphics demonstration 8957configuration. 8958 8959* STMicro STM32: 8960 8961- STM32: Added support for STM32F302K8 and STM32F302K6. From Ben Dyer 8962via PX4/David Sidrane. 8963- STM32F205RG: Add basic support for the STM32F205RG. From SourceForge 8964Ticket 40 (anonymous, 2015-05-31). 8965- STM32 F3: Add DBGMCU register definitions for the F3 family. From 8966Greg Meiste. 8967 8968* STMicro STM32 Drivers: 8969 8970- STM32 LCDC: Defined a second interface for the dma2d controller. 8971LTDC only controls the display visibility but the DMA2D controller 8972changes the content of the frame buffer (buffer of the layer). From 8973Marco Krahl. 8974- STM32 PVD: Added support for STM32's Programmable Voltage Detector 8975(PVD) feature. By Dmitry Nikolaev, submitted by Juha Niskanen. 8976 8977* STMicro STM32 Boards: 8978 8979- STM32F429i-Disco: Add support for the new DMA2D features to the LTDC 8980configuration. From Marco Krahl. 8981 8982* TI Tiva Boards: 8983 8984- TM4C1294 Launchpad: Added TM4C1294NCPDT EN0_LED2 (10/100-Base-Tx); 8985removed all booster pack pin definitions. From Frank Sautter. 8986 8987* C Library/Header Files: 8988 8989- libc: Add an option to disable support for long long formats in 8990lib_vsprintf(). On very tiny platforms, this reduces the footprint 8991by omitting large libgcc.a libraries to perform the 64-bit 8992arithmetic operations. From Alan Carvalho de Assis. 8993 8994* Applications: apps/system: 8995 8996- nuttx/zoneinfo: Add logic to build a ROMFS file system 8997containing the timezone data. 8998 8999* Applications: apps/nshlib: 9000 9001- Add poll support for Unix stream sockets. From Jussi Kivilinna. 9002- Enhancements to NSH ifconfig for case of multi-link operation, TUN 9003device and local connections. From Max Neklyudov. 9004- Enhanced output to NSH ping command from Max Neklyudov. 9005- The NSH mount command now recognizes the Union filesystem type when 9006listing mounted file systems. 9007 9008* Applications: apps/netutils: 9009 9010- apps/netutils/thttpd/ and apps/examples/thttpd/: Add support for 9011using binfs/ with the Union FS instead of NXFLAT. NXFLAT is 9012probably the better solution but recently compiler changes make it 9013unusable. binfs or ELF are fallback binary formats. This commit 9014adds an option to use binfs with the Union FS. 9015 9016* Applications: apps/examples: 9017 9018- Modify/simpify apps/examples build files. From Roman Saveljev. 9019- apps/examples/ltdc: Add testing support for the STM32 LTDC's 2D DMA. 9020From Marco Krahl. 9021- apps/examples/ostest: Add a test of nested signals. There are no 9022failures to handle signals but neither am I getting any nested signal 9023handling. 9024- apps/examples/elf: Add configuration options to support building the 9025hello++4 example that depends upon having uClibc++ available. Also 9026add hello++5 to the ELF example From Leo aloe3132. 9027- apps/examples/unionfs: Add a test of the union file system to 9028apps/examples. 9029 9030Efforts In Progress. The following are features that are partially 9031implemented but present in this release. They are not likely to be 9032completed soon. 9033 9034* Processes. Much of the work in this release is focused on the 9035realization of Unix-style user processes in NuttX. There is more to 9036be done, however. The full roadmap and status is available at: 9037https://cwiki.apache.org/confluence/display/NUTTX/Memory+Configurations 9038 9039* XMega: There are some fragments in place for an XMega port. That 9040port has not really started, however. 9041 9042Bugfixes. Only the most critical bugfixes are listed here (see the 9043ChangeLog for the complete list of bugfixes and for additional, more 9044detailed bugfix information): 9045 9046* Core OS: 9047 9048- boardctl(): Add missing case causing that caused failures of PWM 9049test. 9050- pthread_kill(): Re-implemented pthread_kill(). It was just a simple 9051wrapper around kill() but since the correct dispatching of signals 9052for multi-threaded task groups has been implemented, calling kill() 9053does not do what pthread_kill() is supposed to do. The corrected 9054implementation of pthread_kill() will direct the signal specifically 9055to the specific pthread and no other. 9056- uint32_t callbacks: Update the type passed to watchdog timer 9057handlers. Using uint32_t is a problem for 64-bit machines because 9058it is too small to pass a pointer. uintptr_t is a more appropriate 9059type. 9060- mq_timedreceive(): move the location where the errno value is set; 9061the ETIMEDOUT errno setting was being overwritten by subsequent 9062actions before returning. Noted by Freddie Chopin. 9063- POSIX message queues: Move mq_setattr() and mq_getattr() from 9064nuttx/libc/mqueue to nuttx/sched/mqueue. Also add syscall support 9065for mq_setattr() and mq_getattr(). This is necessary in protected 9066and kernel builds because in those cases the message queue 9067structure is protected and cannot be accessed directly from user 9068mode code. 9069 9070* File Systems/Block Drivers/MTD: 9071 9072- MTD: Increase the size of the fields in the geometry structure 9073(again) to support larger FLASH sizes. Needed by Sebastien Lorquet. 9074 9075* Common Drivers: 9076 9077- poll(): Fix resource leak and memory corruption on poll failure. 9078From Jussi Kivilinna. 9079 9080* USB Host: 9081 9082- LPC31xx and SAMA5Dx EHCI: Fix cache related problem in LPC31 and 9083SAMA5Dx EHCI drivers. All buffers are now aligned with the cache 9084line size in both starting address and in length. This cause major 9085problems in unlucky builds where the USB host buffers where 9086unaligned and abutting other data. The cache flush and invalidate 9087operations could be subverted by accesses to adjacent data or could 9088have unexpected side effects. This bug has been in the ECHI drivers 9089forever, but was only revealed due to unlucky memory allocations 9090during the integration of the hub feature. 9091 9092* USB Device: 9093 9094- All USB device class drivers: There needs to be a check to make 9095sure that the size of a returned string does not exceed the size of 9096the allocated request buffer. Strings such as vendor names or 9097product names will be truncated to fit in the request buffer. 9098 9099* Networking: 9100 9101- TCP: Correct failures in long Telnet sessions by increasing th 9102size of the number of bytes sent from uint16_t to uint32_t. This 9103avoids an integer overflow that causes a long Telnet session to be 9104closed unexpectedly. From Rony XLN. 9105- Network locks: Correct some network lock logic: Two error 9106conditions where the network was not being unlocked and one where it 9107was getting unlocked twice. From Jussi Kivilinna. 9108- Local Sockets: Local stream sockets had problem of double releasing 9109pipes (both server and client attempt release), which causes wrong 9110pipe pair being closed in multi-client case. Solve by adding per 9111connection instance ID to pipe names. From Jussi Kivilinna. 9112- TCP: Fix an important TCP networking bug: 16-bit flags was being 9113converted to 8-bits in a few locations, causing loss of status 9114indications. 9115- TCP: net_startmonitor() always returned OK. In the race case 9116where a socket has already been closed, it correctly handled the 9117disconnection event but still returned OK. Returning OK caused the 9118callers of net_startmonitor() to assume that the connection was 9119okay, undoing the good things that net_startmonitor() did and 9120causing the socket to be incorrectly marked as connected. This 9121behavior was noted by Pelle Windestam. 9122- setsockopt() failed when setting timeouts to values less tha 100 9123msec. That is because the timeout is limited to stops of 1 9124decisecond and because the conversion of structure timeval was 9125truncating the microsecond remainder. The utility 9126net_timeval2dsec() now accepts and option to determine how it 9127handles the remainder: truncate, discarding the remainder, use 9128the remainder to round to the closed decisecond value, or use any 9129non-zero remainder to the next larger whole decisecond value. Bug 9130discovered by Librae. 9131- TCP: In the TCP connection operation, it was trying to setup the 9132network monitor BEFORE the socket was successfully connected. This, 9133of course, has ALWAYS failed because the socket is not yet connected 9134and the TCP state is not yet correct for a connected socket. However, 9135because of other changes net_startmonitor() now returns a failure 9136condition that causes worse problems when trying to connect. The fix 9137is to move the logic that starts the network monitor to AFTER the 9138socket has been successfully connected. 9139 9140* Atmel SAM3/4 Drivers: 9141 9142- SAM4CM and SAMA5D Free-running timer: Logic that samples the free 9143running counter reads the pending interrupt status register and can 9144cause interrupts to be lost. So, if when the status register is 9145read, the logic must also handle the timer overflow event. Found 9146and fixed by Max Neklyudov. 9147 9148* Atmel SAMA5 Drivers: 9149 9150- SAM3/4 Serial: When reconfigured, serial does not receive bytes 9151from UART. This happens because RX interrupt was disabled in the 9152setup routine. Fixed this I save interrupt configuration before 9153UART shutdown and restore it after. From Max Neklyudov. 9154 9155* NXP LPC17xx Drivers: 9156 9157- LPC176x GPIO: Reorder steps when an output GPIO is configured in 9158order to avoid transient bad values from being output. From Hal 9159Glenn. 9160- LPC17 USB OHCI: Correct some initialization of data structures. 9161When hub support is enabled, it would overwrite the end of an array 9162and clobber some OS data structures. 9163- LPC17xx Ethernet: Review, update, and modify the Ethernet driver so 9164that it works better with CONFIG_NET_NOINTS=y. Also, update all 9165LPC17xx networking configurations so that they have 9166CONFIG_NET_NOTINTS=y selected. 9167 9168* SiLabs EMF32 Drivers: 9169 9170- EFM32 SPI: Add missing SPI GPIO pin initialization. From Pierre-noel 9171Bouteville. 9172 9173* STMicro STM32: 9174 9175- STM32 F3: Added missing EXTI definitions for the STM32 F3; Correct 9176an error the port D base address in the STM32 F30x and F37x memory 9177maps. From Greg Meiste. 9178 9179* STMicro STM32 Drivers: 9180 9181- STM23 RTC: Fix an error introduced into stm32_pwr_enablebkp(). 9182That function must preserve the previous state of backup domain 9183access on return. 9184- STM32 RTC counter: Now need to enable backup domain write access 9185when setting the time. From Darcy Gong. 9186- STM32 OTG FS and HS: Added protection in the event that out-of-bound 9187endpoint numbers are received. From David Sidrane. 9188 9189* STMicro STM32 Boards: 9190 9191- STM32F429i Disco: (1) Fix a bad return value if the LCD driver is 9192already initialized. (2) The LCD driver initialization is now 9193performed during the early boot sequence. (3) Increased the size 9194of the message queue from 32 to 64 in the lcd configuration. From 9195Marco Krahl. 9196 9197* TI Tiva 9198 9199- Fixes for Tiva TM4C1294NCPDT. From Frank Sautter. 9200 9201* Atmel SAMV71 Drivers: 9202 9203- SAMV7 TWIHS: Fix SAMV TWIHS logic that performs multi-message 9204transfers with and without repeated starts. 9205 9206* Atmel SAMA5D3/4 Dirvers: 9207 9208- SAMA5 CAN: Fix SAMA5 CAN frame construction. From Max Holtzberg. 9209 9210* C Library/Header Files: 9211 9212- stdlib.h: MAX_RAND should be RAND_MAX. 9213- assert.h: Wrap definitions of assertion macros in do while so that 9214they are valid C statements. Numerous places throughout the code 9215where semicolons were missing at the end of an assertion also had to 9216be fixed. Suggested by orbitalfox. 9217- inetntoa(): Correct errors in printing IP address when type char is 9218signed and the value is >= 128. From Max Neklyudov. 9219 9220* Tools: 9221 9222- Tools: Fix test for the existence of the apps/ directory in 9223configure.c. Fix backward interpretation of options, -l was selecting 9224Windows and -w was selecting Linux. This was SourceForege Ticket #39. 9225 9226* Applications: apps/nshlib: 9227 9228- apps/nshlib/nsh_timcmds.c: Check return values from time functions. 9229- apps/nshlib/: Fix handling of gmtime_r return value in time commands. 9230gmtime_r returns a pointer, not an int. 9231 9232* Applications: apps/netutils: 9233 9234- apps/netutils/ntp: Fix mismatched sched_lock/unlock. Noted by Juha 9235Niskanen. 9236 9237* Applications: apps/examples: 9238 9239- apps/examples/nxlines: Fix missing right bracket that causes 9240compile error when CONFIG_NX_XYINPUT=y. From Librae. 9241- apps/examples: When boardctl() fails, need to print errno not the 9242returned value which will always be -1. 9243- apps/examples: Correct use of the BOARDIOC_GRAPHICS_SETUP boardctl() 9244call. 9245 9246NuttX-7.11 Release Notes 9247------------------------ 9248 9249The 111th release of NuttX, Version 7.11, was made on August 13 2015, 9250and is available for download from the Bitbucket.org website. Note 9251that release consists of two tarballs: nuttx-7.11.tar.gz and 9252apps-7.11.tar.gz. These are available from: 9253 9254https://bitbucket.org/patacongo/nuttx/downloads 9255https://bitbucket.org/nuttx/apps/downloads 9256 9257Both may be needed (see the top-level nuttx/README.txt file for build 9258information). 9259 9260Additional new features and extended functionality: 9261 9262* Core OS: 9263 9264- clock_gettime(): Use up_timer_gettime for CLOCK_MONOTONIC in 9265tickless mode. From Max Neklyudov. 9266- waitpid(): Implement WNOHANG for waitpid() only and for the case of 9267CONFIG_SCHED_HAVE_PARENT not selected. From Max Neklyudov. 9268- SCHED_SPORADIC: Add a sporadic scheduler to NuttX. 9269- Extend the processor-specific interface to include information to 9270support the Sporadic Scheduler. 9271- sem_tickwait(): Added this function for internal use within the OS. 9272It is a non-standard but more efficient version of sem_timedwait() 9273for use in higher performance device drivers. 9274 9275* Binary Loader: 9276 9277* Graphics/Graphic Drivers: 9278 9279- Graphics: Implement anti-aliasing in order to clean the drawing of 9280all edges. Anti-aliasing is supported in the horizontal, raster 9281direction only. 9282- SSD1306 LCD Driver: Modify the SSD1306 LCD driver to support either 9283the SPI or I2C interface. From Alan Carvalho de Assis. 9284 9285* File Systems/Block Drivers/MTD: 9286 9287- mount: Add the ability to mount a file system on top of en existing 9288node in the pseudo-file system. 9289- epoll(): Add a very simple epoll layer just around poll calls. To 9290satisfy build app requirements. From Anton D. Kachalov. 9291 9292* Common Device Drivers: 9293 9294- IOCTL: Add relay IOCTL definitions. From Max Neklyudov. 9295- I/O Expander Framework: Add an I/O expander driver framework. From 9296Sebastien Lorquet 9297- NXP PCA9555 I/O Explander. Add PCA9555 driver.From Sebastien 9298Lorquet 9299- BMP180 Barameter: Add support to Bosch BMP180 barometer. From 9300Alan Carvalho de Assis. 9301- CAN IOCTLs: Add CAN IOCTL command definitions to manage CAN message 9302filtering 9303- CAN Driver: Add configuration to support DLC to byte conversions 9304needed for CAN FD mode. 9305- SPI Slave Interface: Add a definition of an SPI slave interface. 9306- LM92 Temperature Sensor: Add a driver for the LM92 temperature 9307sensor. Contributed by Paul Alexander Patience. 9308- AS5048B Rotary Magnetic Sensor: Add support for an AS5048B rotary 9309magnetic sensor. From Paul Alexander Patience. 9310- Ramtron Driver: Update to include supportf for newer RAMTRON parts. 9311From David Sidrane. 9312- MB7040 Sonar Driver: Add support for a MB7040 sonar driver. From 9313Paul Alexander Patience. 9314- ms5805 Altimeter Driver: Add support for an MS5805 altimeter. From 9315Paul Alexander Patience. 9316 9317* Networking: 9318 9319- DNS Client: Implement the low-level network DNS packet protocol to 9320request and receive IPv6 address mappings. 9321- NetDB: Add support for a DNS host name resolution cache. This can 9322save a lot of DNS name server lookups (but might also have the 9323negative consequence of using stale IP address mappings. 9324- NetDB: Name resolution logic now supports lookups from a file like 9325/etc/hosts. 9326- Network Initialization: Add CONFIG_NETDEV_LATEINIT that can be 9327used to suppress calls to up_netinitialize() from early in 9328initialization. 9329- FTMAC100 Ethernet MAC Driver. Add support for Faraday FTMCA100 9330Ethernet MAC/ From Anton D. Kachalov. 9331- UDP Networking: Add support for send() for connected UDP sockets. 9332 9333* Crypto: 9334 9335- Add CFB and MAC AES modes. From Max Neklyudov. 9336 9337* Simulation Platform: 9338 9339- Simulation: Implement board_power_off() for the simulation platform. 9340This allows for a graceful exit from the simulation. 9341 9342* MoxaRT: 9343 9344- MoxaRT SoC: Add support for MoxaRT SoC found in the most Moxa serial 9345converters such as NP51x0, NP66xx, UC72xx. From Anton D. Kachalov. 9346 9347* MoxaRT Boards: 9348 9349- Moxa NP51x0: Moxa NP51x0 series of 2-port advanced RS-232/422/485 9350serial device servers. From Anton D. Kachalov. 9351 9352* ARMv6-M: 9353 9354- ARMv6-M Assertions: Port some per-process stack dumping logic from 9355ARMv7-M to ARMv6-M. From Alan Carvalho de Assis. 9356 9357* Atmel SAMD/L Boards: 9358 9359- SAML21: DMA: Add SAML21 DMA support. 9360- SAMD21: Add architecture support for the SAMD21 family. 9361- SAMD21-Xplained: Board configuration for the SAMD21 Xplained board. 9362 9363* Atmel SAM3/4 Drivers: 9364 9365- SAM4E: Add default loop optimization if EEFC_FMR is available in the 9366configuration (i.e., for SAM4S and 4E). From Marco Aurélio da Cruz. 9367- crypto/ and SAM4CM: Add CFB and MAC AES modes. From Max Neklyudov. 9368- SAM3/4: Add a TWI driver for the SAM4CM. From Max Neklyudov. 9369 9370* Freescale (NXP) Kinetis: 9371 9372- Kinetis: Add support for MK20DN--VLH5 and MK20DX---VLH5. Needed 9373for backward compatible support for Teensy-3.0. 9374 9375* Freescale (NXP) Kinetis Boards: 9376 9377- Teensy 3.x: Add board support for the PJRC Teensy-3.0 and 9378Teensy-3.1 boards. 9379 9380* Atmel SAMV7 Drivers: 9381 9382- SAMV7: Add an MCAN driver for the SAMV7 platform. 9383- SAMV7 SPI Slave Driver: Add the an SPI slave driver. 9384 9385* STMicro STM32: 9386 9387- STMicro STM32 F7: Add architecture support for the STMicro STM32 9388F7. 9389- STM32 F446: Add support for the STMicro STM32 F446. From David 9390Sidrane. 9391 9392* STMicro STM32 Drivers: 9393 9394- STM32 F7: Add an STM32 F7 Ethernet driver. 9395- STM32 F7: Port the STM32 F4 DMA driver. 9396- STM32 F4 ADC: Add DMA support to the ADC driver for STM32 F4. From 9397Max Kriegler. 9398 9399* STMicro STM32 Boards: 9400 9401- STM32F762G-Disco: Add support for the STMicro STM32 F7 Discovery 9402board. 9403- STM32F4-Disco: Add support to BMP180 driver on the STM32F4 Discovery. 9404From Alan Carvalho de Assis. 9405 9406* C Library/Header Files: 9407 9408- Add asctime(), asctime_r(), ctime(), and ctime_r(). 9409- sethostname(): Add support for sethostname(). 9410- gethostbyname() and gethostbyaddr(): Add support for 9411gethostbyname() and gethostbyaddr(). Also support included for the 9412non-standard gethostbyname_r() and gethostbyaddr_r(). This moves 9413the DNS client logic from apps/ into the NuttX libc implementation. 9414 9415* Tools: 9416 9417- testbuild.sh: Add a script that can be used to perform building 9418testing for several board configurations. 9419 9420* Build/Configuration System: 9421 9422- apps/ Build System: No longer depends on hardcoded lists of 9423directories. Instead, it does a wildcard search to find all 9424appropriate directories. This means that to install a new 9425application, you simply have to copy the directory (or link it) into 9426the apps/ directory. If the new directory includes a Makefile and 9427Make.defs file, then it will automatically be included in the build. 9428- mkkonfig.sh: Add the tool mkkconfig.sh that dynamically builds the 9429apps/Kconfig file at configuration time. The hardcoded 9430configuration file has been removed and now the top-level Makefile 9431executes tools/mkkconfig.sh to auto-generate the top-level Kconfig 9432file. A new apps/ make target call preconfig: was added to support 9433this operation. Now you do not have to modify the top-level Kconfig 9434file to add a new directory into the configuration; the top-level 9435subdirectory simply needs to include a Kconfig file and it will 9436automatically be included in the configuration. The native Windows 9437build is temporarily broken until a new apps/tools/mkconfig.bat 9438script is generated. 9439- mkkconfig.bat: Add the Windows script corresponding to 9440apps/tools/mkkconfig.sh. Needed for a Windows native build. 9441 9442* Applications: apps/nshlib: 9443 9444- NSH shutdown command: NSH will now support an (optional) shutdown 9445command if the board provides the option CONFIG_BOARDCTL_POWEROFF. 9446The command can also be used to reset the system if 9447CONFIG_BOARDCTL_RESET=y. 9448- NSH uname command: Add support for a uname command. 9449- NSH nslookup command: Add an nslookup command. 9450 9451* Applications: apps/system: 9452 9453- NetDB: Add a system command to access the network database. 9454- readline(): Add support for Unix-style tab complete to readline. 9455Contributed by Nghia Ho. 9456- readline(): Extended the tab-completion support to also expand NSH 9457command names. 9458- readline(): Add support for an in-memory command line history that 9459can be retrieved using the up and down arrows. Contributed by Nghia 9460Ho. 9461 9462* Applications: apps/netutils: 9463 9464- DNS client: Moved the DNS client logic into the NuttX C library. 9465It is a necessary part for the full implementation of the netdb logic 9466and provides more flexibility in that location. 9467- Replace calls to the non-standard dns_gethotip() with calls to 9468standard gethostbyname(). 9469- NetLib: Create netlib wrapper functions around dns_getserver() and 9470dns_setserver() to isolate application code from changes to those 9471interfaces. 9472 9473* Applications: apps/examples: 9474 9475- OS test: Extend the OS test to include a test of 9476pthread_mutex_trylock() for recursive mutexes. From Juha Niskanen. 9477- OS test: Add a test for the sporadic scheduler. 9478 9479Bugfixes. Only the most critical bugfixes are listed here (see the 9480ChangeLog for the complete list of bugfixes and for additional, more 9481detailed bugfix information): 9482 9483* Core OS: 9484 9485- pthreads: Use -1 instead of 0 as PID for unclaimed mutexes. From 9486Juha Niskanen. 9487- pthreads: Implement pthread_mutex_trylock() for recursive mutexes. 9488From Juha Niskanen. 9489- pthread_create(): Group binding needs to be cleared before 9490sched_releasetcb(), as otherwise group_leave() will be called and 9491group->tg_nmembers decremented or group being released. group_leave() 9492should be called only after group_join() is called, not after 9493group_bind(). From Jussi Kivilinna. 9494- Protected Mode User Memory Allocator: Redesigned how the user space 9495heap is accessed from the kernel code in protected mode. It used to 9496call memory management functions in user space via function pointers 9497in the userspace interface. That is inefficient because the first 9498thing that those memory management functions do is to trap back into 9499the kernel to get the current PID. Worse, that operation can be 9500fatal is certain fragile situations such as when a task is exiting. 9501The solution is to remove all of the memory management function 9502calls from the interface. Instead, the interface exports the users 9503pace heap structure and then kernel size implementations of those 9504memory management functions will operate on the userspace heap 9505structure. This avoids the unnecessary system calls and, more 9506importantly, failures do to freeing memory when a test exits. 9507- pthread_create(): Fix an (unlikely) error in fallback value in the 9508event of a failure (which should never occur). 9509 9510* Common Drivers: 9511 9512- STMPE811 Driver: In stmpe811_instanciate() when 9513CONFIG_STMPE811_MULTIPLE is enabled, and the call to 9514stmpe811_checkid() fails, then the linked device list is not 9515restored to its previous state. From Sebastien Lorquet. 9516- CAN driver: Fix an issue in the CAN driver where the rx_sem count 9517can grow beyond bounds. 9518 9519* File System/Block Drivers: 9520 9521- NFS client: Fix prototype of unbind method. The function prototype 9522was not updated for NFS after a recent change to the file system 9523interface. From Manuel St??. 9524 9525* Networking/Network Drivers: 9526 9527- netconfig.h: Fix some backward compilation that was emitting #error 9528in the wrong condition when SLIP was enabled. 9529- SLIP Driver: Fix a missed name change when many of network 9530interface names changed sometime back but were apparently never 9531updated for SLIP. 9532- Networking: Allow receipt of empty UDP packets. From Max Neklyudov. 9533 9534* ARMv6-M: 9535 9536- ARMv6-M: Fix Cortex-M0 assembly error when the interrupt stack is 9537enabled. From Alan Carvalho de Assis. 9538 9539* Atmel SAMD/L Drivers: 9540 9541- SAMD20, D21, L21: In the SAML21, SERCOM5 uses a different SLOW clock 9542channel (and, hence, also a different SLOW GCLK generator). This 9543means that the channel selection cannot be a global definition but 9544must be a per SERCOM configuration setting. 9545- SAMD/L: Several fixes to register definitions and types. From 9546Janne Rosberg. 9547 9548* Atmel SAM3/4 Drivers: 9549 9550- SAM3/4 UART: Back out an error introduced with commit 955102c33f66c5a8be774034cd40e4125e9323c7b4d8. Causes an infinite loop in 9552up_lowputc(). From Max Neklyudov. 9553- SAM4CM: Fix SUPC register definitions. From Max Neklyudov. 9554- SAM3/4 WDT: Correct some problems with SAM3/4 watchdog driver. 9555Includes some small improvements. From Max Neklyudov. 9556 9557* Atmel SAMV7 Drivers: 9558 9559- SAMV7 UART: Also back the bad cloned change o sam_lowputc.c for 9560SAMV7 platform. 9561 9562* NXP LPC43xx Drivers: 9563 9564- LPC4350: Correct some LPC4350 GPIO pin configurations. From 9565Alessandro Temil. 9566 9567* SiLabs EMF32 Drivers: 9568 9569- EFM32 SPI: Correct write to incorrect register in EFM32 SPI driver. 9570From Pierre-noel Bouteville. 9571 9572* STMicro STM32 Drivers: 9573 9574- STM32 F15x: STM322 F15x stm32_stdclockconfig() was calling 9575stm32_pw_setvos() which accessed PWR_CR via an inactive APB From 9576Juha Niskaneni. 9577- STM32 Ethernet: Extend STM32 Ethernet operating frequency to 180MHz. 9578From Sebastien Lorquet. 9579 9580* STMicro STM32 Boards: 9581 9582- SAMV7 Xplained: In clock configuration, divider was set to 25 to get 958325*12MHz=300MHz CPU clock. The correct multiplier is 24 because the 9584calculation if (24+1)*12MHz. So the board was running at 312MHz. 9585From Efim Monjak. 9586 9587* ARMv7-A: 9588 9589- Cortex-A5 vfork(): Fix a Cortex-A compilation error when system 9590calls are enabled in modes other than CONFIG_BUILD_KERNEL. 9591 9592* Atmel SAMA5 Drivers: 9593 9594- SAMA5Dx EHCI: Fix some bad conditional compilation that left a 9595function undefined if CONFIG_USBHOST_ASYNCH is not selected. 9596 9597* C Library/Header Files: 9598 9599- getopt(): Uninitialized variable can cause hardfault from getopt() 9600if required argument is missing. From George McWilliams. 9601 9602* Applications: apps/nshlib: 9603 9604- NSH/THHPD: Change decoding to handle the increased size of the 9605scheduling policy field in the TCB. 9606 9607* Applications: apps/netutils: 9608 9609- THTTPD: Fix compilation problems when 9610CONFIG_THTTPD_GENERATE_INDICES is defined. 9611- THTTPD: Missing gci-src as a dependency path when building with 9612BINFS enabled. 9613 9614* Applications: apps/examples: 9615 9616- poll() example: Fix a few bit-rot compilation errors. 9617- Nx Lines example: If CONFIG_NX_ANTIALIASING=y, then the nxlines 9618example now erases a line that is 2 pixels longer and 2 pixels wider 9619than the line it drew. That eliminates edges effects due to 9620applying the anti-aliasing algorithm twice. A better solution 9621would be to make anti-aliasing an option for each graphics call so 9622you would rend the line with anti-aliasing ON and clear it with 9623anti-aliasing OFF. but I don't have the wherewithal for that change 9624today. 9625- OS test: Improve synchronization in round robin tests. On very fast 9626processors, there are race conditions that make the test fail. 9627Need better interlocking to assure that the threads actually do start 9628at the same time. 9629 9630NuttX-7.12 Release Notes 9631------------------------ 9632 9633The 112th release of NuttX, Version 7.12, was made on October 1, 2015, 9634and is available for download from the Bitbucket.org website. Note 9635that release consists of two tarballs: nuttx-7.12.tar.gz and 9636apps-7.12.tar.gz. These are available from: 9637 9638https://bitbucket.org/patacongo/nuttx/downloads 9639https://bitbucket.org/nuttx/apps/downloads 9640 9641Both may be needed (see the top-level nuttx/README.txt file for build 9642information). 9643 9644Additional new features and extended functionality: 9645 9646* Graphics/Graphic Drivers: 9647 9648- Added SSD1351 OLED controller support. Contributed by Paul 9649Alexander Patience. 9650 9651* Common Device Drivers: 9652 9653- MS58xx: Generalize the MS5805 altimeter driver to support other 9654family members. From Paul Alexander Patience. 9655- CAN driver interface: Add an error indication bit to the CAN 9656message report. 9657- Developed a new interface for QSPI. Most QSPI hardware (such as the 9658SAMV71) used a programmed interface to access the QuadSPI FLASH. 9659That programmed interface is no compatible with the simpler NuttX 9660SPI data transfer interface. 9661- Added a driver for ST25L1*K QuadSPI parts. 9662- Renamed the battery driver interface to battery_gauge since it 9663really only implements a battery fuel gauge. From Alan Carvalho de 9664Assis. 9665- Added a new framework to support a batter charger interface. From 9666Alan Carvalho de Assis. 9667- Added a BQ24250 battery charger driver. From Alan Carvalho de Assis. 9668 9669* Networking: 9670 9671- Added support for the local loopback device (dev lo, hostname localhost). 9672- Added NetDB support for the local loopback device. 9673- Network initialization: Automatically initialize all the TUN and 9674loopback devices if they arein the configuration. 9675 9676* Simulation Platform: 9677 9678- The simulation now runs under Cygwin64. Modern Cygwin X86_64 9679machines follow the Microsoft ABI for parameter passing. The Linux 9680System 5 ABI would not work on X86_64-based Cygwin machines. Newer 9681Cygwin tool chains do nor pre-pend symbol names with the underscore 9682character. 9683 9684* Atmel SAMA5Dx: 9685 9686- Added architectural support for the Atmel SAMA5D2 parts. Not fully 9687verified in this NuttX release. 9688 9689* Atmel SAMA5Dx Boards: 9690 9691- Added support for the Atmel SAMA45D2 Xplained Ultra board. Not 9692fully verified in this NuttX release. 9693 9694* Atmel SAMV7 Drivers: 9695 9696- SAMV7 USBHS DCD: The device controller driver is (finally) 9697functional. 9698 9699* NXP LPC17xx: 9700 9701- Implement options to use external SDRAM and or SRAM for the heap. 9702From Pavel Pisa. 9703 9704* NXP LPC43x: 9705 9706- Added architectural support for the LPC4370. From Lok Tep. 9707 9708* NXP LPC43xx Drivers: 9709 9710- Added Ethernet support. From Ilya Averyanov. 9711- Added LPC43xx EHCI driver from Ilya Averyanov. 9712 9713* NXP LPC43xx Drivers: 9714 9715- Added support for the NXP LPC4370-Link2 development board from Lok 9716Tep. 9717 9718* STMicro STM32: 9719 9720- Added architectural for STM32F303K6, STM32F303K8, STM32F303C6, 9721STM32F303C8, STM32F303RD, and STM32F303RE devices. From Paul 9722Alexander Patience. 9723 9724* STMicro STM32 Drivers: 9725 9726- Added OTG support for STM32F44x. From David Sidrane. 9727 9728* STMicro STM32 Boards: 9729 9730- Added support for the STMicro Nucleo F303ERE board from Paul 9731Alexander Patience. 9732 9733* C Library/Header Files: 9734 9735- stdlib: Add support for div() to the C library. From OrbitalFox. 9736Also added ldiv() and lldiv() which are equivalent to div() with 9737long and long long types, respectively, instead of int. 9738- Added an implementation of the standard shutdown function. 9739 9740* Tools: 9741 9742- tools/mksymtab: declare g_symtab array as const to occupy RO section 9743(Flash). From Pavel Pisa. 9744 9745* Build/Configuration System: 9746 9747- Simplify configs/ Makefiles by combining common logic into a new 9748Board.mk Makefile fragment. From Paul Alexander Patience. 9749 9750* Applications: apps/system: 9751 9752- apps/system/symtab: Optional canned symtab inclusion to the build. 9753When option CONFIG_SYSTEM_SYMTAB is selected and symbol table file 9754libc/symtab/canned_symtab.inc is prepared then application can use 9755system provided complete symbol table. The option has substantial 9756effect on system image size. Mainly code/text. If loading of 9757applications at runtime is not planned do not select this. From 9758Pavel Pisa. 9759 9760* Applications: apps/canutils: 9761 9762- apps/canutils/uavcan: Add support for libuavcan. From Paul Alexander Patience. 9763 9764* Applications: apps/examples: 9765 9766- apps/examples/can: Extend the CAN loopback test by adding more 9767command line options. 9768- apps/examples/usbserial: Can now be run as an NSH builtin-function. 9769Now uses a configurable IO buffer size. 9770- apps/examples/nettest: Add option to suppress network initialization. 9771This is necessary if the nettest is run from NSH which has already 9772initialized the network. 9773- apps/examples/nettest: Extend test so that can be performed using 9774the local loopback device. 9775- apps/examples/netloop: Add a test of the local loopback device. 9776- apps/examples/udpblaster: Add a test to stress the network by 9777sending UDP packets at a very high rate. . 9778- apps/examples/uavcan: libuavcan example from Paul Alexander Patience. 9779 9780Bugfixes. Only the most critical bugfixes are listed here (see the 9781ChangeLog for the complete list of bugfixes and for additional, more 9782detailed bugfix information): 9783 9784* Core OS: 9785 9786- wd_create(): Correct a counting error in the number of available 9787watchdog timers. When the number of free timers is low, the counter 9788could be incremented below zero. 9789- mq_open(): When message queue is opened, inode_reserve() leaves the 9790reference count at zero. mq_open() logic must assure that the 9791reference count of the newly created inode is one. 9792- work_queue(): Logic that sets the queued indication and the logic 9793that does the actual queuing must be atomic. 9794 9795* Binary Loader: 9796 9797- Fix a memory leak in the built-in application logic: File was not 9798being closed. From Bruno Herrera. 9799 9800* File System/Block Drivers: 9801 9802- poll(): If we fail to setup the poll for any file descriptor, for 9803any reason, set the POLLERR bit. 9804- rwbuffer: Fix some logic errors. From Dmitry Nikolaev via Juha 9805Niskanen. 9806- ROMFS: One allocation was not being freed if there was a subsequent 9807failure to allocation I/O buffers resulting in a memory leak on 9808certain error conditions. From Bruno Herrera. 9809 9810* Networking/Network Drivers: 9811 9812- Fix a bug in tun interface driver. From Max Neklyudov. 9813- recvfrom(): Correct wait for new data when NET_UDP_READAHEAD is 9814enabled. Fix size accounting when recvfrom_udpreadahead() sets 9815state.rf_recvlen == -1. I have not checked if data are accumulated 9816to the right position in the buffer however. From Pavel Pisa. 9817- networking: Correct return value from psock_tcp_accept(). From 9818SaeHie Park. 9819- TCP: Fix a problem in when there are multiple network devices. 9820Polls were being sent to all TCP sockets before. This is not good 9821because it means that packets may sometimes be sent out on the wrong 9822device. That is inefficient because it will cause retransmissions 9823and bad performance. But, worse, when one of the devices is not 9824Ethernet, it will have a different MSS and, as a result, incorrect 9825data transfers can cause crashes. The fix is to lock into a single 9826device once the MSS is locked locked down. 9827- net/tcp: The logic that binds a specific network device to a 9828connection was faulty for the case of multiple network devices. On 9829bind(), the local address should be used to associate a device with 9830the connection (if the local address is not INADDR_ANY); On connect(), 9831the remote address should be used (in case the local address is 9832INADDR_ANY). On accept(), it does not matter but the remote address 9833is the one guaranteed to be available. 9834- net/tcp: Fix unbuffered send compilation error when Ethernet is not 9835enabled. From Alan Cavalho de Assis. 9836 9837* ARMv7-M: 9838 9839- All ARMV7-M IRQ setup: Always set the NVIC vector table address 9840unconditionally. This is needed in cases where the code is running 9841with a bootload and when the code is running from RAM. It is also 9842needed by the logic of up_ramvec_initialize() which gets the vector 9843base address from the NVIC. Suggested by Pavel Pisa. 9844- Fix some H/W floating point logic: In the original implementation, 9845!defined(CONFIG_ARMV7M_CMNVECTOR) was a sufficient test to determine 9846if lazy floating point register saving was being used. But recents 9847changes added common lazy register as well so now that test must be 9848(!defined(CONFIG_ARMV7M_CMNVECTOR) || defined(CONFIG_ARMV7M_LAZYFPU)). 9849- ARMv7-M, all "lazy" interrupt stack logic. Assembly instruction 9850that fetches the saved value is incorrect; replace with more 9851traditional push and pop. This is an important fix. Noted by 9852Stefan Kolb. 9853- All ARMV7-M: Force 8-byte stack alignment when calling from assembly 9854to C to interrupt handling. 9855- up_schedulesigaction(): Fix logic that determines if there is a 9856pending signal action before scheduling the next signal action. 9857Both the test and the scheduling action need to be atomic. This 9858problem was fixed on the ARMv7-M but also ported to other 9859architectures that had the same issue. 9860 9861* NXP LPC43xx: 9862 9863- LPC43xx: Fix NVIC_SYSH_PRIORITY_STEP define. From Ilya Averyanov. 9864- LPC43xx: Fix missing #define in eeprom. From Ilya Averyanov. 9865 9866* NXP LPC43xx Drivers: 9867 9868- Fixed the SPI driver. From Ilya Averyanov. 9869 9870* Atmel SAMA5 Drivers: 9871 9872- LPC31 and SAMA5D EHCI: Fix qh_ioccheck to move bp to next QH. From 9873Ilya Averyanov. 9874- LPC31 and SAMA5D EHCI: Performance improvement: Do not disable the 9875asynchronous queue when adding a new QH structure. From Ilya 9876Averyanov. 9877 9878* C Library/Header Files: 9879 9880- gethostbyname(): correct returned address format when DNS is used. 9881The hostent.h_addr_list should point to raw in_addr or in6_addr 9882as defined in the standard. Original implementation used that for 9883numeric addresses but for DNS lookup returned pointer to whole 9884sockaddr_in or sockaddr_in6. From Pavel Pisa . 9885- asin(): The function did not convert for some input values. asing() 9886did not convert for values which do not belong to the domain of the 9887function. But aside of that the function also did not converge for 9888allowed values. I achieved a conversion of the function by 9889reducing the DBL_EPSION and by checking if the input value is in 9890the domain of the function. This is a fix for the problem but the 9891function should always terminate after a given number of iterations. 9892From Stefan Kolb. 9893- Change all references from avsprintf to vasprintf. From Sebastien 9894Lorquet. 9895 9896* Applications: apps/nshlib: 9897 9898- Fix error handling in 'cat' command. On a failure to allocate 9899memory, a file was not being closed. From Bruno Herrera. 9900- Fix error handling in 'mv' command. On a failure to expand the 9901second path, the memory allocated for the expansion of the first 9902path was not being freed. From Bruno Herrera. 9903 9904* Applications: apps/system: 9905 9906- apps/system/netdb: Failed to build if CONFIG_NET_HOSTFILE was not 9907defined because gethostbyaddr() was not available. Noted by 9908OrbitalFox. 9909 9910* Applications: apps/netutils: 9911 9912- Various Kconfig files in netutils: Fix some changes from from 9913NETUTILS_DNSCLIENT to NETDB_DNSCLIENT. From Pavel Pisa. 9914 9915* Applications: apps/modbus: 9916 9917- Macros PR_BEGIN_EXTERN_C and PR_END_EXTERN_C were not defined in 9918all contexts. Replace with explicit expansion in all cases. From Stefan Kolb. 9919 9920NuttX-7.13 Release Notes 9921------------------------ 9922 9923The 113th release of NuttX, Version 7.13, was made on December 5, 2015, 9924and is available for download from the Bitbucket.org website. Note 9925that release consists of two tarballs: nuttx-7.13.tar.gz and 9926apps-7.13.tar.gz. These are available from: 9927 9928https://bitbucket.org/patacongo/nuttx/downloads 9929https://bitbucket.org/nuttx/apps/downloads 9930 9931Both may be needed (see the top-level nuttx/README.txt file for build 9932information). 9933 9934Additional new features and extended functionality: 9935 9936* Core OS: 9937 9938- External RTC: Added OS support for external RTC chips. 9939- boardctl(): Add a command to the boardctl() interface to obtain a 9940board unique ID. 9941 9942* File Systems: 9943 9944- TMPFS: Add support for a new TMPFS, RAM file system. The TMPFS 9945file system does not require any significant amount of memory 9946itself. It will grow dynamically as files are added and shrink back 9947when files are deleted. A very low overhead way to retain temporary 9948files. 9949- VFS: The VFS was extended to support standard file operations on 9950block drivers (open, close, read, write, etc.). The open() interface 9951accomplishes this by creating a temporary character driver to mediate 9952the character oriented accesses to the block driver. 9953- HOSTFS: Added a HOSTFS file system for use with the simulator. The 9954HOSTFS file system mounts in the simulated NuttX context by provides 9955proxied access to the file system on the host PC. This is useful for 9956providing file system content and nonvolatile storage of files in the 9957simulation environment. From Ken Pettit. 9958- MTD/PROCFS: Add an interface to un-register an MTD procfs entry. 9959From Ken Pettit. 9960- filemtd: A new MTD conversion layer that will convert a regular file 9961(or driver file) to an MTD device. This is useful for testing on the 9962simulation using the HOSTFS. From Ken Pettit. 9963- PROCFS: Extended to include networking entries in the procfs. Device 9964status, device statistics, and network statistics are now available 9965from the PROCFS. 9966- PROCFS: The PROCFS file system can now be configured so that it 9967supports runtime registration of PROCFS entries with 9968CONFIG_FS_PROCFS_REGISTER=y. 9969 9970* Graphics/Graphic Drivers: 9971 9972- ST7565 Driver: Extend to include support for the ERC12864-3. From 9973Pierre-noel Bouteville. 9974 9975* Common Device Drivers: 9976 9977- User buttons: Added a character driver to support application access 9978to board buttons. Supports notification of button activity via 9979signals. 9980- User LEDs: Added a character driver to support application access 9981to on-board LEDs. 9982- Zero Cross: Added a Zero Cross device driver support. From Alan 9983Carvalho de Assis. 9984- MAX6675: Added support to Thermocouple-to-Digital converter MAX6675. 9985From Alan Carvalho de Assis. 9986- BCH: Block-to-character (BCH) driver should forward ioctl() calls 9987to the contained block driver. 9988- S25FL1xx: Added a S25FL1xx QuadSPI FLASH driver. 9989- On-Chip FLASH: Added an upper half MTD device that can use the 9990interfaces defined in included/nuttx/progmem.h to provide a 9991standard MTD driver. 9992- Serial: Implemented high level DMA infrastructure for serial 9993devices. From Max Neklyudov. 9994- AT24XX: Add support for multiple AT24xx EEPROM parts, each with 9995unique I2C addresses, but otherwise identical. 9996- External RTC: Added drivers for external I2C RTC chips: DS3102, 9997DS1307, DS3231, DS3232, and NXP PCF85263. 9998- W25: Added support for byte write mode to the W25 FLASH driver. From 9999Ken Pettit. 10000- dev/loop: Added a loop character device. losetup() and loteardown() 10001should not be called directory from applications. Rather, these 10002functions are now available as IOCTL commands to the loop driver. 10003- dev/smart: Added support for a /dev/smart loop device. From Ken 10004Pettit. 10005 10006* Networking: 10007 10008- Driver Statistics: Most network drivers do not support statistics. 10009Those that do only supported them when DEBUG is enabled. Each 10010driver collected an architecture specific set of statistics and 10011there was no common mechanism to view those statistics. Thus, 10012the driver feature was mostly useless. This release standardizes 10013the driver statistics and puts the definition in the common network 10014device structure defined in netdev.h where they can be accessed by 10015network applications. All Ethernet drivers that collect statistics 10016have been adapted to use these common statistics. 10017 10018* Simulation Platform: 10019 10020- W25 FLASH: Added support for W25 FLASH simulation. From Ken Pettit. 10021- HOSTFS: Added support for the HOSTFS file system (see "File Systems", 10022above). 10023 10024* Atmel SAMV7: 10025 10026- SAME70: Added support for the SAME70 family of chips. 10027- Tickless: SAMV7 now supports the tickless mode of operation. 10028 10029* Atmel SAMV7 Drivers: 10030 10031- MPU: Added MPU and protected build support. 10032- QSPI: Added a QuadSPI FLASH driver. This driver operates in the 10033memory-mapped, Serial Memory Mode (SMM). 10034- FLASH: Added support to write on-chip FLASH. 10035- Timer/Counter: TC driver ported to SAMV7 from the SAMA5. Free-running 10036and one-short timer logic also ported. 10037- PCK: Brought programmable clock (PCK) logic from SAMA5 into SAMV7. 10038- Timer/Counter: Support PCK6 as an optional source for the timer/ 10039counter clock. 10040 10041* Atmel SAMV7 Boards: 10042 10043- SAME70-Xplained: Add NSH and networking configurations for the 10044SAME70 Xplained board. Includes verified support for serial console, 10045LEDs, buttons, SDRAM, HSMCI SD card, and networking. 10046- SAMV7-XULT and SAME70-Xplained: If Tickless mode is selected then 10047enable PCK6 as a timer/counter clock source 10048 10049* STMicro STM32: 10050 10051- CCM PROCFS: Is no longer a part of the 'base' procfs entries and can 10052now only be supported via run time registration with 10053CONFIG_FS_PROCFS_REGISTER=y. 10054 10055* STMicro STM32 Drivers: 10056 10057- Timers: Add a compatible lower-half timer driver for use with the 10058common timer upper-half driver. From Wail Khemir. 10059 10060* STMicro STM32 Boards: 10061 10062- STM32F4-Discovery: Add low level support for the Zero Cross driver 10063for the STM32F4-Discovery. From Alan Carvalho de Assis. 10064- STM32F4-Discovery: Add board config to support for the MAX6675. From 10065Alan Carvalho de Assis. 10066 10067* C Library/Header Files: 10068 10069- bsearch(): Added the bsearch() function from NetBSD. 10070- freopen(): Added support for freopen(). 10071- strftime(): Added day-of-week support (when available). 10072 10073* Tools: 10074 10075- nxstyle: Add crappy style checking tool nxstyle.c. See thee tools/ 10076README file for more info. 10077 10078* Applications: NSH 10079 10080- mksmartfs command: Add configuration option to supported multiple 10081rootdirectories. From Ken Pettit. 10082- Add support for 'basename' and 'dirname' commands. 10083- set command: Like bash, NSH set command now strips off any leading 10084or trailing whitespace. 10085- mount command: The mount commands now accepts mount options 10086(currently needed only for the hostfs file system). From Ken 10087Pettit. 10088- losetup command: NSH no longer calls losetup() and loteardown 10089directly. Now it opens /dev/loop and accomplishes these things 10090using ioctl() calls. 10091- ifconfig command: If CONFIG_NETDEV_STATISTICS=y, then print the 10092network driver statistics in the ifconfig. 10093- ifconfig, ifup, and ifdown: These commands now uses /proc/net/<dev> 10094to view network device configuration and status and /proc/net/stat 10095to show network statistics. A consequence of this is that you 10096cannot view this network information if the procfs is not enabled 10097and mounted at /proc. 10098- losmart command: Added a new NSH losmart command. losmart setups 10099up a loop device for the smart MTD driver similar to losetup but 10100with different syntax. From Ken Pettit. 10101- ps command: The 'ps' command now uses /proc/<pid>/ to obtain task 10102status information. A consequence of this is that you cannot use 10103the 'ps' command if the procfs is not enabled and mounted at /proc. 10104 10105* Applications: apps/system: 10106 10107- apps/system/hexed: Port the hexed command line hexadeciamal editor 10108to NuttX. See http://apps.venomdev.net/hexed/. 10109 10110* Applications: apps/fsutils: 10111 10112- apps/fsutils/smartfs: Move into apps/fsutils from kernel, now uses 10113only open and ioctl. From Ken Pettit. 10114 10115* Applications: apps/examples: 10116 10117- apps/examples/fstest: Add a generic file system test. This is 10118essentially the same as examples/smart, but has all of the SmartFS 10119specific logic ripped out. This was created for testing the new 10120TMPFS. 10121- apps/examples/zerocross: Add a Zero Cross application example. From 10122Alan Carvalho de Assis. 10123- apps/examples/media: Add a simple test for access of media via a 10124block driver or MTD driver. 10125 10126Bugfixes. Only the most critical bugfixes are listed here (see the 10127ChangeLog for the complete list of bugfixes and for additional, more 10128detailed bugfix information): 10129 10130* Core OS: 10131 10132- Fixed an error in clock_timespec_subtract(). Found by Lok. 10133- pthreads: CRITICAL BUGFIX: Logic was wiping out the indication that 10134of the type of a pthread. Hence, it could be confused as a task. 10135Found because this was causing a crash when /proc/nnn/cmdline was 10136printed. 10137 10138* File System/Block Drivers: 10139 10140- SMART MTD: Fix some Smart wear-leveling bugs. Fixed SmartFS wear 10141level error that occurs when the logical sector size is too small to 10142save all wear level status bytes in a single sector. Logical 10143sectors 1 and 2 were simply not being allocated and then the 10144read_sector and write_sector routines were failing. From Ken 10145Pettit. 10146 10147* Graphics/Graphic Drivers: 10148 10149- ILI9432: Fixed errors in orientation. Portrait, RPortrait, and 10150Landscript should work correly now. They were displayed mirrored. 10151From Marco Krahl. 10152 10153* Common Drivers: 10154 10155- CAN: Fix a problem in the CAN upper-half driver that occurs only 10156for CAN hardware that support a H/W FIFO of outgoing CAN messages. 10157In this case, there can be a hang condition if both the H/W and 10158S/W FIFOs are both full. In that case, there may be no event to 10159awaken the upper half driver. Add a new (conditional) CAN upper 10160half interface called can_txready() that can be used by the lower 10161half driver to avoid this hang condition. 10162- MS58xx: Fix some issues with initialization and with CRC 10163calculation. From Karim Keddam. 10164- W25: Fixed W25 FLASH driver page read/write logic. From Ken Pettit. 10165 10166* Atmel SAMV7 Drivers: 10167 10168- USART1 pin configuration: Reconfigure System I/O when using USART1. 10169From Frank Benkert. 10170- MCAN: Added a call to can_txready() to the MCAN driver. 10171 10172* STMicro STM32 Drivers: 10173 10174- stm32 F4: Fix some TIM12 pin mappings. From Max Kriegleder. 10175 10176* STMicro STM32 Boards: 10177 10178- STM32F429i-Disco: Calculated partition boundaries based on page 10179block sizes but mtd_partition() is expecting calculations based on 10180erase block size. From Alan Carvalho de Assis. 10181 10182* C Library/Header Files: 10183 10184- sys/types.h: When building on a 64-bit machine, the size of size_t 10185should be 64-bits. In general, I believe that sizeof(size_t) should 10186be the same as sizeof(uinptr_t). mmsize_t should always be 32-bits 10187in any event. The last change to stddef has been backed out. With 10188these changes, the simulator builds without errors or warnings an a 1018964-bit machine. 10190 10191* Applications: apps/nshlib: 10192 10193- The I/O buffer, g_iobuffer, should not be a global buffer. That 10194will not work in an environment where there are multiple NSH 10195sessions. The I/O buffer must, instead, be a part part of the 10196session-specific data defined in nsh_console.h. 10197 10198NuttX-7.14 Release Notes 10199------------------------ 10200 10201The 114th release of NuttX, Version 7.14, was made on January 28, 2016, 10202and is available for download from the Bitbucket.org website. Note 10203that release consists of two tarballs: nuttx-7.14.tar.gz and 10204apps-7.14.tar.gz. These are available from: 10205 10206https://bitbucket.org/patacongo/nuttx/downloads 10207https://bitbucket.org/nuttx/apps/downloads 10208 10209Both may be needed (see the top-level nuttx/README.txt file for build 10210information). 10211 10212Additional new features and extended functionality: 10213 10214* Core OS: 10215 10216- modules: Add support for kernel modules: insmod, rmmod, support 10217functions. procfs support for user lsmod functioniality. 10218- SIGEV_THREAD: Add support for the SIGEV_THREAD notification method 10219in struct sigevent. This initial implementation will only work in 10220the FLAT build since it utilizes the work queue for signal 10221callbacks. See the top-level TODO file for additional details. 10222- 64-Bit Timer: If the 64-bit timer is selected, then use it whenever 10223clock_systimer() is called rather then chopping the 64-bit timer 10224down to 32-bits. Add a new type, systime_t to represent the 32- or 1022564-bit system timer. This eliminates clock_systimer32() and 10226clock_systime64(); there is now only clock_systimer(). 10227 10228* Common Device Drivers: 10229 10230- Telnet Driver: Move the Telnet driver from apps/ to 10231nuttx/drivers/net. It is a driver a belongs in the OS. Now works 10232like the loop device: A new interface called telnet_initialize() 10233registers a telnet session "factory" device at /dev/telnet. Via 10234ioctl, the factory device can create instances of the telnet 10235character devices at /dev/telnetN to support Telnet sessions. 10236- PCA9635PW: Add a driver for the PCA9635PW I2C LED driver IC which 10237can be used to control the intensity of up to 16 LEDs. From 10238Alexander Entinger. 10239- MCP9844: Driver for the MCP9844 I2C digital temperature sensor with 10240a selectable resolution. From Alexander Entinger. 10241- PN532: Add driver for the NXP PN532 NFC-chip. From Janne Rosberg 10242and others at Offcode Ltd. 10243- LSM9DS1: Add driver for the STMicro LSM9DS1 chip. The LSM9DS1 is a 10244system-in-package featuring a 3D digital linear acceleration sensor, 10245a 3D digital angular rate sensor, and a 3D digital magnetic sensor. 10246From Paul Alexander Patience. 10247- CAN Interface: Add more extensive error reporting capaibility to 10248the CAN interface definitions. From Frank Benkert. 10249- SPI Interface: Add an optional hwfeatures() method to the SPI 10250interface. 10251 10252* Simulation Platform: 10253 10254- NSH configuration uses the custom start up scriptwith a read-only 10255passwd file. Includes hooks for an MOTD message. 10256 10257* ARMv7-R 10258 10259- ARMv7-R: Add basic architecture support for the ARMv7-R processor 10260family. 10261 10262* Atmel AVR: 10263 10264- Atmega2560: Add support for the Atmega2560. From Dimitry Kloper. 10265- debug.h: Add an AVR-specific header file used when the AVR MEMX 10266pointer is used. From Dimitri Kloper. 10267 10268* Atmel AVR Boards: 10269 10270- Arduino-Mega2560: Add support for the Arduino-Mega2560. From 10271Dimitry Koper. 10272 10273* Atmel SAMV7 Drivers: 10274 10275- Port the TRNG driver from the SAMA5D3/4 to the SAMV7. 10276- Port the WDT driver from the SAMA5D3/4 to the SAMV7. 10277- Add an RSWDT driver. 10278 10279* Atmel SAMV7 Boards: 10280 10281- SAMV71-XULT: Add configuration for testing OS modules. 10282 10283* Freescale Kinetis: 10284 10285- MK60N512VLL100: Add support for the MK60N512VLL100 Kinetis part. 10286From Andrew Webster. 10287 10288* Freescale Kinetis Boards: 10289 10290- ENET: Numerous updates to the Kinetis ENET driver. That driver is 10291now functional. From Andrew Webster. 10292 10293* NXP LPC43xx Boards: 10294 10295- WaveShare LPC4337-WS: Support for the WaveShare LPC4337-WS board. 10296From Lok Tep. 10297 10298* STMicro STM32 Drivers: 10299 10300- Timer Capture: Add timer input capture driver. From Pierre-Noel 10301Bouteville. 10302 10303* STMicro STM32 Boards: 10304 10305- Olimex STM32 H407: Added a port to the Olimex STM32 H407 board. 10306This board features the STMicro STM32F407ZGT6 (144 pins). 10307Contributed by Neil Hancock. 10308 10309* TI TMS550 Boards: 10310 10311- TI LaunchXL-TMS57004: Add basic board support for TI LaunchXL- 10312TMS57004. Still a work in progress. 10313 10314* C Library/Header Files: 10315 10316- sys/time.h: Add timeradd(), timersub(), timerclear(), timerisset(), 10317and timercmp() as macros. These are non-POSIX interfaces, but 10318included in most BSD deriviatives, including Linux. From Manuel St??. 10319- AVR support: Introduce support for Atmel toolchain in-flash strings. 10320Atmel toolchain AVR compiler provides a transparent in-flash object 10321support using __flash and __memx symbols. The former indicates to 10322compiler that this is a flash-based object. The later used with 10323pointer indicates that the referenced object may reside either in 10324flash or in RAM. The compiler automatically makes 32-bit pointer 10325with flag indicating whether referenced object is in flash or RAM 10326and generates code to access either in run-time. Thus, any function 10327hat accepts __memx object can transparently work with RAM and flash 10328objects. 10329For platforms with a Harvard architecture and a very small RAM like 10330AVR this allows to move all constant strings used in trace messages 10331to flash in the instruction address space, releasing resources for 10332other things. This change introduces IOBJ and IPTR type qualifiers. 10333The 'I' indicates that the object may lie in instruction space on a 10334Harvard architecture machine. For platforms that do not have __flash 10335and __memx or similar symbols IOBJ and IPTR are empty, making the 10336types equivalent to, for example, 'const char' and 'const char*'. 10337For Atmel compiler these will become 'const __flash char' and 10338'const __memx char*'. All printf() functions and syslog() functions 10339are changed so that the qualifier is used with the format parameter. 10340From Dimitry Kloper. 10341- debug.h: Add configuration to support an architecture-specific 10342debug.h header file. From Dimitri Kloper. 10343- netdb: Add support for the use of a DNS resolver file like 10344/etc/resolv.conf. 10345- TEA: Add an implementation of the Tiny Encryption Algorithm. 10346- math32.h: Add some utilities to support 64-bit arithmetic 10347operations for platforms that do not support long long types. 10348 10349* Tools: 10350 10351- tools/cnvwindeps.c: Add a tool that will convert paths in 10352dependencies generated by a Windows compiler so that they can be 10353used with the Cygwin make. 10354- tools/mkwindeps.sh: A script that coordinates use of cnvwindeps.exe. 10355Dependencies now work on the Cygwin platform when using a Windows 10356ative toolchain. 10357 10358* Applications: NSH 10359 10360- Module Commands: Add module commands: insmod, rmmod, and lsmod. 10361- Time Command: Add a 'time' command that may be used to time the 10362execution of other commands. 10363- Password Commands: Add useradd, userdel, and passwd commands. 10364- MOTD: Now supports a Message of the Day (MOTD) that will be 10365presented after the NSH greeting. 10366- Session Logins: All sessions may be protected with logins using the 10367encrypted password in /etc/passwd. 10368- Extended Logins. Added optional platform-specific function to 10369perform password verification and optional delay after each failed 10370login attempt. 10371 10372* Applications: apps/fsutils: 10373 10374- apps/fsutils/passwd: Utility library for accessing a password file 10375like /etc/passwd. 10376 10377* Applications: apps/netutils: 10378 10379- apps/netutils/telnetd: Now creates Telnet sessions by opening a new 10380factory device at /dev/telnet and then using ioctl calls to create 10381the session character drivers at /dev/telnetN. 10382- apps/netutils/netlib: Add netlib_get_dripv4addr() and 10383netlib_get_ipv4netmask(). From Pelle Windestam. 10384 10385* Applications: apps/examples: 10386 10387- apps/examples/module: Add a test harness for verifying NuttX kernel 10388modules. 10389- apps/examples/pca9635: Add a simple test of PCA9635PW PWM LED driver. 10390From Alan Carvalho de Assis. 10391- apps/examples/ostest: Add a test of POSIX timers using SIGEV_THREAD. 10392 10393Bugfixes. Only the most critical bugfixes are listed here (see the 10394ChangeLog for the complete list of bugfixes and for additional, more 10395detailed bugfix information): 10396 10397* Core OS: 10398 10399- pthreads: CRITICAL BUGFIX: Logic was wiping out the indication that 10400of the type of a pthread. Hence, it could be confused as a task. 10401- waitpid: CRITICAL BUGFIX. Add a reference count to prevent waitpid 10402from using stale memory released by the waited-for task group. 10403- clock_systimespec(): Fix an error in a time conversion. 10404 10405* File System/Block Drivers: 10406 10407- poll(): Fix handling of sem_tickwait() return value sem_tickwait() 10408does not return an -1+errno, it returns a negated errno value. 10409Noted by Freddie Chopin. 10410 10411* Common Drivers: 10412 10413- TUN Driver: Fix a compile time error in the TUN driver. From 10414Vladimir Komendantskiy. 10415- USB Host HID Parser: Wrong size used in memcpy(). From Hang Xu. 10416- PCA9555: Fixed a bug in the function pca9555_setbit which occurs if 10417someone tries to set one of the pins 8-15. The problem is that 10418after the check if the pin is greater than 7 the variable addr is 10419incremented and used in the Call I2C_WRITEREAD. But later in the 10420call to the I2C_WRITE buf[0] is used as address but this address is 10421not incremented as it should be. Note address does mean the address 10422to the register in the ioexpander and not the I2C address. From 10423Stefan Kolb. 10424 10425* Networking: 10426 10427- TCP/IOB: Numerous fixes, mostly relate to TCP and IOB buffering 10428and race conditions. These were necessary for for the NuttX 10429networking later to be stable in some stress testing. From Andrew 10430Webster. 10431 10432* Atmel SAMV7 Drivers: 10433 10434- USBHS Device: In USBHS device driver, fix check if zero length 10435packet is needed. 10436 10437* STMicro STM32 Drivers: 10438 10439- OTG FS Host: Fix some backward arguments to stm32_putreg(). Note 10440by Hang Xu. 10441 10442* Tools: 10443 10444- tools/mkdeps.c: Extended/fixed support for --winpath option. 10445Dependencies now work under Cygwin with a native Windows toolchain. 10446 10447* Build System: 10448 10449- apps/platform/Makefile: Use a relative path to the board directory 10450link rather than the absolute path. For Cygwin, the absolute would 10451would need converted with cygpath. But just using the relative path 10452is a simpler solution. 10453 10454NuttX-7.15 Release Notes 10455------------------------ 10456 10457The 115th release of NuttX, Version 7.15, was made on March 27, 2016, 10458and is available for download from the Bitbucket.org website. Note 10459that release consists of two tarballs: nuttx-7.15.tar.gz and 10460apps-7.15.tar.gz. These are available from: 10461 10462https://bitbucket.org/patacongo/nuttx/downloads 10463https://bitbucket.org/nuttx/apps/downloads 10464 10465Both may be needed (see the top-level nuttx/README.txt file for build 10466information). 10467 10468Additional new features and extended functionality: 10469 10470* Core OS: 10471 10472- Add a state variable that provides the current level of OS 10473initialization. This is needed by some logic that may attempt to 10474run early in the start-up sequence but cannot run if a sufficient 10475level of initialization has not yet occurred. 10476- Spinlocks: Add interface definitions for to support spinlocks as 10477needed for multi-CPU configurations. 10478- SMP support. Support for Symmetric Multi-Processing (SMP) added. 10479This affects many internal data structures, spinlock extensions 10480and renaming of interrupt enable/disable interfaces, new platform 10481interfaces to support CPU initialization and inter-actions, and 10482new application interfaces to manage CPU affinity. The changes 10483are too extensive to summarize here; see the SMP Wiki page at 10484https://cwiki.apache.org/confluence/display/NUTTX/SMP. The 10485new platform interfaces are also described in the NuttX porting 10486guide: https://nuttx.apache.org/docs/latest/quickstart/organization.html. 10487Only partially verified; awaiting hardware for the complete 10488verification. 10489- TLS: Basic definitions needed to support thread local storage 10490(TLS). TLS is not used anywhere yet (and may not be used in the 10491near future either). 10492- Performance Monitoring: Add a configuration option to buffer 10493RTOS instrumentation data in an in-memory buffer. 10494- boardctl(): Add boardctl() support that will permit applications 10495to control USB devices. 10496 10497* File Systems/Block Drivers: 10498 10499- procfs: Add /proc/kmm entry that shows that state of the kernel 10500heap. Only useful in PROTECTED and KERNEL build modes where there 10501is a kernel heap. 10502- procfs: Add support for showing CPU in the taste status if SMP is 10503enabled. 10504 10505* Networking: 10506 10507- ARP: Add support for IOCTL commands to manage the ARP table. 10508- IEEE 802.15.4 and 6LowPAN: There are some radio drivers and a 10509directory structure is in place. However, most of this 10510development is occurring on a fork and is not yet available in the 10511NuttX repositories. Hopefully in NuttX-7.16. 10512 10513* Common Device Drivers: 10514 10515- ADS1242: Driver for the 24-Bit Differential Input ADC ADS1242 that 10516communicates via SPI with a MCU. Reading the ADC conversion result 10517as well as configuring the ADC, setting the input channel, etc. is 10518implemented via ioctl calls. However, it does not yet implement 10519the standard ADC interface. From Alexander Entinger. 10520- U-Blox Modem: Add an upper half driver for the U-Blox Modem. From 10521Vladimir Komendantskiy. 10522- I2C: Add an I2C, "upper half", character drivers to support raw I2C 10523data transfers for test applications. 10524- RGB LED: Add a driver to manage a RGB LED via PWM. From Alan 10525Carvalho de Assis. 10526- Performance Monitoring: Add a character driver that will allow an 10527application to read buffered scheduler instrumentation data. 10528 10529* Simulation Platform: 10530 10531- SMP: Add multi-CPU support to the simulation to support SMP 10532investigation. There are issues with the simulation and it is less 10533than perfect but sufficient for some very preliminary testing of 10534the core SMP feature. 10535 10536* ARMv7-A, ARMv7-R, and ARMv7-M: 10537 10538- ARMv7-A, ARMv7-R, and ARMv7-M: Add test-and-set logic and 10539definitions needed to supports spinlocks. 10540- ARMv7-A: Added MPCOre Generic Interrupt Controller (GICv2) and 10541Global Timer support 10542- ARMv7-A: Now includes in MCU-specific hooks needed for SMP support. 10543 10544* Atmel SAMV7 Drivers: 10545 10546- HSMSI: HSMCI driver can now be configured to handle unaligned data 10547buffers. 10548 10549* NXP Freescale LPC11xx/17xx/43xx and LPC2378 Drivers: 10550 10551- I2C: Backported the LPC43XX I2C driver, replacing the LPC11XX, 10552LPC17XX, and LPC2378 I2C drivers. This gives us the I2C_TRANSFER 10553method in all I2C drivers. 10554 10555* NXP Freescale LPC17xx Boards: 10556 10557- Support for the u-blox GSM and GPS module evaluation board with 10558NXP LPCExpresso LPC1768. The GSM module is one of LISA-C200, 10559LISA-U200 or SARA-G350. The GPS module is one of MAX-M7 or 10560MAX-M8. From Vladimir Komendantskiy. 10561 10562* NXP Freescale i.MX6: 10563 10564- Basic support is in place for the i.MX6 Quad/Dual MCUs. 10565Verification is, however, waiting for the receipt of hardware. 10566 10567* NXP Freescale i.MX6 Boards: 10568 10569- Sabre-6Quad: Basic support for the NXP/Freescale Sabre 6Quad 10570board is in place but waiting for hardware for verification. 10571 10572* STMicro STM32: 10573 10574- STM32F46xx: Support for STM32F46xx from Paul Alexander Patience 10575- STM32L4: Add support for the STM32L4 family. From Sebastien 10576Lorquet. 10577 10578* STMicro STM32 Boards: 10579 10580- STM32F4 Discovery: Add PWM support for the onboard RGB LED. From 10581Alan Carvalho de Assis. 10582- Nucleo-L476: Add support for the Nucleo-L476 board. From Sebastien 10583Lorquet. 10584- STM32L476VG Discovery: Add support for the STM32L476VG Discovery 10585board. From Dave. 10586 10587* Tools: 10588 10589- tools/refresh.sh now has a --silent option so that it can be used in 10590batch modes without human input. 10591 10592* Build System: 10593 10594- Added a 'make olddefconfig' target that will refresh a .config file 10595without interaction. 10596 10597* Applications: NSH 10598 10599- 'arp': Add an 'arp' command that will support access to the OS ARP 10600table. 10601- 'ps': The 'ps' command will show CPU if SMP is enabled. 10602 10603* Applications: apps/netutils: 10604 10605- apps/netutils/chat: Chat logic contributed by Vladimir 10606Komendantskiy. 10607- apps/netutils/netlib: Add utility functions to support accesses to 10608the ARP table. 10609 10610* Applications: apps/examples: 10611 10612- apps/examples/chat: Chat example contributed by Vladimir 10613Komendantskiy. 10614- apps/system/ubloxmodem: Example to control the power 10615state of the modem in nsh. From Vladimir Komendantskiy. 10616- apps/examples/leds: An example to demonstrate use of LED driver. 10617- apps/examples/smp: Add a test to verify SMP configurations. 10618- apps/examples/rgbled: Example using the RGB LED driver to drive an 10619RGB LED via PWM. From Alan Carvalho de Assis. 10620- apps/examples/ostest: Add a test of TLS. 10621- apps/examples/sched_note: Add a simple example to exercise the 10622scheduler instrumentation logic. 10623 10624Bugfixes. Only the most critical bugfixes are listed here (see the 10625ChangeLog for the complete list of bugfixes and for additional, more 10626detailed bugfix information): 10627 10628* Core OS: 10629 10630- Signals: Move the list of signal actions from the TCB to the group 10631structure. Signal handlers are not per thread but, rather, per task 10632group. I know, I preferred it the other way too, but this is more 10633compliant with POSIX. 10634- Semaphores: Add an internal, non-standard interface to reset a 10635semaphore count. This is sometimes needed by drivers in order to 10636recover from error conditions. Were previously using sem_init() 10637which is both inappropriate and incorrect if the semaphore count is 10638negative. 10639- Low-Priority Work Queue: Fix logic to find an IDLE worker thread; 10640the test for busy was backward. From Linfei Chen. 10641 10642* File System/Block Drivers: 10643 10644- FAT: Add an option to force all transfers to be performed 10645indirectly using the FAT file system's internal sector buffers. 10646This is a fix for the case where the user provided buffers are not 10647properly aligned for DMA (as with THTTPD). 10648- MTD: Increase block size in mtd_geometry_s to 32-bits. 10649 10650* Common Drivers: 10651 10652- I2C: Restructured the I2C interface as necessary to eliminate some 10653thread-safety issues inherent in the legacy I2C interface design. 10654This effects the interface definition, all I2C clients, and all low- 10655level I2C drivers. I have used caution, but I still expect a change 10656of this magnitude to introduce some errors. Any bug reports of bug 10657fixes will be much appreciated. 10658- I2C_RESET: Eliminate up_i2creset(). It should not be a global 10659function; Now it is an I2C interface method. 10660- PCA555: Add logic to make the PCA555 driver thread safe. 10661- syslog: If syslog timestamping is enabled, don't try to get the time 10662if the timer hardware has not yet been initialized. 10663- AT24xx driver: Correct missing address calculation logic. From Frank 10664Benkert. 10665 10666* Networking: 10667 10668- Networking drivers that support CONFIG_NET_NOINTS: Fix a race 10669condition that can cause the TX poll timer to stop running. From 10670Manuel Stuhn. 10671- Timer Poll: Fix some logic when there are multiple network 10672interfaces. In this case, TCP timeout events can really only being 10673processed when the poll from the correct device is received. 10674 10675* Atmel SAMV7 Drivers: 10676 10677- SAMV7 USB HS device: The USB driver has had some issue that would 10678occasionally cause loss of packets. Back last December, a fix was 10679put in for this but the fix apparently worsens the problem; now 10680causing hangs. The basic problem is that the number of busy banks 10681(NBUSYBKS) status is not real time but is delayed. This was fixed; 10682now when the DMA completes and NBUSYBKS > 0, the NBUSYBK is 10683interrupt is enabled and the operations are deferred until NBUSYBKS 10684is truly zero. 10685 10686* Tools: 10687 10688- tools/testbuild.sh: .config files were not being updated because 10689(a) kconfig-conf was being called in the wrong directory and (b) 10690apps/Kconfig had not yet been created. Now uses 'make 10691olddefconfig'. 10692 10693* Applications: apps/system: 10694 10695- apps/system/i2c: The I2C tool now obeys it OS interfacing: it now 10696uses an I2C character driver to access the I2C bus. 10697- apps/system/cdcacm, usbmsc, and composite: Use new boardctl() 10698instead of calling directly in the OS when possible. 10699 10700* Applications: apps/netutils: 10701 10702- apps/netutils/dhcpd: DHCPD no longer calls directly into the OS but 10703uses the new network IOCTL commands to modify the ARP table. 10704 10705* Applications: apps/modbus: 10706 10707- apps/modbus/nuttx/portserial.c: Was not returning an error on 10708failure to open the device driver. From Olololshka kokoko. 10709 10710* Applications: apps/examples: 10711 10712- apps/examples/usbserial, composite, usbterm: Use new boardctl() 10713instead of calling directly in the OS when possible. There are 10714still a few bad OS calls for USB device interfaces that do not yet 10715have boardctl() commands. 10716 10717* Applications: apps/platform: 10718 10719- Moved C++ initialization logic out of the RTOS and into the 10720application space, specifically to apps/platform/board, where it 10721belongs. 10722 10723NuttX-7.16 Release Notes 10724------------------------ 10725 10726The 116th release of NuttX, Version 7.16, was made on June 1, 2016, 10727and is available for download from the Bitbucket.org website. Note 10728that release consists of two tarballs: nuttx-7.16.tar.gz and 10729apps-7.16.tar.gz. These are available from: 10730 10731https://bitbucket.org/nuttx/nuttx/downloads 10732https://bitbucket.org/nuttx/apps/downloads 10733 10734Both may be needed (see the top-level nuttx/README.txt file for build 10735information). 10736 10737Additional new features and extended functionality: 10738 10739* Core OS: 10740 10741- Power Management: Add activity domain to all PM interfaces and 10742driver callbacks. If CONFIG_PM_NDOMAINS == 1, then the legacy 10743behavior is preserved. If CONFIG_PM_NDOMAINS > 1, then multiple 10744PM domains are supported. This will allow separate control for 10745certain power management groups. For example, a network can be 10746shut down without affect an ongoing UI (and vice versa). 10747- board_app_initialize(): board_app_initialize() now accepts an 10748argument that may be used to support initialization in different 10749configurations. 10750 10751* File System and Block and MTD Drivers: 10752 10753- N25Qxxx: Add MTD support for Micron N25Qxxx family of QSPI flash. 10754From Dave (ziggurat29). 10755- SST26F: Add an MTD driver for SST26F spi/qspi flash devices (SPI 10756mode only). From Sebastien Lorquet. 10757- File Descriptor Detach: Add logic to detach a file structure from a 10758file descriptor. This is for use only within the OS. It permits an 10759open file or driver to be used across multiple threads. 10760 10761* Networking and Network Drivers: 10762 10763- listen()/accept(): Separate out psock_listen() and psock_accepti() 10764for internal, thread independent OS usage (i.e., without a socket 10765descriptor). 10766- VNC Server: Add support for a VNC server. This logic is code 10767complete and functional, but not well tested. 10768 10769* Graphics and Graphic Drivers: 10770 10771- Framebuffer driver: Add a display number to each interface in order 10772to support multiple display devices. 10773- VNC Server: Add support for a VNC server. This logic is code 10774complete and functional, but not well tested. 10775- LCD Backpack: Add support for PCF8574 LCD Backpack driver. This 10776driver supports an interface board that is based on the PCF8574 I/O 10777expander and supports the HD44780-based (or compatible) LCD modules. 10778There are a myriad of different vendors of such, but they are 10779principally the same, save wiring and minor features like jumpers 10780for I2C addresses. This driver supports known and unknown variants. 10781From Dave (ziggurat29). 10782 10783* Common Device Drivers: 10784 10785- RTC: Simplify the RTC interface. The old interface was way too 10786complex and was not fully implemented anywhere. 10787- BH1750FVI: Add a character driver for Rohm Ambient Light Sensor 10788BH1750FVI. From Alan Carvalho de Assis. 10789- CAN: Improve CAN error reporting. From Frank Benkert. 10790- aes.h: Modifications to the crypto API needed for LPC43xx. From 10791Alexander Vasiljev. 10792- ADC: Interface no longer uses global adc_receive() call. Added a 10793new bind() method to the ADC interface. Now the ADC upper half 10794driver will register its receipt-of-data callback. This change 10795allows the ADC lower half driver to be used with a differ ADC upper 10796half. 10797 10798* Simulation Platform: 10799 10800- Linux Host Networking: Enhance networking support for the 10801simulation under Linux. Includes updated support for Linux TUN/TAP, 10802and the addition of support for Linux bridge devices. From Steve. 10803 10804* ARMv7-A, ARMv7-R, and ARMv7-M: 10805 10806- ARMv7-M: Convert more assembly language files for use with the IAR 10807toolchain. From Kha Vo. 10808- ARMv7-A: Complete re-design of SMP-related logic to initialize each 10809CPUn, n > 0, when CONFIG_SMP=y. 10810 10811* Atmel SAMV7: 10812 10813- Add a JTAG config and ERASE config to Kconfig to set the 10814CCFG_SYSIO SYSIO Pins. From David Sidrane. 10815- System Reset: Add the up_systemreset interface to the samv7 arch. The 10816approach is slightly different in that: 1) It enables ARCH_HAVE_RESET 10817and allows the user to set if, and for how long, to drive External 10818nRST signal. It also does not contain a default board_reset, as that 10819really should be done in the config's src if CONFIG_BOARDCTL_RESET 10820is defined. From David Sidrane. 10821 10822* Atmel SAMV7 Boards: 10823 10824- SAMV71-XULT: Add configuration(s) that were be used to verify VNC 10825graphics output as well as mouse and keyboard input. 10826 10827* NXP Freescale i.MX6 Boards: 10828 10829- Sabre-6Quad: The basic i.MX6 port is complete. This is a minimal 10830port at present and probably still has some as-of-yet-undiscovered 10831issues. 10832- Sabre-6Quad: Basic SMP NSH configuration is now working. But this 10833is probably only because the SMP test case does not stress the 10834logic. There are know outstanding SMP issues as noted in the 10835Sabre-6Quad README.txt file. 10836 10837* NXP Freescale LPC43xx: 10838 10839- LPC4337jet100: Add definitions for the LPC4337jet100 chip. From 10840Alexander Vasiljev. 10841 10842* NXP Freescale LPC43xx Drivers: 10843 10844- AES: Add AES support. From Alexander Vasiljev. 10845 10846* STMicro STM32: 10847 10848- STM32 L4: Add configuration options to allow SRAM2 to be used for 10849heap, or not at all, and to zero-initialize it on OS start, or not 10850at all. From Dave dev@ziggurat29.com. 10851- STM32 L4: Add support for HSE and MSI clocks, and auto trim of MSI 10852to LSE (needed for USB). From Dave (ziggurat29) 10853- STM32 L4: Add support for unique id function to arch; modified board 10854to support unique id boardctl. From Dave (ziggurat29) 10855 10856* STMicro STM32 Drivers: 10857 10858- STM32 F4 RTC: Add a custom RTC driver with support for alarms. From 10859Neil Hancock. 10860- STM32 L4 QSPI: Add a QSPI driver with DMA support and (optional 10861memory mapped mode support. From Dave ziggurat29). 10862- STM32, STM32 L4, and STM32 F7 Serial: Add support for compliant 10863SD-style breaks. From David Sidrane. 10864- STM32 L4 CAN: Add CAN support for STM32L4. From Sebastien Lorquet. 10865- STM32 1-Wire: Add support for a custom 1-wire driver. The serial 10866driver already supports a 1-wire interface, but this driver uses the 10867same serial logic to implement a lower half driver much like the 10868I2C lower half driver. From Aleksandr Vyhovanec. 10869- STM32 L4 SPI: Add support for SPI 4 and 5 on stm32f411 chips. From 10870Konstantin Berezenko. 10871- STM32 ADC: Allow omitting use of channels in a lower part of PWM. 10872From Pierre-noel Bouteville. 10873- STM32 L4 I2C: Get I2C working for STM32L4. From Dave (ziggurat29). 10874 10875* STMicro STM32 Boards: 10876 10877- STM3220G-EVAL: Add support for both the IAR and uVision GCC IDEs. 10878From Kha Vo. 10879- STM32F429I Discovery: Add support for the uVision GCC IDE. From 10880Kha Vo. 10881- STM32F4 Discovery: Integrate BH1750FVI driver in the STM32F4 Discovery 10882board. From Alan Carvalho de Assis. 10883- STM32L476VG Discovery: Add support for QSPI based N25Qxxx flash. 10884From Dave (ziggurat29) 10885- STM32L476VG Discovery: Add board ioctls for allowing user application 10886to cause QSPI memory mapped mode to be engaged and disengaged. Also 10887partitioned QSPI flash for file system and other (eventually xip). 10888From Dave (ziggurat29) 10889- Nucleo-144: Basic port for the Nucleo-144 board with the STM32F746ZG 10890MCU. From Kconstantin Berezenko. 10891- STM32F103 Minimum: Add support for this minimual STM32F103CBT6 "blue" 10892board. From Alan Carvalho de Assis. 10893- STM32F411E Discovery: Add basic configuration for stm32f411e-disco 10894board with STM32F411VE chip. From Konstantin Berezenko. 10895 10896* Build/Configuration System: 10897 10898- Moved NuttX repository to https://bitbucket.org/nuttx/nuttx. 10899Eliminated use of sub-modules. 10900- Add support for the IAR toolchain for the limited case of the ARMv7-M 10901architecture and the STM32 chip. From Aleksandr Vyhovanec. 10902- make export: Pass top-level make to the script to allow -j greater 10903than 1. From David Sidrane. 10904- fs/Kconfig: Allow CONFIG_FS_WRITABLE to be manually selectable. This 10905is needed when there are no writable file systems, but write support 10906is still needed in BCH or FTL. 10907- arch/*/Makefile: Add definitions that can be overrided to use GCC 10908instead of LD in the final link. From Paul Alexander Patience . 10909 10910* Applications: apps/netutils: 10911 10912- apps/netutils/esp8266: ESP8266 driver application. From Pierre-noel 10913Bouteville. 10914 10915* Applications: apps/examples: 10916 10917- apps/examples/alarm: Add a simple test of the ALARM iotcl calls of 10918the RTC driver. 10919- apps/examples/nximage: Add a configuration option to select 10920greyscale. 10921 10922* Platforms: apps/platform: 10923 10924- apps/platform/nucleo-144: Add platform files for NUCLEO-144 10925(NUCLEO-F746ZG). From Mark Olsson. 10926- apps/examples/media: You can now override the default device driver 10927path by providing an alternal path on the command line. From 10928Sébastien Lorquet. 10929 10930Works-In-Progress: 10931 10932* IEEE802.14.5/6LowPAN. Hooks and framework for this effort were 10933introduced in NuttX-7.15. Work has continued on this effort on 10934forks from the main repositories, albeit with many interruptions. 10935The completion of this wireless feature will postponed until at 10936least NuttX-7.17. 10937 10938* i.MX6 SMP. Partially functional, but there is more that still 10939needs to be done. 10940 10941Bugfixes. Only the most critical bugfixes are listed here (see the 10942ChangeLog for the complete list of bugfixes and for additional, more 10943detailed bugfix information): 10944 10945* Core OS: 10946 10947- Various places: Search for places where a stray semicolon following 10948an if condition cause the if body to be executed unconditionally. 10949Fixes in all SAM DMA logic, unionfs, OS signalling logic, and others. 10950- enter/leave_critical_section() may attempt to access task lists 10951before they have been initialized in the SMP configuration. 10952 10953* File System/Block Drivers: 10954 10955- SMART MTD: Return code of smart_scan not checked, can cause success 10956result in failure case, leading to 'dev' pointer being invalid. From 10957Dave (ziggurat29) 10958- mount: Fix a backward debug assertion. Noted by David Sidrane. 10959 10960* Common Drivers: 10961 10962- NRF24L01: Fix backward calculation of relative frequency. Noted by 10963Henry Zhang. 10964- PCA9555 I/O expander: Fix an error in the PCA9555 driver: Under 10965certain error conditions, interrupts were not being re-enabled. 10966Sebastien Lorquet. 10967- ADS1255: Must not do SPI access from interrupt handler. Use the 10968worker thread instead. Must also lock the SPI bus before using it. 10969- Several SPI-based drivers modified. All drivers that use SPI must 10970call SPI_LOCK and SPI_UNLOCK. This is not optional. 10971- MS583730: Fix a bug in crc computation for ms583730. Implement 10972POSIX read. 10973 10974* Atmel SAMV7: 10975 10976- Fix typo in MATRIX register definitions. From Stefan Kolb. 10977- SAMV7 Tickless Mode: This is a fix to a problem in the handling of 10978the oneshot timer. Due to a wrong assumption concerning the behavior 10979directly after the start of the timer/counter the function 10980sam_oneshot_cancel calculates the wrong remaining time. The code 10981assumes that the counter register is zero directly after the start 10982of the timer, but this is not true. To start the time/counter a 10983software trigger is invoked, this trigger starts the timer/count and 10984sets the counter register to zero, but the reset of the counter 10985register is not performed instantly. According to the datasheet: 10986"The counter can be reset by a trigger. In this case, the counter 10987value passes to zero on the next valid edge of the selected clock." 10988Thus the counter is set to zero between 0 and USEC_PER_TICK 10989microseconds after the clock was started. 10990In my fix I use the freerun count value to determine if at least one 10991tick passed since the start of the timer and thus if the value of 10992the oneshot counter is correct. I also tried to use the function 10993up_timer_gettime to achieve this but, at least if compiled with 10994no optimization the problem vanishes without using the value of the 10995function, the function call takes too long. 10996Another problem treated in the fix is that if the oneshot timer/counter 10997is canceled, we only know the remaining time with a precision of 10998USEC_PER_TICK microseconds. This means the calculated remaining time 10999is between 0 and USEC_PER_TICK microseconds too long. To fix this I 11000subtract one tick if the calculated remaining time is greater than 11001one tick and otherwise set the remaining time to zero. By doing so 11002the measured times are much more precise as without it. From Stefan 11003Kolb. 11004 11005* Atmel SAMA5: 11006 11007- SAMA5: Stefan Kolb's change to the SAMV7 Oneshot Timer should also 11008be applied to the SAMA5 oneshot time since the drivers are identical. 11009 11010* Atmel SAM3/4: 11011 11012- SAM3/4: Stefan Kolb's change to the SAMV7 Oneshot Timer should also 11013be applied to the SAM3/4 oneshot time since the drivers are identical. 11014 11015* Atmel SAMV7 Drivers: 11016 11017- SAMV7 TWIHS (as well as SAM3/4 and SAMA5: Ensure that the TWIHS 11018(i2c) hw gets its clock set when the sequence of 11019sam_i2cbus_initialize(), sam_i2cbus_uninitialize(), then 11020sam_i2cbus_initialize() or twi_reset() is called. I found this a 11021while back in the stm32 family, so there may be more arch-es with 11022this sort of bug. I suppose any driver that has the notion of "do 11023not set the freq if it is already set" could be suspect. From David 11024Sidrane. 11025- USBHS Device: Remove disabling of whole USB on suspend of USBHS. 11026This fix removes the disabling of the whole USB peripheral on 11027suspend interrupt. Its enough to freeze the clock instead. When 11028disabling the whole peripheral, the next wakeup-interrupt comes up 11029with an disabled clocking. The unfreeze clock has no effect, because 11030the master clock is disabled. This makes all registers, including 11031the IDR unwriteable and the IRQ falls in an endless loop blocking 11032the whole system. Furthermore the disabling of the peripheral clock 11033prevents hotplugging or reconnecting the USB. From Frank Benkert. 11034- MCAN: Fix missing unlock of device in MCAN mcan_txempty(). From 11035Frank Benkert. 11036 11037* STMicro STM32: 11038 11039- STM32 L4 Clocking: Problem with resetting backup domain clears 11040clocking options set up before in *rcc.c use INITS flag to avoid 11041magic reg value to detect power up reset state of RTC correct a 11042problem clearing interrupt flags (they weren't) which prevented an 11043alarm from ever being used more than once per reset cycle. From 11044Dave (ziggurat29) 11045 11046* STMicro STM32 Drivers: 11047 11048- STM32L4 SPI: That STM32Lr SPI driver is quite different. They now 11049handle frames of arbitrary size between 4 and 16 bits. It was broken 11050before a new bit has to be set (RX fifo threshold) to handle <= 8-bit 11051transactions. If not set, the default is 16-bit packed >=8-bit 11052frames and the RXNE bit is never set (it is set when 16-bits are 11053received). weird things as always. This also add 8-bit access 11054routines to the data register, because a 16-bit access to the data 11055register when the frame size is below 9 bits is interpreted as a 11056packed dual frame exchange. Sebastien Lorquet. 11057- STM32: Correct some bad commits that broke the LTDC display example. 11058From Marco Krahl. 11059- STM32 F4 RTC: Fix logic in F4 RTCC driver that prevent ALARM 11060interrupt. From Neil Hancock. 11061- STM32 F1 ADC: Fix STM32 ValueLine ADC IRQ number selection. From 11062David Sidrane. 11063 11064* STMicro STM32 Boards: 11065 11066- STM32F429I Discovery: Correct some bad commits that broke the LTDC 11067display example. From Marco Krahl. 11068 11069* TI Tiva: 11070 11071- GPIO Interrupts: Fix a bug of GPIO falling-edge interrupt for tiva. 11072From Young. 11073 11074* C Library: 11075 11076- math: Add a NAN test on 'x' in asin function of lib_asin.c. Suggested 11077by Pierre-noel Bouteville. 11078 11079* Build/Configuration System: 11080 11081- Several Makefiles: Add .PHONY definitions to prevent 'clean up to date' 11082message weirdness when 'make clean' is done with no .config or 11083Make.defs file. 11084 11085NuttX-7.17 Release Notes 11086------------------------ 11087 11088The 117th release of NuttX, Version 7.17, was made on July 25, 2016, 11089and is available for download from the Bitbucket.org website. Note 11090that release consists of two tarballs: nuttx-7.17.tar.gz and 11091apps-7.17.tar.gz. These are available from: 11092 11093https://bitbucket.org/nuttx/nuttx/downloads 11094https://bitbucket.org/nuttx/apps/downloads 11095 11096Both may be needed (see the top-level nuttx/README.txt file for build 11097information). 11098 11099Additional new features and extended functionality: 11100 11101* File System and Block and MTD Drivers: 11102 11103- drivers/mtd: Add a driver of IS25xP SPI flash devices. Based on 11104sst25xx driver. From Marten Svanfeldt. 11105 11106* Networking and Network Drivers: 11107 11108- Break out internal interface psock_ioctl(). 11109 11110* Common Device Drivers: 11111 11112- PTYs: Added support for pseduo-terminals: Device drivers that can be 11113used for communications between tasks (usually with re-directed I/O). 11114Based on existing pipe logic. 11115- Button upper half driver: Added support for poll(). 11116- CAN: Add support for poll. From Paul Alexander Patience. 11117- GPIO: Add support for a simple GPIO driver. It supports only pre- 11118configured input, output, and interrupting pins with basic input and 11119output operations. Interrupt events can lead to notification via a 11120signal. 11121- I/O Expander: Shadow-Mode: The output- and configuration registers of 11122the IO-Expander are held in the microcontrollers memory and only 11123written to the IO-Expander. This reduces bus traffic and is more 11124error-proof than the normal read-modify-write operation. Retry Mode: 11125If enabled and an error occurs while writing to the IO-Expander the 11126current transmission is automatically repeated once. From Michael 11127Spahlinger. 11128- Pipes/FIFOs: Add support to allocating different sizes for pipe and 11129fifo buffers. Adds mkfifo2() and pipe2() which are just like mkfifo() 11130and pipe(), but allow control of the size of the underlying, in-memory 11131circular buffer. Move pipe() and mkpipe() to the C library, they are 11132no longer core OS interfaces. Capability currently used only by PTY 11133logic to support, configurable, smaller buffers for PTYs. 11134 11135* SYSLOG/Debug Output: 11136 11137- SYSLOG: Consolidated all SYSLOG logic in drivers/syslog. Added an 11138abstraction layer that supports: (1) redirection of SYSLOG outpout. 11139This is usually so that you can boot with one SYSLOG output but 11140transition to another SYSLOG output when the OS has initialialized, 11141(2) adds common serialization of interrupt output as a configuration 11142option. Without this configuration setting, interrupt level output 11143will be asynchronous. And (3) vsyslog is now a system call and is 11144usable with other-than-FLAT builds. 11145- SYSLOG: syslog() will now automatically redirect output to 11146lowsyslog() if called from an interrupt handler. 11147- Extended SYSLOG logic so that we can send SYSLOG output to a file. 11148- SYSLOG character device channel will now expand LF to CR-LF. 11149Controllable with a configuration option. 11150- Add a SYSLOG character device that can be used to re-direct output 11151to the SYSLOG channel (Not be be confused the SYSLGO output to a 11152character device). 11153- Debug features are now enabled separately from debug output. 11154(1) CONFIG_DEBUG is gone. It is replaced with CONFIG_DEBUG_FEATURES. 11155(2) The macros dbg() and vdbg() have renamed as _err() and _info(), 11156respectively. This also applies to all of the variants as well, 11157XXdbg() and XXvdbg(). (3) Add a new debug level, _warn() (and 11158all variants XXwarn(), XXvwarn(), etc.). (4) Debug assertions can 11159now be enabled separately from debug output. (5) You can now enable 11160subsystem/device driver debug output at different output levels. For 11161example, CONFIG_DEBUG_FS no longer enables file system debug output 11162It enables general file system debug logic and enables selection of 11163CONFIG_DEBUG_FS_ERROR, CONFIG_DEBUG_FS_WARN, and CONFIG_DEBUG_FS_INFO. 11164- Since the SYSLOG layer now automatically handles low-level vs. 11165high-level output, the low-level (ll) variants of the debug macros 11166were eliminated. 11167- Reviewed all uses of *err(). These macro family should indicate 11168only error conditions. Convert *err() to either *info() or add 11169ERROR:, depending on if an error is reported. 11170- _alert(): New debug macro: _alert(). This is high priority, 11171unconditional output and is used to simplify and standardize crash 11172error reporting. 11173- Many CONFIG_DEBUG_* options did not have matching macros defined in 11174include/debug.h. Rather, there were various definitions scattered 11175throughout the sourse tree. These were collected together and 11176centralized with single macro definitions in include/debug.h 11177 11178* Simulation Platform: 11179 11180- Added the simulated QSPI (N25Q) flash to the simulation and extended 11181flash simulation capabilities to run with MTD drivers based on config 11182options (currently m25p, sst26 and w25). From Ken Pettit. 11183 11184* Atmel SAMV7 Drivers: 11185 11186- SPI: SPI-Freq. 40MHz; VARSELECT; hw-features This change adds the 11187following improvements: 11188 11189o Increase the allowed SPI-Frequency from 20 to 40 MHz. 11190o Correct and rename the "VARSELECT" option This option was 11191included in the code as "CONFIG_SPI_VARSELECT" but nowhere 11192defined in a Kconfig file. The change renames it to 11193"CONFIG_SAMV7_SPI_VARSELECT" and corrects the implementation 11194according the datasheet of Atmel. In short, this option 11195switches the processor from "fixed peripheral selection" 11196(single device) to "variable peripheral selection" (multiple 11197devices on the bus). 11198o Add a new Function to the interface to control the timing and 11199delays of the chip according the ChipSelect lines. This function 11200can control the delay between the assertion of the ChipSelect and 11201the first bit, between the last bit and the de-assertion of the 11202ChipSelect and between two ChipSelects. This is needed to tune 11203the transfer according the specification of the connected devices. 11204o Add three "hw-features" for the SAMV7, which controls the behavior 11205of the ChipSelect: 11206- force CS inactive after transfer: this forces a (short) de- 11207assertion of the CS after a transfer, even if more data is 11208available in time 11209- force CS active after transfer: this forces the CS to stay 11210active after a transfer, even if the chip runs out of data. 11211Btw.: this is a prerequisite to make the LASTXFER bit working 11212at all. 11213- escape LASTXFER: this suppresses the LASTXFER bit at the end 11214of the next transfer. The "escape"-Flag is reset automatically. 11215 11216From Frank Benkert 11217- TWISHS: Driver improvements from Michael Spahlinger. 11218- GPIO-Driver fixed for Open-Drain Pins: 11219 11220o sam_gpioread: Now the actual line level from the pin is read 11221back. This is extremely important for Open-Drain Pins, which 11222can be used bidirectionally 11223o Re-Implemented twi_reset-function and enhanced it so it can be 11224called from inside the driver (see next point) 11225o Glitch-Filter: Added a configuration option to enable the twi- 11226built-in glitch filter 11227o Added a "Single Master Mode": In EMC Testing the TWI-Bus got 11228stuck because the TWI-Master detected a Multi-Master access (but 11229there is no second master). With the option "Single Master" we 11230detect these events and automatically trigger a twi_reset. We 11231also do an automatic recovery if a slave got stuck (SDA stays 11232low). 11233 11234With the above changes I2C-Bus reliability in harsh environments (eg. 11235EMC) is greatly improved. The small change in the GPIO-Driver was 11236necessary because otherwise you cannot read back the correct line 11237status of Open-Drain Outputs and this is needed by the twi_reset 11238function. From Michael Spahlinger 11239 11240* NXP Freescale LPC43xx Drivers: 11241 11242- EMC: Extend LPC43xx EMC code to support SDRAM on a dynamic memory 11243interface. From Vytautas Lukenskas. 11244 11245* NXP Freescale Kinetis: 11246 11247- Kinetis K64: Add basic support for the K64 family. I leveraged the 11248changes from https://github.com/jmacintyre/nuttx-k64f and merged 11249into the existing kinetis code with a lot of changes and additions 11250(like pin multiplexing definitions). 11251 11252* NXP Freescale Kinetis Drivers: 11253 11254- Add a KinetisUSB device controller driver. Derived from the pic32mx 11255usb driver, which uses the same usb controller. From kfazz. 11256- Kinetis pwm support, based on the KL pwm driver. From kfazz. 11257- Kinetis Ethernet: Add support for the KSZ8081 PHY. 11258- Kinetis Ethernet: Modified Ethernet driver to try all PHY addresses 11259and then only fail if the driver cannot find a usable PHY address. 11260This means that you no longer have to specific the PHY address in 11261advance. 11262- Kinetis Ethernet: Add support for CONFIG_NET_NOINTS. The driver no 11263longer runs the networking at interrupt level but can defer interrupt 11264work to the high-priority work queue. 11265 11266* NXP Freescale Kinetis Boards: 11267 11268- Teensy-3.x: Add USB support and a usbnsh configuration. 11269From kfazz (2016-06). 11270- Freedom-K64F: Add support for the NXP Freedom-K64F board at 120MHz. 11271This is primarily the work of Jordan Macintyre. I leveraged this 11272code from https://github.com/jmacintyre/nuttx-k64f which was, itself, 11273a leverage from the old K60 TWR configuration. This includes 11274significant corrections (LEDs, buttons, README, etc) and extensions 11275and updates to match more recent BSPs. 11276- Freedom-K64F: Added a configuration that supports networking. 11277 11278* STMicro STM32: 11279 11280- STM32 F1-4: Added support for the STM32F105R. From Konstantin 11281Berezenko. 11282- STM32 F4: Added support for the STM32FF76xxx and STM32FF7xx 11283families. From David Sidrane. 11284- STM32 F1-4: Add support for Tickless mode (two timer 11285implementation). From Max Neklyudov. 11286- STM32 L4: Add support for tickless OS, and incidentally timers, 11287PWM, oneshot, free-running.... From ziggurat29. 11288 11289* STMicro STM32 Drivers: 11290 11291- STM32 F1-4: Add the up_getc() function to STM32 in order to support 11292the minnsh configuration. From Alan Carvalho de Assis. 11293- STM32 F7: Add SPI driver. From David Sidrane. 11294- STM32 F7: Add SPI, I2C, and ADC drivers. From Lok Tep. 11295- STM32 L4: Add ioctls to set/get CAN bit timing in stm32l4. Add 11296ioctl hooks to allow future management of can id filters. From 11297Sebastien Lorquet. 11298- STM32 L4: Add some CAN mode IOCTL calls. These will be useful for 11299device autotest when the application boots. They are redundant 11300with the CONFIG_CAN_LOOPBACK option, which can now just be 11301interpreted as a default setting. From Sebastien Lorquet. 11302- STM32 F1-4: Port STM32L4 CAN IOCTLs to STM32. From Sebastien Lorquet. 11303- STM32 L4: Implementation of loopback IOCTLs. From Sebastien 11304Lorquet. 11305- STM32 F7: Added SDMMC1 support for stm32F7 74-75. From Lok Tep. 11306- STM32 F7: Add USB support. From Lok Tep. 11307- STM32 F7: Added PWR, RTC, and BBSRAM support for stm32f7. From David 11308Sidrane. 11309- STM32 F7: Added STMF7xxx RTC. From David Sidrane. 11310- STM32 F7: Added STM32F7 DBGMCU. From David Sidrane. 11311- STM32 L4: Port support for both RX FIFOs from STM32 CAN. From Paul 11312Alexander Patience. 11313 11314* STMicro STM32 Boards: 11315 11316- Added a minnsh configuration for the STM32F103-Minimum board. From 11317Alan Carvalho de Assis . 11318- Added support for the Nucleo-F767ZI board. From David Sidrane. 11319- Nucleo-144/Nucleo-F767ZI: Add test for STM32 F7 SPI. From David 11320Sidrane. 11321- Nucleo-144: Added SDMMC support to Nucleo-144. From David Sidrane. 11322- Olimex STM32-E4077: Add support for Olimex STM32 E407 board. From 11323Mateusz Szafoni. 11324- Nucleo-144: Added USB OTG device to Nucleo-144. From David Sidrane. 11325- Nucleo-144: Added bbsram test to Nucleo-144. From David Sidrane. 11326- STM32F4 Discovery: Add CAN support for STM32F4 Discovery. From 11327Matthias Renner. 11328- STM32F4 Discovery: added a canard configuration files. From 11329Matthias Renner. 11330- STM32F4 Discovery: Add FPU support for ostest for the STM32F4 11331Discovery platform. From David Alessio. 11332- STM32L476 Discovery: Update stm32l476 disco to include init code for 11333smartfs and nxffs for cases where those fs are included in build. 11334From ziggurat29. 11335 11336* C Library/Header Files: 11337 11338- include/assert.h: Check if NDEBUG is defined. From Paul Alexander 11339Patience. 11340- assert.h: Define static assert for C++ usage. From Paul Alexander 11341Patience. 11342- Add crc64 support. From Paul Alexander Patience. 11343- hex2bin: Move the portable library portion of apps/system/hex2bin 11344the C library with the OS internals. It is used in certain internal 11345boot-loader builds. 11346- Add raise(). 11347- libm: This change should significantly improve the performance of 11348single precision floating point math library functions. The vast 11349majority of changes have to do with preventing the compiler from 11350needlessly promoting floats to doubles, performing the calculation 11351with doubles, only to demote the result to float. These changes only 11352affect the math lib functions that return float. From David Alessio. 11353- printf(): If there are no streams, let printf() fall back to use 11354syslog() for output. 11355- Move pipe() and mkpipe() to nuttx/libc, they are no 11356longer core OS interfaces. Capability currently used only by PTY logi 11357to support, configurable, smaller buffers for PTYs. 11358- Move driver-related files from include/nuttx to include/nuttx/drivers. 11359Move driver related prototypes out of include/nuttx/fs/fs.h and into 11360new include/drivers/drivers.h. 11361- include /nuttx/lib: Move library-related files from include/nuttx to 11362include/nuttx/lib. 11363 11364* Build/Configuration System: 11365 11366- Custom Board Configuration: Add logic to support custom board 11367directories that include a Kconfig file. During the context phase 11368of the build, any Kconfig file in the custom board directory is 11369copied into configs/dummy, replacing the existing Kconfig file with 11370the target Kconfig file. 11371- Remove the includes/apps link to apps/include. It is no longer 11372used. From Sebastien Lorquet. 11373 11374* Tools: 11375 11376- tools/tesbuild.sh will now build NxWM configurations. 11377 11378* Application Build/Configuration System: 11379 11380- Change to the way that apps/ Kconfig files are generated in 11381order to better support reuse of the apps/ directory in NuttX 11382products. Changes include: Make the full tree use wildcards 11383make.defs, Add empty preconfig rules to 'leaf' makefiles, Use 11384directory.mk for recursive dir makefiles, Individual app kconfig 11385fixes, Recursive Kconfig autogeneration, Add kconfig files for 11386pcode and tiff, and fix a gitignore rule, From Sébastien Lorquet. 11387- apps/include directory structure reorganized. There are no longer 11388any header files in the apps/include/. directory. Rather, sub- 11389directories were added to match the partitioning of apps/ sub- 11390directories and the header files were moved into the appropriate 11391sub-directory. This change is intended to help with some changes 11392being considered by Sébastien Lorquet. 11393- Call all includes from <apps/bla/bla.h> to "bla/bla.h". From Sebastien 11394Lorquet. 11395- Add apps/include to include path in top-level Make.defs file. 11396 11397* Applications: apps/nshlib: 11398 11399- Make NSH net-initialization be a configuration option. From Marten 11400Svanfeld. 11401- Add NTP client initialization in NSH network startup logic. From 11402David S. Alessio . 11403- 'ps' command now prints out the stack usage if stack coloration is 11404enabled. From Frank Benkert. 11405- Allow stack usage to be disabled on constrained systems. From David 11406Sidrane. 11407 11408* Applications: apps/netutils: 11409 11410- NTP Client: Add retries. From David S. Alessio. 11411- NTP Client: The NTP client will now optionally use pool.ntp.org as 11412the NTP server; and reset the retry count upon success -- more robust. 11413From David Alessio. 11414- ESP8266: Add logic to set the BAUD rate. From Pierre-noel Bouteville. 11415- ESP8266: In Kconfig, select ARCH_HAVE_NET when NETUTILS_ESP8266 is 11416selected. This allows, among other things, support for network debug 11417output. From Pierre-noel Bouteville. 11418 11419* Applications: apps/fsutils: 11420 11421- flash_eraseall: IOCTL wrapper for MDCIO_BULKERASE command. Was in 11422nuttx/drivers/mtd. Moved to apps/fsutils because the call directly into 11423the OS was incorrect. 11424 11425* Applications: apps/canutils: 11426 11427- canlib: Basic CAN utility library. From Sebastien Lorquet. 11428 11429* Platforms: apps/system: 11430 11431- flash_eraseall: Now uses the IOCTL wrapper at apps/fsutils/flash_eraseall. 11432 11433* Platforms: apps/platform: 11434 11435- Add platform files for Olimex STM32 E407. From Mateusz Szafoni. 11436 11437* Applications: apps/examples: 11438 11439- apps/examples/canard: Add canard example application. From 11440Matthias Renner. 11441- apps/examples/pty_test: PTY test program. From Alan Carvalho de 11442Assis. 11443 11444Works-In-Progress: 11445 11446* IEEE802.14.5/6LowPAN. Hooks and framework for this effort were 11447introduced in NuttX-7.15. Work has continued on this effort on 11448forks from the main repositories, albeit with many interruptions. 11449The completion of this wireless feature will postponed until at 11450least NuttX-7.18. 11451 11452* i.MX6 SMP. Partially functional, but there is more that still 11453needs to be done. 11454 11455Bugfixes. Only the most critical bugfixes are listed here (see the 11456ChangeLog for the complete list of bugfixes and for additional, more 11457detailed bugfix information): 11458 11459* Core OS: 11460 11461- semaphores: Need to set errno to EINVAL on errors in sem_post() 11462and sem_wait(). From Paul Alexander Patience. 11463 11464* File System/Block Drivers/MTD Drivers: 11465 11466- Several MTD FLASH drivers nullify the freed 'priv' structure and 11467failed to return NULL as stated in the comments. Result, will 11468operate on a NULL pointer later. Noted by David Sidrane. 11469- VFS ioctl(). Per comments from David Sidrane, file_ioctl() should 11470not return succeed if the ioctl method is not supported. It 11471probably should return ENOTTY in that case. 11472- SST26 Driver: Before accessing the sst26 flash, the "Global Unlock" 11473command must me executed, which I do in the sst26 driver. BUT re- 11474reading the datasheet, the WREN instruction is required to enable 11475the execution of this command. This was not done. I have no idea how 11476the driver currently works except by chance. The writes should never 11477happen at all, the flash is half-enabled! From Sebastien Lorquet. 11478- N25Qxx Driver: Alter the notion of 'blocksize' to be equivalent to 11479'flash write page size' in order to align with assumptions in the 11480smartfs driver (at least, maybe other things do as well). Correct a 11481bug that was previously masked by having blocksize=eraseblocksize 11482which would cause buffer overflows and delicious hardfaults. 11483Trivial spelling changes in comments, etc. From ziggurat29. 11484- SmartFS: Fix a 32-byte memory leak. From Ken Pettit. 11485- SMART MTD layer: Fixes freesector logic error when sectorsPerBlk=256, 11486adds DEBUGASSERT for invalid geometry and additional memory debug 11487logic. Also fixes the dangling pointer on error bug. From Ken 11488Pettit. 11489 11490* Common Drivers: 11491 11492- USB CDC/ACM Device Class: cdcacm_unbind leaks write request objects. 11493This arises due to freeing the bulk IN endpoint before the loop 11494that frees the requests via cdcasm_freereq. That function checks 11495the parameters and skips the freeing if either is NULL. Freeing 11496the bulk IN endpoint will cause the first param to be NULL, thereby 11497bypassing the free operation. To fix, I moved the release of the 11498bulk IN endpoint until after to loop (much as was the case for the 11499OUT and read requests, which did not exhibit the problem). From 11500ziggurat29. 11501- Pipes and FIFOs: Add missing configuration for pipe ring buffer 11502size. From Frank Benkert. 11503- UART 16550: Handle when CONFIG_SERIAL_UART_ARCH_IOCTL is not 11504enabled. From Heath Petersen. 11505- Common Serial Upper Half: Fix a race condition noted by Stefan 11506Kolb. Between the test if the TX buffer is full and entering a 11507critical section, bytes may be removed from the TX buffer making 11508the wait unnecessary. The unnecessary wait is an inefficiency, 11509but not really a problem. But with USB CDC/ACM it can be a problem 11510because the entire TX buffer may be emptied when we lose the race. 11511If that happens that uart_putxmitchar() can hang waiting for data 11512to be removed from an empty TX buffer. 11513- USB MSC Device Class: Add locks when removing request from queue. 11514From Wolfgang Reissnegger. 11515- USB MSC Device Class: Fix reversed logic on waiting for SCSI thread 11516start. The scsi thread was waiting for the wrong condition. 11517However, this was masked by the fact that the code creating the 11518scsi thread was also holding usbmsc_scsi_lock(priv) while 11519initializing data, hence this lock synchronized the scsi thread 11520start with init completion. From Wolfgang Reissnegger. 11521 11522* Graphics and Graphic Drivers: 11523 11524- Correct conditional compilation in ST7565 LCD driver. From Pierre- 11525noel Bouteville 11526 11527* Networking: 11528 11529- In both IPv6 and IPv4 incoming logic: (1) Should check if the 11530packet size is large enough before trying to access the packet 11531length in the IP header. (2) In the comparison between the IP 11532length and the full packet length, need to subtract the size of 11533he link layer header before making the comparison or we will get 11534false positives (i.e., the packet is really too small) 11535- TCP Networking: While working with version 7.10 I discovered a 11536problem in TCP stack that could be observed on high network load. 11537Generally speaking, the problem is that RST flag is set in 11538unnecessary case, in which between loss of some TCP packet and its 11539proper retransmission, another packets had been successfully sent. 11540The scenario is as follows: NuttX did not receive ACK for some sent 11541packet, so it has been probably lost somewhere. But before its 11542retransmission starts, NuttX is correctly issuing next TCP packets, 11543with sequence numbers increasing properly. When the retransmission 11544of previously lost packet finally succeeds, tcp_input receives the 11545accumulated ACK value, which acknowledges also the packets sent in 11546the meantime (i.e. between unsuccessful sending of lost packet and 11547its proper retransmission). However, variable unackseq is still set 11548to conn->isn + conn->sent, which is truth only if no further 11549packets transmission occurred in the meantime. Because of incorrect 11550(in such specific case) unackseq value, few lines further condition 11551if (ackseq <= unackseq)is not met, and, as a result, we are going to 11552reset label. From Jakub Lagwa. 11553 11554* ARMv7-M: 11555 11556- ARM stack check: Fix double fault on IDLE task with stack size = 0. 11557From David Sidrane. 11558 11559* Atmel SAMV7 Drivers: 11560 11561- CAN: CAN Message Filtering fixed: (1) stdfilters didn't work because 11562the filter was never enabled (wrong number of bits to shift), and 11563(2) Filters were never used because the configuration register 11564cannot be written without using the initialization mode. Both bugs 11565are fixed by this change. Filtering has been tested with both 11566standard and extended identifiers and is now working properly. From 11567Michael Spahlinger. 11568 11569* Atmel SAMA5: 11570 11571* Atmel SAM3/4 Drivers: 11572 11573- Fix some errors in AFEC header file. From OrbitalFox. 11574- DAC: DACC_WPMR_WPKEY_MASK -> DACC_WPMR_WPKEY. From Wolfgang 11575Reissnegge. 11576- Timer: Fix ops check in TCIOC_STOP. From Wolfgang Reissnegge. 11577- I2C: Fix reversed logic in twi_startmessage(). From Wolfgang 11578Reissnegger. 11579- SAM3/4 UDP: Fix handling of endpoint RX FIFO banks. This fixes 11580a race condition where the HW fills a FIFO bank while the SW is 11581busy, resulting in out of sequence USB packets. 11582 11583* Atmel SAMV7 Drivers: 11584 11585- USBHS Device: This change solves a problem which causes data loss 11586while sending data via USB. This problem is caused by an incorrect 11587handling of the endpoint state in the USB driver sam_usbdevhs. This 11588leads under some circumstances to situations in which an DMA 11589transfer is setup while a previous DMA transfer is currently active. 11590Amongst other things I introduced the new endpoint state 11591USBHS_EPSTATE_SENDING_DMA for the fix. To reproduce the problem, I 11592used a program which send as many data as possible via a CDC/ACM 11593device and verified the received data on the PC. From Stefan Kolb. 11594 11595* NXP Freescale Kinetis Drivers: 11596 11597- Timers: Support up to 8 channels per timer. From kfazz. 11598 11599* NXP Freescale Kinetis Boards: 11600 11601- Teensy 3.x clock fixes: The High Gain bit in MCG_C1 was preventing 11602teensy from booting except after a programming session. The second 11603change doesn't appear to change any functionality, but complies with 11604restrictions in the k20 family reference manual on FEI -> FBE clock 11605transiions. From kfazz. 11606 11607* NXP Freescale LPC17xx Drivers: 11608 11609- LPC17 Ethernet: Needs to correctly ignore PHYID2 revision number 11610when comparing PHY IDs. 11611 11612* NXP Freescale LPC43xx Drivers: 11613 11614- Fix errors in GPIO interrupt logic. From v01d (phreakuencies) 11615- Ethernet: Correct auto-negotiation mode in the LPC43xx Ethernet. 11616From Alexander Vasiljev 11617- Writing zero to NVIC_IRQ_ENABLE has no effect. Disable interrupts 11618with NVIC_IRQ_CLEAR. From Paul Alexander Patience. 11619- SPIFI: If CONFIG_SPIFI_SECTOR512 undefined, lpc43_bwrite doesn't do 11620actual write (probably copy/paste errors). Still not sure about 11621current state of lpc43_spifi implementation, but for me NXFFS works 11622with this change. From Vytautas Lukenskas. 11623 11624* Qemu-i486: 11625 11626- Fix qemu-i486/ostest/Make.defs test for M32. From Heath Petersen. 11627 11628* SiLabs EFM32 Drivers: 11629 11630- Fix EFM32 FLASH conditional compilation. From Pierre-noel 11631Bouteville 11632- Writing zero to NVIC_IRQ_ENABLE has no effect. Disable interrupts 11633with NVIC_IRQ_CLEAR. From Paul Alexander Patience. 11634 11635* STMicro STM32: 11636 11637- STM32 F1-F4: In PWM driver, just update duty if frequency is not 11638changed and PSM started. This removeis glitch or blinking when 11639only duty is frequently changed. From Pierre-noel Bouteville. 11640 11641* STMicro STM32 Drivers: 11642 11643- STM32 F7: Fixed STM32F7 DMA stm32_dmacapable. DMA working on SDMMC. 11644From David Sidrane. 11645- STM32 F1-F4 Timer Driver: Change calculation of per- timer pre-scaler 11646value. Add support for all timers 11647- STM32 F1-F4: Correct conditional compilation in STM32 timer capture 11648logic. From Pierre-noel Bouteville 11649- STM32 F1-F4: Fix STM32 DMA code and configuration for STM32F37X chips. 11650From Marten Svanfeldt. 11651- STM32 F1-F4: Fix compilation errors in debug mode of stm32_pwm.c. 11652From Konstantin Berezenko. 11653- STM32 F1-F4: Correct the CAN2 RX IRQ number for stm32f10xx chips. 11654From Konstantin Berezenko. 11655- STM32 F1-F4: Move backup domain reset to earlier in the 11656initialization sequence (stm32_rcc.c() in order to avoid disabling 11657LSE during RTC initialization. From Alan Carvalho de Assis. 11658- STM32 F1-F4: When configuring a GPIO via stm32_configgpio() the 11659function will first set the mode to output and then set the initial 11660state of the gpio later on. If you have an application with an 11661externaly pulled-up pin, this would lead to a glitch on the line 11662that may be dangerous in some applications (e.G. Reset Line for 11663other chips, etc). This changes sets the output state before 11664configuring the pin as an output. From Pascal Speck . 11665- STM32 F7: Apply Pascal Speck's GPIO STM32 change to STM32 L4. 11666- STM32 L4: Apply Pascal Speck's GPIO STM32 change to STM32 L4. 11667From Sebastien Lorquet. 11668- STM32 F7: BUGFIX: PLLs IS2 and SAI P Calculation. From David 11669Sidrane. 11670- STM32 L4: STM32 CAN fixes need to be backported to STM32L4 as well. 11671- STM32 F1-F4 and L4: Writing zero to NVIC_IRQ_ENABLE has no effect. 11672Disable interrupts with NVIC_IRQ_CLEAR. From Paul Alexander 11673Patience. 11674- STM32 F7: STMF7xxx RTC: (1) Remove proxy #defines, (2) Ensure the 11675LSE(ON) etal are set and remembered in a) A cold start (RTC_MAGIC 11676invalid) of the RTC, and b) A warm start (RTC_MAGIC valid) of the 11677RTC but a clock change. The change was needed because in bench 11678testing a merge of the latest's STM32 53ec3ca (and friends) it 11679became apparent that the sequence of operation is wrong in the 11680reset of the Backup Domain in the RCC code. PWR is required before 11681the Backup Domain can be futzed with. !!!This Code should be tested 11682on STM32 and if needed rippled to the STM32 families. From David 11683Sidrane. 11684- STM32 F1-F4: STM32 BBSRAM fixed (and formatted) flags. From David 11685Sidrane. 11686- STM32 F7: STM32F7 BBSRAM fixed (and formatted) flags. From David 11687Sidrane. 11688- STM32 L4: Fix incorrect clock setup for LPTIM1. From ziggurat29. 11689- STM32 F4/L4 RTC ALARM: were enabling interrupts too early in the 11690power-up sequence, BEFORE the interrupt system was being 11691initialized. 11692 11693* STMicro STM32 Boards: 11694 11695- STM32 board.h: Fix STM32 timer input clock definitions. From David 11696Sidrane. 11697 11698* TI Tiva Drivers: 11699 11700- Bug Fix in tiva_serial.c - UART5, UART6 and UART7 were not being 11701configured as TTYS0 for printing over serial console. From Shirshak 11702Sengupta. 11703 11704* C Library/Header Files: 11705 11706- include/signal.h: Change type of SIG_ERR, SIG_IGN, ... to 11707_sa_handler_t. The type void does not work with the IAR toolchain. 11708From Aleksandr Vyhovanec. 11709- crc16: fix error. From Paul Alexander Patience. 11710- strtoul() and strtoull(): Fix errno settings required by function 11711definition. Resolved Bitbucket Issue #1. From Sebastien Lorquet. 11712 11713* Build/Configuration System: 11714 11715- Build system: This change fixes a build problem that only occurs 11716when reconfiguring from Linux to Windows or vice-versa. It is a 11717problem that was present but not usually experienced until two 11718things happened: (1) The pre_config target was added to run before 11719the menconfig operation and (2) the context target was added before 11720the pre_config target in order to set up the correct symbolic links 11721(in the apps/platform directory) needed by the pre_config target. 11722But then now if you start with a Linux system and run 'make 11723menuconfig' to switch to Linux, the context target will execute 11724first and set up POSIX style symbolic links before doing the 11725menuconfig. Then after the menuconfig, the make will fail on 11726Windows if you are using a Windows native toolchain because that 11727native toolchain cannot follow the Cygwin- style symbolic links. 11728The fix here is to also execute the clean_context AFTER executing 11729menuconfig. A lot more happens now: It used to be that doing 11730'make menuconfig' only did the menuconfig operation. Now it does 11731context, pre_config, menuconfig, clean_context. Not nearly as 11732snappy as it used to be. 11733- Need to build the drivers/ directory even it file descriptors are 11734not supported. There are things in the drivers/ directory that are 11735still needed (like SYSLOG logic). 11736- Remove all inclusion of header files from the apps/include 11737directory from NuttX core logic. There should be no dependency on 11738logic within NuttX on logic within apps/. This caused a lot of 11739reshuffling of logic: binfmt pcode support, usbmonitor is now a 11740kernel thread, TZ/Olson database moved to libc/zoneinfo. 11741 11742* Application Build/Configuration System: 11743 11744- Make sure that APPNAME is defined in all Makefiles that generate 11745applications. From Sebastien Lorquet. 11746 11747* apps/builtins: 11748 11749- apps/builtins: exec_builtin was not using the provided open flags. 11750As a result >> redirection was not working; it was treated the same 11751as >. 11752 11753* apps/nshlib: 11754 11755- apps/nshilib: PS Command: When Priority Inheritance is enabled, the 11756format of /proc/<PID>/status changes to show both the current 11757priority and the thread's base priority. This messes up the format 11758of cmd_ps. From David Alessio. 11759 11760* apps/netutils: 11761 11762- apps/netutils, uIP webserver: Fix a data declaration in a header 11763file. 11764 11765* apps/canutils: 11766 11767- apps/canutils/libuavcan: Fix for recent change to STM32 timer 11768frequency definiitions. 11769 11770* apps/examples: 11771 11772- apps/examples/alarm: ioctl call was clobbering file descriptor. 11773- apps/examples/can: Some variables were not declared in all required 11774cases. From Sebastien Lorquet. 11775- apps/examples/media: media example was intended to take either a 11776command line argument, or a compiled-in default value from config. 11777However, the default was ignored, leading to confusing error 11778messages. From ziggurat29. 11779 11780NuttX-7.18 Release Notes 11781------------------------ 11782 11783The 118th release of NuttX, Version 7.18, was made on October 8, 2016, 11784and is available for download from the Bitbucket.org website. Note 11785that release consists of two tarballs: nuttx-7.18.tar.gz and 11786apps-7.18.tar.gz. These are available from: 11787 11788https://bitbucket.org/nuttx/nuttx/downloads 11789https://bitbucket.org/nuttx/apps/downloads 11790 11791Both may be needed (see the top-level nuttx/README.txt file for build 11792information). 11793 11794Additional new features and extended functionality: 11795 11796* Core OS: 11797 11798- Add standard adjtime() interface and basic timekeeping support. 11799Normally used with an NTP client to keep system time in 11800synchronization. From Max Neklyudov. 11801- Use the oneshot timer with optional entropy to measure CPU load if 11802so configured. 11803 11804* File System and Block and MTD Drivers: 11805 11806- Add Fujistu MB85RS256B ramtron support. From Beat Küng. 11807- SPI-based MTD driver for Macronix MX25L3233F or MX25L6433F. From 11808Aleksandr Vyhovanec. 11809 11810* Graphics/Display Drivers: 11811 11812- SH1106 0.96 OLED module support (SSD1306 compatible) + I2C fixes. 11813From v01d (phreakuencies). 11814 11815* Sensor Drivers: 11816 11817- Add KXTJ9 Accelerometer driver from the Motorola Moto Z MDK. 11818- Add MFRC522 RFID ISO14443 and Mifare transceiver driver. From Alan 11819Carvalho de Assis. 11820- Add driver for the LIS3MDL 3 axis magnetometer. From Alexander 11821Entinger. 11822- Add driver for the MLX90393 3 axis magnetometer. From Alexander 11823Entinger. 11824- Add driver for the LIS3DSH 3 axis accelerometer. From Alexander 11825Entinger. 11826- Add driver for the Bosch BMG160 3 axis gyroscope. From Alexander 11827Entinger. 11828- Add support for the Sensixs XEN1210 3D-board. This sensor is used 11829on NANOSATC-BR2 a Brazilian CUBESAT project. From Alan Carvalho 11830de Assis. 11831- Add a new ioctl command (set MAXPOS) for Tiva QEI. From Young. 11832 11833* Other Common Device Drivers: 11834 11835- I/O Expander: Remove hard-coded PCA9555 fields from ioexpander.h 11836definitions. Add support for an attach() method that may be used 11837when any subset of pin interrupts occur. 11838- I/O Expander Interface: Encode and extend I/O expander options to 11839include interrupt configuration. 11840- PCA9555 Driver: Replace the signalling logic with a simple callback 11841using the new definitions of ioexpander.h. This repartitioning of 11842functionality is necessary because (1) the I/O expander driver is 11843the lower-lower part of any driver that uses GPIOs (include the GPIO 11844driver itself) and should not be interacting directly with the much 11845higher level application layer. And (2) in order to be compatible 11846with the GPIO driver (and any arbitrary upper half driver), the 11847PCA9555 should not directly signal, but should call back into the 11848upper half. The upper half driver that interacts directly with the 11849application is the appropriate place to be generating signal. 11850- Add a skeleton I/O Expander driver (based on the PCA9555 driver). 11851- Add PCF8574 I/O Expander driver. 11852- GPIO driver: Add IOCTLs to get the pin type and to unregister a 11853signal handler. 11854- Add a GPIO lower-half driver that can be used to register a GPIO 11855character driver for accessing pins on an I/O expander. 11856- Add an SPI helper function that encapsulates and manages a sequence 11857of SPI transfers. 11858- Add an SPI character driver that will permit access to the SPI bus 11859for testing purposes. 11860- Add oneshot timer lower half interface definition. 11861- Add an upper-half, oneshot timer character driver. 11862- Add Audio Tone Generator for NuttX. From Alan Carvalho de Assis. 11863- Add USB host support for composite devices. This feature is not 11864well tested. 11865- drivers/ioexpander: Add an (untested) TCA64XX I/O Expander driver 11866leveraged from Project Ara. 11867 11868* Simulation Platform: 11869 11870- Add a simulated I/O Expander driver. 11871- Add simulator-based test support for apps/examples/gpio. 11872- Add a configuration useful for testing Mini Basic. 11873- Add a simulated oneshot lowerhalf driver. 11874 11875* Atmel SAM3/4 Drivers: 11876 11877- SAM4CM: Add option to support oneshot timer without free-running 11878timer. Add oneshot lower half driver. 11879 11880* Atmel SAMA5 Drivers: 11881 11882- SAMA5D: Add option to support oneshot timer without free-running 11883timer. Add oneshot lower half driver. 11884 11885* Atmel SAMV7 Drivers: 11886 11887- SAMV71/SAME70: Add option to support oneshot timer without 11888free-running timer. Add oneshot lower half driver. 11889- Add support for SAMV7 DACC module. From Piotr Mienkowski. 11890 11891* NXP Freescale Kinetis Drivers: 11892 11893- Add support for I2C and RTC. From v01d (phreakuencies). 11894 11895* NXP Freescale Kinetis Boards: 11896 11897- Add teensy 3.x I2C support. From v01d (phreakuencies). 11898 11899* STMicro STM32: 11900 11901- Add IAR-style STM32F1xx vectors. Tested on STM32F103RB and 11902STM32F107RC. From Aleksandr Vyhovanec. 11903 11904* STMicro STM32 Drivers: 11905 11906- Add timekeeping support for the STM32 tickless mode. From Max 11907Neklyudov. 11908- Add a oneshot, lower-half driver for STM32. 11909- STM32 L4: Add oneshot lower half driver for STM32 L4. 11910- STM32 L4: Add support for quadrature encoders on STM32L4. Sebastien 11911Lorquet. 11912 11913* STMicro STM32 Boards: 11914 11915- stm32f103-minimum: Add board support to MFRC522 driver. From Alan 11916Carvalho de Assis. 11917- Add oneshot board initialization to stm32f103-minimum. From Alan 11918Carvalho de Assis. 11919- stm32f103-minimum: Add board configuration to initialize Audio Tone 11920Generator. From Alan Carvalho de Assis. 11921- stm32bufferfly2: Add support for the Kamami stm32butterfly2 11922development board with optional ETH phy. From Michal Lyszczek. 11923- stm32f103-minimum: Add board config support to SPI LCD module 11924JLX12864G-086. From Alan Carvalho de Assis. 11925- stm32l476-mdk: Support basic booting and nsh on Motorola MDK. The 11926Motorola MDK is based off of an earlier version of NuttX. 11927This only provides a basic NSH shell. From Jim Wylder. 11928- STM32 F4 Discovery: Add support for XEN1210 3D-board. From Alan 11929Carvalho de Assis. 11930- stm32f103-minimum: Add stm32_bringup support and userled example to 11931STM32F103 Minimum board. From Alan Carvalho de Assis. 11932- Add support for qencoders on various nucleo boards. From Sebastien 11933Lorquet. 11934- olimex-stm32-e407: Add some networking configurations. From Mateusz 11935Szafoni. 11936 11937* TI Tiva Drivers: 11938 11939- Add tiva PWM lower-half driver implementation. From Young. 11940- Tiva QEI: Add QEI lower-half driver for Tiva series chip. From 11941Young. 11942 11943* C Library/Header Files: 11944 11945- Separate XorShift128 PRNG from /dev/urandom and make it generally 11946available. 11947- Add POSIX type sig_atomic_t. From Sebastien Lorquet. 11948- Add the difftime() function. The function depends on the toolchain- 11949dependent CONFIG_HAVE_DOUBLE so is not available on tiny platforms. 11950From Sebastien Lorquet. 11951- Add support for remove(). From Sebastien Lorquet. 11952- Add system() to stdlib.h. Actual implementation is in 11953apps/system/system. 11954 11955* Build/Configuration System: 11956 11957- Rename arch/sh to arch/renesas. 11958- Remove contactless drivers from drivers/wireless to drivers 11959contactless. From Sebastien Lorquet. 11960- Move all modem-related IOCTL commands to a common file to assure 11961that they will be unique. 11962 11963* Tools: 11964 11965- Add sethost.sh. This is a script that you can use to quickly 11966change the host platform from Linux to Windows/Cygwin. Might save 11967you a lot of headaches. 11968 11969* Applications: apps/nshlib: 11970 11971- Add logic to support an NSH-specific system command. 11972- Add printf command to NSH, e.g., controlling /dev/userleds from 11973command line: nsh> printf \x01 > /dev/userleds. From Alan Carvalho 11974de Assis. 11975 11976* Platforms: apps/system: 11977 11978- Port tee command from NetBSD. 11979- Add a generic system command. Current implementation cannot use 11980/bin/sh and spawns the custom NSH system command directly. 11981 11982* Platforms: apps/platform: 11983 11984- Add C++ support for STM32L476-MDK. 11985 11986* Platforms: apps/interpreters: 11987 11988- Add a port of Mini Basic, version 1.0, written by Malcom McLean and 11989released under the Creative Commons Attribution license. 11990 11991* Applications: apps/examples: 11992 11993- Add a simple test of the GPIO driver. 11994- Add RFID_READUID sample application. From Alan Carvalho de Assis. 11995- Add Oneshot timer example. 11996- Add a simple test of the system command. 11997 11998Works-In-Progress: 11999 12000* IEEE802.14.5/6LowPAN. Hooks and framework for this effort were 12001introduced in NuttX-7.15. Work has continued on this effort on 12002forks from the main repositories, albeit with many interruptions. 12003The completion of this wireless feature will postponed until at 12004least NuttX-7.19. 12005 12006Bugfixes. Only the most critical bugfixes are listed here (see the 12007ChangeLog for the complete list of bugfixes and for additional, more 12008detailed bugfix information): 12009 12010* Core OS: 12011 12012- Explicitly initialize the group tg_exitsem with sem_init(). The 12013existing logic worked because the correct initialization value is 12014all zero, but it is better to initialize the semaphore explicitly. 12015- The TCB nchildren field should not be incremented when pthreads are 12016created. 12017- Move fields related to parent/child task relationship out of TCB 12018into group structure where they belong. Child is a group, not a 12019thread. 12020- mq_send() was not setting the errno value on certain failures to 12021allocate a message. 12022- Define 'group' even if HAVE_GROUPID is not set. From Mateusz 12023Szafoni. 12024- Vector table should have dimension NR_IRQS, not NR_IRQS+1. From 12025Sagitta Li. 12026- pthreads: When a pthread is started, there is a small bit 12027of logic that will run on the thread of execution of the new 12028pthread. In the case where the new pthread has a lower 12029priority than the parent thread, then this could cause both the 12030parent thread and the new pthread to be blocked at the priority of 12031the lower priority pthread (assuming that CONFIG_PRIORITY_INHERITANCE 12032is not selected). This change temporarily boosts the priority of the 12033new pthread to at least the priority of the new pthread to at least 12034the priority of the parent thread. When that bit of logic has 12035executed on the thread of execution of the new pthread, it will then 12036drop to the correct priority (if necessary) before calling into the 12037new pthread's entry point. 12038 12039* File System/Block Drivers/MTD Drivers: 12040 12041- FAT performance improvement. In large files, seeking to a 12042position from the beginning of the file can be very time consuming. 12043ftell does lssek(fd, 0, SET_CURR). In that case, that is wasted 12044time since we are going to seek to the same position. This fix 12045short-circuits fat_seek() in all cases where we attempt to seek to 12046current position. Suggested by Nate Weibley. 12047- MTD: Fixed cloned typos in several FLASH drivers. From Aleksandr 12048Vyhovanec. 12049- mount: Corrects a bad assertion noted by Pierre-noel Bouteville. 12050Also fixes a reference counting problem in an error condition: 12051When the mountpoint inode is found but is not an appropriate 12052mountpoint, the reference count on the inode was not being 12053decremented. 12054 12055* Common Drivers: 12056 12057- Various serial drivers: Fix FIONWRITE and add FIONSPACE. All 12058implementations of FIONWRITE were wrong. FIONWRITE should return 12059the number of bytes waiting in the outgoing send queue, not the free 12060space. Rather, FIONSPACE should return the free space in the send 12061queue. 12062- Add missing prototype for btn_lower_initialize(). 12063- Make DAC sample structure packed. From Marc Rechté. 12064 12065* Networking: 12066 12067- TCP: tcp_ipvX_bind() not actually using the port selected with 12068port==0. Also removes duplicate call to pkt_input(). Issues noted 12069by Pascal Speck. 12070- drivers/net: NET_TUN=y => NET_MULTIBUFFER=y. From Vladimir 12071Komendantskiy. 12072- slip driver: Fix calculations using MSEC_PER_TICK. If 12073USEC_PER_TICK is less than 1000, then MSEC_PER_TICK will be 12074zero. It will be inaccurate in any case. 12075 12076* Atmel SAM3/4 Drivers: 12077 12078- SAM3/4 GPIO: Enable peripheral clock for GPIO port when GPIO is 12079configured as input. The value of a GPIO input is only sampled when 12080the peripheral clock for the port controller the GPIO resides in is 12081enabled. Therefore we need to enable the clock even when polling a 12082GPIO. From Wolfgang Reissnegger. 12083- All SAM Ethernet Drivers: Add support so that the drivers can be 12084built with CONFIG_NET_MULTIBUFFER=y. 12085- SAM3/4: Fix GPIO pull-up/down code. Enabling the pull-down resistor 12086while the pull-up resistor is still enabled is not possible. In this 12087case, the write of PIO_PPDER for the relevant I/O line is discarded. 12088Likewise, enabling the pull-up resistor while the pull-down resistor 12089is still enabled is not possible. In this case, the write of 12090PIO_PUER for the relevant I/O line is discarded. From Wolfgang 12091Reißnegger. 12092 12093* Atmel SAMV7 Drivers: 12094 12095- All SAM Ethernet Drivers: Add support so that the drivers can be 12096built with CONFIG_NET_MULTIBUFFER=y. 12097- SAM GPIO: Apply Wolfgang's change for SAM3/4 to SAMA5 and SAMV7. 12098 12099* Atmel SAMA5: 12100 12101- Add missing oneshot max_delay method. 12102- All SAM Ethernet Drivers: Add support so that the drivers can be 12103built with CONFIG_NET_MULTIBUFFER=y. 12104- SAM GPIO: Apply Wolfgang's change for SAM3/4 to SAMA5 and SAMV7. 12105 12106* NXP Freescale LPC43xx Drivers: 12107 12108- LPC43xx serial: Fix typos in LPC43 serial driver. Found by Vytautas 12109Lukenskas. 12110- LPC43xx Serial: There are some small problems in LPC43xx RS485 mode 12111configuration. In particular: (1) UART0,2,3 do not have DTR pins 12112(different from UART1), so, Kconfig needs to be adjusted. (2) 12113lpc43_uart.c in RS485 mode only configures DIR pin, but doesn't 12114enable pin output for UART0,2,3. (3) should be option to reverse DIR 12115control pin output polarity. (4) lpc43xx/chip/lpc43_uart.h doesn't 12116have USART3 definitions. NOTE: I didn't modified and didn't tested 12117USART1, as it has different hardware. From Vytautas Lukenskas. 12118From Vytautas Lukenskas. 12119 12120* SiLabs EFM32 Drivers: 12121 12122- EFM32 SPI drivers adopted incompatible conventions (See STM32 for 12123details of the issue). 12124 12125* STMicro STM32 Drivers: 12126 12127- STM32, STM32 L4, and EFM32 SPI drivers adopted incompatible 12128conventions somewhere along the line. They set the number of bits 12129to negative when calling SPI_SETBITS which had the magical side- 12130effect of setting LSB first order of bit transmission. This is not 12131only a hokey way to pass control information but is supported by no 12132other SPI drivers. This change three things: (1) It adds 12133HWFEAT_LSBFIRST as a new H/W feature. (2) It changes the 12134implementations of SPI_SETBITS in the STM32 and EFM32 drivers so 12135that negated bit numbers are simply errors and it adds the 12136SPI_HWFEATURES method that can set the LSB bit order, and 12137(3) It changes all calls with negative number of bits from all 12138drivers: The number of bits is now always positive and 12139SPI_HWFEATURES is called with HWFEAT_LSBFIRST to set the bit order. 12140- Add missing SPI2 and SPI3 support for STM32F3F3. Add STM32F37XX DMA 12141channel configuration. For STM32F37XX, SYSCFG_EXTICR_PORTE defined 12142twice. From Alan Carvalho de Assis. 12143- STM32: Make stm32_pwr_enablebkp thread safe. From Max Neklyudov. 12144- Fix bad pllmul values for STM32F1XX connectivity line. STM32F1XX 12145connectivity line supports only x4, x5, x6, x7, x8, x9 and x6.5 12146values. From Michal Lyszczek. 12147- STM32F3 SPI: Fix the number of bit setting for the F3. That and 12148data packing work differently on the STM32F3 than for other STM32 12149parts. 12150- STM32 and STM32 L4: Enabling SPI DMA loses other bits in CR2. 12151- STM32F3 SPI: Cannot write always 16-bit value to DR register 12152because of how the F3 implements data packing. 12153- STM32F411 and STM32F446 map i2c2_sda_4 to different alternate 12154function numbers. From Konstantin Berezenko. 12155- STM32 DMA Fix: Change stm32 adc dma callback to send channel 12156number instead of index. From Konstantin Berezenko. 12157- STM32 OTGFS device: Fix for lost first word from FIFO 12158 121591) Do not overwrite Reserved Bits in GINTSTS (per ref manual)* 121602) Acknowledge all pending int on entry to ISR that are Only rc_w1* 121613) Do not disable RXFVL* 121624) Loop until RXFVL is cleared* 121635) Only clear the NAK on the endpoint on the OTGFS_GRXSTSD_PKTSTS_SETUPDONE to not loose the first WORD of FIFO all the data (Bug Fix) 12164 12165Changed marked *are just driver clean up and ensure ints are not lost. The bug fix is #5 12166 12167Test case open putty and observer the Set/Get LineCoding. Without this fix #5 the Get will not match the Set, and in fact the data might be skewed by 4 bytes, that are lost from the FIFO if the OTGFS_DOEPCTL0_CNAK bit is set in the OTGFS_GRXSTSD_PKTSTS_SETUPRECVD as opposed to the OTGFS_GRXSTSD_PKTSTS_SETUPDONE 12168 12169Set Line Coding DATA1: 4B | 00 c2 01 00 00 00 08 | c8 1B 12170Get Line Coding DATA1: 4B | .. .. .. .. 00 00 08 c8 .. 00 00 07 | 7a 72 12171 12172From David Sidrane. 12173- STM32 L4 OTGFS device: Apply stm32 fix to stm32l4. From Sebastien 12174Lorquet. 12175- STM32 F7: Remove duplicate call to pkt_input from Ethernet driver. 12176Issues noted by Pascal Speck. 12177- STM32 L4: Add support for USART3-USART5. For STM32L4 parts, the 12178higher number USART ports supported varies. Add the HAVE_USARTx 12179definitions to the configuration to allow enabling the higher 12180numbered USART ports. From Jim Wylder. 12181- STM32 USB: Set USB address to avoid a failed assertion. From 12182Pierre-noel Bouteville. 12183- STM32 L4 and L7 USB: Pierre's assertion-avoidance change should 12184also be applied to STM32 F7 and L4. 12185- STM32, L4, and F7: Remove GPIO_ETH_RMII_TX_CLK. TX_CLK is not 12186present in RMII. Mateusz Szafoni. 12187- STM32 Ethernet: Correct typo in conditional logic. From Neil 12188Hancock. 12189- STM32 L4 USB Device: Fixed L4 USB Driver by avoiding SETUPDONE and 12190EPOUT_SETUP. From David Sidrane. 12191- STM32 SPI: stm32_modifycr2 should be available on all platforms if 12192DMA is enabled. 12193- STM32 DMA2D: fix an error in up_dma2dcreatelayer where an invalid 12194pointer was returned when a certain underlying function failed. 12195From Jens Gräf. 12196 12197* TI Tiva Drivers: 12198 12199- Fix two bugs of tiva pwm lower-half driver implementation. From 12200Young. 12201- Tiva Ethernet: Needs support for CONFIG_NET_MULTIBUFFER=y. 12202 12203* C Library/Header Files: 12204 12205- lib_dumpbuffer() now prints a large on-stack buffer first to avoid 12206problems when the syslog output is prefixed with time. From 12207Pierre-noel Bouteville. 12208- libc/math: This fixes the following libc/math issues: (1) asin[f l]() 12209use Newton's method to converge on a solution. But Newton's method 12210converges very slowly (> 500,000 iterations) for values of x close to 122111.0; and, in the case of asinl(), sometimes fails to converge (loops 12212forever). The attached patch uses an trig identity for values of 12213x > sqrt(2). The resultant functions converge in no more than 5 12214iterations, 6 for asinl(). (2) The NuttX erf[f l]() functions are 12215based on Chebyshev fitting to a good guess. The problem there's a 12216bug in the implementation that causes the functions to blow up with 12217x near -3.0. This patch fixes that problem. It should be noted that 12218this method returns the error function erf(x) with fractional error 12219less than 1.2E-07 and that's fine for the float version erff(), but 12220the same method is used for double and long double version which 12221will yield only slightly better precision. This patch doesn't 12222address the issue of lower precision for erf() and erfl(). (3) a 12223faster version of copysignf() for floats is included. From David S. 12224Alessio. 12225- strtod() was not returning endptr on error conditions. 12226- libc/math: floor(), floorf(), and floorl(): Fix logic error. Was 12227not correctly handling negative integral value. 12228- isatty() should be prototyped in unstid.h, not termios.h. From 12229Sebastien Lorquet. 12230- nxglib: Fix handling of near-horizontal lines of width 1 in 12231nxgl_splitline(). Missing handling for degenerate condition caused 12232width 1 lines such as (0, 0) - (100, 10) to have gaps in the 12233drawing. From Petteri Aimonen. 12234 12235* Build/Configuration System: 12236 12237- Top-Level Makefiles: Fix a chicken-and-egg problem. In the menuconfig 12238target, the context dependency was executed before kconfig-mconf. That 12239was necessary because the link at apps/platform/board needed to be set 12240up before creating the apps/Kconfig file. Otherwise, the platform 12241Kconfig files would not be included. But this introduces the chicken- 12242and-egg problem in some configurations. In particular: (1) An NX 12243graphics configuration is used that requires auto-generation of 12244source files using cpp, (2) the configuration is set for Linux, but 12245(3) we are running under Cygwin with (4) a Windows native toolchain. 12246In this case, POSIX-style symbolic links are set up but the Windows 12247native toolchain cannot follow them. The reason we are running 12248'make menuconfig' is to change from Linux to Cygwin, but the target 12249fails. During the context phase, NX runs CPP to generate source files 12250but that fails because the Windows native toolchain cannot follow 12251the links. Checkmate. This was fixed by changing all of the make 12252menuconfig (and related) targets. They no longer depend on context 12253being run. Instead, they depend only on the dirlinks target. The 12254dirlinks target only sets up the directory links but does not try 12255to run all of the context setup; the compiler is never invoked; no 12256code is autogenerated and things work. 12257- CXXFLAGS: Add -fcheck-new whenever -fno-exceptions is used. From 12258Beat Küng. 12259 12260* Tools 12261 12262- tools/refresh.sh: Recent complexities added to apps/ means that 12263configuration needs the correct Make.defs file in place in order to 12264configure properly. 12265- tools/kconfig2html.c: Update to handle absolute paths when sourcing 12266Kconfig files. 12267- tools/mkfsdata.pl was still generating the old-style apps/include 12268inclusion paths. 12269 12270* Application Build/Configuration System: 12271 12272- Add DIRLINK and DIRUNLINK tool definitions to apps/Make.defs. 12273 12274* apps/nshlib: 12275 12276- Fix FIFO_SIZE vs PIPE_SIZE. 12277- Fix hex representation of IP address in Kconfig. Noted by Michal 12278Lyszczek. 12279- nsh_syscmds.c: missing semicolon. From Mateusz Szafoni. 12280- In system command, don't try to flush output streams if stdio 12281buffered I/O is not supported. 12282 12283* apps/canutils: 12284 12285- libuavcan: Under certain circumstances, DELIM is not be defined in 12286Makefile. 12287- Add definition for APPNAME in apps/canutils/canlib. From Sebastien 12288Lorquet. 12289 12290* apps/gpsutils: 12291 12292- Fix an error minmea. From Aleksandr Vyhovanec. 12293 12294* apps/examples: 12295 12296- apps/examples/oneshot: If the requested delay is > max_delay, then 12297break the delay up into several pieces. 12298 12299NuttX-7.19 Release Notes 12300------------------------ 12301 12302The 119th release of NuttX, Version 7.19, was made on December 26, 2016, 12303and is available for download from the Bitbucket.org website. Note 12304that release consists of two tarballs: nuttx-7.19.tar.gz and 12305apps-7.19.tar.gz. These are available from: 12306 12307https://bitbucket.org/nuttx/nuttx/downloads 12308https://bitbucket.org/nuttx/apps/downloads 12309 12310Both may be needed (see the top-level nuttx/README.txt file for build 12311information). 12312 12313Additional new features and extended functionality: 12314 12315* Core OS: 12316 12317- sched/semaphore, sched/phread/, libc/semaphore, libc/pthread: Add 12318pthread_mutexattr_get/set_protocol and non-standard 12319sem_get/set_protocol. These may use to enable or disable priority 12320inheritance on a single semaphore. 12321- Spinlocks: Added capability to provide architecture-specific memory 12322barriers. 12323- SMP: Add spin_trylock(). Use this in conditions where other CPUs need 12324to stopped but we cannot call enter_critical_section(). 12325- sched note: Extend OS instrumentation to include some SMP events. 12326Also add spinlock instrumentation; In SMP configurations, add a 12327filter mask to log only notes from certain CPUs. 12328- sched note: Permit spinlock and critical section notes in in-memory 12329buffer iff sched_not_get() interfaces is disabled. 12330- sched note: Add additional note to see if/when CPU is started in SMP 12331mode. 12332- sched note: Record ID enumeration now results on constant values; ID 12333values do not change with configuration. This makes writing post-processing software much easier. 12334- boardctl: Add new boardctl() command, BOARDIOC_NX_START, to start the 12335NX server as a kernel thread. 12336- pthreads: Add pthread_cleanup_push() and pthread_cleanup_pop(). 12337- pthreads: Added pthread_setcanceltype() and pthread_testcancel(). 12338- pthreads: Add support for cancellation points. 12339- task_delete() now obeys all cancellation point semantics. 12340- Add task_setcancelstate(), task_setcanceltype(), and 12341task_testcancel(). These are non-standard interfaces analogous to the 12342corresponding pthread_ interfaces that provide cancellation controls 12343for tasks. 12344 12345* Graphics/Display Drivers: 12346 12347- boardctl: Add new boardctl() command, BOARDIOC_NX_START, to start the 12348NX server as a kernel thread. 12349 12350* Networking/Network Drivers: 12351 12352- Network drivers: Add option to use low-priority work queue to all 12353Ethernet and MAC level drivers. 12354- Network Drivers: Adapt all Ethernet (and other MAC) drivers to work 12355as though CONFIG_NET_MULTIBUFFER were set. Remove all references to 12356CONFIG_NET_MULTIBUFFER. 12357- Eliminate CONFIG_NO_NOINTS. There is no longer any support for 12358interrupt level processing of the network stack. Lots of files changed. 12359 12360* Other Common Device Drivers: 12361 12362- Vishay VEML6070: Add Vishay VEML6070 driver. From Alan Carvalho de 12363Assis. 12364 12365* ARMv7-A 12366 12367- ARMv7-A/i.MX6: Add SCU register definitions. Add some controls to 12368enable SMP cache coherency in SMP mode. Makes no difference, however 12369-- cache still incoherent on i.MX6. 12370- ARMv7 GIC: SGIs are non-maskable but go through the same path as 12371other, maskable interrupts. Added logic to serialize SGI processing 12372when necessary. 12373 12374* Atmel SAM3/4: 12375 12376- SAM3/4: Add SMP support for the dual-core SAM4CM. From Masayuki 12377Ishikawa. 12378 12379* Atmel SAM3/4 Drivers: 12380 12381- Add support for the SAM5CMP-DB board. From Masayuki Ishikawa. 12382 12383* Atmel SAM3/4 Boards: 12384 12385- SAM4CMP-DB: Add support for the Atmel SAM4CMP-DB board running in an 12386SMP configuration. From Masayuki Ishikawa. 12387- SAM4CMP-DB: Add hooks to auto-mount the procfs file system on startup 12388in board bring-up logic. 12389 12390* Atmel SAMV7 Drivers: 12391 12392- SAMv7: Register the watchdog device at the configured device path 12393CONFIG_WATCHDOG_DEVPATH vs. hard-coded /dev/wdt. From Frank Benkert. 12394 12395* Calypso 12396 12397- Calyps: Remove all Calypso board configurations. Remove Calypso 12398architecture support and support for Calypso SERCOMM driver. 12399 12400* Misoc LM32: 12401 12402- Misoc LM32: Adds basic support for the Misoc procoessors and the LM32 12403in particular. From Ramtin Amin. 12404- Misoc LM32: Add signal handling logic. From Ramtin Amin. 12405- Misoc LM32: Add logic to flush/invalidate caches. From Ramtin Amin. 12406 12407* Misoc LM32 Drivers: 12408 12409- Misoc LM32 Serial: Add interrupting Misoc serial driver. From Ramtin 12410Amin. 12411- Misoc LM32 Timer: Add timer driver. From Ramtin Amin. 12412- Misoc LM32: Add Misoc Ethernet driver From Ramtin Amin. 12413 12414* Misoc LM32 Boards: 12415 12416- Misoc LM32 Qemu: Board support for testing Misoc LM32 with Qemu. From 12417Ramtin Amin. 12418- Misoc LM32 Qemu: Integrate network support into configs/misoc/hello. 12419From Ramtin Amin. 12420- Misoc LM32 Qemu: Remove configs/misoc/include/generated directory. I 12421suppose the intent now is that this is a symbolic link? DANGER! 12422This means that you cannot compile this code with first generating 12423these files a providing a symbolic link to this location! There is a 12424sample directory containing generated sources. This is really only 12425useful for performing test builds. You really must generate the Misoc 12426architecture for a real-life build. From Ramtin Amin. 12427 12428* NXP Freescale i.MX6 Drivers: 12429 12430- i.MX6: Add an untested SPI driver taken directly from the i.MX1 port. 12431 12432* NXP Freescale Kinetis: 12433 12434- Kinetis: Added missing headers. Kinetis broke out SPI to 12435kinetis/kinetis_spi.h. Broke out DMA to use the modern NuttX chip 12436inclusion - still STUBS. Add Kinetis support for ARMV7-M Common 12437Vector and FPU. Allow CONFIG_ARMV7M_CMNVECTOR, 12438CONFIG_STACK_COLORATION, CONFIG_ARCH_FPU. Fix i2c driver offset 12439swapped for value in kinetis_i2c_putreg. From David Sidrane. 12440 12441* NXP Freescale Kinetis Drivers: 12442 12443- Kinetis: Add UID Unique ID. From Neil Hancock. 12444 12445* NXP Freescale Kinetis Boards: 12446 12447- Freedom-K64F board: Add support for UID Unique ID. From Neil Hancock. 12448 12449* NXP Freescale LPC17xx Boards: 12450 12451- Olimex-LPC1766-STK: Enable procfs in NSH configuration. Automount 12452/proc on startup. 12453 12454* NXP Freescale LPC43xx Drivers: 12455 12456- LPC43xx: Add timer driver: From Alan Carvalho de Assis. 12457- LPC43xx GPDMA driver: The GPDMA block is basically the same as the 12458LPC17xx. Only the clock configuration is different and LPC43xx has 12459four different DMA request sources, where LPC17xx has only two. From 12460Alan Carvalho de Assis. 12461 12462* NXP Freescale LPC43xx Boards: 12463 12464- Bambino 200E: Add basic support to Micromint Bambino 200E board. 12465This includes contributions from Jim Wolfman. From Alan Carvalho de 12466Assis. 12467- Bambino 200E: Add support for timer driver. From Alan Carvalho de 12468Assis. 12469 12470* RGMP: 12471 12472- Remove RGMP and RGMP drivers. 12473 12474* RISC-V: 12475 12476- RISC-V: Add support for the RISC-V architecture and 12477configs/nr5m100-nexys4 board. The board support on this is pretty 12478thin, but it seems like maybe a good idea to get the base RISC-V stuff 12479in since there are people interested in it. From Ken Pettit. 12480 12481* STMicro STM32 Drivers: 12482 12483- STM32 F3: Implementation of the STM32 F37xx SDADC module. There are 12484also changes to ADC, DAC modules. SDADC has only been tested in DMA 12485mode and does not support external TIMER triggers. This is a work in 12486progress. From Marc Rechté. 12487- STM32 F3: Add PWM driver support for STMF37xx. The changes have been 12488tested successfully for TIM4 and TIM17 (different IPs). From Marc 12489Rechté. 12490- STM32 F4: Support oversampling by 8 for the STM32 F4. From David 12491Sidrane. 12492- STM32 F4: Added Timers 2-5 and control of SAI and I2S PLLs. Added 12493support for stmf469 SAI and I2S PLL configuration and STM446 fixes. 12494From David Sidrane. 12495- STM32 F4: Expanded OTGFS support to stm32F469 and stm32f446. Added 12496missing bit definitions, Used stm32F469 and stm32f446 bit 12497definitions, Removed unused header file. From David Sidrane. 12498- STM32 F4: Allow dma in 1 bit mode in STM32F4xxx. From David Sidrane. 12499- STM32 F7: Allow the config to override the clock edge setting. From 12500David Sidrane. 12501- STM32 L4: Support Complementary PWM outputs on STM32L4. From 12502Sebastien Lorquet. 12503- STM32 L4: Add implementation of dumpgpio for stm32l4, was required 12504for pwm debug. From Sebastien Lorquet. 12505 12506* STMicro STM32 Boards: 12507 12508- STM32F103 Minimum: Add button support. From Alan Carvalho de Assis. 12509- STM32F103 Minimum: Add support to PWM on STM32F103-Minimum board. 12510From Alan Carvalho de Assis. 12511- STM32F103 Minimum: Add RGB LED support on STM32F103 Minimum board. 12512From Alan Carvalho de Assis. 12513- STM32F103 Minimum: Add Vishay VEML6070 driver support to the 12514STM32F103-Minimum board. From Alan Carvalho de Assis. 12515- Nucleo-F303RE: Add STM32 F303RE hello configuration. From Marc 12516Rechté. 12517- Nucleo-L476: Support PWM testing on board Nucleo L476. From 12518Sebastien Lorquet. 12519- Nucleo L476: Add support for timers to Nucleo L476. From Sebastien 12520Lorquet. 12521- Hymini STM32v: Enable CONFIG_RTC in the hymini-stm32v/nsh2 12522(kitchensink) config. From Maciej Wójcik. 12523- Olimex STM32-p407: Add support for the Olimex STM32 P407 board. 12524 12525* TI Tiva Drivers: 12526 12527- Tiva PWM: Support PWM_PULSECOUNT feature for TI tiva. From Young.Mu. 12528 12529* Xtensa/ESP32 12530 12531- Xtensa ESP32: Basic architectural support for Xtensa processors and 12532the Espressif. ESP32 added. 12533- Xtensa ESP32: Add EXPERIMENTAL hooks to support lazy Xtensa 12534co-processor state restore in the future. 12535- Xtensa ESP32: Basic port is function in both single CPU and dual CPU 12536SMP configurations. There is an NSH configuration for each CPU 12537configuration. Outstanding issues include missing clock configuration 12538logic, missing partition tables to support correct configuration from 12539FLASH, and some serial driver pin configuration issues. 12540- Xtensa ESP32: Add stack checking logic. 12541 12542* Xtensa/ESP32 Boards: 12543 12544- ESP32 Core v2: Basic support for Espressif ESP32 Core v2 board 12545added. The initial release includes an NSH and an SMP test 12546configuration. 12547- ESP32 Core v2: Add configuration to support linking NuttX for 12548execution out of IRAM. 12549- ESP32 Core v2: Automatically mount /proc at start-up. 12550- ESP32 Core v2: Add an OS test to verify the port. 12551 12552* C Library/Header Files: 12553 12554- libc/locale: Add a dummy setlocale() function to avoid drawing the 12555function from newlib. Add clocale header file. 12556- include/locale.h: Modify locale.h to add localeconv() and lconv 12557structure. From Alan Carvalho de Assis. 12558- libc/locale: Allows c++ code to compile with or without 12559CONFIG_LIBC_LOCALE and will generate a link error if 12560CONFIG_LIBC_LOCALE is not defined and setlocale is referenced. With 12561CONFIG_LIBC_LOCALE defined setlocale will act as if MB string is not 12562supported and return "C" for POSIX. C and "". From David Sidrane. 12563- libc/wchar: Add wcslen, wmemchr, wmemcmp, wmemcpy wmemset, btowc, 12564mbrtowc, mbtowc, wcscmp, wcscoll, and wmemmove to NuttX. From Alan 12565Carvalho de Assis. 12566- libc/wctype: Add functions wcrtomb, wcslcpy, wcsxfrm, wctob, wctomb, 12567wctype, localeconv, strcoll, strxfrm, swctype, towlower, towupper and 12568wcsftime. Add wctype.h; Move lib_wctype.c to libc/wctype. From Alan 12569Carvalho de Assis. 12570- include/ctype.h : Add isblank() macro to ctype.h. From Alan Carvalho 12571de Assis. 12572- lic/stdlib: Add strtof() and strtold() as simply a copy of strtod 12573with types and limits changed. 12574- sscanf(): Use strtof() instead of strtod() if a short floating point 12575value was requested. The should help performance with MCUs with 1257632-bit FPU support with some additional code size. 12577- sscanf(): Add scansets to the scanf function. Enabled 12578CONFIG_LIBC_SCANSET option. From Aleksandr Vyhovanec. 12579- include/inttypes.h: Add architecture-specific inttypes.h. From Paul 12580A. Patience. 12581- C Library: Allow option to enable IP address conversions even when 12582the IP address family is not supported. 12583 12584* Build/Configuration System: 12585 12586- The Smoothie project needs to compile C++ inside config/boardname/src/ 12587to use with High Priority Interruption, then I modified the board 12588configs Makefile to support it. It works fine for the first time 12589compilation, but if we execute "touch config/boardname/src/Pin.cxx" 12590and execute "make" it will not detect that Pin.cxx was modified. I 12591think there is some other place I should modify, but I didn't find 12592it. From Alan Carvalho de Assis. 12593 12594* Tools: 12595 12596- tools/: Add tools/showsize.sh. 12597 12598* NSH: apps/nshlib: 12599 12600- NSH: dd command will show statistics. From Masayuki Ishikawa. 12601 12602* Applications: apps/system: 12603 12604- apps/system/sched_note: Extend to include additions to instumentation 12605for SMP. 12606- apps/system/sched_note: Add support for spinlock notes. 12607- apps/system/sched_note: Add support for new scheduler instrumentation. 12608 12609* Platforms: apps/platform: 12610 12611- ESP32 Core v2: Add platform support for the ESP32 core v2 board. 12612- Olimex STM32-p407: Add platform support for the Olimex STM32 P407. 12613 12614* Graphics: apps/graphics 12615 12616- graphics/traveler/tcledit and libwld: Add an X11 Tcl/Tk tool that can 12617be used to edit Traveler world files. 12618- Graphics: Remove all NX server taks. Instead, call boardctl() to the 12619NX server kernel thread. 12620 12621* Applications: apps/examples: 12622 12623- examples/buttons: Add a new buttons example that uses the button 12624character driver instead of the architecture buttons directly. From 12625Alan Carvalho de Assis. 12626- examples/cctype: Add an example to verify cctype functions. 12627- Remove RGMP example. 12628- examples/ostest: Extend the pthread cancellation test to exercise 12629pthread_cleanup_push() (and pthread_cleanup_pop() indirectly via 12630pthread_cancel() and pthread_exit(). 12631- examples/ostest: enhance pthread cancellation test some. 12632 12633Works-In-Progress: 12634 12635* IEEE802.14.5/6LowPAN. Hooks and framework for this effort were 12636introduced in NuttX-7.15. Work has continued on this effort on 12637forks from the main repositories, albeit with many interruptions. 12638The completion of this wireless feature will postponed until at 12639least NuttX-7.20. 12640 12641Bugfixes. Only the most critical bugfixes are listed here (see the 12642ChangeLog for the complete list of bugfixes and for additional, more 12643detailed bugfix information): 12644 12645* Core OS: 12646 12647- sched/semaphore: Within the OS, when a thread obtains a semaphore 12648count it must call sem_addholder() if CONFIG_PRIORITY_INHERITANCE is 12649enabled. If a count is available, then sem_wait() calls 12650sem_addholder(), otherwise it waited for the semaphore and called 12651sem_addholder() when it eventually received the count. This caused a 12652problem when the thread calling sem_wait() was very low priority. 12653When it received the count, there may be higher priority threads 12654"hogging" the CPU that prevent the lower priority task from running 12655and, as a result, the sem_addholder() may be delayed indefinitely. 12656The fix was to have sem_post() call sem_addholder() just before 12657restarting the thread waiting for the semaphore count. This problem 12658was noted by Benix Vincent who also suggested the solution. 12659- Many files: Make sure that priority inheritance is not enabled for 12660semaphores whose primary use is signaling (vs locking of resources) by 12661calling sem_setprotocol(). 12662- sched/semaphore: sem_trywait() no longer modifies the errno value 12663UNLESS an error occurs. This allows these functions to be used 12664internally without clobbering the errno value. From Freddie Chopin. 12665- sched/clock: Correct clock initialization. The correct range for the 12666month is 0-11 but is entered as 1-12 in the .config file. Add ranges 12667to START_YEAR, MONTH, and DAY in sched/Kconfig. 12668- sched/clock: Correct calculation for the case of Tickless mode with a 1266932-bit timer. In that case, the calculation was returning millisecond 12670accuracy. That is not good when the timer accuracy is < 1 msec. From 12671Rajan Gill. 12672- Work Queue: When queuing new LP work, don't signal any threads if 12673they are all busy. From Heesub Shin. 12674- Work Queue: Signal sent from work_signal() may interrupt the low 12675priority worker thread that is already running. For example, the 12676worker thread that is waiting for a semaphore could be woken up by the 12677signal and break any synchronization assumption as a result. It also 12678does not make any sense to send signal if it is already running and 12679busy. This change fixes it. From Heesub Shin. 12680- Fix DEBUGASSERT() in group_signal.c. From Masayuki Ishikawa. 12681- Eliminate bad boardctl() commands: Remove all references to 12682BOARDIOC_PWMSETUP and board_pwm_setup(). Remove all references to 12683BOARDIOC_ADCSETUP and board_adc_setup(). Remove 12684BOARDIOC_CAN_INITIALIZE. CAN initialization is now done in the board 12685initialization logic just like every other device driver. 12686- pthreads: Fix an error in pthread_mutex_destroy(). An error could 12687occur while destroying a mutex after a pthread has been canceled while 12688holding the mutex. 12689- task_restart: Make sure new task starts with pre-emption disabled and 12690not in a critical section. 12691- Enter/leave Critical Sections. Major redeign to 12692enter/leave_critical_section logic to deal with the case where 12693interrupts are disabled only on the local CPU. In this case, some 12694rather complex spinlocks must be used to maintain the critical section 12695across all CPUs. 12696- SMP Critical Sections: Fixes for the SMP case: (1) Change order for 12697SMP case in enter_critical_section: (1) Disable local interrupts 12698BEFORE taking spinlock and (2) If SMP is enabled, if any interrupt 12699handler calls enter_critical_section(), it should take the spinlock. 12700- SMP wdogs: Wdog timers use a tasking interface that to manipulate 12701wdogs, and a different interface in the timer interrupt handling logic 12702to manage wdog expirations. In the single CPU case, this is fine. 12703Since the tasking level code calls enter_critical_section, interrupts 12704are disabled and no conflicts can occur. But that may not be the case 12705in the SMP case. Most architectures do not permit disabling 12706interrupts on other CPUs so enter_critical_section must work 12707differently: Locks are required to protect code. this change adds 12708locking (via enter_critical section) to wdog expiration logic for the 12709the case if the SMP configuration. 12710- SMP vfork(): Fix a race condition in the SMP case. Existing logic 12711depended on the fact that the child would not run until waitpid was 12712called because the child had the same priority as the parent. BUT in 12713the SMP case that is not true... the child may run immediately on a 12714different CPU. 12715- SMP: This change adds a new internal interfaces and fixes a problem 12716with three APIs in the SMP configuration. The new internal interface 12717is sched_cpu_pause(tcb). This function will pause a CPU if the task 12718associated with 'tcb' is running on that CPU. This allows a different 12719CPU to modify that OS data structures associated with the CPU. When 12720the other CPU is resumed, those modifications can safely take place. 12721The three fixes are to handle cases in the SMP configuration where one 12722CPU does need to make modifications to TCB and data structures on a 12723task that could be running running on another CPU. Those three cases 12724are task_delete(), task_restart(), and execution of signal handlers. 12725In all three cases the solutions is basically the same: (1) Call 12726sched_cpu_pause(tcb) to pause the CPU on which the task is running, 12727(2) perform the necessary operations, then (3) call up_cpu_resume() to 12728restart the paused CPU. 12729- SMP: Add logic to avoid a deadlock condition when CPU1 is hung waiting 12730for g_cpu_irqlock with interrupts interrupts and CPU0 is waiting for 12731g_cpu_paused. 12732- SMP: Enforce this rule: Tasks which are normally restored when 12733sched_unlock() is called must remain pending (1) if we are in a 12734critical section, i.e., g_cpu_irqlock is locked , or (2) other CPUs 12735still have pre-emption disabled, i.e., g_cpu_schedlock is locked. In 12736those cases, the release of the pending tasks must be deferred until 12737those conditions are met. 12738 12739* File System/Block Drivers/MTD Drivers: 12740 12741- AT24XX EEPROM MTD driver: Added EEPROM timeout. Fromo Aleksandr 12742Vyhovanec. 12743- fs/procfs: Fix procfs status for SMP case. 12744 12745* Graphics/Graphic Drivers: 12746 12747- Fonts: Correct some default font IDs. From Pierre-Noel Bouteville. 12748 12749* Common Drivers: 12750 12751- usbhost/enumerate: Fix possible buffer overwrite. From Janne Rosberg. 12752- usbhost/composite: Fix compile; missing semicolons. From Jann Rosberg. 12753- syslog: Fixes required for file syslog output. From Max Kriegleder. 12754- SPI configuration: Fix Kconfig warning. This change moves the 12755ARCH_HAVE_SPI options outside the check for SPI. Those options don't 12756depend on SPI, and Kconfig files in arch/ enable them even if SPI 12757isn't enabled. Source the driver's Kconfig in drivers/Kconfig only 12758if support for the driver is enabled prevents us from defining these 12759ARCH_HAVE options in the driver's Kconfig. We should probably remove 12760the other checks in drivers/Kconfig and check if the drivers are 12761enabled only in their Kconfig. From Paul A. Patience. 12762- drivers/timer: Remove the timer driver TIOC_SETHANDLER IOCTL call. 12763This calls directly from the timer driver into application code. That 12764is non-standard, non-portable, and cannot be supported. Instead, add 12765timer driver hooks to support signal notification of timer 12766expiration. Signal notification logic added by Sebastien Lorquet. 12767- All timer lower half drivers. Port Sebastien's changes to all other 12768implementations of the timer lower half. 12769- USB MSC Device: Fix length of mode6 sense reply packet. From 12770Wolfgang Reißnegger. 12771- USB Composite Host: Fix end offset in usbhost_copyinterface(). From 12772Janne Rosberg. 12773- USB CDC/ACM Host: Add CDC_SUBCLASS_ACM and CDC_PROTO_ATM to 12774supported class and proto. From Janne Rosberg. 12775- SSD1306: Fix errors in SPI mode configuration. From Gong Darcy. 12776- CDC/ACM Device Class: uart_ops_s portion of cdcacm will not be 12777initialized with correct functions if CONFIG_SERIAL_DMA is selected. 12778 12779* Networking/Network Drivers: 12780 12781- drivers/net/tun.c: Fix bug in TUN interface driver. From Max Nekludov. 12782 12783* ARMv7-A: 12784 12785- ARMv7-A SMP: Add SMP logic to signal handling. 12786 12787* ARMv7-M: 12788 12789- ARMv7-M: Fix double allocation of MPU region in mmu.h. 12790 12791* ARMv7-R: 12792 12793- ARMv7-R: Fix compilation error. This change fixes compilation errors 12794on MPU support for ARMv7-R. From Heesub Shin. 12795- ARMv7-R: fix invalid drbar handling. In ARMv7-R, [31:5] bits of DRBAR 12796is physical base address and other bits are reserved and SBZ. Thus, 12797there is no point in passing other than the base address. From Heesub 12798Shin. 12799- ARMv7-R: Remove the redundant update on SCTLR. mpu_control() is 12800invoking cp15_wrsctlr() around SCTLR update redundantly. From Heesub 12801Shin. 12802- ARMv7-R: Add new Kconfig entries for D/I-cache. Unlike in ARMv7-A/M, 12803Kconfig entries for data and instruction caches are currently missing 12804in ARMv7-R. This change adds those missing Kconfig entries. Actual 12805implementation for those functions will be added in the subsequent 12806patches. From Heesub Shin. 12807- ARMv7-R: Add cache handling functions. This change adds functions for 12808enabling and disabling d/i-caches which were missing for ARMv7-R. 12809From Heesub Shin. 12810- ARMv7-R: Fix typo in mpu support. s/ARMV7M/ARMV7R/g. From Heesub Shin. 12811- ARMv7-R: Fix CPSR corruption after exception handling. A sporadic 12812hang with consequent crash was observed when booting. It seemed to be 12813caused by the corrupted or wrong CPSR restored on return from 12814exception. NuttX restores the context using code like this: msr spsr, 12815r1. GCC translates this to: msr spsr_fc, r1. As a result, not all 12816SPSR fields are updated on exception return. This should be: msr 12817spsr_fsxc, r1. On some evaluation boards, spsr_svc may have totally 12818invalid value at power-on-reset. As it is not initialized at boot, the 12819code above may result in the corruption of cpsr and thus unexpected 12820behavior. From Heesub Shin. 12821- ARMv7-R: Fix to restore the Thumb flag in CPSR. Thumb flag in CPSR is 12822not restored back when the context switch occurs while executing thumb 12823instruction. From Heesub Shin. 12824 12825* Atmel SAM3/4 Drivers: 12826 12827- SAM3/4 UDP: Add delay between setting and clearing the endpoint RESET 12828bit in sam_ep_resume(). We need to add a delay between setting and 12829clearing the endpoint reset bit in SAM_UDP_RSTEP. Without the delay 12830the USB controller will (may?) not reset the endpoint. If the 12831endpoint is not being reset, the Data Toggle (DTGLE) bit will not to 12832be cleared which will cause the next transaction to fail if DTGLE is 128331. If that happens the host will time-out and reset the bus. Adding 12834this delay may also fix the USBMSC_STALL_RACEWAR in usbmsc_scsi.c, 12835however this has not been verified yet. From Wolfgang Reißnegger. 12836- SAM3/4: Remove unused 'halted' flag from UDP driver. From Wolfgang 12837Reißnegger. 12838- SAM3/4: Remove 'stalled' flag from the UDP driver. This flag is not 12839necessary because the state of the endpoint can be determined using 12840'epstate' instead. From Wolfgang Reißnegger. 12841 12842* Atmel SAM3/4 Boards: 12843 12844- SAM4S Xplained Pro: Configuration uses old, improper timer interface. 12845CONFIG_TIMER disabled in configuration. Remove obsolete timer 12846initialization logic. 12847 12848* Atmel SAMV7 Drivers: 12849 12850- SAMv7 USBDEVHS: A problem occurred with the SAMV7 USBDEVHS driver if 12851the USB cable is unplugged while a large amount of data is send over 12852an IN endpoint using DMA. If the USB cable is plugged in again after a 12853few seconds it is not possible to send data over this IN endpoint 12854again, all other endpoints work as expected. The problem occurs 12855because if the USB cable is unplugged while an DMA transfer is in 12856flight the transfer is canceled but the register SAM_USBHS_DEVDMACTRL 12857is left in an undefined state. The problem was fixed the problem by 12858resetting the register SAM_USBHS_DEVDMACTRL to a known state. 12859Additionally all pending interrupts are cleared. From Stefan Kolb. 12860- SAMV7 MCAN: Prevent Interrupt-Flooding of ACKE when not connected to 12861CAN-BUS. An Acknowledge-Error will occur every time no other CAN Node 12862acknowledges the message sent. This will also occur if the device is 12863not connected to the can-bus. The CAN-Standard declares, that the Chip 12864has to retry a given message as long as it is not sent successfully 12865(or it is not cancelled by the application). Every time the chip tries 12866to resend the message an Acknowledge-Error-Interrupt is generated. At 12867high baud rates this can lead in extremely high CPU load just for 12868handling the interrupts (and possibly the error handling in the 12869application). To prevent this Interrupt-Flooding we disable the ACKE 12870once it is seen as long we didn't transfer at least one message 12871successfully. From Frank Benkert. 12872- SAMV7 MCAN: Make delete_filter functions more robust. From Frank 12873Benkert. 12874 12875* Atmel SAMA5 Drivers: 12876 12877- SAMA5 PWM: Driver does not build when executing from SDRAM before 12878board frequencies are not constant. Rather, the bootloader configures 12879the clocking and we must derive the clocking from the MCK left by the 12880bootloader. This means lots more computations. This is untested on 12881initial change because I don't have a good PWM test setup right now. 12882 12883* Misoc LM32: 12884 12885- Misoc LM32: Corrects a bug that never occurred in qemu on simulation or 12886real fpga. The error was that the r1 register was being modified out 12887of context switching and not restoring it. From Ramtin Amin 12888 12889* NXP Freescale i.MX6: 12890 12891- i.MX6 interrupt handling: Additional logic needed to handle nested 12892interrupts when an interrupt stack is used. Nesting can occur because 12893SGI interrupts are non-maskable. 12894 12895* NXP Freescale LPC43xx Drivers: 12896 12897- LPC43xx serial: Fix a typo in ioctl TIOCSRS485 ioctl. From Vytautas 12898Lukenskas. 12899- LPC43xx serial: Restore RS485 mode on serial port open (if RS485 is 12900enabled via menuconfig). From Vytautas Lukenskas. 12901- LPC43xx SD/MMC: Correct some definitions on SMMC control register in 12902lpc43_sdmmc.h. From Alan Carvalho de Assis. 12903- LPC43xx SD card: Correct pin configuration options needed for SD card 12904pins. From Alan Carvalho de Assis. 12905 12906* SiLabs EFM32: 12907 12908- EFM32: Fix a compilation error. From Pierre-noel Bouteville. 12909 12910* STMicro STM32 Drivers: 12911 12912- STM32 CHxN channels are always outputs. From Sebastien Lorquet. 12913- STM32 DAC: Fix shift value whenever there are is a DAC2 and, hence, 12914up to three interfaces. From Marc Rechté. 12915- STM32 F1: Add TIM8 to STM32F103V pinmap. From Maciej Wójcik. 12916- STM32 F1: Fix for F1 RTC Clock, tested on F103. From Maciej Wójcik. 12917- STM32 F3: STM32F303xB and STM32F303xC chips have 4 ADCs. From Paul 12918A. Patience. 12919- STM32 F4: A new implementation of the STM32 F4 I2C bottom half. The 12920common I2C as this did not handled correctly in the current 12921implementation (see also https://github.com/PX4/NuttX/issues/54). The 12922changes almost exclusively affect the ISR. From Max Kriegleder. 12923- STM32 F4 OTGHS Host: If STM32F446 increase number of channels to 1292416. From Janne Rosberg. 12925- STM32 F4: I think, that Size is (highest address+1 - Base address). 12926Base address has been removed and if address+count >= size we are 12927outside of the Flash. From David Sidrane. 12928- STM32 F4: Fix ADC compilation error when DMA isn't enabled. From Paul 12929A. Patience. 12930- STM32 F4: STM32F427 was rebooting. Over reached family. From David 12931Sidrane. 12932- STM32 F4: Added STM32F469 RAM size and deliberated STM32F446 size. 12933From David Sidrane. 12934- STM32 F4: Typo in stm32f76xxxx_pinmap.h edited online with 12935Bitbucket. From David Sidrane. 12936- STM32 F7: stm32_i2c.c Dejavu. Fixes a bug previously found in the 12937F4. From David Sidrane. 12938- STM32 F7: OTGDEV fixed typo. From David Sidrane. 12939- STM32 F7: Fix to SPI-Master driver. Without this the chip select 12940decoding feature will not work properly. From Michael Spahlinger. 12941- STM32 F7: STM32F7 SD/MMC driver depends on CONFIG_SDIO_DMA which is 12942only defined in stm32/Kconfig. Changed to CONFIG_STM32F7_SDMMC_DMA 12943and defined in stm32f7/Kconfig. 12944- STM32 F7: Fix some STM32F7 copy paste errors. From David Sidrane. 12945- STM32 L4: Complementary PWM outputs on STM32L4" (1) too many 12946parentheses when calculating max chan count and (2) channel 4 does not 12947have a complementary output. From Sebastien Lorquet. 12948- STM32 L4: Fix I2C devices RCC registers. From Sebastien Lorquet. 12949- STM32 L4: Enable and renaming for 32l4 UARTs 4 and 5. From Sebastien 12950Lorquet. 12951- STM32 L4: Change the way to configure quadrature encoder prescalers. 12952From Sebastien Lorquet. 12953- STM32 L4: Correct USART1/2 definitions. Use default mbed UART4 12954settings. From Sebastien Lorquet. 12955 12956* STMicro STM32 Boards: 12957 12958- STM32F103 Minimum: Fix Timers 2 to 7 clock frequencies. From Alan 12959Carvalho de Assis. 12960- Nucleo-F303RE: Remove duplicate setting from board.h. From Marc 12961Rechté. 12962- Nucleo F303RE: Various fixes to get the ADC configuration building 12963again after PR. Refresh all configurations. 12964- Nucleo L476RG: Add better selection of timer. 12965 12966* TI Tiva Boards: 12967 12968- DK-TM4C129x: Typo fix. From Wolfgang Reißnegger. 12969 12970* Xtensa ESP32: 12971 12972- ESP32 core v2: Flush the UART TX buffer in the esp32 serial shutdown 12973routine. The ROM bootloader does not flush the FIFO before handing 12974over to user code, so some of this output is not currently seen when 12975the UART is reconfigured in early stages of startup. From Angus 12976Gratton. 12977- Xtensa ESP32: Corrects a problem with dispatching to signal 12978handlers: Cannot vector directly to the signal handling function as 12979in other ABIs under the Xtensa Window ABI. In that case, we need to 12980go through a tiny hook when performs the correct window call (call4) 12981otherwise registers will be scrambled in the signal handler. 12982 12983* Xtensa ESP32 Boards: 12984 12985- ESP32 core v2: Changes the openocd config file's default flash 12986voltage from 1.8V to 3.3V. This is not necessary right now, but may 12987save some hard-to-debug moments down the track (3.3V-only flash 12988running at 1.8V often half-works and does weird things...). From 12989Angus Gratton. 12990 12991* C Library/Header Files: 12992 12993- libc/stdio: Fixes sscanf() %sn where strlen(data) < n. From David 12994Sidrane. 12995- libc/stdio: Include wchar.h in lib_libvsprintf.c to fix compilation 12996error. From Alan Carvalho de Assis. 12997- include/sys/time.h: timersub macro modified per recommendations of 12998phreakuencies. 12999- include/ctype.h and cxx/cctype: Implement ctype.h functions as inline 13000if possible. cctype can then properly select namespace. 13001- include/: Fix a number of header files with mismatched 'extern C {' 13002and '}'. 13003- libc/unisted: Change brings strtol() and related functions more 13004conformant with POSIX. Corner cases like strtol(-2147483648, NULL, 1300510) now pass clang -fsanitize=integer without warnings. From Juha 13006Niskanen. 13007- libc/unistd: sleep() was returning remaining nanoseconds (kind of), 13008instead the remaining seconds. From Eunbong Song. 13009- termios.h: Fix CRTSCTS define to include input and output flow. From 13010Lorenz Meier. 13011 13012* Build/Configuration System: 13013 13014- configs/*/defconfig: The buttons example was changed to archbuttons. 13015As a result all of the button configurations are broken and need some 13016renaming in the defconfig files. Noted by Frank Berkert. 13017- config/*/defconfgs: More fallout from name change of 13018apps/examples/buttons to archbuttons. 13019- configs: All QE encoder files. Last change made timer hard-coded to 130203. Make configurable. 13021- configs: Remove all traces of the no-longer existent ARCHBUTTONS 13022example. Remove all button configurations that depended on the 13023obsoleted ARCHBUTTON example. 13024- minnsh Configurations: Remove minnsh configurations and support 13025logic: up_getc() and lowinstream. This was an interesting exercise 13026to see just how small you could get NuttX, but otherwise it was not 13027useful: (1) the NSH code violated the OS interface layer by callup 13028up_getc() and up_putc() directly, and (2) while waiting for character 13029input, NSH would call up_getc() which would hog all of the CPU. Not a 13030reasonable solution other than as a proof of concept. 13031 13032* Application Build/Configuration System: 13033 13034- Make.defs: Using wrong link script if native window tool used with 13035Cygwin. 13036 13037* apps/platform: 13038 13039- ESP32 Core v2 Platform: Fix some naming that prevented building the 13040C++ support. 13041 13042* apps/nshlib: 13043 13044- NSH Library: nsh_getdirpath(), use snprint instead of sprintf to 13045avoid possibility of buffer overrun. Noted by Chung Hwan Kim. 13046 13047* apps/system: 13048 13049- Remove std_readline(). This called up_getc() and up_putc() directly, 13050violating the POSIX OS interface. 13051 13052* apps/netutils: 13053 13054- FTPD: Fixed bug that didn't free ftpd resources on exit. From Pascal 13055Speck. 13056- NTP client: Fix missing left parenthesis. From Pierre-Noel Bouteville. 13057- cJSON: Import patch to fix:cJSON_PrintUnformatted() behaves unexpected 13058if an empty array shall be printed to text. from Jerome Lang 130592012-04-19. From Pierre-Noel Bouteville. 13060- esp8266 update cosmetic and many bug fix. From Pierre-Noel Bouteville. 13061- FTPD: Fix bug un ftpd file or socket may be not closed. From 13062Pierre-Noel Bouteville. 13063 13064* apps/modbus: 13065 13066- Modbus Master is missing many files and doesn't compile at all. More 13067details in 13068https://groups.yahoo.com/neo/groups/nuttx/conversations/topics/13734. 13069From Vytautas Lukenskas. 13070 13071* apps/examples: 13072 13073- The examples/qencoder app was trying to init the encoder by a direct 13074call into the board, cheating in a local header to declare the 13075normally unavailable function prototype. From Sebastien Lorquet. 13076- apps/examples/timer: Should detach signal handler before exiting. 13077- examples/qencode: The examples/qencoder app was trying to init the 13078encoder by a direct call into the board, cheating in a local header to 13079declare the normally unavailable function prototype. From Sebastien 13080Lorquet. 13081- apps/examples/archbuttons: Removed because it violates OS interface 13082principles. 13083- examples/adc, pwm, can: Remove all usage of BOARDIOC_ADCTEST_SETUP, 13084BIOARDIOC_PWMSETUP. Remove BOARDIOC_CAN_INITIALIZE. CAN 13085initialization is now done in the board initialization logic just like 13086every other device driver. 13087- examples/ostest: Add some delays to the pthread cancellation test. 13088With deferred cancellation enabled, things happen more asynchronously. 13089 13090NuttX-7.20 Release Notes 13091------------------------ 13092 13093The 120th release of NuttX, Version 7.20, was made on March 8, 2017, 13094and is available for download from the Bitbucket.org website. Note 13095that release consists of two tarballs: nuttx-7.20.tar.gz and 13096apps-7.20.tar.gz. These are available from: 13097 13098https://bitbucket.org/nuttx/nuttx/downloads 13099https://bitbucket.org/nuttx/apps/downloads 13100 13101Both may be needed (see the top-level nuttx/README.txt file for build 13102information). 13103 13104Additional new features and extended functionality: 13105 13106* Core OS: 13107 13108- Kernel Modules: Module initializer may now return a symbol table. 13109- Modules: Extend the module interface so that we can access symbols 13110exported by the module. 13111- Shared Libraries: In the FLAT build mode, kernel modules may be 13112used to provide minimal shared library functionality. 13113- Modules/Shared Libraries: Add support for dependencies between 13114modules. 13115- Module Library: Add build a configuration logic for a shared module 13116library. 13117- Shared Libraries: Implement module based shared libraries for the 13118PROTECTED mode build. 13119- Interrupt handling: irq_attach() now includes an argument of type 13120xcpt_t that retained with the handler address. That argument is 13121then provided to the interrupt handler when the interrupt occurs. 13122The common parameter passing replaces the ad hoc parmater passing 13123implemented in current drivers. From Mark Schulte. 13124- Adapt many drivers to utilize the IRQ argument feature. 13125- All functions that used to return an xcpt_t old handler value, now 13126return an int error code. The oldhandler value is no longer useful 13127with the recent changes to the interrupt argument passing. Some of 13128the functions effected include board_button_irq(), arch_phy_irq(), 13129STM32 EXTI functions (Alarm, COMP, PVD), GPIO interrupt logic like 13130kinetis_pinirq(), stm32_gpiosetevent(), and others. 13131- IRQ subsystem: Add support for smaller interrupt tables as 13132described at 13133https://cwiki.apache.org/confluence/display/NUTTX/Smaller+Vector+Tables. 13134This is partially the work of Mark Schulte. 13135 13136* File Systems/Block and MTD Drivers 13137 13138- Pseudo File System: Add support for soft links in the top-level 13139pseudo file system. 13140- Soft links: Add an implementation of readlink(). 13141- Add fstat() support. Implement fstat() method in binfs, romfs, 13142unionfs, tmpfs, nxffs, nfx, hostfs, procfs, and smartfs. 13143- fstat: Add fstat() support to FAT. From Alan Carvalho de Assis. 13144 13145* Graphics/Display Drivers: 13146 13147- Fonts: Add support for Tom Thumb small mono-space font. From Alan 13148Carvalho de Assis. 13149- Graphics: Separated of font cache from graphics/nxterm. Now in 13150libnx/nxfronts where it can be shared with other graphics 13151applications. 13152 13153* Networking/Network Drivers: 13154 13155- Ethernet drivers: Add framework for serialization in the case where 13156multiple low-priority work queues are used. 13157 13158* Other Common Device Drivers: 13159 13160- Add capabilities() method to SDIO interface. Remove 13161CONFIG_SDIO_WIDTH_D1_ONLY. That should not be a global propertie, 13162but rather a capability/limitation of single slot when there may be 13163multiple slots. 13164- Removed dmasupported() method from the SDIO interface. That is now 13165a bit in the capability set. 13166- drivers/sensors: Add driver for the ST L3GD20 3 axis gyro. From 13167raiden00. 13168 13169* Atmel SAM3/4: 13170 13171- SAM3/4: Add support for ATSAM4S4C. From Wolfgang Reißnegger. 13172 13173* NXP Freescale i.MX6 Boards: 13174 13175- Sabre 6quad: Enable examples/smp test in i.MX6 SMP/NSH 13176configurations. 13177 13178* NXP Freescale Kinetis: 13179 13180- Kinetis: Added support for CHIP_MK60FN1M0VLQ12 chip. From Maciej 13181Skrzypek. 13182- Kinetis: Add support for K64/K66 RTC lower half driver. From Neil 13183Hancock. 13184- Kinetis: Extensive modification of MCG support based feature 13185configuration. From David Sidrane. 13186- Kinetis: Add support for K66 family. From David Sidrane. 13187- Kinetis: Created a kinetis SIM versioning scheme pulled in by 13188Kinetis chip.h. From David Sidrane. 13189- Created a kinetis PMC versioning scheme pulled in by Kinetis 13190chip.h. From David Sidrane. 13191- Kinetis: Extend clock configuration logic. Refactor 13192implementation. From David Sidrane. 13193 13194* NXP Freescale Kinetis Drivers: 13195 13196- Kinetis Ethernet: Kinetis Support RMII clock source select. This 13197defined the RMII clock source select bits and allows the selection 13198to be made via Kconfig. From David Sidrane. Freedom-K66F uses 13199ENET_1588_CLKIN as RMII clock 13200- Kinetis Serial: Added configurable 1|2 stop bits. 13201HAVE_SERIAL_CONSOLE -> HAVE_UART_CONSOLE to be consistent with 13202HAVE_LPUART_CONSOLE naming. From David Sidrane. 13203- Kinetis LPserial: Add LPUART serial driver and Clock 13204configuartaion to freedom-k66f board. From David Sidrane. 13205- Kinetis USB device: Refactor clocking in kinetis_usbdev. From 13206David Sidrane. 13207 13208* NXP Freescale Kinetis Boards: 13209 13210- Add support for NXP Freedom-k66f development board. From David 13211Sidrane. 13212- Kinetis Freedom K66F: Add Ethernet support. From David Sidrane. 13213- Add twr-k64f120m config. From Marc Rechté. 13214 13215* NXP Freescale LPC43xx Boards: 13216 13217- Bamboo-200E: Add netnsh configuration. From Alan Carvalho de Assis. 13218- Add usbnsh config to Bambino 200E board. From Alan Carvalho de 13219Assis. 13220 13221* STMicro STM32: 13222 13223- STM32 F7: Allow board to configure HSE clock in bypass-mode. This 13224is needed to enable HSE with Nucleo-F746ZG board. From Jussi 13225Kivilinna. 13226- STM32 F7: stm32_allocateheap: allow use DTCM memory for heap. 13227STM32F7 has up to 128KiB of DTCM memory that is currently left 13228unused. This change adds DTCM to main heap if 13229CONFIG_STM32F7_DTCMEXCLUDE is not enabled. From Jussi Kivilinna. 13230- Add basic support for the STM32F334. From Mateusz Szafoni. 13231- STM32F33XX DAC, OPAMP, COMP, ADC, HRTIM headers. From Mateusz 13232Szafoni. 13233 13234* STMicro STM32 Drivers: 13235 13236- STM32 F7 SDMMC: Add support for single bit operation on SDMMC2. 13237- STM32 L4: Port STM32L4 SAI driver from MDK. 13238- STM32 L4: Bring power management logic from Motrola MDK into NuttX. 13239- STM32 L4: Bring LPTIM driver in from the Motorola MDK. 13240- STM32 L4 COMP: Port from Motorola MDK. 13241 13242* STMicro STM32 Boards: 13243 13244- STM32F429i Discovery: Add support for NxWM on STM32F429i-Disco 13245board. From Alan Carvalho de Assis. 13246- STM32F103 Minimum: Add support for nRF24 on STM32F103-Minimum 13247board. From Alan Carvalho de Assis. 13248- Olimex STM32 P407: Add a NSH protected build configuration; Enable 13249procfs/ in all configurations. 13250- Olimex STM32 P407: Add support for on-board microSD slot. 13251- STM32F429i Discovery: Add support for the L3GD20 driver. From 13252raiden00. 13253- STM32F103 Minimum: Add support to QEncoder on STM32F103 Minimum 13254board. From Alan Carvalho de Assis. 13255- Olimex STM32 P407: Add external SRAM support. 13256- Add basic support for the Nucleo F334R8 board. From Mateusz 13257Szafoni. 13258- STM32F103 Minimum: Add SDCard support over SPI on STM32F103-Minimum 13259board. From Alan Carvalho de Assis. 13260- STM32F103 Minimum: Add support to USB Device on STM32F103-Minimum 13261board. From Alan Carvalho de Assis. 13262 13263* C Library/Header Files: 13264 13265- compiler.h: packed_struct replaced by begin_packed_struct and 13266end_packed_struct. Now support IAR style packed structures. From 13267Aleksandr Vyhovanec. 13268- Math library: Leverage optimized ARMv8-M functions from BSD license 13269ARM file. 13270- Shared libraries: Add a non-standard dllfnc.h function to set the 13271symbol table. 13272- C Library: Add a support for setvbuf(). This is a collaborative 13273effort. Alan Carvalho de Assis did the initial prototype. 13274- C Library: Add setbuf() which is a trivial wrapper around setvbuf(). 13275- C library: Add swab(). 13276- C library: Add strtoimax and strtoumax. 13277- C library: Add ffs(), rindex(), an index(). Add strings.h. Move 13278strcasecmp, strncasecmp, bzero, bcmp, and bcopy to where they 13279belong in strings.h.h, not string.h. bzero, bcmp, and bcopy are 13280legacy functions; the contemporary counterparts should be used 13281instead. 13282- C library: Add fstatfs(). 13283- Update cwchar. Add cwctype. 13284 13285* Build/Configuration System: 13286 13287- Add configuration support for builds with Ubuntu under Windows 10. 13288 13289* Tools: 13290 13291- tools/noteinfo.c: A hack tool that I use to analyze some sched_note 13292output. Needs a home and may be useful to others. 13293- tools/mkconfig.c: Add logic to keep all of the buffering options in 13294sync. 13295 13296* NSH: apps/nshlib: 13297 13298- NSH: Add support for the 'ln' command. 13299- NSH ls command: if node is a symobolic link, use readlink() to get 13300and the display the target of the symbolic link. 13301- NSH: Add readlink command. 13302 13303* Applications: apps/examples: 13304 13305- apps/examples/nxtext: Make line spacing configurable. 13306- apps/system/zmodem/host/nuttx/compiler.h synchronized with 13307nuttx/nuttx/include/nuttx/compiler.h. From Aleksandr Vyhovanec. 13308- apps/examples/sotest: Add a test for shared libraries. 13309- apps/examples/ostest: Add a test of setvbuf(). 13310- apps/examples/stat: Add a simple test for stat(), fstat(), 13311statfs(), and fstatfs(). 13312 13313Works-In-Progress: 13314 13315* IEEE802.14.5/6LowPAN. Hooks and framework for this effort were 13316introduced in NuttX-7.15. Work has continued on this effort on 13317forks from the main repositories, albeit with many interruptions. 13318The completion of this wireless feature will postponed until at 13319least NuttX-7.21. 13320 13321Bugfixes. Only the most critical bugfixes are listed here (see the 13322ChangeLog for the complete list of bugfixes and for additional, more 13323detailed bugfix information): 13324 13325* Core OS: 13326 13327- SMP: There were certain conditions that we must avoid by preventing 13328the release of the pending tasks while withn a critical section. 13329But this logic was incomplete; there was no logic to prevent other 13330CPUs from adding new, running tasks while on CPU is in a critical 13331section. This commit corrects this. This is matching logic in 13332sched_addreadytorun to avoid starting new tasks within the critical 13333section (unless the CPU is the holder of the lock). The holder of 13334the IRQ lock must be permitted to do whatever it needs to do. 13335- SMP: Make checks for CPU lock set more robust. There are certain 13336conditions early in initialization on during interrupt handling 13337where things need to be done a little differently. 13338- sched_cpulocked: Avoid use of spinlock. That has been reported to 13339cause a deadlock (2016-12-28). 13340- SMP: Fix a gap where we may try to make modifications to the task 13341lists without being in a critical sections. That permits 13342concurrent access to the tasks lists and many subtle problems. 13343This fix just remains in the critical section throughout the 13344operation (and possible until the task is restore in the event of a 13345context switch). Makes a big difference in stability. 13346- SMP: Fix an error in critical section logic when performing a 13347context switch from an interrupt handler. The g_cpu_irqset bit was 13348not being set for the CPU so other CPUs did not know about the 13349critical section. 13350- SMP Signals: Fix some SMP signal delivery logic. Was not handling 13351some critical sections correctly and was missing logic to signal 13352tasks running on other CPUs. 13353- SMP: Fix timer related issues: Round robin and sporadic 13354scheduling were only being performed for tasks running on the CPU 13355that processes the system timer interrupt. Similarly, CPU load 13356measurements were only be processed for running on the CPU that 13357receives the sampling interrupt. 13358- sched_note: Fix spinlock instrumentation. From Masayuki Ishikawa. 13359- In all implementations of _exit(), use enter_critical_section() vs. 13360disabling local interrupts. 13361- sigtimedwait: When timer expires, up_unblock_task() is called. 13362This is okay in the single CPU case because interrupts are disable 13363in the timer interrupt handler. But it is insufficient in the SMP 13364case. enter_ and leave_critical_section() must be called in order 13365to manage spinlocks correctly. 13366- Fix a compile error: in sched_cpuload.c:Line136, the variables ts 13367and secs are not defined if CONFIG_CPULOAD_ONESHOT_ENTROPY = 0. 13368However, these variables are used regardless of 13369CONFIG_CPULOAD_ONESHOT_ENTROPY at lines~180:onwards. From Rajan Gill. 13370- CPU load: Correct computation of the nominal period to use when the 13371source is a oneshot timer. 13372- Cancellation points: Fix some backward logic in conditional 13373compilation. 13374- Remove an unused variable when calling sigwaitinfo() and 13375sigtimedwait(). From Masayuki Ishikawa. 13376 13377* File System/Block and MTD Drivers: 13378 13379- procfs: Correct to snprintf-related errors in fs_procfsproc.c. 13380Resolves issue #24. 13381- Add logic to VFS rename: If target of rename exists and is a 13382directory, then the source file should be moved 'under' the target 13383directory. POSIX also requires that if the target is a file, then 13384that old file must be deleted. 13385- Fix open() a block device with 13386CONFIG_DISABLE_PSEUDOFS_OPERATIONS=y. From Masayuki Ishikawa. 13387- File System: Don't build block driver proxy if PSEUDOFS_OPERATIONS 13388are disabled. 13389- sendfile(): Fix error introduced with commit 13390ff73be870e38959b0aaee5961dc47b4b58dc2d86. Noted by Maciej Wójcik. 13391 13392* Graphics/Graphic Drivers: 13393 13394- NxWM configurations. If using a 7-bit character set, then the 13395cursor character cannot be 137 (graphic block). Use 95 13396(underscore) instead. 13397- NX server: Correct message queue names. Should not be at /dev, 13398but rather relative to /var/mqueue. 13399 13400* Common Drivers: 13401 13402- MMCSD_SDIO: Only wait for card ejected if card detection is 13403supported. From Alan Carvalho de Assis. 13404- Typos withim mtd/ with Macronix MX25L. In 13405NuttX/drivers/mtd/Make.defs letters X between M and 25 are 13406missing. Noted by Oleg Evseev. 13407- USBMSC: Always set LUN readonly flag. From Wolfgang Reißnegger. 13408- drivers/lcd: ssd1306_configspi() must have global scope. 13409- MMC/SD SDIO: Some drivers need to start DMA before sending CMD24 13410and some AFTER. From Alan Carvalho de Assis. 13411- drivers/tone.c: Handle configuration with multiple PWM channels. 13412This resolves issue #30: Audio Tone Generator and PWM Multiple 13413Output Channel options. 13414- drivers/tone.c: 50% duty needs to be expressed a a fixed precision 13415number. 13416- drivers/spi/Kconfig: There is too much SPI in the configuration 13417menu; SPI Driver Support menu is empty. From Maciej Wójcik. 13418- option to enable Memory Card debug output was hidden with SD cards 13419connected through SPI. From Maciej Wójcik. 13420- usbhost_cdcacm: fix tx outbuffer overflow and remove now invalid 13421assert. From Janne Rosberg. 13422 13423* Networking/Network Drivers: 13424 13425- Networking: Fixed some issues that prevented IPv6 from working with 13426IPv4 enabled. From Pascal Speck. 13427- Networking: fixed a nullptr-dereference on iob_clone. From Pascal 13428Speck. 13429- Ethernet: Need two work structures (minimum) in all Ethernet 13430drivers so that pending poll work is not lost when an interrupt 13431occurs. 13432 13433* ARMv7-R: 13434 13435- I found an issue inside the cp15_coherent_dcache function: The 13436"mcr CP15_BPIALLIS(r0)" should only be used with SMP 13437configurationa. In non-SMP configuration this instruction could 13438become undefined. From Manohara HK. 13439 13440* Atmel SAM3/4 Drivers: 13441 13442- SAM3/4: GPIO bit numbering typo fixes. From Wolfgang Reißnegger. 13443 13444* Atmel SAM3/4 Boards: 13445 13446- Add missing sched_note_*() calls in sam4cm SMP functions. 13447 13448* NXP/Freescale Kinetis: 13449 13450- Kinetis: Fixed wrong MCG VDIV calculation on new NXP K60. From 13451Maciej Skrzypek. 13452- Kinetis: Need to set HAVE_UART_DEVICE when UART4 is selected. From 13453Maciej Skrzypek. 13454- Kinetis MCG: Wrong FRDIV set in MCG_C1. From Maciej Skrzypek. 13455 13456* NXP/Freescale Kinetis Drivers: 13457 13458- Kinetis Serial: Fixed compile error when UART5 is selected. From 13459Maciej Skrzypek. 13460- Kinetis SDHC - Enable clock after selected. From David Sidrane. 13461- Kinetis: Correct some SPI and I2C configuration issues. From 13462David Sidrane. 13463- Kinetis Ethernet: Add #define for number of loops for auto 13464negotiation to complete. From Marc Rechté. 13465- Kinetis Werial: Fixed up_rxint - did not disable the RX 13466interuppts. There was an OR where and AND NOT was needed. From 13467David Sidrane. 13468 13469* NXP/Freescale LPC43xx: 13470 13471- LPC43 pinset definitions: Add more 1 bit to pinset to reach 13472SFSCLK0-SFSCLK3. Remove PINCONFIG_DIGITAL. From Alan Carvalho de 13473Assis. 13474 13475* NXP/Freescale LPC43xx Drivers: 13476 13477- LPC43 serial: Correct conditional logic that selects /dev/ttySN. 13478Problem noted by Alan Carvalho de Assis. 13479 13480* NXP/Freescale i.MX6: 13481 13482- i.MX6: Fix clearing GPT status register. From Masayuki Ishikawa. 13483 13484* STMicro STM32: 13485 13486- STM32, STM32L4 Oneshot: Fix logic so that it can support multiple 13487oneshot timers. 13488- STM32 F7: Added missing ARCH_HAVE_RESET for F7. From David Sidrane. 13489- STM32: Add missing STM32_BKP_BASE. From David Sidrane. 13490- STM32 and STM32F7: Fixes the BKP reference counter issue. From 13491David Sidrane. 13492 13493* STMicro STM32 Drivers: 13494 13495- Fix for SAMv7 SPI: DLYBS value was calculated, but never written to 13496any registers. This led to incorrect timings on the bus. From 13497Michael Spahlinger. 13498- STM32 QEncoder: Fix QEncoder driver, based on STM32L4 driver. From 13499Alan Carvalho de Assis. 13500- STM32 QEncoder: Enable clocking to the timer on QE setup; disable 13501clock on QE teardown. 13502- STM32 Ethernet: Need two work structures so that pending poll work 13503is not lost when an interrupt occurs. This change has also been 13504ported to all all other effected Ethernet drivers. 13505- STM32 OTGHS host: stm32_in_transfer() fails and returns NAK if a 13506short transfer is received. This causes problems from class 13507drivers like CDC/ACM where short packets are expected. In those 13508protocols, any transfer may be terminated by sending short or NUL 13509packet. From Janne Rosberg. Adapted Janne Rosberg's patch to 13510STM32 OTGHS host to OTGFS host, and to similar USB host 13511implementations for STM32 L4 and F7. 13512 13513* STMicro STM32 Boards: 13514 13515- STM32F4 Discovery: Fix issues with QEncoder support. From Alan 13516Carvalho de Assis. 13517 13518* C Library/Header Files: 13519 13520- Add debug assertion in libdtoa to catch attempts to use floating 13521point output formats from within an interrupt handler. That will 13522cause assertions or crashes downstream because __dtoa will attempt 13523to allocate memory. From Pierre-noel Bouteville. 13524- libc: Fix ARMv7-A/R memcpy assembly. 13525- Fix return value if x is NaN. From Aleksandr Vyhovanec. 13526 13527* apps/nshlib: 13528 13529- NSH: Eliminate a warning when all memory inspection commands are disabled. 13530 13531* apps/graphics: 13532 13533- apps/graphics/traveler/tools: Fix linkage issue. The -lm should 13534come after -o binname. From Alan Carvalho de Assis. 13535 13536* apps/netutils: 13537 13538- The CONFIG_NETUTILS_HTTPD_PATH constant is used by httpd_mmap.c and 13539httpd_sendfile.c but It was not present in Kconfig menu. From 13540Maciej Wójcik. 13541 13542* apps/examples: 13543 13544- Configurations that enable OSTEST must not disable signals. 13545- apps/examples/ostest: Was ignoring 13546CONFIG_EXAMPLES_OSTEST_FPUTESTDISABLE. 13547- In apps/examples/mtdpart/mtdpart_main.c where 13548CONFIG_EXAMPLES_MTDPART_NPARTITIONS defining is checked should be 13549#ifndef instead of #ifdef. Noted by Oleg Evseev. 13550 13551NuttX-7.21 Release Notes 13552------------------------ 13553 13554The 121st release of NuttX, Version 7.21, was made on June 6, 2017, 13555and is available for download from the Bitbucket.org website. Note 13556that release consists of two tarballs: nuttx-7.21.tar.gz and 13557apps-7.21.tar.gz. These are available from: 13558 13559https://bitbucket.org/nuttx/nuttx/downloads 13560https://bitbucket.org/nuttx/apps/downloads 13561 13562Both may be needed (see the top-level nuttx/README.txt file for build 13563information). 13564 13565Additional new features and extended functionality: 13566 13567* Core OS: 13568 13569- pthread rwlocks: Add an implementation for read/write locks 13570(rwlocks) into the pthread library. These locks are writer 13571priority, such that if any writers come in they are given priority 13572for writing. From Mark Schulte. 13573- pthread robust mutexes: Implement robust mutex support: 13574pthread_mutex_lock() and trylock() will return EOWNERDEAD if the 13575mutex is locked by a thread that no longer exists. Add 13576pthread_mutex_consistent() to recover from this situation. Keep 13577list of all mutexes held by a thread in a list in the pthread's TCB. 13578When pthread exits or is cancelled, mutexes held by thread are 13579marked inconsistent and the highest priority thread waiting for the 13580mutex is awakened. There is a configuration option to (a) support 13581only robust mutexes, (b) support only traditional unsafe mutexes, 13582or (c) Support both unsafe and robust mutexes via 13583pthread_mutexattr_get/setrobust(). 13584- pthread cancellation points: Add logic to disable cancellation 13585points within the OS. This is useful when an internal OS function 13586that is NOT a cancellation point calls an OS function which is a 13587cancellation point. In that case, irrecoverable states may occur if 13588the cancellation is within the OS. From Juha Niskanen. 13589- clock: Add clock_resynchronize and use subseconds RTC. Add 13590clock_resynchronize for better synchronization of CLOCK_REALTIME and 13591CLOCK_MONOTONIC to match RTC after resume from low-power state. Add 13592up_rtc_getdatetime_with_subseconds under 13593CONFIG_ARCH_HAVE_RTC_SUBSECONDS to allow initializing (and 13594resynchronizing) system clock with subseconds accuracy RTC. From 13595Jussi Kivilinna. 13596- clock: Add new type ssystime_t for relative 64-bit ticks, change 13597ticks<->time conversion functions to use ssystime_t. From Jussi 13598Kivilinna. 13599- clock: Add testing for 32-bit overflow of 64-bit system timer. From 13600Jussi Kivilinna. 13601 13602* File Systems/Block and MTD Drivers 13603 13604- drivers/mtd/w25.c: Erase sector only if it is not in erased state. 13605From Jussi Kivilinna. 13606 13607* Graphics/Display Drivers: 13608 13609- drivers/lcd: Extend st7565 driver to include support for the 13610AQM_1248A. From Masayuki Ishikawa. 13611- drivers/lcd: Add driver for Nokia 5110 (Philips PCD8544). From Alan 13612Carvalho de Assis. 13613 13614* Networking/Network Drivers: 13615 13616- Extensive modifications to support wireless network (see below). 13617- TUN driver: Implement TAP (OSI layer 2) mode. Enable by setting the 13618IFF_TAP flag instead of the IFF_TUN flag in ifr_flags. From Thomas 13619Keh. 13620- Add user-space networking stack API (usrsock). User-space 13621networking stack API allows user-space daemon to provide TCP/IP 13622stack implementation for NuttX network. Main use for this is to 13623allow use and seamless integration of HW-provided TCP/IP stacks to 13624NuttX. For example, user-space daemon can translate /dev/usrsock 13625API requests to HW TCP/IP API requests while rest of the user-space 13626can access standard socket API, with socket descriptors that can be 13627used with NuttX system calls. From Jussi Kivilinna. 13628- net/: Network driver now retains Ethernet MAC address in a union so 13629that other link layer addresses may be used in a MULTILINK 13630environment. 13631 13632* Wireless Networking/Wireless Drivers: 13633 13634- BCM43362: Support for Broadcom's BCM43362 WiFi chip was contributed 13635by Simon Piriou as part of the port of the Particle Photon board. 13636Only station functionality is available at present. This work 13637includes not on the WiFi driver, but the support Particle Photon 13638board, the infrasture for IEEE 802.11 FullMAC networking including 13639the network device interface, WiFi configuration, AP scanning and 13640authentication and association with an AP. 13641- IEEE 802.11 networking tools and support. 13642- IEEE 802.15.4 MAC support. This is an effort that was started some 13643time back by Sebastien Lorquet (with some help from Matte Poppe). 13644Recently, Anthony Merlino has taken on this effort and has made 13645some significant progress. Using the Microchip MRF24J40 module with 13646the Mikroe Clicker2-STM32 board along with a PC-based IEEE 802.15.4 13647sniffer, Anthonly has verified correct transmission and receipt of 13648basic frames. 13649- Microchip MRF24J40: As mentioned above, this IEEE 802.15.4 radio 13650driver is now basically functional. 13651- IEEE 802.15.4 Network Driver: A driver that interfaces the NuttX 13652network with the IEEE 802.15.4 MAC has been developed but is still 13653incomplete and has not been verified. 13654- IEEE 802.15.4 Network Loopback Driver: A simple IEEE 802.15.4 MAC 13655loopback driver was developed. This driver allowed for parallel 13656development of the IEEE 802.15.4 MAC and 6LoWPAN. 13657- 6LoWPAN: The Contiki 6LoWPAN stack has been ported so that works 13658within the NuttX networking framework and interfaces with the new 13659IEEE 802.15.4 MAC via the network driver. Live testing with 13660IEEE 802.15.4 radios has not yet been done; all testing has used 13661the loopback driver. There are no known problems and the stack 13662is ready for additional testing. 13663- Add option to enable wireless debug output. 13664 13665* Other Common Device Drivers: 13666 13667- Add entropy pool and strong random number generator. Entropy pool 13668gathers environmental noise from device drivers, user-space, etc., 13669and returns good random numbers, suitable for cryptographic use. 13670Based on entropy pool design from *BSDs and uses BLAKE2Xs algorithm 13671for CSPRNG output. Patch also adds /dev/urandom support for using 13672entropy pool RNG and new 'getrandom' system call for getting 13673randomness without file-descriptor usage (thus avoiding file- 13674descriptor exhaustion attacks). The 'getrandom' interface is similar 13675as 'getentropy' and 'getrandom' available on OpenBSD and Linux 13676respectively. From Jussi Kivilinna. 13677- XBox One controller: Adds USB host driver support for the XBox One 13678controller. Currently only the latest version (XBox One X) 13679controller works. The older XBox One controllers do not enumerate 13680correctly. From Brian Webb. 13681- drivers/analog: Add basic COMP driver. From Mateusz Szafoni. 13682- drivers/analog: Add driver for the LTC1767L ADC. From Martin 13683Lederhilger. 13684- drivers/analog: Add basic OPAMP driver. From Mateusz Szafoni. 13685- drivers/sensors: Add driver for ST HTS221 humidity sensor. From 13686Juha Niskanen. 13687- drivers/sensors: Add driver for ST LPS25H pressure sensor. From 13688Juha Niskanen. 13689- drivers/sensors: Add driver for ST LIS2DH accelerometer. From Timo 13690Voutilainen. 13691- drivers/usbmisc: Add driver for Fairchild FUSB301 USB type-C 13692controller. From Harri Luhtala. 13693- RTC: Add interface for check if RTC time has been set. New 13694interface allows checking if RTC time has been set. This allows to 13695application to detect if RTC has valid time (after reset) or should 13696application attempt to get real time by other means (for example, by 13697launching ntpclient or GPS). From Jussi Kivilinna. 13698- Buttons: Change return value of board_buttons() and the type of 13699btn_buttonset_t to uint32_t so that more than 8 buttons can be 13700supported. 13701- drivers/syslog: Use monotonic clock for timestamp when available. 13702From Jussi Kivilinna. 13703- SPI: Add an instance argument to the SPIDEV definitions. Thus, 13704instead of specifying a FLASH device, for example, as SPI_FLASH, you 13705would now use SPI_FLASH(0) where the "instance" argument now 13706distinguishes multiple FLASH devices on the same SPI bus. From 13707Sebastien Lorquet. 13708- IOBs: Move from net/iob to a better location in mm/iob where they 13709can be shared outside of the networking logic. Current also used 13710by IEEE 802.15.4 MAC and by syslog (when buffering enabled). 13711- syslog: Add option to buffer SYSLOG output to avoid interleaving. 13712Uses new shareable IOBs. Additional logic to assure that the the 13713write from the buffer is a single atomic write in normal debug 13714output. 13715- drivers/can: Move CAN subsystem to its own directory and put device 13716drivers there. From Alan Carvalho de Assis. 13717- drivers/can: Add Microchip MCP2515 CAN Bus controller driver. From 13718Alan Carvalho de Assis. 13719- drivers/audio: Add cs43l22 audio driver. From Taras Drozdovsky. 13720- drivers/input: Add Cypress MBR3108 CapSense touch button driver. 13721From Juha Niskanen. 13722 13723* Simulation 13724 13725- configs/sim/sixlowpan: Configuration for testing the 6LoWPAN with 13726the IEEE 802.15.4 loopback network driver. 13727 13728* Infineon XMC4xxx: 13729 13730- arch/arm/src/xmc4: Initial, partial support for Infineon XMC4xxx. 13731 13732* Infineon XMC4xxx Boards: 13733 13734- XMC4500 Relax: Add basic board support infrastructure of Infineon 13735XMC4500 Relax Lite v1. Basic serial, LED, and button button support 13736for a simple NSH configuration. There are still stome remaining 13737issues with serial communications. 13738 13739* MicroChip PIC32MX Boards: 13740 13741- pic32mx7mmb: Add support for the Pinquino toolchain. 13742- pic32mx7mmb: Add support for PROCFS file system. 13743 13744* NXP Freescale Kinetis: 13745 13746- Kinetis: Allow board to add pullups on SDHC lines. From David 13747Sidrane. 13748- Kinetis: Use optional BOARD_OSC_CR and BOARD_OSC_DIV in clock 13749configuration. From David Sidrane. 13750 13751* NXP Freescale Kinetis Drivers: 13752 13753- Kinetis: Add Timer PWM Module (TPM) to K66 chip. From David 13754Sidrane. 13755- Kinetis: Added HW flow control and termios. From David Sidrane. 13756- Kinetis: Add ARCH_HAVE_I2CRESET. From David Sidrane. 13757 13758* NXP Freescale LPC43xx: 13759 13760- Add support for LPC4337FET256. From Andreas Bihlmaier. 13761 13762* STMicro STM32: 13763 13764- Change STM32 tickless to use only one timer. From Konstantin 13765Berezenko. 13766- STM32 F7: Add support for LSE RTC and enable RTC subseconds. From 13767Jussi Kivilinna. 13768- STM32 L1: stm32l15xx_rcc: Add support for using MSI as system 13769clock. From Juha Niskanen. 13770- STM32 L1: stm32l15xxx_rcc: configure medium performance voltage 13771range and zero wait-state when allowed by SYSCLK setting. Zero 13772wait-state for flash can be configured when: (1) Range 1 and 13773SYSCLK <= 16 MHz, (2) Range 2 and SYSCLK <= 8 MHz, or (3) Range 3 13774and SYSCLK <= 4.2 MHz. Medium performance voltage range (1.5V) 13775can be configured when SYSCLK is up to 16 MHz and PLLVCO up to 1377648 MHz. From Juha Niskanen. 13777- STM32 F0: Add basic support for STM32F0. From Alan Carvalho de 13778Assis. 13779- STM32 F0: Add basic support for STM32F07x family. 13780- STM32 L1: stm32l15xx_rcc: Allow board to configure HSE clock in 13781bypass-mode. Allows using MCO output from ST-link chip (on Nucleo 13782and Discovery boards) as HSE input. From Juha Niskanen. 13783- STM32 L1: Add support for STM32L152CC, STM32L152RC and STM32L152VC. 13784From Juha Niskanen. 13785- STM32 F0: Add support for HSI48. 13786- STM32 L4: Add support for the STM32L496XX family. From Juha 13787Niskanen. 13788- STM32 L4: modularize Kconfig to support different product 13789lines/families. This is modeled after STM32F7. Idea is to declare 13790each chip in Kconfig but allow for flash size override. Commit adds 13791many STM32L4_HAVE_XXX feature test macros. From Juha Niskanen. 13792- STM32 L4: Separate SYSCFG into product line specific files for 13793clarity. From Juha Niskanen. 13794- STM32 L4: Add support for many new MCUs from the STM32L4X3XX 13795product line. From Juha Niskanen. 13796- STM32 L4: Add dbgmcu header files. From Juha Niskanen. 13797- STM32 F410: Add support for STM32F410. STM32F410 is a version of 13798STM32F4 with 32 KB of RAM and 62 or 128 KB of flash. From Gwenhael 13799Goavec-Merou. 13800 13801* STMicro STM32 Drivers: 13802 13803- SDIO: Extensions to support the SDIO interface to the BCM43362 from 13804Simon Piriou. 13805- STM32 F2: Add USB OTG HS support for stm32f20xxx cores. From Simon 13806Piriou. 13807- STM32 F2, F4, and F7: Add BOARD_DISABLE_USBOTG_HSULPI flag. From 13808Simon Piriou. 13809- STM32 F33: Move DMA logic to a separate files + add ADC support. 13810From Mateusz Szafoni. 13811- STM32 F3: Add COMP support. From Mateusz Szafoni. 13812- STM32 F33: Support for COMP character driver. From Mateusz Szafoni. 13813- STM32 F4: Implement DMA support for the STM32F4 I2C. From Rajan Gill. 13814- STM32 F7: Add stm32 RNG support. This is copied from stm32l4. 13815Tested on STM32F746ZG board. From Juha Niskanen. 13816- STM32 L1: Add STM32L162VE to chip.h. From Juha Niskanen. 13817- STM32 F4: Add I2C3 SDA pin mapping for STM32F411. From no1wudi. 13818- STM32 L1: stm32_flash: Add EEPROM writing for STM32L15XX. From 13819Juha Niskanen. 13820- STM32 F7: Serial: Add interface to get uart_dev_t by USART number, 13821stm32_serial_get_uart. From Jussi Kivilinna. 13822- STM32 F4: Provide TIM5 definition for STM32F429. From Matias v01d. 13823- STM32 F0: Add an untested port of the F1 USB device to the STM32F0. 13824- STM32 F0: Add support for the STM32F09X family. From Juha 13825Niskanen. 13826- STM32 F0: Initial cut at I2C driver. Still a work in progress. 13827From Alan Carvalho de Assis. 13828- STM32 F33: Add OPAMP support. From Mateusz Szafoni. 13829- STM32 L4: stm32l4_i2c: Add I2C4 code. From Juha Niskanen. 13830- STM32 L4: Add GPIO_PORTI definition. From Juha Niskanen. 13831- STM32 F7 Serial: Allow configuring Rx DMA buffer size. From Jussi 13832Kivilinna. 13833- STM32 L4: Firewall for stm32l4x3xx. Not tested for any product 13834family, but now it at least compiles. L496 devices can have one bit 13835wider Volatile Data Segment. From Juha Niskanen. 13836- STM32 TIM: Add method to get timer width. Freerun timer: Use timer 13837width to get the correct clock rollover point. 13838- STM32 L4: Add internal flash write support. From Juha Niskanen. 13839- STM32 L4: Port stm32l4_serial_get_uart function from STM32F7. From 13840Juha Niskanen. 13841- STM32 Ethernet: Add support for KSZ8081 PHY interrupts. From 13842Sebastien Lorquet. 13843- STM32 F4: Add I2S driver. From Taras Drozdovsky. 13844- STM32 L4: Add IWDG peripheral. This is the same as for STM32 13845except that prescale and reload can be changed after watchdog has 13846been started, as this seems to work on L4. From Juha Niskanen. 13847- STM32 F7: Add SPI DMA support. From Jussi Kivilinna. 13848 13849* STMicro STM32 Boards: 13850 13851- Support for the Particle Photon board was contributed by Simon 13852Piriou. The Photon board is based on a STM32F205G MCU with and on- 13853board BCM43362 WiFi chip that interfaces via the STM32's SDIO 13854interface. Board configuration support includes, in addition, 13855buttons, LEDS, IWDG, USB OTG HS, and procfs support. Configurations 13856available for nsh, usbnsh, and wlan configurations. 13857- Clicker2-STM32: Support for the Mikroelektronika Clicker 2 for 13858STM32 was added by Anthony Merlino. This board, along with the 13859MRF24J40 Click board is the platform used to deveop the IEEE 13860802.15.4 support. The boad configuration includes the MRF24J40 13861initialization logic and SPI support. Configurations exist for nsh, 13862knsh, usbnsh, and mrf24j40-radio. 13863- Nucleo_F334R8: Add ADC example. From Mateusz Szafoni. 13864- Nucleo-F334R8: Add COMP support. From Mateusz Szafoni. 13865- Nucleo-F334R8: Use new COMP driver. From Mateusz Szafoni. 13866- Adds USB host support to stm32f411-disco board. From Brian Webb. 13867- Add stm32f0discovery board support. From Alan Carvalho de Assis. 13868- Nucleo-F072RB: Add board configuration. 13869- Nucleo-F334R8: Add OPAMP support. From Mateusz Szafoni. 13870- Nucleo-F072RB: Add support for the I2C driver used by I2C tools. 13871- Nucleo-L496ZG: Add nucleo-l496zg board files. From Juha Niskanen. 13872- Nucleo-F091RC: Add nucleo-f091rc board files. From Juha Niskanen. 13873- Nucleo-L432KC: Add nucleo-l432kc board files. From Sebastien 13874Lorquet. 13875- Nucleo-L452RE: Add nucleo-l452re board files. From Juha Niskanen. 13876- stm32f103-miniumum: Add board support to use the Nokia 5110 13877LCD display driver. From Alan Carvalho de Assis. 13878 13879* C Library/Header Files: 13880 13881- C library: Add strerror_r(). 13882- C Library: Add wcstoull(), swprintf(), wcstod(), wcstof(), wcstol(), 13883wcstold(), wcstoul(), wcstoll() functions. Add mbsnrtowcs() and 13884wcsnrtombs() (just returning success). Add mbtowc() and wctomb() to 13885C++ std namespace. From Alan Carvalho de Assis. 13886- C Library: Add ffsl(), ffsll(), fls(), flsl(), flsll() and use 13887GCC's __builtin_ctz/__builtin_clz for faster implementation of these. 13888From Jussi Kivilinna. 13889- fixedmath: Add square root and b32_t conversion operators. From 13890Jussi Kivilinna. 13891- locale.h: Add a bogus definition of locale_t. 13892- C library: Versions mbrlen and mbsrtowcs taken and adapted from 13893FreeBSD code (at https://github.com/freebsd/freebsd/). From Matias 13894v01d. 13895 13896* Build/Configuration System: 13897 13898- Include C++ library in 'make export'. From Alan Carvalho de Assis. 13899- configs: Remove all setenv.sh and setenv.bat files. Remove all 13900references to setenv.sh and setenv.bat from all config README files. 13901- Kconfig/deconfigs: Add CONFIG_ARCH_TOOLCHAIN_GNU to indicate that 13902the toolchain is based on GNU gcc/as/ld. This is in addition to the 13903CPU-specific versions of the same definition. 13904- Move prototype for up_cxxinitialize() from nuttx/include/nuttx/arch.h 13905to apps/include/platform/cxxinitialize.h. 13906 13907* Tools: 13908 13909- Add initialconfig.c so that perhaps in the future we will be able to 13910use this to generate a new configuration from scratch (rather than 13911having to derive new configurations from existing configurations). 13912NOTE: Not yet intregated into the build system. 13913 13914* NSH: apps/nshlib: 13915 13916- Added support for set [{+|-}{e|x|xe|ex}] [<name> <value>]. Set the 13917'exit on error control' and/or 'print a trace' of commands when 13918parsing scripts in NSH. The settings are in effect from the point 13919of execution, until they are changed again, or in the case of the init 13920script, the settings are returned to the default settings when it 13921exits. Included child scripts will run with the parents settings and 13922changes made in the child script will effect the parent on return. 13923Use 'set -e' to enable and 'set +e' to disable (ignore) the exit 13924condition on commands. The default is -e. Errors cause script to 13925exit. Use 'set -x' to enable and 'set +x' to disable (silence) 13926printing a trace of the script commands as they are ececuted. The 13927default is +x. No printing of a trace of script commands as they are 13928executed. From David Sidrane. 13929- Print expanded variables if -x. From David Sidrane. 13930- ifconfig command: Extend ifconfig to support 6LoWPAN. Adapt to 13931some changes in configuration variable usage. 13932- Network initialization: If IEEE802.11 selected use wlan0 instead of 13933eth0 for network device name. 13934- Network initialization: NSH now has configuration options to select 13935the wireless properties. It builds the configuration structure and 13936passes this to wpa_driver_wext_associate() so that it will set the 13937network as configured. 13938- Network initialization: Add a new option CONFIG_NSH_NETLOCAL that 13939will suppress some built in operations and will support manual 13940configuration of a wireless network through command line tools. 13941 13942* Examples/Tests: apps/examples: 13943 13944- examples/xbc_text: Adds a test program for the XBox One controller 13945driver. From Brian Webb. 13946- examples/ostest: Add a test of robust mutexes. 13947- examples/ostest: Add tests for pthread_rwlock. Adding tests to be 13948used to verify the pthread_rwlock lock works. From Mark Schulte. 13949- examples/ostest: Additional test for rwlock and one for cancel 13950cleanup handlers. From Juha Niskanen. 13951- examples/usrsocktest: Add application for USRSOCK testing. From 13952Jussi Kivilinna. 13953- examples/nettest: Adapt for use in testing 6LoWPAN. 13954- examples/nettest: If doing loopback, but not using the official 13955loopback device, then use the server should use the configured client 13956IP address. 13957- examples/udpblaster: Several fixes to work with 6LoWPAN. 13958- examples/udpblaster: Add logic to bind the local UDP socket to a 13959well-known address. 13960- examples/configdata: Add stacksize and priority. From Juha Niskanen. 13961 13962* Network Utilities: apps/netutils: 13963 13964- netutils/netlib: Add IEEE 802.11 wireless IOCTL wrappers. 13965- netutils/netlib: Add a helper function to convert a string to a 139666LoWPAN node address. 13967- netlib and NSH: Add logic to get/set the IEEE802.15.4 PAN ID. 13968- netutils/dhcpc: Make the network device name a configuration 13969option. Was hardcoded to eth0 but may, instead, need to be wlan0. 13970- netutils/dhcpc: Remove hard-coded interface device. Now passed as 13971a parameter to dhcpc_open(). From Sebastien Lorquet. 13972 13973* Wireless Utilities: apps/wireless: 13974 13975- wireless/wapi: Port of Wapi wireless services. The original 13976depended on features not supported by NuttX: Removed logic that 13977depends on Linux netlink. Removed functionality that depended on 13978the Linux procfs: This includes only 1) listing of available 13979interfaces and 2) listing of all routes. 13980- wireless/wapi: Create command line Wapi application based on 13981Wapi sample code. 13982- wireless/wapi: wpa_driver_wext_associate() now accepts a 13983configuration parameter that can be used to specify the wireless 13984properties. 13985- wireless/wapi: Add basic wapi_event_stream_extract implementation. 13986From Simon Piriou. 13987- wireless/ieee802154: Add iwpan and i8sak tools. iwpan is similar 13988in concept to wapi. From Anthony Merlino (i8sak was originally 13989by Sebastien Lorquet). 13990- wireless/ieee802154/libmac: IEEE 802.15.4 MAC library. 13991- wireless/wext: Add drivers_wext from the WPA supplicant; Integrate 13992into NSH. From Simon Piriou. 13993 13994* System Utilities (apps/system) 13995 13996- apps/system/dhcpc: Add a command to renew or establish a lease on an 13997IPv4 address. 13998- apps/system/ntpc: Add a command to start or stop the NTPC daemon. 13999- apps/system/ramtest: Make stacksize and priority conigurable. 14000 14001* Platform-Specific Support (apps/platform) 14002 14003- apps/platform: Create gnu/ subdirectory that contains the one and 14004only GNU C++ initialization function. Remove all other C++ 14005initialization functions. 14006 14007Bugfixes. Only the most critical bugfixes are listed here (see the 14008ChangeLog for the complete list of bugfixes and for additional, more 14009detailed bugfix information): 14010 14011* Core OS: 14012 14013- Priority inheritance: When CONFIG_SEM_PREALLOCHOLDERS==0, there is 14014only a single, hard-allocated holder structure. This is problem 14015because in sem_wait() the holder is released, but needs to remain in 14016the holder container until sem_restorebaseprio() is called. The call 14017to sem_restorebaseprio() must be one of the last things the 14018sem_wait() does because it can cause the task to be suspended. If in 14019sem_wait(), a new task gets the semaphore count then it will fail to 14020allocate the holder and will not participate in priority 14021inheritance. This fix is to add two hard-allocated holders in the 14022sem_t structure: One of the old holder and one for the new holder. 14023- Priority inheritance: sem_holder sem_findholder missing 14024inintalization of pholder. sem_findholder would fail and code 14025optimization covered this up. From David Sidrane. 14026- Partial Fix priority inheritance CONFIG_SEM_PREALLOCHOLDERS=0. From 14027David Sidrane. 14028- Priority inheritance: sem_boostholderprio prevent overrun of 14029pend_reprios. The second case rtcb->sched_priority <= 14030htcb->sched_priority did not check if there is sufficient space in 14031the pend_reprios array. From David Sidrane. 14032- lp_worker: Guard from pend_reprios overflow. From David Sidrane. 14033- Priority inheritance: Fixes improper restoration of base_priority in 14034the case of CONFIG_SEM_PREALLOCHOLDERS=0. The call to 14035sem_restorebaseprio_task context switches in the 14036sem_foreachholder(sem, sem_restoreholderprioB, stcb); call prior to 14037releasing the holder. So the running task is left as a holder as is 14038the started task. Leaving both slots filled thus failing to perform 14039the boost/or restoration on the correct tcb. This PR fixes this by 14040releasing the running task slot prior to reprioritization that can 14041lead to the context switch. To faclitate this, the interface to 14042sem_restorebaseprio needed to take the tcb from the holder prior to 14043the holder being freed. In the failure case where sched_verifytcb 14044fails it added the overhead of looking up the holder. There is also 14045the additional thunking on the foreach to get from holer to 14046holder->tcb. An alternate approach could be to leve the interface 14047the same and allocate a holder on the stack of sem_restoreholderprioB 14048copy the sem's holder to it, free it as is done in this pr and 14049then pass that address sem_restoreholderprio as the holder. It could 14050then get the holder's tcb but we would keep the same sem_findholder 14051in sched_verifytcb. From David Sidrane. 14052- Priority inheritance: Fixes improper restoration of base_priority. 14053From David Sidrane. 14054- sem_holder: Indexing error. From David Sidrane. 14055 14056if (sem->holder[0].htcb != NULL || sem->holder[**1**].htcb != NULL) 14057- realloc(): When realloc() has to fall back to calling malloc(), size 14058including overhead was being provided to malloc(), causing a slightly 14059larger allocation than needed. Noted by initialkjc@yahoo.com. 14060- scheduler: Fix tg_flags check with GROUP_FLAG_NOCLDWAIT. From Masayuki 14061Ishikawa. 14062- scheduler: Fix CHILD_FLAG_EXITED in include/nuttx/sched.h. From 14063Masayuki Ishikawa. 14064- binfmt/elf: Fix offset value when calling elf_read() in 14065elf_symname(). From Masayuki Ishikawa. 14066- binfmt/elf: Fix offset value when calling elf_read() in 14067elf_sectname(). From Masayuki Ishikawa. 14068- There can be a failure in IOB allocation to some asynchronous 14069behavior caused by the use of sem_post(). Consider this scenario: 14070(1) Task A holds an IOB. There are no further IOBs. The value of 14071semcount is zero. Task B calls iob_alloc(). Since there are not 14072IOBs, it calls sem_wait(). The value of semcount is now -1. (2) 14073Task A frees the IOB. iob_free() adds the IOB to the free list and 14074calls sem_post() this makes Task B ready to run and sets semcount to 14075zero NOT 1. There is one IOB in the free list and semcount is zero. 14076When Task B wakes up it would increment the sem_count back to the 14077correct value. (3) But an interrupt or another task runs occurs 14078before Task B executes. The interrupt or other tak takes the IOB off 14079of the free list and decrements the semcount. But since semcount is 14080then < 0, this causes the assertion because that is an invalid state 14081in the interrupt handler. So I think that the root cause is that 14082there the asynchrony between incrementing the semcount. This change 14083separates the list of IOBs: Currently there is only a free list of 14084IOBs. The problem, I believe, is because of asynchronies due 14085sem_post() post cause the semcount and the list content to become out 14086of sync. This change adds a new 'committed' list: When there is a 14087task waiting for an IOB, it will go into the committed list rather 14088than the free list before the semaphore is posted. On the waiting 14089side, when awakened from the semaphore wait, it will expect to find 14090its IOB in the committed list, rather than free list. In this way, 14091the content of the free list and the value of the semaphore count 14092always remain in sync. 14093- binfmt: Fix .dtor memory allocation. From Masayuki Ishikawa. 14094 14095* File System/Block and MTD Drivers: 14096 14097- SmartFS: If whence is SEEK_END, the file offset shall be set to the 14098size of the file plus offset. Noted by eunb.song@samsung.com. 14099- mtd/progmem: Fix incorrect target address calculation. 14100progmem_read/write() is incorrectly calculating the target address, 14101expecting the offset argument is given in a block number. This is 14102completely wrong and as a result invalid flash region is accessed. 14103Byte-oriented read/write interfaces of mtd device accept the target 14104address in a byte offset, not a block number. From Heesub Shin. 14105- procfs: Fix wrong member IDs are displayed when 'cat 14106/proc/<pid>/group/status'. From Nobutaka Toyoshima. 14107- procfs: Fix incorrect uptime with CONFIG_SYSTEM_TIME64. From 14108Masayuki Ishikawa. 14109- vfs/poll: round timeout up to next full tick. Calling poll() with 14110timeout less than half tick (thus MSEC2TICK(timeout) => 0) caused 14111returning error with EAGAIN. Instead of rounding timeout down, value 14112should be rounded up. Open Group spec for poll says: 14113"Implementations may place limitations on the granularity of timeout 14114intervals. If the requested timeout interval requires a finer 14115granularity than the implementation supports, the actual timeout 14116interval will be rounded up to the next supported value." From Jussi 14117Kivilinna. 14118- mtd/config: erase block between block read and write. From Juha 14119Niskanen. 14120- mtd: Build RAMTRON and AT45DB drivers only if selected. From Juha 14121Niskanen. 14122- mtd/config: Fix byte read interface test. From Juha Niskanen. 14123- mtd: Fix some unallocated and NULL pointer issues. rwb->wrflush and 14124rwb->wrmaxblocks in rwbuffer could get unallocated values from 14125ftl_initialize() in some configurations. Also fixes related assert: 14126 14127up_assert: Assertion failed at file:rwbuffer.c line: 643 14128 14129that can happen with the following configuration: 14130 14131CONFIG_FTL_WRITEBUFFER=y 14132CONFIG_DRVR_WRITEBUFFER=y 14133# CONFIG_FS_WRITABLE is not set 14134 14135These problems are caused by CONFIG variable differences between the 14136buffer layers. TODO: This is not a perfect solution. readahead 14137support has similar issues. From Juha Niskanen. 14138- net procfs: Fix buffer corruption and refactor netdev_statistics.c. 14139From Masayuki Ishikawa. 14140- FAT: Fix 'Missing unlock' in fs_fat32.c. From Masayuki Ishikawa. 14141- VFS fdopen: Add missing file stream flags clearing. Clear file 14142stream structure regardless of config options. Structure clearing is 14143needed as previous use of stream list entry might leave fs_flags 14144set. From Harri Luhtala. 14145- mtd/smart: Fix use of uninitialized variable. From Jussi Kivilinna. 14146- mtd/w25.c: Enable short delay after sector/chip erase. From Jussi 14147Kivilinna. 14148- mtd/config: Add some error checks for I/O errors. From Juha 14149Niskanen. 14150 14151* Graphics/Graphic Drivers: 14152 14153- net procfs: Some long lines were being generated that cause buffer- 14154related problems and corrupted output. 14155 14156* Networking/Network Drivers: 14157 14158- Fixed wrong assert on udp dgram send. From Pascal Speck. 14159- TCP/IPv6: Fix a compile issue when IPv6, but not IPv4 is enabled. 14160- net/socket/accept: Fix building with CONFIG_NET_LOCAL_STREAM. From 14161Jussi Kivilinna. 14162- Argument of network device IOCTL should be unsigned long, just as 14163will all other IOCTL methods. 14164- net/socket: Fix cloning of local and raw sockets. From Jussi 14165Kivilinna. 14166- TCP: Wait for 3-Way Handshare before accept() returns. From Simon 14167Piriou. 14168- TCP: Send RST if application 'unlistens()' before we complete the 14169connection sequence. 14170- TCP: An RST received during the 3-way handshake requires a little 14171more clean-up. 14172- IPv6: Fix net_ipv6_pref2mask(). From Masayuki Ishikawa. 14173- network IOCTL commands: The only place in net/netdev/netdev_ioctl.c 14174where the interface state should change is for SIOCSIFFLAGS. The 14175other ones .. SIOCSIFADDR, SIOSLIFADDR, SIODIFADDR .. should not 14176change the link state. From Sebastien Lorquet. 14177- TCP: Fix tcp_findlistner() in dual stack mode. From Masayuki 14178Ishikawa. 14179 14180* Common Drivers: 14181 14182- Fix as5048b by adding missing frequency parameter. From Andreas 14183Bihlmaier. 14184- multiple fixes in nrf24l01 driver: (1) signal POLLIN if there is 14185already data in the FIFO, (2) send ETIMEDOUT to userspace after 2 14186seconds if TX IRQ was not received, (3) handle FIFO overflow, (4) 14187handle invalid pipes/empty FIFO, and (5) multiple cosmetics (missing 14188static, duplicate define, missing \n). From Leif Jakob. 14189- input/mxt: Prevent overriding i2c transfer return value. 14190put_reg/get_reg function was overriding i2c transfer error code with 14191i2creset return value, that lead to OK status although actual 14192transfer failed. From Juha Niskanen. 14193- drivers/audio/wm8904: WM8904 has same problem as that fixed by Juha 14194Niskanen in the MaxTouch driver. 14195- UART 16550: Missing left parenthesis in function prototype. This is 14196Bitbucket Issue #41. 14197- USBMSC: Fix a wrong lun number issue. From Masayuki Ishikawa. 14198- drivers/i2c: Fix compile issues if CONFIG_DISABLE_PSEUDOFS_OPERATIONS 14199is enabled. 14200- drivers/serial: I discovered a problem in the file 14201drivers/serial/serial.c concerning the function uart_close. In the 14202case that a serial device is opened with the flag O_NONBLOCK the 14203function uart_close blocks until all data in the buffer is 14204transmitted. The function close called on an handle opened with 14205O_NONBLOCK should not block. The problem occurred with a CDC/ACM 14206device. From Stefan Kolb. 14207- drivers: Fix some bad NULL checks. From Juha Niskanen. 14208- drivers: Rename newly introduced up_i2creset to I2C_RESET. From 14209Juha Niskanen. 14210- drivers/bch: BCH character driver bch_ioctl() always returns -ENOTTY 14211for DIOC_GETPRIV command. It should returns OK if DIOC_GETPRIV 14212command succeeds. From EunBong Song. 14213- Replace sprintf() with snprintf() in pipe.c. From Nobutaka Toyoshima. 14214- drivers/bch: Fix 'Missing Unlock' in bchdev_driver.c. From Masayuki 14215Ishikawa. 14216- button_upper: Fix interrupt enabling for poll-events. From Jussi 14217Kivilinna. 14218- drivers/{sensors,usbmisc}: Fix uninitialized I2C frequency. From 14219Juha Niskanen. 14220 14221* ARM: 14222 14223- Set EABI stack alignment for all ARM architectures (remove OABI 14224code). From David Cabecinhas. 14225- Remove redundant interrupt stack coloring and OABI code. From David 14226Cabecinhas. 14227- Fix off-by-one interrupt stack allocation in 8-byte aligned 14228architectures. From David Cabecinhas. 14229 14230* ARMv6-M: 14231 14232- CONFIG_DEBUG_HARDFAULT should be available for Cortex-M0 too. 14233 14234* Microchip/Atmel SAM3/4 Drivers: 14235 14236- SAM3/4: Fixed configurations for TWI master. Obviously an 14237incomplete port from SAMA5. 14238 14239* Microchip/Atmel SAMv7 Drivers: 14240 14241- SAMV7: Watchdog: Fix Forbidden Window Value. According the Datasheet 14242the WDD Value is the lower bound of a so called Forbidden Window and 14243to disable this we have to set the WDD Value greater than or equal to 14244the WDV Value. This seems to be a bug in the datasheet. It looks 14245like we have to set it to a greater value than the WDV to really 14246disable this Thing. When triggering the Watchdog faster than the 14247(very slow) clock source of the Watchdog fires, this Forbidden Window 14248Feature resets the System if WDD equals to WDV. This Changeset 14249disables the Forbidden Window by setting the WDD Value to the Maximum 14250(0xfff) Value possible. From Frank Benkert. 14251- SAMV7 EMAC: Add conditional logic to account the fact that the 14252SAMV71 has 6 rather than 3 queues after version 1. From Ian McAfee. 14253 14254* NXP/Freescale Kinetis Drivers: 14255 14256- Kinetis: Fixed GPIO _PIN_OUTPUT_LOWDRIVE swapped with 14257_PIN_OUTPUT_OPENDRAIN. From David Sidrane. 14258- Ensure interrupts are back on BEFORE running code dependent on 14259clock_systimer. From David Sidrane. 14260- Kinetis k66, k64, k60, k40, k20: Pin mux configure all I2C signals as 14261Open Drain. The output structure of the GPIO for I2C needs to be 14262open drain. When left at the default, one can observe on a scope the 14263slave contending with the push-pull during the ACK. From David 14264Sidrane. 14265- Kinetis K66: Fixed TMP2_CH1 definition. From David Sidrane. 14266- Kinetis K66: Define ALT1 to match ref manual. From David Sidrane. 14267- Kinetis K66: GPIO and pin mux cleanup. From David Sidrane. 14268- Kinetis ADC: Various corrections and updates. From David Sidrane. 14269 14270* NXP/Freescale LPC43xx: 14271 14272- Add missing PINCONF_INBUFFER in several places of 14273lpc4310203050_pinconfig.h. From Andreas Bihlmaier. 14274- Fix logic in preprocessor checks and correct arguments to 14275lpc43_pin_config initialization. From Andreas Bihlmaier. 14276 14277* NXP/Freescale LPC43xx Drivers: 14278 14279- Fix logic error in lpc43_adc. From Andreas Bihlmaier. 14280- Use correct macro for irqid (fortunately both point to 14281LPC43_IRQ_EXTINT+18). From Andreas Bihlmaier. 14282- Actually write modified value to register. From Andreas Bihlmaier. 14283- Increase number of supported PWM channels from 4 to 6. From Andreas 14284Bihlmaier. 14285 14286* Silicon Labs EFM32 Drivers: 14287 14288- EFM32 I2C: Fix timeout calculation. From Masayuki Ishikawa. 14289 14290* STMicro STM32: 14291 14292- As discovered by dcabecinhas. This fix assume the 8 byte alignment 14293options for size stack size or this will overwrite the first word 14294after TOS. See 14295https://github.com/PX4/Firmware/issues/6613#issuecomment-285869778. 14296From David Sidrane. 14297- STM32 F7: In stm32_allocateheap.c There are 5 not 4 configurations. 14298From David Sidrane. 14299 14300* STMicro STM32 Drivers: 14301 14302- STM32, STM32 F7, STM32 L4: OTG host drivers: Do not do data toggle 14303if interrupt transfer is NAKed. Suggested by webbbn@gmail.com. 14304- Save elapsed time before handling I2C in stm32_i2c_sem_waitstop(). 14305This change follows the same logic as in previous fix to 14306stm32_i2c_sem_waitdone(). It is possible that a context switch 14307occurs after I2C registers are read but before elapsed time is saved 14308in stm32_i2c_sem_waitstop(). It is then possible that the registers 14309were read only once with "elapsed time" equal 0. When scheduler 14310resumes this thread it is quite possible that now "elapsed time" will 14311be well above timeout threshold. In that case the function returns 14312and reports a timeout, even though the registers were not read 14313"recently". Fix this by inverting the order of operations in the loop 14314- save elapsed time before reading registers. This way a context 14315switch anywhere in the loop will not cause an erroneous "timeout" 14316error. From Freddie Chopin. 14317- STM32, STM32 F7, and STM32 L4: Clone Freddie Chopin's I2C change to 14318similar STM32 I2C drivers. From David Sidrane. 14319- STM32: OTG host implementations of stm32_in_transfer() must obey the 14320polling interval for the case of isochronous and interrupt endpoints. 14321- STM32: Fix erase sector number for microcontrolers with more than 11 14322sectors. Erase a sector from the second bank cause the bit 4 of SNB 14323being set but never unused, so trying to erase a sector from the first 14324bank was actually eraseing a sector from the second bank. From José 14325Roberto de Souza. 14326- STM32: Make up_progmem thread safe. Writing to a flash sector while 14327starting the erase of other sector have a undefined behavior so lets 14328add a semaphore and synchronize access to Flash registers. But for 14329the semaphore to work it needs to be initialized so each board needs 14330call stm32_flash_initialize() on initialization, so to avoid runtime 14331problems it is only using semaphore and making it thread safe if 14332initialized, after all boards starts to call stm32_flash_initialize() 14333we can remove the boolean and the check. From José Roberto de Souza. 14334- STM32: Add workaround for flash data cache corruption on 14335read-while-write. This is a known hardware issue on some STM32 see 14336the errata of your model and if you make use of both memory banks you 14337should enable it. From José Roberto de Souza. 14338- STM32 Flash fixes. From José Roberto de Souza. 14339- STM32 Flash: Missing unlock on F1 HSI off path. From David Sidrane. 14340- STM32 F4 I2C: I needed to use DS3231, I remember that in past it 14341worked ok, but now for stm32f4xx is used another driver (chip 14342specific, stm32f40xxx_i2c.c) and DS3231 driver doesn't work. After 14343investigating a problem I found that I2C driver (isr routine) has a 14344few places there it sends stop bit even if not all messages are 14345managed. So, e.g., removing stm32_i2c_sendstop (#1744) and adding 14346stm32_i2c_sendstart after data reading helps to make DS3231 working. 14347From Alexander Oryshchenko; verified by David Sidrane. 14348- STM32 F7 Serial: Serial fix for dropped data: (1) Revert the 14349inherited dma bug from the stm32. see 14350https://bitbucket.org/nuttx/nuttx/commits/df9ae3c13fc2fff2c21ebdb098c520b11f43280d 14351for details. And (2) Most all CR1-CR3 settings can not be configured 14352while UE is true. Threfore we make all operation atomic and disable 14353UE and restore it's originalstate on exit. From David Sidrane. 14354- STM32 L1: Fix IWDG and WWDG debug mode stop for STM32L15XX. From 14355Juha Niskanen. 14356- STM32 F7: Fix UART7 and UART8 IFLOWCONTROL options. From Jussi 14357Kivilinna. 14358- STM32 F7: Add warning for RXDMA + IFLOWCONTROL combination. 14359Combination of RXDMA + IFLOWCONTROL does not work as one might 14360expect. Since RXDMA uses circular DMA-buffer, DMA will always keep 14361reading new data from USART peripheral even if DMA buffer underruns. 14362Thus this combination only does following: RTS is asserted on USART 14363setup and deasserted on shutdown and does not perform actual RTS 14364flow-control. Data loss can be demonstrated by doing long up_mdelay 14365inside IRQ critical section and feeding data to RXDMA+IFLOWCONTROL 14366UART. From Jussi Kivilinna. 14367- STM32 F7 Serial: Do not stop processing input in SW flow-control 14368mode. From Jussi Kivilinna. 14369- STM32 L4 DMA: Correct bad channel definition. From Sebastien Lorquet. 14370- STM32 F7: Warn if no DMA2 configured when using ADC with DMA. Also 14371correct ADC channel numbers that DMA callback passes to upper half 14372driver. From Juha Niskanen. 14373- STM32 F7 ADC: Do not override ADCPRE_DIV when measuring 14374internal voltage. From Juha Niskanen. 14375- STM32 L4: Don't think these chips have DPFPU, DTCM or ITCM. From 14376Juha Niskanen. 14377- STM32 F7 Flash: macro naming errors, there is no FLASH_CONFIG_F for 14378F7. From Juha Niskanen. 14379- STM32 L4: stm32l4x6xx_pinmap: Update I2C4 and DCMI pins. From Juha 14380Niskanen. 14381- STM32 L4: stm32l4_i2c: change wrong macro to CONFIG_I2C_POLLED. From 14382Juha Niskanen. 14383- Fix STM32F7 I2C interrupt handler. From Jussi Kivilinna. 14384- STM32: Serial Allow configuring Rx DMA buffer size. From David 14385Sidrane. 14386- STM32 CAN: I had the problem that the transmit FIFO size (= actual 14387elements in FIFO) was slowly increasing over time, and was full after 14388a few hours. The reason was that the code hit the line 14389"canerr("ERROR: No available mailbox\n");" in stm32_cansend, so 14390can_xmit thinks it has sent the packet to the hardware, but actually 14391has not. Therefore the transmit interrupt never happens which would 14392call can_txdone, and so the size of the FIFO size does not decrease. 14393The reason why the code actually hit the mentioned line above, is 14394because stm32can_txready uses a different (incomplete) condition than 14395stm32can_send to determine if the mailbox can be used for sending, 14396and thus can_xmit forwards the packet to stm32can_send. 14397stm32can_txready considered mailboxes OK for sending if the mailbox 14398was empty, but did not consider that mailboxes may not yet be used if 14399the request completed bit is set - stm32can_txinterrupt has to 14400process these mailboxes first. Note that I have also modified 14401stm32can_txinterrupt - I removed the if condition, because the CAN 14402controller retries to send the packet until it succeeds. Also if the 14403condition would not evaluate to true, can_txdone would not be called 14404and the FIFO size would not decrease also. From Lederhilger Martin. 14405- STM32 Serial: Fix freezing serial port. Serial interrupt 14406enable/disable functions do not disable interrupts and can freeze 14407device when serial interrupt is received while execution is at those 14408functions. Trivially triggered with two or more threads write to 14409regular syslog stream and to emergency stream. In this case, freeze 14410happens because of mismatch of priv->ie (TXEIE == 0) and actually 14411enabled interrupts in USART registers (TXEIE == 1), which leads to 14412unhandled TXE interrupt and causes interrupt storm for USART. From 14413Jussi Kivilinna. 14414- STM32 I2C: Make private symbols static. From Juha Niskanen. 14415- STM32 L4 GPIO: Put back EXTI line source selection. From Juha 14416Niskanen. 14417- STM32 L4 RTC: Store RTC MAGIC to backup reg, not to address zero. 14418From Juha Niskanen. 14419 14420* STMicro STM32 Boards: 14421 14422- Disable serial console on stm32f103-minimum usbnsh example project 14423config. Devices enumerate after this change. From Bob Ryan. 14424- Nucleo-144: Default for choice in Kconfig was not one of the 14425possible choices. 14426- Nucleo-F4X1RE User LEDS: Issue #51 reports compilation problems with 14427stm32_userled.c. Reported by Gappi92. 14428 14429* TI Tiva Drivers: 14430 14431- Tiva I2C: Correct an error in conditional compilation. 14432- Tiva SSI: Resolves issue 52 'Copy-Paste error in 14433tiva_ssibus_initialize()' submitted by Aleksandr Kazantsev. 14434 14435* C Library/Header Files: 14436 14437- C Library vsnprintf(): Fix precision for string formatting. Fixes 14438use of format precision to truncate input string. From Jussi 14439Kivilinna. 14440- C Library vsnprintf(): If size is zero, then vsnprintf() should 14441return the size of the required buffer without writing anything. 14442From Jussi Kivilinna. 14443- C Library netdb: in dns_query_callback, ret != -EADDRNOTAVAIL 14444condition consumes error returns including EAGAIN in this case, 14445dns query retransmission doesn't work. From Ritajina. 14446- C Library netdb: Fix time info in lib_dnscache.c. From Masayuki 14447Ishikawa. 14448- C Library netdb: Fix bugs in lib_gethostbynamer.c. This fix sets 14449h_name in struct hostent returned by gethostbyname(). From Masayuki 14450Ishikawa. 14451- C Library Defect Workaround: replace '%6.6u' format with an 14452equivalent '%06u'. From Tomasz Wozniak. 14453 14454* Tools 14455 14456- Fix mksyscall host binary name. From Alan Carvalho de Assis. 14457 14458* Applications (apps/) 14459 14460- Fix some calls to task_create(): argv[0] is the first parameter, not 14461the name of the task. 14462- Bitbucket Issue 5: I found an unexpected behavior in apps/ 14463configuration generation. Adding external symbolic link in apps/ 14464directory and using Make.defs for Kconfig generation, Kconfig file 14465has a wrong path in the source argument. It contains original dir 14466path outside of the source tree instead path to sub-directory in 14467apps/. The problem is connected with make/system symbolic link path 14468resolution. Corrected by a patch submitted by Artur Madrzak with 14469Issue 5. 14470- apps/: Make more globals static to avoid name clashes. From Juha 14471Niskanen. 14472 14473* NSH: apps/nshlib: 14474 14475- NSH library: In nsh_argexand(), if CONFIG_NSH_ARGCAT is defined but 14476CONFIG_NSH_CMDPARMS defined and/or CONFIG_DISABLE_ENVIRON not 14477defined, then there is a situation that causes an infinite loop in 14478the parser. Noted by Freddie Chopin. 14479- NSH library: Fix building when CONFIG_NET_USRSOCK enabled with other 14480link-layers. From Jussi Kivilinna. 14481- NSH library: Fix some warnings about integer/pointer casts of 14482different sizes (probably only effects 64-bit simulation). 14483- NSH library: Fix open flags in nsh_codeccmd.c. From Masayuki 14484Ishikawa. 14485- I need to look at the registers that are at or around 0xe000ef90. 14486Using mw and xd, I see that nsh does not support pointers greater 14487than 0x7fffffff. A quick look at the source shows that the pointers 14488for those two commands are set with calls to strtol() rather than 14489strtoul(). Changing the two pointer-setting instances to strtoul() 14490fixes the problem, at least for my architecture/config. From Ian 14491McAfee. 14492- NSH library: Fix a resource leak in cmd_hexdump(). From Nobutaka 14493Toyoshima. 14494 14495* Examples/Tests: apps/examples: 14496 14497- apps/examples/hidkbd: Remove call to arch_usbhost_initialize(). 14498That is violation of the OS interfacing rules and will no longer be 14499supported. USB host should be initialized as part of the normal 14500board bring-up logic as with any other devices and should not involve 14501illegal calls from applications into the OS. 14502- apps/examples/usbterm: Removed because it is not very useful and 14503because it can be configured to use an illegal call into the OS. 14504- examples/mm: Fix Makefile. Built-in was not being registered. 14505- examples/hidkbd: Add some missing configuration settings. 14506- examples/random: Avoid stack overflows. From Juha Niskanen. 14507- examples/nettest: Fix an error in pre-processor expression. 14508- examples/mtdpart: Prevent part array overflow. mtdpart examples 14509create partitions and allocate from 1 index not a 0 index to part[] 14510array. This cause buffer overflow for part array. This change fixes 14511this problem. From EunBong Song. 14512- examples/can: Fix can example app to print data when 14513CONFIG_EXAMPLES_CAN_READ is defined. From Alan Carvalho de Assis. 14514 14515* Network Utilities: apps/netutils: 14516 14517- Not a clean fix, but at least makes DHCP working with 14518CONFIG_NETDEV_MULTINIC. From Andreas Bihlmaier. 14519- Ensure netlib will not be broken when setip will not bring the 14520network up anymore. From Sebastien Lorquet. 14521 14522* CAN Utilities: apps/canutils: 14523 14524- Fix libcanard github download link to get it compiling correctly. 14525From Alan Carvalho de Assis. 14526- Fix to use the new canardInit() function. From Alan Carvalho de 14527Assis. 14528 14529* System Utilities (apps/system) 14530 14531- system/dhcpc: Add missing argument of fprintf. 14532 14533* Tools (apps/tools): 14534 14535- The dedicated windows tool at tools/mkkconfig.bat uses $APPSDIR, 14536which is not a windows shell variable, and is left uninitialized, but 14537in fact should be the current directory. From Sebastien Lorquet. 14538 14539NuttX-7.22 Release Notes 14540------------------------ 14541 14542The 122nd release of NuttX, Version 7.22, was made on September 9, 2017, 14543and is available for download from the Bitbucket.org website. Note 14544that release consists of two tarballs: nuttx-7.22.tar.gz and 14545apps-7.22.tar.gz. These are available from: 14546 14547https://bitbucket.org/nuttx/nuttx/downloads 14548https://bitbucket.org/nuttx/apps/downloads 14549 14550Both may be needed (see the top-level nuttx/README.txt file for build 14551information). 14552 14553Additional new features and extended functionality: 14554 14555* Core OS: 14556 14557- pthreads: Move functions from sched/pthreads to libc/pthreads. These 14558functions just coordinate other OS interface calls but are not a 14559fundamental OS interfaces and, hence, do not belong within the OS: 14560pthread_yield(), pthread_once(), pthread_cond_init(), 14561pthread_cond_destroy(), pthread_barrier_init(), 14562pthread_barrier_destroy(), and pthread_barrier_wait(). 14563- Add power-related debug output. 14564 14565* File Systems/Block and MTD Drivers 14566 14567- RAMTRON: Add support for splitting block writes in chunks. Some 14568Re-RAMs like MB85AS4MT have a write buffer size limitation. From 14569Boris Astardzhiev. 14570- MTD: Add driver for Macronix QuadSPI flash memory. From Simon Piriou. 14571 14572* Graphics/Display Drivers: 14573 14574- SSD1306 LCD Driver: (1) Separate lcd_dev_s setup to separate object. 14575g_oleddev takes 1 KiB because framebuffer and was allocated to .data 14576section because of lcd_dev_s function pointer setup. Move lcd_dev_s 14577setup out, so that g_oleddev goes to .bss and avoid wasting ROM. (2) 14578Fix memory corruption caused by ssd1306_getrun(). ssd1306_getrun was 14579writing one extra byte (with value 0) past target buffer when pixlen 14580is multiple of 8. When pixlen was not multiple of 8, last byte of 14581buffer was fully cleared, instead of modifying only the (pixlen % 8) 14582bits of last byte. (3) Add support for board power control. 14583ThingseeOne has regulator for controlling display power on/off. Patch 14584adds support for board based power control to SSD1306 driver. (4) Add 14585DD-12864WO-4A/SSD1309 support to SSD1306 driver. From Jussi Kivilinna. 14586 14587* Networking/Network Drivers: 14588 14589- Sockets: Support listening sockets in the getsockname() function. 14590From Roland Takacs. 14591- IP Forwarding: At the IP level, network may be configured to forward 14592IP packets that are not destined for the target through a different 14593network device, decrementing the packet TTL. 14594- IP forwarding: Add optional support to forward broadcast and 14595multicast packets. Add missing ICMP support. 14596- ICMPv6: Add 6LoWPAN and IP forwarding support. 14597- ICMPv6: Support source link-layer address option in RA. From 14598Masayuki Ishikawa. 14599- TUN Driver: Add definitions that will permit TUN-only networking. 14600- Socket I/F: Created a socket interface used to provide socket support. 14601Each address family has an interface that describes how to perform 14602socket operations on that address family. Currently only a couple of 14603methods are defined in the socket interface call table 14604- Remove CONFIG_NET_MULTILINK. This increases code size by a little, 14605but greatly reduces the complexity of the network code. 14606- Network procfs: Add support for routing tables at proc/net/route. 14607- Network procfs: Add support for network procfs statistics for the 14608PF_IEEE802154 address family. 14609- Network Driver Backlog: Remove driver based backlog support. This 14610affects the entire network, but is used by only one driver. The only 14611supported RX backlog is now via common read-ahead buffering. 14612 14613* Wireless Networking/Wireless Drivers: 14614 14615- IEEE 802.15.4 MAC / MRF24J60 Driver: Extensive updates for 14616association/beacon-enabled networks. From Anthony Merlino. 14617- IEEE 802.15.4 MAC / MRF24J60 Driver: Hook in setdevmode from newly 14618added radio attribute setting. From Anthony Merlino. 14619- IEEE 802.15.4 MAC: Supports get request for coordinator address. From 14620Anthony Merlino. 14621- IEEE 802.15.4 MAC: Notify radio layer of changes in devmode. From 14622Anthony Merlino. 14623- IEEE 802.15.4: Add special attribute that can be used to perform a 14624regdump of the radio. From Anthony Merlino. 14625- IEEE 802.15.4 loopback driver: Better simulation addressing: short 14626and extended addresses, panid, and IP address conversion. 14627- IEEE 802.15.4 Network Driver: Add logic to setup the network mask, 14628update the MAC-based IPv6 addressing when the network is brought up. 14629The idea is that addressing changes are supposed to occur only while 14630the network is down but won't take effect until the network is up 14631again. 14632- PktRadio: Add an infrastructure to support networking on generic 14633(non-IEEE 802.15.4) packet radios. 14634- PktRadio Loopback Driver: Add a PktRadio loopback network driver to 14635testing testing with 6LoWPAN and PktRadios on the simulator. 14636- Spirit Network Driver: The Spirit1 radio (SPSGRF-915) is the first 14637generic PktRadio Network driver. Based on STMicros STack packets 14638with 8-bit addressing. We need to use the STack packets in order to 14639provide the source address and automatic ACKing. 14640- Network procfs: Fix so that PktRadio address are shown correctly. 14641- Networking: Add support for some packet radio IOCTL commands. 14642- 6LoWPAN: Added handling for TCP and ICMPv6 packets. 14643- 6LoWPAN: Add configurable support for 6LoWPAN star topology. With 14644this change, the endpoints which are the 'points' of the star will 14645forward all traffic to the coordinator. The coordinator is assumed to 14646be the 'hub' of the star. This function also used IPv6 forwarding. 14647- 6LoWPAN: The original, Contiki-based design used only a single buffer 14648for reassemblying larger packets. This could be a problem issue for 14649hub configurations which really need the capability concurrently 14650reassemble multiple incoming streams concurrently. These was also a 14651design issue in that the reassembly buffer could be corrupted by 14652outgoing packets. The design was extended to support multiple 14653reassembly buffers, each associated with the reassembly tag and source 14654address. This assures that there can be be no corruption of the 14655reassembly once it has started. 14656- 6LoWPAN PktRadio: Now radio agnostic. All IEEE 802.15.4 dependencies 14657have been removed or isolated so that 6LoWPAN can be used with any 14658kind of packet radio. This involved things like: (1) generalizing 14659the representation of radio MAC meta-data, (2) changes to handle 14660variable-length radio addresses, (3) removal of all explicit IEEE 14661802.15.4 types, references, and interfaces, (4) a new radio driver 14662interface to return 'capabilities' of the driver. 14663- ICMPv6: Update so that ICMPv6 can be used with 6LoWPAN. 14664- IPv6 Neighbor: Update table format to support IEEE 802.15.4 MAC 14665addresses. 14666- PF_IEEE802154 Address Family: Add support for the PF_IEEE802154 14667address family socket type. This socket is similar to the PF_PACKET, 14668"raw" packet address family except that: (1) it supports only 14669SOCK_DRAM, not SOCK_RAW, and (2) works only with IEEE 802.15.4 14670MAC-based radios. This address family permits simple access to IEEE 14671802.15.4 IOCTLs and frame-level network transfers. 14672 14673* Other Common Device Drivers: 14674 14675- Dynamically configurable USB composite devices: We developed a huge 14676Changeset over a year ago to make USB Composite configuration 14677dynamical and be able to instantiate the CDC/ACM multiple times inside 14678this device. We use this feature to switch between one in typical USB MSC + CDC/ACM configuration and up to three CDCACMs dynamically. 14679I've changed the interface for some USB-Functions to receive also the 14680dynamic configuration. From Frank Benkert. 14681- Franks' change remained on a branch until all issues were resolved. 14682the current version in Master is complete and ready for use. 14683- power: battery_charger: Add ioctl for charging input current. From 14684Juha Niskanen. 14685- SMPS driver: Add generic upper-half driver for SMPS. From Mateusz 14686Szafoni. 14687- LED Driver: Add support for inverted LEDS. From Jeff. 14688- LED Driver: Add lightness correction for RGB LED driver. From Jeff. 14689- LTC4151 Driver: Add driver for LTC4151 current and voltage monitor. 14690From Giorgio Groß. 14691- Serial TERMIOS: tcdrain() implementation based on a new term ioctl. 14692From Sebastien Lorquet. 14693- Serial TERMIOS: Add support for TCFLUSH. From Sebastien Lorquet. 14694- syslog: Add option to use the CLOCK_MONOTONIC for time stamping. From 14695Jussi Kivilinna. 14696- HC-SR04 Driver: Add support to HC-SR04 distance sensor. From Alan 14697Carvalho de Assis. 14698- COMP Driver: Add poll support. From Pekka Ervasti. 14699- BQ2429X Driver: Add driver for TI BQ2429X battery charger. From Juha 14700Niskanen. 14701- ADC Driver: Add poll support. From Juha Niskanen. 14702- BCH Driver: Add poll support. From Jussi Kivilinna. 14703- RTC Driver: Extend the RTC framework with an alarm read ioctl 14704(RTC_RD_ALARM). Through it consumer could get configuration settings 14705about previously scheduled hardware alarms (active status, hours, 14706minutes, seconds). From Boris Astardzhiev. 14707 14708* Simulation 14709 14710- sim/ipforward: Add an IP forwarding configuration using TUN devices 14711and apps/examples/tun. 14712- Console: Add non blocking read to devconsole driver. From Simon 14713Piriou. 14714- Networking: Poll for TX frames to speed up driver. From Simon Piriou. 14715- pf_ieee802154: Add configuration for testing PF_IEEE802154 address 14716family sockets. 14717- ARM Simulator: Adds necessary functionality to build Simulator under 14718ARM Linux. Tested only on Raspberry3. Currently setjmp/longjmp do not 14719save/restore floating point registers. From Nickolay Semyonov. 14720 14721* MicroChip/Atmel SAML21 Drivers: 14722 14723- SAML21 I2C driver. Developed for and contributed with permissin from 14724Filament company. From Alan Carvalho de Assis. 14725- SAMD/L21 USB Driver: Add a USB driver. Developed for Filament Inc. 14726by Offcode, LTD. From Janne Rosberg. 14727 14728* MicroChip/Atmel SAMv7 Boards: 14729 14730- SAMV71-XULT: Add support for the MRF24J40 radio and create a 14731mrf24j40-starhub configuration. 14732- SAME70-Xplained: Add MRF24J40 support. 14733 14734* NXP Freescale Kinetis Drivers: 14735 14736- Kinetis USB Improvements: usbdev clean up ensuring proper use of HW. 14737Rework suspend and resume logic so they perform properly. Made attach 14738and detach functions optional. As they do not make sense for a bus 14739powered device. From David Sidrane. 14740- Kinetis SPI driver: From David Sidrane. 14741- Kinetis: I2C driver added I2C3, reference counting and reset. 14742Refactored the driver to support reference counting and reset added 14743I2C3. From David Sidrane. 14744- Kinetis RTC: Implementation of the alarm read function. 14745 14746* NXP Freescale Kinetis Boards: 14747 14748- configs/teensy-3.x USB: Define USBOTG-FS Read from FLASH access in 14749board config. Allow the board config to define the USBOTG-FS to have 14750Read access to FLASH. From David Sidrane. 14751- configs/teensy-3.x: Removed call to khci_usbattach. The call is not 14752need by the driver if CONFIG_USBDEV_BUSPOWERED=y. On a USB powered device if we are running we are attached. From David Sidrane. 14753- freedom-k66f: Use SPI driver. Initialize SPI1 on connector J6. No 14754real use, as of yet. From David Sidrane. 14755 14756* NXP Freescale LPC43xx: 14757 14758- LPC43xx: Modify up_allocate_(k)heap() to support PROTECTED mode. From 14759Alan Carvalho de Assis. 14760 14761* NXP Freescale LPC4xx Boards: 14762 14763- configs/Bambino: Add protected mode configuration to Bambino board. 14764From Alan Carvalho de Assis. 14765 14766* On Semiconductor LC823450 14767 14768- LC823450: Initial support for ON Semiconductor LC823450. From Masayuki 14769Ishikawa. 14770- LC823450: eMMC/SD and USB support for LC823450. From Masayuki Ishikawa. 14771 14772* On Semiconductor LC823450 Boards 14773 14774- LC823450-XGEVK: LC823450-XGEVK board support. From Masayuki 14775Ishikawa. 14776- LC823450-XGEVK: Add eMMC/SD and USB support. From Masayuki Ishikawa. 14777 14778* STMicro STM32: 14779 14780- STM32 L4: Add support for the STM32L475 family. 14781- STM32 L4 RCC: Enable ADC clock source. From Juha Niskanen. 14782- STM32: Allow clock frequencies > 168 MHz on stm32f427/429. We need 14783to enable the power overdrive for this case. This change allows the 14784required bits to be set in proper sequence. It also modifies the 14785local register access operations to allow more than 16-bit registers. 14786From Sebastien Lorquet . 14787- STM32 F4: Add support for STM32F433RC. From Alan Carvalho de Assis. 14788- STM32 F7: Add new configuration option for enabling flash ART 14789Accelerator and flash prefetcher. From Jussi Kivilinna. 14790 14791* STMicro STM32 Drivers: 14792 14793- STM32 TIM: Add the set counter function for stm32 timers. From 14794Sergey Ustinov. 14795- STM32 HRTIM: Update HRTIM definitions. Add HRTIM driver. From 14796Mateusz Szafoni. 14797- STM32 HRTIM: Add HRTIM character driver. From Mateusz Szafoni. 14798- STM32 HRTIM: Fix DAC triggers configuration, Add missing master timer 14799logic, enable DAC triggering. From Mateusz Szafoni. 14800- STM32 HRTIM: Add DMA configuration. From Mateusz Szafoni. 14801- STM32 HRTIM: Add burst mode configuration. From Mateusz Szafoni. 14802- STM32 RTC: Port Boris Astardzhiev's RTC change for STM32L4 to STM32. 14803- STM32 DAC: Add support for HRTIM triggering. Separate dma buffer 14804configuration for channels. From Mateusz Szafoni. 14805- STM32 DAC: Conditional logic for timer triggering, fix TSEL 14806configuration when HRTIM, DMA request remapping, Add DMA buffers 14807initialization logic. From Mateusz Szafoni. 14808- STM32 DAC: Support external triggering for DMA transfer. From Mateusz 14809Szafoni. 14810- STM32 L1 TIM: Add base address for TIM11. From Juha Niskanen. 14811- STM32 F4 FLASH: Enable/disable the flash write protection on any 14812sector. I have verified it to work on the STM32 F427. From Sebastien 14813Lorquet. 14814- STM32 F4 Clocking: To use an external oscillator module (not just a 14815crystal) with the STM32F4, one needs to enable the HSEBYP bit in the 14816RCC_CR register. This change allows an integrator to define 14817STM32_RCC_CR_HSEBYP in their board.h file if they want this 14818configuration. From Jeff. 14819- STM32 F4 USB: I'm working on bringing up USB full-speed support on 14820STM32F405. My board does not include a USB power switch, VBus 14821sensing, over current detection, or ID pin. This commit add a 14822config STM32_OTGFS_VBUS_ CONTROL which lets us selectively disable 14823VBus sensing and control. I also sneaked in a change to disable the 14824configgpio call for the ID pin, which is only used in OTG mode which 14825isn't supported yet. The only pins that need to be initialized should 14826be OTGFS_DP and OTGFS_DM. From Jeff. 14827- STM32 FLASH: Add CONFIG_STM32_STM32F469 support. From David Sidrane. 14828- STM32 COMP: Add default INM configuration and some missing COMP 148291,3,5,7 code. From Mateusz Szafoni. 14830- STM32 F33: Add missing SYSCFG CFGR3 definitions. From Mateusz Szafoni. 14831- STM32 L4 Serial: Allow configuring Rx DMA buffer size. From Juha 14832Niskanen. 14833- STM32 L4 COMP: Input minus pin extended selection. From Juha Niskanen. 14834- STM32 L4 COMP: Bind to upper half comp driver. From Pekka Ervasti. 14835- STM32 L4 DAC: Port from STM32. Add ADC register definitions. From 14836Juha Niskanen. 14837- STM32 L4 DAC: Add option for routing DAC output to ADC. Actually 14838write something to the DAC DMA buffer. From Juha Niskanen. 14839- STM32 L4 DAC: Separate DMA buffer configuration for channels. From 14840Juha Niskanen. 14841- STM32 L4 ADC: Implement peripheral. From Juha Niskanen. 14842- STM32 F7: Definitions for I2C4, SDMMC2. Adapted RAM start / size to 14843internal SRAM. From Titus von Boxberg. 14844- STM32 F7 I2C4: I2C4_SDA can also be on GPIO PB7. From Titus von 14845Boxberg. 14846- STM32 F7 LTDC: Option for DSI output, inconsistency: the stm32f746 14847does not feature a DSI interface. compilable with LTDC_INTERFACE and 14848LTDC_USE_DSI. From Titus von Boxberg. 14849- STM32 F7 Clocking: Added functions for DSI clock source selection. 14850From Titus von Boxberg. 14851- STM32 F7 Clocking: Enable APB2 DSI clock. From Titus von Boxberg. 14852- STM32 F7 LTDC: No board specific dithering values used; corrected 14853dithering init. Corrected LIPOS/LIPCR calculation. Change only 14854polarity bits in LTDC_GCR. From Titus von Boxberg. 14855- STM32 F7 Reset: Added function for reset. From Titus von Boxberg. 14856- STM32 F7 DMA: DMA add dcache alignment check in stm32_dmacapable. In 14857the case dcache write-buffed mode is used (not write-through) buffer 14858alignment is required for DMA transfers because a) 14859arch_invalidate_dcache could lose buffered writes data and b) 14860arch_flush_dcache could corrupt adjacent memory if the maddr and the 14861mend+1, the next next address are not on ARMV7M_DCACHE_LINESIZE 14862boundaries. From David Sidrane. 14863- STM32 F7 SDMMC: SDMMC remove widebus limitation on DMA. There is no 14864documentation for the STM32F7 that limits DMA on 1 bit vrs 4 bit 14865mode. From David Sidrane. 14866- STM32 F7 SDMMC: SDMMC add dcache alignment check in 14867dma{recv|send}setup. In the case where CONFIG_SDIO_PREFLIGHT is not 14868used. 14869- STM32 F7 RTC: Port Boris Astardzhiev's RTC change for STM32L4 to 14870STM32F7. 14871 14872* STMicro STM32 Boards: 14873 14874- STM32F103-Minimum: Add GPIO device driver example. From Alan 14875Carvalho de Assis. 14876- STM32F103-Minimum: Add small hello example for STM32F103-Minimum 14877board. From Alan Carvalho de Assis. 14878- STM32F103-Minimum: Add support for SmartFS on Winbond W25 SPI NOR 14879Flash. From Alan Carvalho de Assis. 14880- STM32F103-Minimum: (1) Enable CONFIG_MTD_PARTITION in Kconfig if flash 14881partition is enabled and (2) Update the README.txt file with info 14882needed to get SmartFS working. From Alan Carvalho de Assis. 14883- Nucleo-F334R8: Add HRTIM initialization. From Mateusz Szafoni. 14884- Nucleo-F334R8: UART2 is default serial port (STLINK Virtual Port). 14885From Mateusz Szafoni. 14886- Clicker2-STM32: Add a configuration that was used with the MRF24J60 14887for 6loWPAN testing. 14888- Clicker2-STM32: Allow both IEEE 802.15.4 MAC character and network 14889devices to be registered. 14890- Clicker2-STM32: Add configurations to support the endpoint and hub 14891roles in a star topology. 14892- Clicker2-STM32: Add support for per-function-call stack checking. 14893From Anthony Merlino. 14894- Clicker2-STM32: Configure EDBG SPI CS just to make that it is 14895disabled. 14896- STM32F4 Discovery: Add logic to register the button driver and the 14897user led driver if so configured. From Jan Pobrislo. 14898- STM32F4-Discovery: Add a configuration for testing libc++. From Alan 14899Carvalho de Assis. 14900- B-L475E-IOT01A: Add support for the STMicro B-L475E-IOT01A board. 14901From Simon Piriou. 14902- B-L475E-IOT01A: Add support for the SPSRGF/Spirit1 radio module. Add 14903a configuration for testing sprit radio. 14904- B-L475E-IOT01A: Add configurations to support a star topology. 14905- B-L475E-IOT01A: Add basic support for external Macronix QuadSPI flash 14906memory. From Simon Piriou. 14907- B-L475E-IOT01A: Enable UDP broadcast test in the spirit-starhub 14908configuration. 14909- STM32F334-DISCO: Add STM32F334-DISCO basic support. From Mateusz 14910Szafoni. 14911- STM32F746-Disco: Add ADC3 support. From Ivan Ucherdzhiev. 14912- STM32L476-Disco: Add a knsh configuration that may be used to test 14913the PROTECTED build mode. 14914- STM32F769I-DISCO: Initial port to STM32F769I-DISCO. From Titus von 14915Boxberg. 14916 14917* C Library/Header Files: 14918 14919- Move TUN ioctl command to include/nuttx/net/ioctl.h so that it will 14920always be unique. 14921- Math Library: Port gamma() and lgamma() from FreeBSD to NuttX. From 14922Alan Carvalho de Assis. 14923- C++: Compilation with recent C++ compiler needs an overloaded delete 14924operator that includes a size_t size argument. New sized delete 14925operators are only for C++14 and above. 14926 14927* Build/Configuration System: 14928 14929- Initial clang compile. From Goran Mekic. 14930- Add CLANG definitions in Kconfig and Toolchain.defs. 14931- drivers/wireless/ieee802154: Moved radios to individual 14932sub-directories. From Anthony Merlino. 14933- Makefile.unix: Add savedefconfig target. From Gwenhael Goavec-Merou. 14934- Add Gwenhael's change to Makefile.win and update README.txt to 14935described the new make target. 14936- All defconfig files are now in the compressed format created with 14937'make savedefconfig.' The original .config file can be reconstituted 14938using 'make olddefconfig.' 14939- Build System: It is no longer necessary to have a unique Make.defs 14940file for each configuration. A board may share a common Make.defs 14941file in the scripts directory. Duplicate Make.defs files removed; 14942common Make.defs file moved to the scripts/ sub-directory for each 14943board. 14944- Networking: Move INET socket interface out of net/sockets to its own 14945directory net/inet. 14946 14947* Tools: 14948 14949- testbuild.sh: Added -x to fail build on errors for continuous 14950integration (CI). On CI we want to know ASAP of a failure. From 14951David Sidrane. 14952- Improve configure.sh behavior: (1) enable to call from top directory. 14953(2) enable to designate direct path for config. (3) install .gdbinit 14954if the target has. From Hidetaka Takano. 14955- Update tools/configure.c to same functionality as configure.sh. Add 14956an array of optional file names. Currently, .gdbinit is the only 14957optional file but other things like IDE-specific project files might 14958need to be copied as well. 14959- tools/configure.sh will now copy Eclipse project files if they are 14960present in the board directory file. 14961- Update configure.sh, configure.bat, configure.c: With compressed 14962format, part of the installation requires that we run 'make 14963olddefconfig' to restore the uncompressed defconfig format. Also, 14964while I was at it, I also added options to select host platform on 14965configure command line. 14966- tools/refresh.sh: Now runs make savedefconfig before copying the new 14967defconfig file in place; Also, added a new option --defaults. Since 14968the number of defaults that you now have to answer is so large, the 14969option lets you just accept the default values. So it works just like 14970--silent but still prompts you for the decision to save or discard the 14971new defconfig file. 14972- tools/refresh.sh: Update so that it can find the Make.defs file in 14973the new location. 14974 14975* NSH: apps/nshlib: 14976 14977- NSH Library: Add a Telnetd command. This is needed when network 14978initialization is deferred. In that case, telnet daemon cannot be 14979started until the network is finally initialized. The telnetd command 14980was added just for that case: So that the telnet daemon can be 14981started from the NSH command line after the network is configured. 14982- NSH Library: Misc changes needed for PktRadio support. 14983- NSH Library: Extend ifconfig command so that it can set variable 14984length packet radio address. 14985- NSH Library: Update addroute and delroute command. The would support either 14986IPv4 or IPv6, but not both. Allow expression of the netmask in IPv4 CIDR or 14987IPv6 slash notation. This really reduces the pain of using the commands, 14988especially for IPv6. 14989- NSH Library: Add a route command that will dump the content of routing table. 14990 14991* Examples/Tests: apps/examples: 14992 14993- examples/udp: Add configurable network device name; Add option to 14994suppress network initialization which is not needed if started by NSH 14995or for 6LoWPAN. 14996- examples/udp: Fix registration as a built-in program; Change some 14997naming to make room for a second target. Current one endpoint is the 14998target and one is the host. This will (eventually) allow two targets 14999to be both endpoints of the test. Change build so that both server 15000and client can be on a target, rather than one on the target one on 15001the host PC. Server IP address may not be provided on the command line. 15002- examples/udp: Port numbers need to be configurable to work with 150036LoWPAN. Need to bind the client socket to a port number. This was 15004not required before so is a apparently a change in the UDP packet 15005dispatch logic. 15006- examples/udp: Enable testing with the broadcast address. 15007- examples/nettest: Support target boards on both ends of the test. 15008Separate out network initialization so that it may be used by both a 15009target server and a target client. Fix client/server naming 15010confusion; Add command line option to select the server address on the 15011target. Add support for both endpoints on target boards vs. one on a 15012target and one on the host PC. 15013- examples/nettest: The send buffer size is now a configuration option. 15014- examples/nettest: Loopback option should be available in Kconfig for 15015PktRadio. 15016- examples/keypadtest: REMOVED and warehoused in the Obsoleted 15017repository. This was just a bad clone of apps/examples/hidkbd for a 15018keypad driver that was removed years ago. It also uses illegal 15019function calls into the OS. So it has no purpose: It is redundant, it 15020uses illegal interfaces, and is a test for non-existent code. 15021- examples/ipforward: Add an IP forwarding example using only TUN 15022devices. Test extended to test forwarding of ICMPv6 multicast messages. 15023- Implement powermonitor example for ltc4151 current and voltage 15024monitor. From Giorgio Groß. 15025- examples/pf_ieee802154: Add for testing PF_IEEE802154 sockets. Add 15026PANID to command line options; Cannot bind to address zero... There is 15027no counterpart to INADDR_ANY for these radios (not now at least). 15028- examples/dac: Add DAC example. From Juha Niskanen. 15029 15030* Network Utilities: apps/netutils: 15031 15032- netutils/telnetc: This a port of libtelnet to NuttX. 15033- netutils/telnetd and users of telnetd: Add support for IPv6. 15034- netutils/thttpd: Remove the netstats demo. This depends on an 15035illegal function call and cannot be supported. That example could be 15036replaced with logic that uses the procfs network entries as was done 15037for NSH which had the same issue. But I am too lazy to implement that. 15038- netutils/netlib: Add support for PktRadio IOCTL commands. 15039- netutils/netlib: Add a helper to decode short addresses. 15040 15041* Wireless Utilities: apps/wireless: 15042 15043- wireless/ieee802154/i8sak: Rewrote i8sak to be test CLI for IEEE 15044802.15.4 MAC layer. From Anthony Merlino. 15045- wireless/ieee802154/i8sak: Updates to i8sak for 15046association/beacon-enabled changes to IEEE 802.15.4. From Anthony 15047Merlino. 15048- wireless/ieee802154/i8sak: Add option to make it easy to send large 15049frame for testing purposes. From Anthony Merlino. 15050- wireless/ieee802154/i8sak: Add scan command. From Anthony Merlino. 15051- wireless/ieee802154/i8sak: Add coordinfo command allowing you to 15052poll various attributes related to the coordinator. From Anthony 15053Merlino. 15054- wireless/ieee802154/i8sak: Add a option to retry on failures to the 15055assoc command (usually meaning tht the coordinator is not yet up). 15056- iwireless/ieee802154/8sak: Add reset command to reset the MAC layer. 15057Adds option to assoc command -t to specify how long to wait for a 15058response from the Coordinator. From Anthony Merlino. 15059- ieee802154/i8sak: Adds command to trigger regdump of radio. From 15060Anthony Merlino. 15061 15062* System Utilities (apps/system) 15063 15064- apps/system/composite: Update to apps/system/composite associated with 15065big changes to the composite device logic. From Frank Benkert. 15066- apps/system/composite: Remove CDC/ACM and MSC configuration logic. 15067This belongs in the OS composite initialization. Add and argument so 15068that you can select the USB composite configuration to be attached. 15069Restore USB tracing; remove unused field in a structure. Remove 15070configuration settings that are no longer used. Fix configuration 15071selecting.. was setting the port number, not the configure ID. Also 15072add a configuration option to select the default configuration. 15073- apps/system/composite: Add a configuration option to the boardctl() 15074calls to support multiple composite device configurations dynamically. 15075- apps/system/composite: Remove references to USBMSC. There still 15076dependencies on CDC/ACM in the serial USB trace output. 15077- apps/system/telnet: Add Telnet Chat daemon and client from 15078libtelent. 15079 15080* Platform-Specific Support (apps/platform) 15081 15082Bugfixes. Only the most critical bugfixes are listed here (see the 15083ChangeLog for the complete list of bugfixes and for additional, more 15084detailed bugfix information): 15085 15086* Core OS: 15087 15088- Fix ELF loader up_checkarch on ARM arch. From Cristian Condurache. 15089- pthread_mutex_unlock(): Missing check for the case where 15090pthread_mutex_lock() is called when the mutex is not locked. In that 15091case, it would increment the underlying semaphore above 1. This is 15092the fix for a problem noted by initialkjc@yahoo.com. 15093- sig_timedwait(): Pending signal structure used after it has been 15094releasd. From anonymous Bitbucket Issue 59. 15095- mm_mallinfo: do heap end debug assert check with heap semaphore held. 15096From Jussi Kivilinna. 15097- sched/: Fix return value in sched_setaffinity(). From Masayuki 15098Ishikawa. 15099- Work Queues: work_queue() must cancel existing work prior to queuing 15100new work, otherwise the work queue list structure can become 15101corrupted. Problem noted by Pascal Speck. 15102- waitpid(): Corrects two problems when CONFIG_SCHED_HAVE_PARENT + 15103CONFIG_SCHED_CHILD_STATUS are enabled: (1) Was erroring out if the 15104waited for task had already exited, and (2) was not freeing resources 15105when a wait was completed. From Boris Astardzhiev. 15106 15107* File System/Block and MTD Drivers: 15108 15109- VFS poll(): Fix timeout calculation. From Jim Paris. 15110- VFS poll(): Fix poll for regular files and block devices. Open Group 15111documentation says that poll (and select) support regular files and 15112that 'Regular files shall always poll TRUE for reading and writing'. 15113From Jussi Kivilinna. 15114- VFS epoll(): Fix epoll_wait function. From Simon Piriou. 15115- Smart FS: Fix wrong freeing of device structure and use-after-free 15116issues on error paths. From Jussi Kivilinna. 15117- MTD FLASH drivers: The byte write method of several drivers had a 15118cloned error: It was not locking the bus while performing byte write 15119operations. 15120- MTD M2PX: If we READ while a write/erase is pending, the command is 15121ignored and the write/erase continues. If we don't catch this situation 15122we will return garbage to the user because the flash will not execute 15123the command. So READ MUST wait for write completion, and before that, 15124the bus must be locked since it's a precondition to calling 15125waitwritecomplete(). From Sebastien Lorquet. 15126- MTD FLASH drivers: Clone Sebastien Lorquet's m25px change to at25, 15127is25xp, ramtron, and sst25xx. 15128- MTD W25: Add missing locking and fix SPI_SELECT usage for 15129w25_unprotect. From Jussi Kivilinna. 15130- MTD W25: Wait for BUSY flag to clear in w25_readid and 15131w25_unprotect. W25Q128 datasheet says that all instructions expect 15132'Read Status Register' and 'Erase/Program Suspend' are ignored when 15133BUSY flag in status register is '1'. Therefore wait for busy flag to 15134clear in w25_readid() and w25_unprotect(). From Jussi Kivilinna. 15135- Automounter: FS_AUTOMOUNTER should depend on SCHED_LPWORK. From 15136Nickolay Semyonov. 15137 15138* Networking/Network Drivers: 15139 15140- TCP Listen: Throw error when error happens in the tcp_listen 15141function. From Roland Takacs. 15142- Network Device Management: Do not search net device when all-zeros 15143address is used. From Roland Takacs. 15144- Network Device Management: Fix a error in netdev_register(); it was 15145not handling device names properly when TUN is the only network device. 15146- Network Device Management: Fix netdev_dev_lladdrsize(). In some 15147configurations, it could return the wrong size for the address of a 15148packet radio. 15149- Network Device Management: Fix typo for 802.11 devices in 15150netdev_register(). Was being masked before because depended on 15151CONFIG_NET_MULTLINK. 15152- TUN Driver: Use critical section instead of semaphore in 15153tun_ifdown(). From Masayuki Ishikawa. 15154- TUN Driver: Do all polling on worker thread. Otherwise, the stack 15155gets very deep. 15156- TUN Driver: Currently cannot support TAP mode unless Ethenet is 15157enabled. 15158- netdb: Fixed buffer size used for sending DNS queries should depend 15159on the configured DNS name size. From Ritjaina. 15160- UDP networking: The TTL (time to live) was not being set in the IPv4 15161or IPv6 header unless the UDP socket was bound. 15162- UDP Networking: Fix a copy-paste error that could effect networking 15163when both IPv4 and IPv6 are enabled. 15164- UDP Networking: When upd_input() cannot process a packet, it returns 15165ERROR so that network drivers may try calling ipv4_input() later. In 15166this case, it must also set d_len to zero. Otherwise, all network 15167drivers will assume tht there is also an outgoing packet. This 15168results in a gratuitous ARP. 15169- TCP Networking: Correct some issues that prevent TCP from working 15170correctly when both IPv4 and IPv6 are enabled. 15171- TCP Networking: TCP disconnection callbacks are not retained in a 15172list. This will support multiple callbacks per lower-level TCP 15173connection structure. That is necessary for the cae where a socket is 15174dup'ed and shares the same lower-level connection structure. NOTE: 15175There still needs to be a call to tcp_start_monitor() when the socket 15176is dup'ed. 15177- TCP Networking: Start the network monitor for a socket when a TCP 15178socket is dup'ed. 15179- TCP Networking: If one of the dup'ed socket's is closed, then network 15180monitor resources associated with that one socket must be recovered. 15181Also, in the event that socket is being used on one thread, but then 15182closed on another, any threads waiting for events from the socket 15183should be informed of the closure. That latter requirement is not 15184implemented because current data structures do not support it. 15185- TCP Networking: Fix a race condition. The accept() operation is 15186performed with the network locked. However, the network is unlocked 15187BEFORE the connected state is set. Therefore, a context switch may 15188occur and the socket may no longer be connected when it is marked so. 15189Noted by Pascal Speck. 15190- Network routing tables: Fix a compilation error when IPv6 and 15191routing are enabled. 15192- Network procfs: Fix some spacing when both IPv6 and IPv4 are enabled. 15193- Network Local Sockets: Fix accept for local stream sockets. From 15194Jussi Kivilinna. 15195- Network Local Sockets: Fix server lc_waitsem overflow. From Jussi 15196Kivilinna. 15197- IPv6 Networking: Remove comparisons to the address with all ones 15198set. IPv6 does not support broadcast addresses and certainly not in 15199that form. Replace with multicast addresses beginning with 0xff02. 15200- ICMPv6 Networking: Fix a compilation issue with 15201CONFIG_NET_ICMPv6_AUTOCONF=y. From Masayuki Ishikawa. 15202- Networking: Fix net_lock returning ERROR when instead of real error 15203code on failure. From Jussi Kivilinna. 15204- IGMPv2 Networking: Remove special support for interrupt level 15205processing (there is none) and fix some timer cancellation logic. In 15206many files, correct comments. There is no interrupt level processing 15207in the networking layer. 15208 15209* Wireless/Wireless Drivers: 15210 15211- IEEE 802.15.4 MAC: Need counting protection on the logic that 15212releases the notification resources. Otherwise, notification handlers 15213may be operating with a stale pointer. 15214- IEEE 802.15.4 MAC: Improves internal timer logic to handle work 15215serially. Before, the MAC timer used a watchdog to schedule work with 15216the high priority worker queue. However, since everything in the MAC 15217is supposed to be serialized through the use of the high priority work 15218queue, but the timer uses a watchdog, there are some unintended 15219consequences. To simplify, we now use the delayed work feature of the 15220work queue. From Anthony Merlino. 15221- IEEE 802.15.4 Network Driver: Update RX statistics in network driver. 15222- IEEE 802.15.4 MRF24J40 Driver: Minor timing fix. Matches recommended 15223value in datasheet. Splits up driver into multiple files to make it 15224easier to navigate. Fixes issue with non-beacon enabled mode. From 15225Anthony Merlino. 15226- IEEE 802.15.4 MRF24J40 Driver: Fix a bug causing radio to cease 15227transmitting. From Anthony Merlino. 15228- IEEE 802.15.4 MRF24J40 Driver: Fixes issues with sleeping for beacon 15229enabled networking. From Anthony Merlino. 15230- EEE 802.15.4 MRF24J40 Driver: Fix math error for calculating sleep 15231count values. From Anthony Merlino. 15232- IEEE 802.15.4: Fix timing issues for beacon enabled coordinators and 15233endpoints. From Anthony Merlino. 15234- iIEEE 802.15.4: Fix issue with association on beacon-enabled 15235networking. From Anthony Merlino. 15236- 6LoWPAN: Correct a few addressing issues. Also reserve two bytes at 15237the end of the frame for the FCS. 15238- 6LoWPAN: Fixes needed when extended addressing is enabled; broke short 15239addressing. Loopback driver needs to initialize the MAC meta data; 15240Address decompression logic must have the MAC address to handle the 15241most common compression cases. Fix a src/dest address confusion and 15242other addressing problems. 15243- 6LoWPAN: Add missing IPv6 address creation to HC1 decode logic. Fix a 15244typo in an index that prevented use with HC1 and extended addresses. 15245- 6LoWPAN: TCP logic was not obeying MTU packet size limitations. 15246- 6LoWPAN: Major re-architecting of TCP logic to properly handle TCP 15247stuff like ACKs and TDP windowing which were not properly covered in 15248the initial design. 15249- 6LoWPAN: HC06, copy TCP header as though it were data. TCP packet 15250reassembly now seems to work OK. 15251- 6LoWPAN: Fix duplicate and bad memcpy in loopback driver. 15252- 6LoWPAN: Fix a misconception about HC06 16-bit IPv6 address 15253compression. 15254- 6LoWPAN: TCP send logic was returning a failure in one case when, in 15255fact, the send was successful. 15256 15257* Common Drivers: 15258 15259- USB MSC: Use struct instead of pointer to the struct as sizeof 15260argument in memset in usbmsc.c. Otherwise it leads to error: argument 15261to sizeof in memset call is the same pointer type struct usbmsc_lun_s 15262* as the destination. From Oleg Evseev. 15263- USB MSC: Add missing logic to define endpoints. The composite 15264changes broke the the non-composite, USB MSC only case because it omitted the critical setup when USB MSC was not part of the composite. 15265- USB CDC/ACM. Fix several known problems resulting from merge of USB 15266composite device. That merge now breaks some of the non-composite USB 15267devices. 15268- Button Driver: Interrupts weren't enabled since nothing updates them 15269after btn_poll() marks the file descriptor structure as being polling. 15270From Jan Pobrislo. 15271- ADC Driver: Fix some data alignment issues in the ADC driver. 15272- I2C Drivers: Handle I2C_TRANSFER return value consistently. Some I2C 15273peripherals transfers return zero on success, others number of 15274completed transfers. Make drivers robust against this. From Juha 15275Niskanen. 15276- COMP Driver: Fix compilation errors when poll disabled. From Mateusz 15277Szafoni. 15278 15279* Simulation: 15280 15281- Simulation: Fix mkdir issue in GNU target. From Simon Piriou. 15282- Simulation: x86 stack needs to be aligned to 16-byte boundaries. 15283- Simulation: Fix building 32-bit simulation on 32-bit X86. From Jussi 15284Kivilinna. 15285 15286* ARM: 15287 15288- ARM: The older ARM7 and ARM9 configurations were determining CFLAGS 15289based on the GCC version 4.x.x or not. That needx to be extended for 152905.x.x and 6.x.x which also behave like 4.x.x. 15291 15292* ARMv7-M: 15293 15294- Fixed ARMv7-M Toolchain setting. Cortex-M4 only have Single 15295Precision FPU. From Hidetaka Takano. 15296- ARMv7-M syscall logic: Clear bit 0 in PC settings. Bit 0 is the 15297thumb mode indication and should not be set in the PC. This extra bit 15298has not caused problems in the past, but seeing it set in the PC is 15299unnerving. 15300 15301* Espressif ESP32: 15302 15303- Fix ESP32 gpio enable reg and default UART pin. Modify default UART 15304pin for ESP-WROOM-32. Fix gpio enable reg. From Sungki Kim. 15305 15306* Microchip/Atmel SAMD21 Drivers: 15307 15308- SAMD21: Fix some SPI-related issues. From Matt Thompson. 15309- SAMD21 SPI: I was having issues with the bus freezing up .. slaves 15310holding SDL low.. so I rewrote a good portion of the interrupt logic 15311based on the application notes from Atmel. One major improvement is 15312using the RXNACK flag in the STATUS register, which indicates that no 15313device responded to an address packet. Assuming that the chip will 15314always give an interrupt status, I believe it's possible to eliminate 15315the timer as well. From Matt Thompson. 15316- SAMD/L21: Need to preserve errno value across syslog() call. 15317- SAMD21: Changes needed to get USB working. From Matt Thompson. 15318 15319* Microchip/Atmel SAMv7 Drivers: 15320 15321- SAMv7 TWIHS: TWIHS driver add reference counting. From David Sidrane. 15322- SAMv7 CAN: We discovered a problem with the samv7 mcan driver which 15323results, under some circumstances, in a very high CPU load. The 15324problem occurs, and is easily reproducible, if the device is connected 15325to a CAN network with a wrongly configured CAN speed (baud rate). In 15326our tests we set the CAN speed of the device to 1000000 and the speed 15327of the other CAN nodes to 500000. The device is restarted and sends a 15328CANopen "bootup message" to the CAN network. This results in huge 15329amount of errors messages on the CAN bus, probably because of the CAN 15330feature for acknowledging error messages. The error messages can't be 15331read by the device because of the misconfigured CAN speed, instead the 15332CAN chip reports lots of errors, which are reported to the application 15333which uses the CAN driver (CONFIG_CAN_ERRORS is enabled). The CAN 15334errors are reported from the CAN chip via interrupts and thus the 15335interrupt load is very high in this scenario. To fix the problem the 15336driver now disables each RX error interrupt after it is occurred. The 15337RX error interrupts are turned back on if at least one CAN message is 15338received successfully. From Stefan Kolb. 15339- SAMv7 CAN: I discovered while working on the SAMV7 mcan driver that 15340the implementation of the CAN error handling is suboptimal. In the 15341current implementation the many errors are implemented as pending 15342errors. But those errors are not pending, the errors occurred and are 15343gone directly afterwards. This commit changes the described behavior 15344and simplifies the handling of CAN errors. From Stefan Kolb. 15345 15346* Microchip/Atmel SAMv7 Boards: 15347 15348- SAMv71-XULT: Fix MRF24J40 interrupt GPIO number. 15349 15350* NXP/Freescale Kinetis: 15351 15352- Kinetis MPU: Disable MPU when not in protected mode. The hardware 15353reset state of the the MPU precludes any bus masters other than DMA 15354access to memory. Unfortunately USB and SDHC have their own DMA and 15355will not have access to memory in the default reset state. This change 15356disabled the MPU if present on system startup. From David Sidrane. 15357- Kinetis MPU: Fixed warning for kinetis_mpudisable. Missing header 15358file added. From David Sidrane. 15359- Kinetis SIM: Ensure isolation of clock dividers for 0 value case. 15360This fixes a bug were a SoC does not have a clockdivN register and 15361passes a 0 for the init value. This prevents overflow of the 0 15362decremented to -1 (0xffffffff) spilling over to other clockdivN 15363fields. From David Sidrane. 15364 15365* NXP/Freescale i.MX6 Drivers: 15366 15367- i.MX6: Fix a wrong parameter passed when calling irq_attach() in 15368imx_serial.c. From Masayuki Ishikawa. 15369- Based on Masayuki's change, I review all serial driver vector 15370attachment. I Found one additional error and updated all relevant 15371drivers to current interrupt parameter passing. 15372 15373* STMicro STM32: 15374 15375- STM32 F410 Kconfig: Fix peripherals available on the STM32 F410. 15376This also adds a select for STM32_HAVE_DAC1 present on this STM32 15377flavor. From Gwenhael Goavec-Merou. 15378- STM32 L4 DMA: Correct USART3_RX bad channel definition. From Juha 15379Niskanen. 15380- STM32 L4 PWR: Correct PWR_SR2 REGLPS and REGLPF bits, add port I 15381registers. Also remove duplicate section from Kconfig. From Juha 15382Niskanen. 15383- STM32 F7: do not enable read-modify-write on DTCM. "AN 4667 - STM32F7 15384Series system architecture and performance" recommends to disable 15385read-modify-write on DTCM: "If the DTCM-RAM is used as data location 15386and the variables used are byte or/and halfword types, since there is 15387no ECC management in this RAM on the STM32F7 Series, it is recommended 15388to disable the read-modify-write of the DTCM-RAM in the DTCM interface 15389(in the DTCMCR register) to increase the performance." From Jussi 15390Kivilinna. 15391 15392* STMicro STM32 Drivers: 15393 15394- STM32 TIM3/4 are always 16-bits; never 32-bits. Noted by Eetu 15395Nevalainen.. 15396- STM32 ADC: Invalidate dma buffer before use. Missing invalidation 15397caused old samples being fetched from cache. From Jussi Kivilinna. 15398- STM32, STM32L4, STM32F7 ADC: Fix channel 18 sample time. From Juha 15399Niskanen. 15400- STM32 DAC: Fix some configuration logic. When STM32_NDAC is greater 15401than 1, then second channel is always DAC1OUT2. From Mateusz Szafoni. 15402- STM32 DAC: Fix compilation when DMA disabled for channel. From 15403Mateusz Szafoni. 15404- STM32 F0: Fix some funny shifts in DAC header files. From Juha 15405Niskanen. 15406- STM32 F1 RTC fixes: (1) Compile issues because of missing RTC_MAGIC 15407#defines, (2) missing functionality based on RTC_MAGIC in RTC based on 15408stm32_rtcounter.c, (3) IRQ setup from up_rtc_initialize was later 15409reset in up_irqinitialize, (4) write access to backup registers 15410without enabling access to backup domain, (5) possible races in 15411set/cancel alarm. tested with STM32F103C8 only. device now wakes up 15412from forced STANDBY mode by alarm. From Leif Jakob. 15413- STM32/STM32 L4 PWM: While attempting to output a 70 MHz square wave 15414from the timer output of a STM32 clocked at 140 MHz, found that the 15415reload calculation was off by one. This correction does allow the 15416output up to 70 MHz. I am not sure this affects most users 15417generating slow PWM but for frequencies close to the PCLK, the 15418difference becomes significant. From JM. 15419- STM32 L4 I2C: Set I2C SDA and SCL pins to open drain mode. From Pekka 15420Ervasti. 15421- STM32 L4 I2C: I2C4 was writing to wrong RCC registers. From Juha 15422Niskanen. 15423- STM32 L4 DAC: Report transfer as completed in DMA callback. Without 15424this even O_NONBLOCK writes block the calling task if DAC was using 15425DMA. From Juha Niskanen. 15426- STM32 L4 COMP: comparators share RCC enable bit with SYSCFG. From 15427Juha Niskanen. 15428- STM32 L4 ADC: Correct EXTSEL macros. From Juha Niskanen. 15429- STM32 L4 TIM: TIM15,16,17 are always in APB2. From Juha Niskanen. 15430- STM32 F7 I2C: Set I2C4 SDA and SCL pins to open drain mode. From Juha 15431Niskanen. 15432- STM32 F4 RTCC: ISR register and write protection fix. From Eetu 15433Nevalainen. 15434- STM32 F7 Ethernet: Fix typo in header; Add memory sync barrier 15435between writing to DMA TX descriptor and restarting DMA TX. Avoid 15436calling work_queue on pollwork if it's already queued, just skip a 15437poll cycle instead. Nucleo-144: Fix RMII TXD1 signal, connected to 15438PB13 not to PG14. From savinz. 15439- STM32 F7: Added missing config option for register value debugging. 15440From Titus von Boxberg. 15441- STM32 F7: No FSMC, only FMC for STM32F7. From Titus von Boxberg. 15442- STM32 F7: HEAP2 depends on CONFIG_ARCH_HAVE_HEAP2, not on particular 15443FMC RAM type. From Titus von Boxberg. 15444- STM32 F7: STM32_RCC_DCKCFGR2 has nothing to do with PLLI2S; PLLI2S is 15445not dependent on LTDC, instead on SAICLK1/2 generated from PLLI2S. 15446From Titus von Boxberg. 15447- STM32F7: Some STM32F7 builds failed in build testing due to undefined 15448STM32_SRAM1_BASE. I think that is because stm32_allocateheap.c was 15449not including chip/stm32_memorymap.h. 15450- STM32 F7: dcache write-buffed mode is used (not write-through) buffer 15451alignment is required for DMA transfers because a) 15452arch_invalidate_dcache could lose buffered writes data and b) 15453arch_flush_dcache could corrupt adjacent memory if the buffer and the 15454bufflen, are not on ARMV7M_DCACHE_LINESIZE boundaries. From David 15455Sidrane. 15456 15457* STMicro STM32 Boards: 15458 15459- STM32F103-Minumum SPI: SPIDEV_WIRELESS used when this has 15460changed to SPIDEV_CONTACTLESS. From Nicolas Estibals. 15461- configs/: a few more places where SPIDEV_WIRELELSS should be 15462SPIDEV_CONTACTLESS. 15463- STM32F103-Minumum: Fix a BUG when reading from output pin. We need 15464a different read_ops to read from output pin. This patch fixes the 15465issue. From Alan Carvalho de Assis. 15466- STM32F103-Minumum: Use separated read_ops for GPIO interrupt pins. 15467From Alan Carvalho de Assis. 15468- STM32F103-Minumum: Fix compiler error in MCP2415 logic. 15469- STM32F746G-DISCO: Fix for compilation of STM32F746G-DISCO. From Ivan 15470Ucherdzhiev. 15471- STM32F746G-DISCO: Fix for stm32f746g-disco board for button support 15472with interrupt. This change is tested with buttons app example and it 15473is working with interrupts (signals). I tried the test with polling 15474but at this point it doesn't work. From Ivan Ucherdzhiev. 15475 15476* Build System 15477 15478- Fix -Werror=implicit-fallthrough on gcc7. From Julien Lecoeur. 15479- configs/Board.mk: Remove comment form end of line. In windows native 15480build, it appears to be trying to make that an extra parameter to the 15481AR command. From Jeff. 15482- configs/Board.mk: Remove quotes from CONFIG_ARCH_FAMILY. Causes 15483problems with Windows native build. From Jeff. 15484- Makefile.win would only create uboot images for ARM. MIPS support 15485also needed. From Lwazi Dube. 15486 15487* C Library/Header Files: 15488 15489- C++: Fix C++ __guard implementation for ARM. The standard C++ ABI 15490that most platforms follow defines __guard to be 64 bits. The existing 15491implementation of libxx_cxa_guard.cxx follows this. However, the 1549232-bit ARM C++ ABI defines it as 32 bits instead, and changes the 15493meaning slightly so only the lowest bit is used. This matters because 15494GCC creates guard symbols without regards to what libxx_cxa_guard.cxx 15495says. So on ARM, gcc allocates 4 bytes, but __cxa_guard_release 15496writes 8 bytes, zeroing out another unlucky variable nearby. Fix it 15497by special-casing 32-bit ARM in libxx_cxa_guard. From Jim Paris. 15498- C++: In cwchar it uses CONFIG_LIBC_WCHAR to only export the wc/mb 15499functions. When a build does not want to use wide or multibyte char 15500CONFIG_LIBC_WCHAR is not set. Therefore we should to only export the 15501wc/mb functions when defined. Regardless of the stat of 15502CONFIG_LIBC_WCHAR the non mb/wc definitions such as mbstate_t, 15503wint_t, wctype_t need to be exported. From David Sidrane. 15504- C Library: Fix an error in mkstemp() the could result in an infinite 15505loop. From Alan Carvalho de Assis. 15506- C Library: (1) Fix an error in mkstemp() the could result in an 15507infinite loop. (2) Fix for wrong output in some cases. For Example: 15508(a) input: "FILEXX", output: "FILE00" and repeats same output for 15509further invocations of mkstemp(). But, the output has to be FILE01, 15510FILE02, ...., FILEZZ. (b) input: "FILEXXXXXX", output: "FILE100000", 15511for next invocation "FILE200000" and so on. But it's good, if the 15512output goes like FILE000001, FILE000002, ..., FILE000101, ... From 15513Lokesh B V. 15514- C Library: gethostbyname_r: Fix check for space in buffer. 15515- C Library: inet_ntop() was printing negative values for fields >127. 15516- Math Library: Fix wrong output in modf() API. The sign of integral 15517part given by the modf() should be same as sign of input. But for 15518inputs between 0 and 1, the sign of integral part was not same as 15519sign of input. From Lokesh B V. 15520- Math Library: Fix wrong output in ceil() API. Ex:for input x = 1.0, 15521the output should be 1.0, but the output was 2.0. From Lokesh B V. 15522 15523* Tools 15524 15525- tools/testbuild.sh: Fix missing $ before variable name. 15526- tools/mkdeps.c: Eliminate a warning. MAX_PATH may already be defined 15527in included system files. From Jeff. 15528 15529* Applications: apps/ 15530 15531- All apps/ Makefiles: Add .PRECIOUS: apps/libapps.a to every 15532Makefile. Hopefully this will end awkward problems when you Control-C 15533out of a build and libapps.a is deleted. 15534- platform/Makefile: More attempts to fix for Windows native build. 15535Backslash as a delimiter causes problems in pattern subsitutions. 15536 15537* NSH: apps/nshlib: 15538 15539- NSH network initialization: Fix some ieee 802.15.4 initialization 15540logic. It should not set the saddr or panid; those cannot be 15541hard-coded but must come from the coordinator. Re-factor a function 15542that has gotten too big and too complex. Do not set the IP address 15543for 6loWPAN. The 6loWPAN stack uses IP address that derive from the 15544ieee 802.15.4 addressing and cannot be (safely) configured by the user. 15545- NSH Library: Fix copy-paste typo in nsh_usbconsole.c. From Oleg 15546Evseev. 15547- NSH Library: fix size of 6LoWPAN extended address. 15548- NSH Library: Fix build break in nsh_command.c with IPv4/IPv6 dual 15549stack. From Masayuki Ishikawa. 15550- NSH Library: Correct parsing of ifconfig so that you can specify the 15551HW address without specifying the IP address. 15552 15553* Examples/Tests: apps/examples: 15554 15555- examples/smart: Fix some compilation errors. Obviously this test has 15556not been used in a LONG time. 15557- examples/udp: Renaming some files to prevent name collision in 15558libapps.a. Fix naming of a configuration setting. 15559- examples/nettest: Renaming some files to prevent name collision in 15560libapps.a 15561- examples/nximage: Remove unused global variable. 15562- examples/nsh: Remove APPNAME, PRIORITY, and STACKSIZE settings from 15563Makefile to avoid showing nsh in Builtin Apps. From Masayuki Ishikawa. 15564 15565* Network Utilities: apps/netutils: 15566 15567- netutils/tftpc: Missing header file causes errors in some 15568configurations. 15569- netutils/tftpc: TFTPC depends on CONFIG_NET_IPv4. 15570- netutils/netlib: Fixes to work when only USRSOCK is enabled. 15571- netutils/netlib: Fix netlib_nodaddrconv() so that its return type is 15572the same as other address conversion functions. 15573- netutils/netlib: If only PF_IEEE802154 socket family is enabled, then 15574must use SOCK_DGRAM. 15575- netutils/ftpc: Fix some memory leaks. From Boris Astardzhiev. 15576- netutils/thttpd: Fix a malformed if condition detected by GCC 6.x.x. 15577- netutils/dhcpd: Prevent buffer overflow in dhcpd_addoption. offset 15578represents distance from start of option buffer. So this should be 15579changed current option pointer minus start of buffer. From EunBong 15580Song. 15581 15582* Wireless Utilities: apps/wireless: 15583 15584- wireless/ieee802154/i8sak: Need to increment the next_saddr after 15585each successful association. 15586 15587* System Utilities (apps/system) 15588 15589- correct copy-paste typo in comments in composite_main.c From Oleg 15590Evseev. 15591- system/dhcpc: The DHCPC renew command did not build correctly due to 15592naming problems. Noted by Masayuki Ishikawa. 15593- system/dhcpc: Fix warning about renew_main.o appear twice in rule. 15594 15595* Tools (apps/tools): 15596 15597- tools/mkkconfig.bat: Use %cd% instead of %~dp0 for usage of APPSDIR 15598in this batch file. 15599- tools/mkkconfig.bat: Remove quotes in echo. These were begin 15600Echo'ed and generating double quots in the output. From Jeff. 15601- Windows build fixes: tools/mkkconfig.bat - switch APPSDIR path to 15602use forward slashes for kconfig-frontends. interpreters/ficl - 15603Reorder some targets that causes GNUwin32 make to behave badly. From 15604Jeff. 15605 15606NuttX-7.23 Release Notes 15607------------------------ 15608 15609The 123rd release of NuttX, Version 7.23, was made on December 4, 2017, 15610and is available for download from the Bitbucket.org website. Note 15611that release consists of two tarballs: nuttx-7.23.tar.gz and 15612apps-7.23.tar.gz. These are available from: 15613 15614https://bitbucket.org/nuttx/nuttx/downloads 15615https://bitbucket.org/nuttx/apps/downloads 15616 15617Both may be needed (see the top-level nuttx/README.txt file for build 15618information). 15619 15620Additional new features and extended functionality: 15621 15622* Core OS: 15623 15624- sem_open() should return SEM_FAILED on any failures. This is change 15625in the POSIX specification since the original sem_open() was written 15626so many years ago. 15627- exec(): The non-standard interface exec() is now enshrined as a 15628official NuttX API. I really dislike doing this but I think that 15629this is probably the only want to load programs in the protected 15630mode. It is currently used by some example code under apps/ that 15631generate their own symbol tables for linking. Other file execution 15632APIs relay on a symbol table provided by the OS. In the protected 15633mode, the OS cannot provide any meaning symbol table for execution 15634of code in the user-space blob so that is they exec() is really 15635needed in that build case. And, finally, the interface is 15636completely useless and will not be supported in the KERNEL build 15637mode where the contrary is true: An application process cannot 15638provide any meaning symbolic information for use in linking a 15639different process. 15640- OS Internal Functions: Rename many OS internal functions so it is 15641clear that they are not part of the application interface. All 15642internal functions with the sem_* prefix became nxsem_*, sig* become 15643nxsig_*, mq_* become nxmq_*, etc. 15644- Cancellation Points: Add new cancellation point interface, 15645check_cancellation_point(). 15646- Signals: Add logic to wake up a thread that is waiting on a signal 15647if it is canceled. 15648- sigtimedwait(): Add logic to suppress the wait if there is a 15649pending cancellation. 15650- clock_nanosleep(): Implement clock_nanosleep(). nanosleep() is now 15651reduced to a libc wrapper around clock_nanosleep(). 15652- task_delete(): Do not permit user applications to delete kernel 15653threads. 15654- kthread_create(): Rename kernel_thread() to kthread_create() for 15655better naming consistency with task_create() and kthread_delete(). 15656- boardctl(): Remove the BOARDIOC_GRAPHICS_SETUP command. 15657- TCB: Move POSIX thread specific data from pthread TCB to common TCB 15658structure. This change allows using pthread_getspecific and 15659pthread_setspecific from main thread. Patch also enables using 15660pthread data with config option CONFIG_DISABLE_PTHREAD=y. From Jussi 15661Kivilinna. 15662- mm: Remove the CONFIG_GRAN_SINGLE configuration option. It adds no 15663technical benefit (other than some minor reduction in the number of 15664interface arguments) but adds a lot of code complexity. Better 15665without it. 15666- mm: Add a function to get information about the state of the 15667granule allocator. This is the moral equivalent of mallinfo(). 15668 15669* File Systems/Block and MTD Drivers 15670 15671- MT25Q Serial FLASH: Add support for Micron MT25Q series MT25Q128. 15672From Sebastien Lorquet. 15673- MX35LFxGE4AB: Add an MTD driver for Macronix MX35LFxGE4AB serial 15674NAND flash. From Ekaterina Kovylova. 15675- FileMTD: Add block device MTD interface. Block MTD interface 15676allows using block device directly as MTD instead of having to use 15677file-system in between. NOTE that this provides the opposite 15678capability of FTL which will let you use an MTD interface directly 15679as a block device. From Jussi Kivilinna. 15680- BCH: The character driver to block device access now supports an 15681IOCTL to get the geometry of the underlying block device. 15682- mkfatfs: Remove mkfatfs from the OS. This is a user-space 15683application and belongs in apps, not in the OS. 15684- procfs: Implements procfs /proc/fs/blocks and /proc/fs/usage files, 15685replacing the NSH df command. Also implements procfs /proc/fs/mount 15686file, replacing the NSH mount command when there are no arguments. 15687- procfs: Add /proc/meminfo. This is an alternative way to get the 15688information that was previoulsy available in apps/system/free. 15689apps/system/free was removed because it made illegal calls into the 15690OS violating the portable interface. This new procfs entry provides 15691the same information with no such violation. it also provides 15692information about the kernel heap (formerly /proc/kmm), about the 15693use of program memory(formerly /proc/progmem). And also information 15694for the page table usage in the KERNEL build. 15695- UserFS: Adds the UserFS client and of the UserFS feature in 15696general. Initially used Unix domain local sockets instead of 15697message queues. Easier to transfer big data in local sockets than 15698message queues. However, that lead to certain inescapable deadlock 15699conditions So the IPC was converted to UDP LocalHost loopback 15700sockets. The problem with the local sockets is that they do require 15701operations on the top level pseudo-file system inode tree. That 15702tree must be locked during certain traversals such as enumerate 15703mountpoints or enumerating directory entries. This conversion is 15704unfortunate in the sense that Unix local domain sockets are 15705relatively lightweight. LocalHost UDP sockets are much heavier 15706weight since they rely on the full UDP stack. 15707 15708* Graphics/Display Drivers: 15709 15710- Framebuffer character driver: Add framebuffer character device driver. 15711- LCD Framebuffer: Add support for a generic front-end that will 15712convert any LCD driver into a framebuffer driver. 15713- Framebuffer character driver: Include support for LCD drivers that 15714use a simulated framebuffer and must receive explicit notification 15715when there is an update to a region in the framebuffer. 15716- LCD: Make LCD driver configuration independently selected from NX 15717graphics configuration. This makes things awkward and loses some 15718error checking but is a necessary step in order to make LCD drivers 15719usable when the NX graphics system is disabled. 15720 15721* Networking/Network Drivers: 15722 15723- Networking: Add implementation of logic for SIOCGIFCONF and 15724SIOCGLIFCOF IOCTL commands. 15725- Network IOCTLs: Add support for the SIOCGIFBRDADDR ioctl() command. 15726- Routing Tables: Permit IPv4 and IPv6 routing tables to be of 15727different sizes. 15728- Routing Tables: Adds support for read-only routing tables. Prior 15729to this change, routing tables were only support in RAM and had to 15730be initialized with explicit logic to add the necessary routes to 15731the routing table. With this change, routes may be defined in the 15732pre-initialized, read-only routing table provided by the 15733board-specific logic. 15734This would be particularly useful, for example, in the case where 15735there is only a single network adaptor and you want all output 15736packets to go to the single adaptor in all cases. So for that 15737behavior you could add a read-only routing table to the 15738board-specific long that contains a single entry, the default route: 157390.0.0.0/0. 15740- Routing Tables. Added support for routing tables in files in a file 15741system. This might be useful for customized, per-unit routing 15742tables. There are two issues with it however: 157431. Reading from file system on a per packet basis could be slow. I 15744think it probably should have a small, in-memory cache of most 15745frequently used routes for good problem. 157462. Currently the delroute logic is disabled due to a problem with 15747the design. NuttX does not currently support truncate(). 15748Therefore, it is not possible to delete entries from the routing 15749table file. In this current implementation, that leaves the last 15750entry intact at the end of the file. An alternative design 15751might include a tag on each record to indicate if the record is 15752valid or not. That would work but would add complexity to the 15753other routing table functions. 15754- Routing Tables: Add support for an in-memory routing table cache in 15755order to improve performance when the routing table is retained in a 15756file. The cache holds the most recently used routing table entries 15757and so can eliminate some file access. Flush the in-memory cache 15758when any entry is deleted from the routing table. When a router 15759matching an IP address is found, add the routing table entry to the 15760cache. 15761- Routing Tables: Add logic to mark a route as most-recently-used in 15762the route cache. 15763- ICMP: This change adds support for semi-standard IPPROTO_ICMP 15764AF_INET datagram sockets. This replaces the old ad hoc, nonstandard 15765way of implementing ping with a more standard, socket interface. 15766- ICMPV6: This commit adds support for semi-standard IPPROTO_ICMP6 15767sockets. This is a replacement for the non-standard ICMPv6 ping 15768support that violated the portable POSIX OS interface. 15769- ICMPv6: Add option to manually specify router prefix in router 15770advertisement message. From Sakari Kapanen. 15771- Local Sockets: This commit modifies the Unix domain local socket 15772design. Local sockets are built on top of pipes. The Local socket 15773implementation maintained file descriptors to interrupt with the 15774pipes. File descriptors have the bad property that they are valid 15775only while running on the thread within the task that created the 15776local socket. 15777As a policy, all internal OS implementations must use "detached" 15778files which are valid in any context and do not depend on the 15779validity of a file descriptor at any point in time. This commit 15780converts the usage of file descriptors to detached files throughout 15781the local socket implementation. 15782 15783* Wireless Networking/Wireless Drivers: 15784 15785- IEEE-802154: Adds support for receiving MAC events via IOCTL through 15786socket interface. From Anthony Merlino. 15787- IEEE-802154: Simplifies notify() and rxframe() calls to a single 15788notify() call. dataind's and all other "notifs" are now "primitives" 15789which aligns with standard terminology From Anthony Merlino. 15790- MAC802154: Add support for getting promiscuous mode state From 15791Anthony Merlino. 15792- MAC802154 Character Driver: When in promiscuous mode, the char 15793driver sends the entire frame, including the MAC header. This 15794change adds an offset field indicating the header-payload boundary. 15795It is set to 0 when not in promiscuous mode as the header is not 15796passed to the application 15797- 6LoWPAN: Remove CONFIG_NET_6LOWPAN_FRAMELEN. In this case where 15798multiple radios are supported, this may not be a constant. 6LoWPAN 15799now always queries the driver to get the maximum frame length. 15800- 6LoWPAN: Support sending to a router that is on-link and may be 15801able to forward the packet for us if the destination is not 15802reachable directly. From Anthony Merlino. 15803- XBee: Adds XBee S2C (802.15.4 firmware) support. XBee driver 15804emulates mac802154 interface. From Anthony Merlino. 15805 15806* Other Common Device Drivers: 15807 15808- PowerLED: Add upper-half driver for high power LED driver (powerled) 15809From Mateusz Szafoni. 15810- RTC Driver: Add periodic alarms to upper and lower halves. From 15811Juha Niskanen. 15812- Pipes: Fix writing large buffers not triggering POLLIN for reader 15813poll. From Jussi Kivilinna. 15814- USB CDC/ACM Device: Add support for RX flow control to the CDC/ACM 15815driver. 15816- USB CDC/ACM Device: Add support for flow control TERMIOs in CDC/ACM 15817driver. 15818- USB RNDIS Device: Add RNDIS-over-USB driver. From Sakari Kapanen 15819with added Hi-Speed support from Masayuki Ishikawa. 15820- Loop Driver: Don't use file descriptors... Use the internal file 15821system interfaces so that the loop device can be shared across 15822threads. 15823- APA102 LED controller: Add driver for APA102 LED controller. These 15824LEDs are used on LED Strips and are controlled over SPI. 15825- INA219. Add INA219 Driver. The INA219 is a combined voltage and 15826current sensor that can measure up to 26 volts and a current that 15827depends on an external shunt resistor. Connection happens via 15828i2c/smbus and the chip features a power supply rail that is 15829independent from the measured voltage, so it can measure low 15830voltages. Right now it measures bus voltage and current, and does 15831not use the internal calibrated current reading, nor the available 15832power measurement. From Sebastien Lorquet. 15833- PCA9555: The IRQ subsystem now supports passing a void * parameter 15834to IRQ handlers. Use that method to support multiple PCA9555 15835devices, by passing a pointer to the device to the board defined IRQ 15836handler. Now the CONFIG_ for multiple PCA devices just allocates 15837device structures dynamically instead of statically when not enabled. 15838The same interrupt handler is entered with the device structure 15839parameter in all situations, multiple or single PCA. One should 15840still be careful if multiple PCA devices share the same IRQ. From 15841Sebastien Lorquet. 15842- APDS-9960: Add driver for the APDS-9960 gesture sensor. From Alan 15843Carvalho de Assis. 15844- MAX7219: Add support to MAX7219 LED Matrix as LCD interface. From 15845Alan Carvalho de Assis. 15846- WM8774: Add WM8774 audio DAC support. From Masayuki Ishikawa. 15847- Nunchuck: Add Nintendo Wii Nunchuck driver. From Alan Carvalho de 15848Assis. 15849 15850* Simulation 15851 15852- Simulation: Add a configuration for non-graphical testing of the 15853framebuffer character driver using apps/example/fb. 15854- Simulation: Add a configuration for testing the UserFS using 15855apps/examples/userfs. 15856 15857* Broadcom BCM2708: 15858 15859- BCM2708: Add enough infrastructrue (more stubs) to get a clean 15860compilation of the Pi Zero configuration (with many undefined things 15861at link time). This includes several register definition header 15862files (some from Alan Carvalho de Assis), basic interrupt handling 15863logic, boot-up files, GPIO support, tickless timer, build and 15864configuration logic 15865 15866* Broadcom BCM2708 Boards: 15867 15868- Raspberry Pi Zero. Basic board support at configs/pizero. Untested 15869in this release and still some remaining issues. 15870 15871* Infineon XMC4xxx Boards: 15872 15873- XMC4500-Relax: Add config for UART3 on RXD P0.0 and TXD P0.1 pins. 15874From Alan Carvalho de Assis. 15875 15876* NXP Freescale LPC17xx Boards: 15877 15878- Open1788: Add initialization of Framebuffer driver. Add 15879configuration for testing the framebuffer driver. 15880 15881* NXP Freescale LPC43xx Drivers: 15882 15883- LPC43xx: Add LPC43xx CAN driver. From Alexander Vasiljev. 15884 15885* NXP Freescale LPC43xx Boards: 15886 15887- MCB1700: Add support for Keil MCB1700 board. From Alan Carvalho de 15888Assis. 15889- Open1788: Add support for the discrete joystick driver. 15890- Open1788: Add a configuration for testing pdcurses with discrete 15891joystick. 15892 15893* On Semiconductor LC823450 15894 15895- LC823450: Add ADC driver and watchdog drivers. From Masayuki 15896Ishikawa. 15897- LC823450: Add IPL2 support. From Masayuki Ishikawa. 15898- LC823450: Add I2S support. From Masayuki Ishikawa. 15899- LC823450: Add auto LED for CPU activity. From Masayuki Ishikawa. 15900 15901* On Semiconductor LC823450 Boards 15902 15903- LC823450-XGEVK: Enable ADC and watchdog driver. From Masayuki 15904Ishikawa. 15905- LC823450-XGEVK: Add IPL2 support. From Masayuki Ishikawa. 15906- LC823450-XGEVK: Add WM8774 support. From Masayuki Ishikawa. 15907- LC823450-XGEVK: Add auto LED support. From Masayuki Ishikawa. 15908- LC823450-XGEVK: Enable CONFIG_SMP for audio. From Masayuki Ishikawa. 15909- LC823450-XGEVK: Add rndis configuration. From Masayuki Ishikawa. 15910 15911* STMicro STM32: 15912 15913- ARM Kconfig: Add support for classic ARM11 architecture selections. 15914- STM32 Tickless: Removes the restriction to 16-bit counts when a 1591532-bit timer is used for tickless operation on the stm32. As it 15916was, the restriction is very limiting, especially if one wants high 15917granularity and large achievable intervals and has the hardware 15918(namely the 32bit timers) available. From Rajan Gill. 15919- STM32 L4 Kconfig: Add some L486 and L496 chips. From Juha Niskanen 15920- STM32 F7: Adds architecture support for the STM32 F72x and F73x 15921families. From Bob Feretich. 15922- STM32 F7: Allow changing voltage output scaling setting and 15923prevents enabling over-drive mode for low frequencies (STM32 F74xx, 1592475xx, 76xx, 77xx). From Jussi Kivilinna. Changes replicated for 15925the 72xx and 73xx families. 15926 15927* STMicro STM32 Drivers: 15928 15929- STM32 ADC: Added support for ADC's IO_ENABLE_TEMPER_VOLT_CH ioctl 15930on STM32F10XX and STM32F20XX. From Dmitriy Linikov. 15931- STM32 Wakeup: Add logic for enabling wakeup pins. From Oleg Evseev. 15932- STM32 PWR: Adds stm32_pwr_getsbf and stm32_pwr_getwuf functions 15933that return the standby flag and the wakeup flag PWR power 15934control/status register. From Oleg Evseev. 15935- STM32 HRTIM: Sdd support for capture, chopper, deadtime and dump 15936registers. From Mateusz Szafoni. 15937- STM32 RTC: Canceling an alarm marks it as inactive. From Juha 15938Niskanen 15939- STM32 Serial: Add interface to get uart_dev_t by USART number, 15940stm32_serial_get_uart(). From Juha Niskanen. 15941- STM32 F33xx ADC: Initial ADC support for the STM32F33XX. From 15942Mateusz Szafoni. 15943- STM32 F33xx ADC: Add ADC DMA support to STM32F33 configuration. From 15944Mateusz Szafoni. 15945- STM32 L4 ADC: Port analog watchdog ioctl commands from the Motorola 15946MDK. From Juha Niskanen 15947- STM32 L4 ADC: Add option for routing ADC data to DFSDM, fix DFSDM 15948DMA. From Juha Niskanen 15949- STM32 L4 ADC: Add PM hooks from Motorola MDK 15950- STM32 L4 FLASH: Add function for modifying device option bytes, 15951From Juha Niskanen. 15952- STM32 L4 DFSDM: Add peripheral support for digital filters for 15953sigma-delta ADCs. Initial version. Timer trigger support is not 15954completed and there is some issue with DMA. From Juha Niskanen. 15955- STM32 L4 I2C: Port then STM32 F7 I2C driver to STM32 L4. STM32L4 I2C 15956driver is in work-in-progress state (plentiful of TODOs and 15957#warnings) and lags many features found in more up-to-date STM32 I2C 15958drivers. The peripheral on STM32F7 and STM32L4 are identical except 15959for L4's 'wakeup from stop mode' flag and STM32F7's I2C driver is in 15960more 'ready to use' state. The I2C clock configuration is kept the 15961same as before (I2CCLK = PCLK1 80 MHz) instead of switching to 15962STM32F7 arch default that is I2CCLK=HSI. Further work would be to 15963add configuration option for choosing I2C clock source instead of 15964current hard-coded default. From Jussi Kivilinna. 15965- STM32 L4 RTC: Add up_rtc_getdatetime_with_subseconds 15966- STM32 L4 RTC: Change maximum alarm time from 24h to one month. From 15967Juha Niskanen. 15968- STM32 L4 RTC: Add support for periodic interrupts with 15969(experimental) CONFIG_RTC_PERIODIC. From Juha Niskanen. 15970- STM32 L4 SDMMC: Add support for an SDMMC driver. From Miha Vrhovnik. 15971- STM32 L4 Serial: Suspend serial for Stop mode. From Juha Niskanen. 15972- STM32 L4 Serial/PM: STM32L4 serial PM interface improvements: 15973Check rx/tx buffers for pending data in pmprepare. Remove adhoc PM 15974interfaces and move serial suspend functionality behind CONFIG_PM. 15975From Jussi Kivilinna. 15976 15977* STMicro STM32 Boards: 15978 15979- STM32F103-Minimum: Add board support for APA102 driver. From Alan 15980Carvalho de Assis. 15981- STM32F103-Minimum: Add ADC support on stm32f103-minimum board. 15982From Alan Carvalho de Assis. 15983- STM32F103-Minimum: Add support for LM75 in the stm32f103-minimum 15984board. From Alan Carvalho de Assis. 15985- STM32F103-Minimum: Add an ADPS-9960 example configuration. From 15986Alan Carvalho de Assis. 15987- STM32F103-Minimum: Add board support for MAX7219 LED Matrix 15988controller. From Alan Carvalho de Assis. 15989- STM32F103-Minimum: Add USB MSC device initialization to 15990stm32f103-minimum. From Alan Carvalho de Assis. 15991- STM32F103-Minimum: Add framebuffer driver initialization for 15992stm32f103-minimum board. From Alan Carvalho de Assis. 15993- STM32F103-Minimum: Add Nunchuck board support for 15994stm32f103-minimum board. From Alan Carvalho de Assis. 15995- STM32F4 Discovery: Add support for JLX12864G display on STM32F4 15996Discovery board. From Alan Carvalho de Assis. 15997- Viewtool-STM32F107: Add support to auto-mount the procfs file system. 15998- Photon: Support SPI1 and SPI3. From Anthony Merlino. 15999- STM32F334-DISCO: Add lower half driver for high power LED 16000(powerled). From Mateusz Szafoni. 16001- STM32F334-DISCO: Add flash mode support for powerled driver. From 16002Mateusz Szafoni. 16003- STM32F334-DISCO: Add powerled example configuration. From Mateusz 16004Szafoni. 16005- STM32F334-DISCO: Add lower-half driver for SMPS (buck-boost onboard 16006converter). From Mateusz Szafoni 16007- Nucleo-F334R8: Add logic for zero latency high priority interrupts 16008example. From Mateusz Szafoni. 16009- Nucleo-F334R8: Add highpri example configuration. From Mateusz 16010Szafoni. 16011- STM32 F4 Discovery: Added support for the LIS3DSH accelerometer on 16012the STM32F4 Discovery rev. C boards. From Florian Olbrich. 16013- STM32 F4 Discovery: ROMFS for STM32F4 Discovery board. From Tomasz 16014Wozniak. 16015- STM32 F4 Discovery: Add a USB MSC configuration. From Alan Carvalho 16016de Assis. 16017- STM32 F4 Discovery: RNDIS support on STM32F4Discovery + DM-STF4BB. 16018NOTE: MAC address for the host side starts 0xaa. This assignment 16019scheme should be fixed later. From Masayuki Ishikawa. 16020- STM32 F4 Discovery: Add STM32F4 Discovery board support for 16021Nunchuck joystick. From Alan Carvalho de Assis. 16022- STM3240G-EVAL: Add a configuration for testing the Framebuffer 16023character driver using the LCD framebuffer front. 16024- STM3240G-EVAL: Mount procfs if enabled. 16025- STM3240G-EVAL: Add support for pdcurses and the pdcurses demo 16026programs in the 'fb' configuration. 16027- Clicker2-STM32: Adds SD card, automount, and syslog file 16028support and fixes a few minor issues. From Anthony Merlino. 16029- Clicker2-STM32: Adds support for USB RNDIS device. From Anthony 16030Merlino. 16031- Olimex STM32-H407: Add serial support on the on-board UEXT 16032connector. Add USART6 for UEXT connector. Add nsh_uext 16033configuration and README update. From Jan Pobříslo. 16034- Nucleo-F410RB: Add support for the nucleo-F410RB board. From 16035Gwenhael Goavec-Merou. 16036- STM32F429i-DISCO: Add framebuffer driver initialization. Add a 16037framebuffer (fb) configuration. 16038- STM32F429i-DISCO: Add logic to auto-mount procfs. Enable procfs in 16039all configurations that use NSH. 16040- STM32F429i-DISCO: Enable support for the STMPE811 touchscreen 16041controller. Enable touchscreen and also the touchscreen testa at 16042apps/examples/touchscreen in the fb configuration. 16043- STM32F429i-DISCO: Convert NxWM configuration to use LTDC 16044framebuffer driver instead of SPI serial. Also reduce number of 16045layers from 4 to 1 in fb configuration. Only one layer is used. 16046- STM32L476-MDK: Add support for the on-board LEDs. 16047- Nucleo-L496ZG: Add DFSDM initialization. From Juha Niskanen 16048- Nucleo-L496ZG: Add support for SDMMC driver. From Miha Vrhovnik. 16049- Nucleo-L496ZG: Enable I2C4 bus with i2ctool in NSH configuration. 16050From Jussi Kivilinna. 16051- Nucleo-L496ZG: Make HSE on Nucleo-L496ZG default to enable USB. 16052From Miha Vrhovnik. 16053- Nucleo-F746ZG: Use the serial console over /dev/ttyACM0 by default. 16054The Nucleo-F746ZG doesn't come with Arduio RS-232 shield, then it is 16055better to use the serial over the /dev/ttyACM0 that is created 16056automatically when the board is plugged in the computer. From Alan 16057Carvalho de Assis. 16058- Nucleo-144: Adds support for the Nucleo-144 boards with 16059STM32F722ZE. From Bob Feretich. 16060 16061* ZiLOG Z80 16062 16063- z80/include: compiler.h, limits.h, types.h: Update SDCC/z80 files 16064to include support for long long, inline, __FILE__, and __func__. 16065 16066* C Library/Header Files: 16067 16068- include/: Add stdnoreturn.h. Holds definitions for the C11 16069noreturn keyword. Applies to C too. 16070- include/netinet/tcp.h: Add trivial standard tcp.h header file. 16071- libc: Add support for readv() and writev(). 16072- libc: Adds tcflow(). 16073- libc: Add support for sigwait(). 16074- libnx: Changes to allow the font subsystem to be built without 16075enabling the entire graphics system (CONFIG_NX). Adds 16076CONFIG_NXFONTS and CONFIG_NXGLIB. Needed to duplicate some Kconfig 16077setting for NXFONTs if it can be configured and built independently 16078of NX. 16079 16080* Tools: 16081 16082- tools/configure.sh: Add special support so that you can start with a 16083windows native configuration and install on a different host (and 16084vice versa). 16085- tools/configure.c: Duplicate new functionaity added to configure.sh. 16086- tools/configure.sh: This commit adds a -m option for macOS. For 16087anyone not aware, Apple renamed OSX to macOS recently; thus the 'm' 16088instead of 'o'. This does not change the other uses of *_OSX to 16089macOS. From jeditekunum. 16090- tools/configure.c: Update functionality to match last change to 16091tools/configure.sh. 16092 16093* NSH: apps/nshlib: 16094 16095- apps/nshlib: mount command no long uses the non-standard OS 16096interface foreach_mountpoint(). Now simply cats /proc/fs/mount 16097when there are no arguments to the mount command. 16098- apps/nshlib: df command no long uses the non-standard OS interface 16099foreach_mountpoint(). Now simply cats /proc/fs/blocks or 16100/proc/fs/usage. 16101- apps/nshlib: The free commands no longer used mallinfo() to get 16102the state of the use heap. Two reasons: That is not useful 16103information in the kernel build. And (2) there are other memory 16104resources of interest in other configurations such as the Kernel 16105heap in PROTECTED and KERNEL builds, and the prog mem uses when 16106FLASH is used to hold modifiable data. The free command has been 16107extended to just dump the content of procfs entries and to include 16108all of these other memory resources of the procfs entries are 16109available. 16110 16111* Examples/Tests: apps/examples: 16112 16113- apps/examples/fb: Add a simple test for the framebuffer character 16114driver.. 16115- apps/examples/ostest: sem_open() now returns SEM_FAILED in the 16116event of a failure. 16117- examples/ostest: Extend cancellation test to make sure that 16118cancelable threads waiting on a message queue or on a signal can be 16119canceled. 16120- Added a simple reader example for the LIS3DSH acceleration sensor 16121on STM32F4Discovery. From Florian Olbrich. 16122- apps/examples/apa102: Add a Rainbow example for APA102 LED Strip. 16123From Alan Carvalho de Assis. 16124- apps/examples/flowc: Add a simple test of serial hardware flow 16125control. 16126- Add powerled driver example. From Mateusz Szafoni. 16127- apps/examples/ina219: A simple infinite loop that polls the INA219 16128sensor and displays the measurements. From Sebastien Lorquet. 16129- apps/examples/alarm: Add options for reading alarm value and 16130canceling it. From Juha Niskanen. 16131- Add -n samples to lm75 app and replace Centigrade with Celsius. 16132From Alan Carvalho de Assis. 16133- apps/examples/adps9960: Add ADPS-9960 example. From Alan Carvalho 16134de Assis. 16135- apps/examples/obd2: Add OBD2 example application. From Alan 16136Carvalho de Assis. 16137- apps/examples/userfs: Add a test case for verifying UserFS. 16138- apps/examples/smps: Add SMPS driver example. From Mateusz Szafoni. 16139- apps/examples/pdcurses: Bring in pdcurses demos and make them 16140conform to the NuttX coding style. 16141- apps/examples/pdcurses: Add a very simple example that just shows 16142the entire character set (7-bit only). It adapts to the size of 16143the framebuffer and, hence, can be used with very tiny displays. 16144In fact it looks really dumb on big displays. 16145- apps/examples/nunchuck: Add Nunchuck example application. From 16146Alan Carvalho de Assis. 16147 16148* File System Utilities: apps/fsutils: 16149 16150- apps/fsutils/mkfatfs: Move mkfatfs from the OS to here. 16151 16152* Network Utilities: apps/netutils: 16153 16154- apps/netutils/netlib: Add netlib_ipv6adaptor() and 16155netlib_ipv4adaptor(). 16156- apps/netutils/netlib: Add helpers for reading the routing table: 16157netlib_read_ipv4route() and netlib_read_ipv6route(). 16158- apps/netutils/netlib: Add new utilities netlib_ipv[4|6]router() 16159that can be used to determine the IP address of a router that would 16160be used some some destination IP address that is not locally 16161accessible. 16162- apps/netutils/ftpc: Adds support for IPv6 and fixes various 16163transfer issues. From Anthony Merlino. 16164 16165* CANUtilities: apps/canutils: 16166 16167- apps/canutils/libobd2: Add libobd2 for NuttX. From Alan Carvalho 16168de Assis. 16169 16170* Graphics: apps/graphics: 16171 16172- graphics/traveler: Convert to use the framebuffer driver. 16173- apps/graphics/pdcurs34: This commit brings the public domain 16174pdcurses library into NuttX. NuttX graphics support based on the 16175framebuffer character drivers has been integrated. Input is 16176currently limited to a discrete joystick driver. 16177 16178* Wireless Utilities: apps/wireless: 16179 16180- apps/wireless/ieee802154/i8sak: Adds socket interface support. You 16181can now use both socket or char driver to control the MAC layer. 16182From Anthony Merlino. 16183- apps/wireless/ieee802154/i8sak: Adds sniffer port option and a few 16184other get/set parameters. From Anthony Merlino. 16185- apps/wireless/ieee802154/i8sak: Changes 'notif' to 'primitive' 16186corresponding to the changes in the Kernel. From Anthony Merlino. 16187- apps/wireless/ieee802154/i8sak: Channel setting is now saved 16188locally, so when performing a startpan or assoc, the channel 16189previously set is still used, even though the MAC layer gets reset. 16190From Anthony Merlino. 16191- apps/wireless/ieee802154/i8sak: Adds ability to get/set rxonidle 16192setting for MAC layer. From Anthony Merlino. 16193- apps/wireless/ieee802154/i8shark: Adds i8shark, a sniffer "adapter" 16194that captures all 802.15.4 traffic, packages it into a Wireshark ZEP 16195packet, and sends it to a host running Wireshark From Anthony 16196Merlino. 16197 16198* System Utilities (apps/system) 16199 16200- apps/system/ping and ping6: This commit removes the ping and ping6 16201commands from NSH and replaces then with the apps/system/ping and 16202apps/system/ping6 built-in commands. The NSH ping[6] commands had 16203to be removed because they violated the portable POSIX OS interface. 16204The apps/system/png and ping6 command uses the sem-standard 16205IPPROTO_ICMP and IPPROTO_ICMP6 socket interfaces. 16206 16207* Platform-Specific Support (apps/platform) 16208 16209Bugfixes. Only the most critical bugfixes are listed here (see the 16210ChangeLog for the complete list of bugfixes and for additional, more 16211detailed bugfix information): 16212 16213* Core OS: 16214 16215- Task Environment Creation: Fix an error in the duplication of the 16216child tasks environment in the special case where the parent's 16217environment was created, but then all of the variables were unset. 16218In that case, there is still an allocation in place but the size of 16219the allocation is zero. This case was not being handled correctly 16220when a child task attempts to create its environment and inherit the 16221zero-size partent environment. Noted by Anthony Merlino. 16222- timer_create(): Fix watchdog resource leak if cannot allocate a new 16223timer. From Bruno Herrera. 16224- OS Internal Functions: Internal OS functions should not return error 16225information via the user errno variable: This includes functions 16226like file_seek(), file_read(), file_write(), etc. The complete list 16227is too long to duplicate here (please refer to the ChangeLog for 16228details). 16229- OS Internal Functions: Not only should internal OS functions not 16230modify the errno variable, they should never introduce cancellation 16231points: psock_connect(), psock_listen(), psock_getsockopt(), etc. 16232The list is too long to duplicate here (please refer to the 16233ChangeLog for details). 16234- OS Internal Functions: Create OS internal versions of many 16235applications functions that were used by the OS. The new versions 16236differ from the application interfaces in that (1) they do not 16237return error information via the errno variable, and (2) they never 16238create cancellation points. This includes new internal interfaces 16239like nxsem_init() that is like sem_init(), etc. There are too many 16240to list here (see the ChangeLog for details). 16241- Task Exit: task_exithook.c fails to link if signals are disabled 16242because was unconditionally trying to send the SIGCHLD signal to the 16243parent in certain configurations. Noted by Jeongchan Kim. 16244- memalign(): Fix heap corruption caused by using unaligned chunk 16245size. Unaligned nodes generated by memalign later cause heap 16246corruptions when nodes are shrink further (for example, 24 bytes -> 162478 bytes, when alignment is 16 bytes). From Jussi Kivilinna. 16248- SMP: In sched/sched/sched_cpuselect.c, in order to find the cpu 16249with the lowest priority thread, we have to remember the already 16250found lowest priority. Noted by Anonymous in Issue #75. 16251- spinlocks: Disable local interrupts in spin_setbit() and 16252spin_clrbit() in order to avoid a deadlock condition. From Masayuki 16253Ishikawa. 16254- atexit()/on_exit(): Clear atexit()/on_exit() function pointer 16255before calling it. On most archs, up_assert() calls exit() so 16256without this change, if atexit() function triggers an assertion we 16257are in endless loop. From Juha Niskanen. 16258 16259* File System/Block and MTD Drivers: 16260 16261- tmpfs: Fixed directory unlocking in tmpfs_opendir. From Dmitriy 16262Linikov. 16263- fcntl(): fcntl() did not return success fail for F_SETFL. Reported 16264by Jussi Kivilinna. 16265- tcdrain(): tcdrain() was recently added to the NuttX C library. 16266But there is a problem. The specification of tcdrain() requires 16267that it be a cancellation point. In order to do this, tcdrain was 16268moved from the C library into the OS and the addition cancellation 16269point hooks were added. In non-FLAT builds, access via system calls 16270is also now supported. 16271- FS FAT: Fix hard-fault when listing contents of FAT root. From 16272Jussi Kivilinna. 16273- procfs: Correct a problem that was causing an apparent directory to 16274be reported as a file instead of a directory by opendir. This 16275happened after adding these three new procfs entries: fs/block, 16276fs/mount, and fs/usage. Of course, there is no directory fs in this 16277case, only three files that have fs/ in their relative pathnames. 16278The logic was detecting that fs was the name of the enty to report, 16279but it was then declaring that fs was a file (because fs/block is of 16280type file). This was fixed by adding a check for matching lengths. 16281i.e., if strlen(fs) != strlen(fs/block), then report fs as a 16282directory instead of a file. 16283- procfs: Fix uptime being clse to maximum 32-bit value in certain 16284config. From Juha Niskanen. 16285 16286* Binary Loader: 16287 16288- binfmt/: Don't schedule starthook if there are no constructors. 16289 16290* Graphics/Display Drivers: 16291 16292- LCD: ILI9341 initialize method not permitted to set errno. 16293 16294* Networking/Network Drivers: 16295 16296- Networking: net/netdev/netdev_ifconfig.c: Was not returning all of 16297the address info. 16298- Networking: In some cases, packets are still not sent behind the 16299router. I found that NuttX sends the ARP requests not to the router 16300but to the target. Mistake in file net/route/netdev_router.c. From 16301Aleksandr Kazantsev. 16302- SIOCGIFCONF and SIOCGLIFCONF IOCTL commands should only report on 16303network adatpors in the UP state. 16304- recvfrom(): Fix double leave_cancellation_point on error path. 16305From Jussi Kivilinna. 16306- send(): Verify that sock descriptor is valid. Fixes assertion when 16307using send on closed socket. From Jussi Kivilinna. 16308- sendto(): Remove assert check for null psock and buf input 16309pointers. Removes check as 'psock == NULL' altogether because that 16310checked for later in psock_send and psock_sendto. Change null check 16311for 'buf' so that it is handled same as in recvfrom.c (return 16312-EINVAL instead of assert). From Jussi Kivilinna. 16313- sockgetname() files need to include udp/udp.h and tcp/tcp.h or 16314otherwise NET_UDP_HAVE_STACK and NET_TCP_HAVE_STACK are undefined 16315and the logic is never compiled. Noted by Anthony Merlino. 16316- dup()/dup2(): There was a reference counting problem in the TCP 16317logic of net_clone(). net_clone() which is the common logic 16318underlying dup() and dup2() for sockets. When net_clone() calls 16319net_start_monitor() and net_start_monitor() returns a failure 16320(because the underlying TCP connection) then net_clone() must back 16321out the reference count on the structure. Problem noted by Pascal 16322Speck and this implementation of the solution is based on his 16323suggestion. 16324- close(): There was a possible recursion that could eventually 16325overflow the stack. The error occurred when closing the socket with 16326inet_close() while a socket callback was still queued. When the 16327socket callback was executed by devif_conn_event(), this resulted in 16328a call to psock_send_eventhandler() with TCP_CLOSE flag set which 16329then called tcp_lost_connection(). tcp_shutdown_monitor() then 16330called tcp_callback() again, which again called 16331psock_send_eventhandler(), and so on.... Noted by Pascal Speck. 16332Solution is also similar to a solution proposed by Pascal Speck. 16333- inet: Add check for protocol before handing out TCP and UDP sockets. 16334- IP Forwarding: Fixes typo that caused build error when IP 16335forwarding was enabled with CONFIG_NET_ICMPv6_NEIGHBOR enabled as 16336well. From Anthony Merlino. 16337- IP Forwarding: Do not add link layer header size to d_len inside 16338devif_forward(). From Anthony Merlino. 16339- TCP Networking: When CONFIG_NET_TCP_WRITE_BUFF=y there is a 16340situation where a NULL pointer may be dereferenced. In this 16341configuration, the TCP connection's 'semi-permanent' callback, 16342s_sndcb was nullified in tcp_close_disconnect. However, other logic 16343in tcp_lost_connection() attempt to use that callback reference 16344after it was nullifed. Fixed in tcp_lost_connectino() by adding a 16345NULL pointer change before the access. This was reported by Dmitriy 16346Linikov in Bitbucket Issue 72. 16347- UDP Broadcast: Fix some issues with regard to UDP broadcast 16348handling. This is Bitbucket Issue #77. 16349- ICMP: Fix an error in the poll logic. It was assumed that the 16350input parameter pvconn was valid. It was not. Instead, the poll 16351logic must work like the sendto() and recvfrom() logic: It must 16352keep a copy of the conn structure in the private data. 16353- ICMPv6: Fixes several errors preventing icmpv6_radvertise.c from 16354being compiled. Fixes conversions to network byte order (namely 16355vlifetime, plifetime, mtu). IPv6 source address is set to 16356link-local IP address instead of the address in the netdev 16357structure. This is in compliance to RFC 4861. RA didn't work on 16358Linux before this change. Finally, router prefix and prefix length 16359are derived from the IPv6 address and netmask in the netdev 16360structure. This seems to make more sense than using a predefined, 16361separate prefix from the config. From Sakari Kapanen. 16362- ICMPV6: icmpv6_input() needs to set d_len to 0 after consuming echo 16363reply, otherwise, garbage will get sent out. From Anthony Merlino. 16364- ICMPV6: Fix an error in the poll logic. It was assumed that the 16365input parameter pvconn was valid. It was not. Instead, the poll 16366logic must work like the sendto() and recvfrom() logic: It must 16367keep a copy of the conn structure in the private data. 16368- IGMPv2 Send: Fix incoming IGMP checksum calculation. From Louis 16369Mayencourt. 16370- ARP: Fix IGMP Ethernet address computation. From Louis Mayencourt. 16371 16372* Wireless/Wireless Drivers: 16373 16374- CC1101: CC1101 driver not permitted to set errno. 16375- 6LoWPAN: Correct an error in uncompressing multicast address. 16376- 6LoWPAN: Correct a bug in handling uncompressed frames (IPv6 16377dispatch). Adds a separate local variable, protosize, to keep track 16378of the size of thep protocol header. 16379- 6LoWPAN: Fix an endian-ness problem in 6LoWPAN address 16380decompression. From Anthony Merlino. 16381- 6LoWPAN: The logic that extracts interface identifier from the IP 16382address needs to be generalized to handle cases where the address is 16383not a link local address. From Anthony Merlino. 16384 16385* Common Drivers: 16386 16387- Serial: 16550 UART driver IOCTL method must not set errno; it must 16388return a negated errno value. 16389- LIS3DSH: Added the argument parameter (FAR void *arg) to the 16390interrupt handler provided by the LIS3DSH driver to fit the 16391definition for ISRs in xcpt_t. Changed the check for working queue 16392availability in lis3dsh interrupt handler to use work_available() 16393and not crash in case of an overrun. From Florian Olbrich. 16394- LIS2DH: Fixes for self-test. From Jussi Kivilinna. 16395- LIS2DH: Fix use of obsolete dbg macro. From Jussi Kivilinna. 16396- LIS331DL: LIS331DL driver not permitted to set errno. 16397- HTS221: Power-on sensor for loading calibration data. From Jussi 16398Kivilinna. 16399- MCP2515: Fix the MCP2515 Bit Rate Prescale calculation. Fix BRP 16400for SET_BITTIMING ioctl as well. From Alan Carvalho de Assis. 16401- STMPE811: Fix GPIO operation of STMPE811 driver. 164021. STMPE811_GPIO_DIR was defined for register name and later was 16403redefined to be the pin direction mask for `stmpe811_gpioconfig`. 16404I decided to change register name to be STMPE811_GPIO_DIR_REG, and 16405keep pin direction mask STMPE811_GPIO_DIR, so that any external 16406code that already use this driver will be unchanged. 164072. The STMPE811 register GPIO_DIR uses bit value 1 for output and 0 16408for input, but `stmpe811_gpioconfig` set the opposite. 164093. The call to `stmpe811_gpiowrite` from inside of 16410`stmpe811_gpioconfig` leaded to deadlock. 16411From Dmitriy Linikov. 16412- BQ2429X: Add BATIO_OPRTN_SYSON for enabling BATFET after SYSOFF. 16413From Jussi Kivilinna. 16414 16415* Simulation: 16416 16417- Simulation: Serial and console drivers are not permitted to set 16418the errno. 16419 16420* ARMv7-M: 16421 16422- ARM Stack Check: Fix assert panic when both TLS and interrupt stack 16423are enable. From Jussi Kivilinna. 16424 16425* Infineon XMC4xxx Drivers: 16426 16427- XMC4 USIC: Kconfig was not selecting XMC4_USIC for USIC1. From Alan 16428Carvalho de Assis. 16429- XMC4 UART: Fix XMC4xxx USIC UART sginal to be high level when in idle. 16430From Alan Carvalho de Assis. 16431- XMC4 UART:xmc4_uart_configure() expects the channel# not uartbase as 16432an input parameter. From Alan Carvalho de Assis. 16433- XMC4 UART: Enable RX/TX status. From Alan Carvalho de Assis. 16434- XMC4 UART: The Alternative Receive Interrupt was not being 16435configured. 16436 16437* Infineon XMC4xxx Boards: 16438 16439- XMC4500-Relax: Setup max. freq. 120MHz and setup pull-up to UART 16440RXD pin. From Alan Carvalho de Assis. 16441 16442* Microchip/Atmel SAMv7 Drivers: 16443 16444- SAMv7: DAC and ADC drivers are not permitted to set the errno. 16445- SAMv7: Correct an error in RX DMA setup. From Manish Kumar Sharma. 16446- SAMv7 USB: It is necessary to disable pre-emption and interrupts 16447around a loop that copies TX data into the hardware in order to 16448avoid a TX data underrun condition. From Anthony Merlino. 16449 16450* NXP/Freescale LPC31xx Drivers: 16451 16452- LPC31xx: Serial and console drivers are not permitted to set 16453the errno. 16454 16455* NXP/Freescale LPC43xx: 16456 16457- lpc43xx: lpc43_adc.c was being selected by the build system when 16458DAC was selected. 16459 16460* NXP/Freescale LPC43xx Drivers: 16461 16462- LPC43xx Ethernet: Fix some backward logic setting full-duplex and 16463100mbps when autoconfiguration is disabled. Noted by Anonymous in 16464Issue #76. 16465- lpc43xx: UART_RX pins should be configured with input buffers 16466enabled. Otherwise it cannot be read. From Alexander Vasiljev. 16467 16468* STMicro STM32: 16469 16470- STM32 F2: Fixed build for STM32F20XX platforms when 16471CONFIG_STM32_DMACAPABLE is enabled. From Dmitriy Linikov. 16472- STM32 F4: Remove ltdc.h and dma2d.h. Those header files in that 16473location permitted inclusion into application space logic and, 16474hence, facilitated and encouraged calling into the OS and violating 16475the portable POSIX OS interface. The definitions in those header 16476files were move the appropriate location in the counterpart, 16477architecture specific files at arch/arm/src/stm32/dma2d.h and ltdc.h. 16478- STM32 L4: Build stm32l4_idle.c only if CONFIG_ARCH_IDLE_CUSTOM is 16479not enabled. From Jussi Kivilinna. 16480- STM32 F7: Remove ltdc.h and dma2d.h. Those header files in that 16481location permitted inclusion into application space logic and, 16482hence, facilitated and encouraged calling into the OS and violating 16483the portable POSIX OS interface. The definitions in those header 16484files were move the appropriate location in the counterpart, 16485architecture specific files at arch/arm/src/stm32f7/dma2d.h and 16486ltdc.h. 16487 16488* STMicro STM32 Drivers: 16489 16490- STM32: DAC and ADC drivers are not permitted to set the errno. 16491- STM32 ADC: Clear pending interrupts. From Mateusz Szafoni. 16492- STM32 CAN: Lower part of STM32 CAN driver 16493arch/arm/src/stm32/stm32_can.c uses all three hw tx mailboxes and 16494clears TXFP bit in the CAN_MCR register (it means transmission order 16495is defined by identifier and mailbox number). 16496This creates situation when order frames are put in upper part of 16497CAN driver (via can_write) and order frames are sent on bus can be 16498different (and I experience this in wild). Since CAN driver API 16499pretends to be "file like" I expect data to be read from fd the same 16500order it is written. So I consider described behaviour to be a bug. 16501Fixed by settin the TXFP bit in the CAN_MCR register (FIFO 16502transmit order). From comments by Alexey T, in Bitbucket Issue 73. 16503- STM32 HRTIM: Fix pclk calculation. From Mateusz Szafoni. 16504- STM32 HRTIM: Fix burst mode prescaler update. From Mateusz Szafoni. 16505- STM32 (alt) I2C: Ensure proper error handling. Injecting data 16506errors would cause the driver to continually reenter the isr with 16507BERR an RxNE. This fix allows the error to be cleared and 16508propagated to the waiting task. From David Sidrane. 16509- STM32: LTDC and DMA2D drivers are not permitted to set the errno. 16510- STM32 RTC: Workaround for potential subseconds race condition. In 16511all recent STM32 chips reading either RTC_SSR or RTC_TR is supposed 16512to lock the values in the higher-order calendar shadow registers 16513until RTC_DR is read. However many old chips have in their errata 16514this silicon bug (at least F401xB/C, F42xx, F43xx, L15xxE, L15xVD 16515and likely others): "When reading the calendar registers with 16516BYPSHAD=0, the RTC_TR and RTC_DR registers may not be locked after 16517reading the RTC_SSR register. This happens if the read operation is 16518initiated one APB clock period before the shadow registers are 16519updated. This can result in a non-consistency of the three 16520registers. Similarly, RTC_DR register can be updated after reading 16521the RTC_TR register instead of being locked." 16522- STM32 Serial: Do not stop processing input in SW flow-control 16523mode. From Juha Niskanen. 16524- STM32F33xxx ADC: Add some publicly visible interfaces and some 16525code to support injected channels. From Mateusz Szafoni. 16526- STM32F33xxx DMA: Add public interface to handle with DMA 16527interrupts. From Mateusz Szafoni. 16528- STM32F33xxx RCC: Fix CAN clock enable. From Mateusz Szafoni. 16529- stm32 F4 I2C: Ensure proper interrupt handling. Injecting data 16530errors that causes a STOP to be perceived by the driver, will 16531continually re-enter the isr with SB not set and BTF and RxNE set. 16532This changes allows the interrupts to be cleared and propagates a 16533I2C_SR1_TIMEOUT to the waiting task. From David Sidrane. 16534- STM32 L4 Serial: Do not stop processing input in SW flow-control 16535mode. From Juha Niskanen. 16536- STM32 F7: LTDC and DMA2D drivers are not permitted to set the errno. 16537- STM32 L4: DAC and ADC drivers are not permitted to set the errno. 16538- STM32 L4 DAC: Do not configure output pin if it is not used. From 16539Juha Niskanen. 16540- STM32 L4 RTC, PM: Small fixes to subseconds handling, ADC 16541power-management hooks 16542- STM32 F4 RTC: Fix reading alarm value that is more than 24h in 16543future. From Juha Niskanen 16544- STM32 L4 RTC: Fix reading alarm value that is more than 24h in 16545future. From Juha Niskanen 16546- STM32 L4 TIM: Fix compilation of timers with complementary outputs 16547when not PWM_MULTICHAN. From Juha Niskanen. 16548- STM32 L4 RCC: Restore backup-registers after backup-domain reset. 16549From Jussi Kivilinna. 16550- STM32 L4 RTC: Correct RTC_SSR and RTC_TR read ordering. In all 16551recent STM32 chips reading either RTC_SSR or RTC_TR is supposed to 16552lock the values in the higher-order calendar shadow registers until 16553RTC_DR is read. Change the register read ordering to match this and 16554don't keep a workaround for a hypothetical race condition (not in 16555any L4 errata, lets for once assume ST's silicon works as it is 16556documented...) 16557- STM32 L4 RTC: Init mode was never exited because nested locking in 16558rtc_synchwait() disabled backup domain access. From Juha Niskanen. 16559- STM32 L4 RTC: Use backup register magic value instead of INITS 16560bit. The INITS (bit 4) of RTC_ISR register cannot be used to 16561reliably detect backup domain reset. This is because we can operate 16562our device without ever initializing the year field in the RTC 16563calendar if our application does not care about correct date being 16564set. Hardware also clears the bit when RTC date is set back to year 165652000. From Juha Niskanen. 16566- STM32 L4 RTC: Put back the SSR race condition workaround. ST has 16567confirmed that the issue has not been fixed, and that it applies to 16568STM32 L4 too (was not in errata sheets due to documentation bug) See 16569discussion: https://community.st.com/thread/43710-issue-with-rtc-maximum-time-resolution . 16570From Juha Niskanen. 16571- STM32 F7 BBSRAM: Avoid assert in stm32_bbsram_savepanic. If panic 16572happens before stm32_bbsram is initialized, stm32_bbsram_savepanic 16573caused additional assert panic. Function has null pointer check, so 16574drop DEBUGASSERT. From Jussi Kivilinna. 16575- STM32 F7 I2C: fix I2C_M_NORESTART handling. From Jussi Kivilinna. 16576- STM32 F7 I2C: Restore bus frequency after I2C reset. Copy 16577frequency restoration fix from STM32L4 I2C driver to STM32F7 I2C 16578driver. From Jussi Kivilinna. 16579- STM32 F7 RTC: Fix reading alarm value that is more than 24h in 16580future. From Juha Niskanen 16581 16582* STMicro STM32 Boards: 16583 16584- STM32F334-DISCO: Add missing ram_vectors configuration in linker 16585script. From Mateusz Szafoni. 16586- Nucleo-F334R8: Add missing ram_vectors configuration in linker 16587script. From Mateusz Szafoni. 16588- Nucleo-F334R8: Add Missing ADC trigger configuration to the highpri 16589configuration. From Mateusz Szafoni. 16590- STM3240G-EVAL: The timer frequencies (BOARD_TIMx_FREQUENCY) are 16591incorrectly defined in board.h. Since the APB prescalers are set to 16592divide by 4 and 2 respectively, the frequencies should be "2xAPBx" 16593as said in the comment. The correct frequencies are already defined 16594but as STM32_APBx_TIMx_CLKIN. From Mattias Edlund. 16595- STM32F429i-DISCO: The ltdc configuration has been deleted because 16596it violated the portable POSIX OS interface. It used 16597apps/examples/ltdc and include ltdc.h and dma2d.h which were also 16598removed for the same reason. 16599 16600* ZiLOG Z80 16601 16602- configs/z80sim and xtrs: Serial driver lower halves ioctl methods 16603should return a negated errno value, not set the errno variable. 16604- z80 Make.defs: Fixes dependency generation with newest SDCC 16605compiler. 16606- configs/z80sim: Fix a naming problem. Also, don't try to build the 16607serial driver if CONFIG_NFILE_DESCRIPTOR=0. 16608- Z80: Makefile fix for use with current SDCC. 16609 16610* Build System 16611 16612- configs/: All defconfig files that include 16613CONFIG_NET_ICMPv6_SOCKET=y need to select CONFIG_SYSTEM_PING6=y and 16614deselect CONFIG_DISABLE_POLL. 16615- configs/: All NX configuration... Because of recent changes to 16616libnx/nxfonts, Supported bit per pixel must be separated specified 16617for NXFONTs too and need to match the select BPP for NX. 16618- Build system: Fix CONFIG_BUILD_KERNEL logic directories that have 16619ubin and kbin subdirectories. Conditional logic was fine for 16620CONFIG_BUILD_FLAT and CONFIG_BUILD_PROTECTED but generated useless 16621dependencies if CONFIG_BUILD_KERNEL. 16622 16623* C Library/Header Files: 16624 16625- libc/stdio: Build the lib_noflush() and lib_snoflush() stubs even 16626if CONFIG_FILE_DESCRIPTORS=0. They may still be needed. 16627- libc and libnx: When the libraries are built into two libraries, a 16628user space library and a OS space library (as in the PROTECTED and 16629KERNEL build). Then the user space library must not use the OS 16630internal interfaces; similarly, the OS must avoid using the 16631userspace interfaces so that it does not muck the errno value or 16632create spurious cancellation points. 16633- libc/match: Use of exp() vs expf() in logf() caused function to be 16634slow. From Alan Carvalho de Assis. 16635- libnx: Fixes a memory leak that is caused because the client message 16636queue is not unlinked after the client disconnects from the NX 16637server. From Masayuki Ishikawa. 16638- sscanf(): Fix sscanf() character conversion (%c): do not add '\0' at 16639the end as for strings, cause, for example, parsing one character 16640will fill two bytes: character itself and zero one '\0' after it, so 16641will overflow one byte variable argument and corrupt memory for 16642variables allocated after it. From Oleg Evseev. 16643 16644* Tools 16645 16646- tools/: configure.sh and configure.c should redirect stdout to 16647/dev/null but should not suppress stderr output. 16648 16649* NSH: apps/nshlib: 16650 16651- apps/nshlib/: Avoid truncating the strcmp result in the parser 16652into a unsigned char variable. nshlib/nsh_netcmds.c: Check for 16653valid hostip before using it. From Bruno Herrera. 16654- apps/nshlib/: Fix resource leak in 'dd' commenad when 'if=' or 16655'of=' params are repeated in the command line. For example: 16656dd if=/dev/null if=/dev/zero of=/dev/null or 16657dd if=/dev/zero of=/dev/zero of=/dev/null. From Bruno Herrera. 16658- apps/nshlib: This commit eliminates the ping and ping6 commands 16659from NSH and replaces them with 'built-in' commands at 16660apps/system/ping and ping6. The original NSH version of ping[6] 16661commands violated the portable POSIX interface and, hence, had to 16662be removed. The new system/ping and ping6 built-in commands uses 16663the new IPPROTO_ICMP AF_INET and IPPROTO_ICMP6 AF_INET6 datagram 16664sockets to implement ping. 16665- apps/nshlib: Fix parsing of empty strings when CONFIG_NSH_CMDPARMS 16666is not defined. Problem noted by Juha Niskanen. 16667 16668* Examples/Tests: apps/examples: 16669 16670- All configurations that use NXIMAGE or NXHELLO must select 16671NX_MULTIUSER. All configurations that use examples/nxterm must 16672enable CONFIG_BOARDCTL. 16673- All configurations that use NXLINES must select NX_MULTIUSER. All 16674configurations that use the NX server need to have larger POSIX 16675messages. 16676- apps/examples/adc: Fix g_adcstate.count initialization. From 16677Masayuki Ishikawa. 16678- apps/examples/elf: Remove low-level interfaces and replace with 16679call to exec(). 16680- apps/examples/nxflat: Remove low-level interfaces and replace with 16681call to exec(). 16682- examples/ostest: Works around a bug in printf() when cancellation 16683points are enabled. printf() is a cancellation point because it 16684calls write(). This is correct according to OpenGroup.org. 16685However, printf holds the stdio library semaphore when it is 16686canceled and this leaves the semaphore in a bad state. No fix for 16687the printf bug yet. 16688- apps/examples/nx: The NX example no longer supports single user 16689mode. 16690- apps/examples/nxtext: The nxtext example no longer supports single 16691user mode. 16692- apps/examples/nxhello now supports only multiuser mode. 16693- apps/examples/nximage now supports only multiuser mode. 16694- examples/nxlines: Now supports only multiuser mode. 16695 16696* Network Utilities: apps/netutils: 16697 16698- apps/netutils/ftpc: Fix some crazy comparisons to determine is a 16699file is an absolute path. Noted by Anthony Merlino. 16700 16701* System Utilities (apps/system) 16702 16703- apps/system/i2ctool: Fixed i2ctool write operation in `no restart` 16704mode (flag `-n`). It seems that I2C driver has changed a bit since 16705i2ctool was written, so now i2ctool sends repeated start even if 16706`no restart` flag (-n) was passed to it. From Dmitriy Linikov. 16707 16708NuttX-7.24 Release Notes 16709------------------------ 16710 16711The 124th release of NuttX, Version 7.24, was made on March 2, 2018, 16712and is available for download from the Bitbucket.org website. Note 16713that release consists of two tarballs: nuttx-7.24.tar.gz and 16714apps-7.24.tar.gz. These are available from: 16715 16716https://bitbucket.org/nuttx/nuttx/downloads 16717https://bitbucket.org/nuttx/apps/downloads 16718 16719Both may be needed (see the top-level nuttx/README.txt file for build 16720information). 16721 16722Additional new features and extended functionality: 16723 16724* Core OS: 16725 16726- SMP: Introduce spin_lock_irqsave() and spin_unlock_irqrestore(). 16727These APIs are simplified version of enter_critical_section() 16728and leave_critical_section() to protect data (e.g. registers) in 16729SMP mode. By using these APIs inside drivers, performance will 16730be improved. From Masayuki Ishikawa. 16731- System Timer: Replace critical section APIs with spinlock APIs. 16732(64bit only). If SMP=n or SMP=y && SPINLOCK_IRQ=n, this works 16733in the same way as before. If SMP=y && SPINLOCK_IRQ=y, performance 16734will be improved. From Masayuki Ishikawa. 16735- POSIX Timers: Replace critical section APIs with spin lock APIs in 16736clock_gettime.c. This change will improve performance for SMP 16737systems but nothing changes for non-SMP systems. In SMP mode, 16738the running TCB is not always at the g_readytorun.head. From 16739Masayuki Ishikawa. 16740- SMP: Introduce spin_lock_wo_note() and spin_unlock_wo_note(). These 16741APIs are used in sched_note.c to protect instrumentation data. The 16742difference between these APIs to existing spin_lock() and 16743spin_unlock() is that they do not perform instrumentation to avoid 16744recursive call when SCHED_INSTRUMENTATION_SPINLOCKS=y. From 16745Masayuki Ishikawa. 16746- Interrupts: Add a configuration option to show interrupt 16747information via a procfs file. 16748 16749* File Systems/Block and MTD Drivers 16750 16751- VFS: Add support for truncate() and ftruncate(). 16752- FAT, SmartFS, UserFS, UnionFS, TmpFS, NFS: Add truncate() support. 16753- FAT. Effectively handles the situation when a new file position is 16754within the current sector. Accelerates the work of the FS with a 16755multitude of operations to write small pieces of data within the 16756current sector. From Aleksandr Vyhovanec. 16757 16758* Graphics/Display Drivers: 16759 16760- HiletGo OLED: Add configuration support for HiletGo SSD1306 OLED. 16761- lcd/ft80x: This commit adds an FTDI/BridgeTek FT80x GUI driver. It 16762is untested (I don't even have hardware yet) and, hence, it is 16763marked as EXPERIMENTAL). 16764 16765* Networking/Network Drivers: 16766 16767- 6LoWPAN: Adds configuration options for specifying preloaded 16768address contexts for compression From Anthony Merlino. 16769- TCP: Introduce tcp receive window control based on I/O buffer. 16770NOTE: The algorithm is still experimental but useful for http 16771streaming. From Masayuki Ishikawa. 16772- UDP: Add an implementation of UDP write buffering. 16773- Routing Tables: Adding ftruncate() support eliminates an issue 16774in file-based routing table management system. 16775- Telnet: Add support for Telnet character mode From Masayuki 16776Ishikawa. 16777 16778* Other Common Device Drivers: 16779 16780- drivers/input/ft5x06.c: Add a driver for the FT5x06 capacitive, 16781multi-touch, touchscreen controller. 16782- drivers/input/ft5x06: Add a polled mode of operation for the FT5x06 16783in attempt to work around the fact that the LPCXpresso-LPC54628 16784chose a non-interrupt pin for the FT5x06 interrupt. Driver is still 16785not yet functional. 16786- drivers/power/bq2429x.c: Add trickle charging mode From Juha 16787Niskanen. 16788- drivers/sensors: Add support to MAX44009 ambient light sensor. 16789From Juha Niskanen. 16790- drivers/sensors: Added support for LIS3DH accelerometer sensor. 16791From Matt Thompson. 16792- drivers/eeprom: EEPROM driver for AT24xx compatible EEPROMs. 16793From Sebastien Lorquet. 16794 16795* Simulation 16796 16797- sim: Add support for a RAM MTD driver and initialization for use 16798with SmartFS. 16799- sim: Add support for testing NXFFS. 16800 16801* ARM: 16802 16803- ARMv7-A, ARMv7-R, ARMv7-M: Add atomic read-add-write and 16804read-subtract-write functions. 16805 16806* Infineon XMC4xxx: 16807 16808- XMC4xxx: Refactor PLL setup, refactored PLL/CLK config, easier, 16809checks for correctness, call go_os_start if STACK_COLORIZED, smarter 16810config of EXTCLK output freq. From David Alessio. 16811 16812* Infineon XMC4xxx Boards: 16813 16814- Add FPU to xmc4 ostest. Remove +x from makefiles, preserve 16815.gdbinit across make clean, add FPU support to ostest on xmc4, 16816add FPU test to ostest on xmc4 From David Alessio. 16817 16818* Microchip/Atmel SAMD/L Drivers: 16819 16820- SAMD: SAMD External Interrupt Controller (EIC) support From Matt 16821Thompson. 16822- SAMD/L: Added Analog Comparator basic initialization From Matt 16823Thompson. 16824- SAMD/L: Added FDPLL clock support. Fixed sequence of OSC32K 16825calibration setup. From Matt Thompson. 16826- SAMD/L: Added loading factory USB calibration data from NVRAM. 16827From Matt Thompson. 16828- SAMD/L: Added experimental DMA support to SPI driver. spi_exchange() 16829uses a pair of DMA channels for TX and RX. From Matt Thompson. 16830 16831* Microchip/Atmel SAM3/4 Boards: 16832 16833- Flip&Click SAM3X: Add board support for the Mikroe Flip&Click 16834SAM3X. 16835- Flip&Click SAM3X: Adds basic board support for the HiletGo OLED. 16836 16837* Microchip PIC32MZ 16838 16839- PIC32MZEF: Add architectural support for the PIC32MZEF family. 16840 16841* Microchip PIC32MZ Boards 16842 16843- Flip&Click PIC32MZ: Adds board support for the Mikroe Flip&Click 16844PIC32MZ board. 16845- Flip&Click PIC32MZ: Add board support for HiletGo OLED. 16846- Flip&Click PIC32MZ: Add an nxlines configuration for use in 16847testing the custom HiletGo Click board. 16848 16849* NXP Freescale LPC43xx Drivers: 16850 16851- LPC43xx: Adapt LPC176x RTC driver for the LPC43xx. From Gintaras 16852Drukteinis. 16853- LPC43xx: Add Windowed Watchdog Timer (WWDT) driver. Tested on 16854LPC4357 but should be compatible for all LPC43xx MCUs. 16855From Gintaras Drukteinis. 16856- Leverage the LPC54xx SD/MMC back to the LPC43xx (where it came from 16857originally). 16858 16859* NXP Freescale LPC43xx Boards: 16860 16861- Bambino-200e: Add LPC43 SDMMC board support to Bambino-200E. From 16862Alan Carvalho de Assis. 16863 16864* NXP Freescale LPC54xx: 16865 16866- LPC546xx: Added basic architectural support for the LPC546xx 16867family. 16868 16869* NXP Freescale LPC54xx Drivers: 16870 16871- LPC546xx: Basic NSH configuration includes support for UARTs, 16872SysTick timer, GPIOs, LEDs, and buttons 16873- LPC546xx: Additional drivers include EMC, I2C, Ethernet 16874- LPC546xx: Implement GPIO interrupt support. 16875- LPC546xx: And unverified SPI driver is included. 16876- LPC546xx: Ported LPC1788 LCD driver to use the LPC54xx pin. 16877- LPC546xx: Bring in LPC43xx SD/MMC driver from 16878https://github.com/Smoothieware/smoothie-nuttx/tree/master/nuttx/arch/arm/src/lpc43xx 16879and adapt for use with the LPC43xx 16880- LPC546xx: Add DMA driver ported from the LPC43xx GPDMA driver. 16881- LPC546xx: Bring in WWDT driver from LPC43. 16882- LPC546xx: Add an RTC driver and a RTC character driver lower half. 16883- LPC546xx: Add support for a random number generator. 16884- LPC546xx: Add an Ethernet driver. 16885 16886* NXP Freescale LP54xx Boards: 16887 16888- LCXpresso-LPC54628: Added support for the LPCXpresso-LPC54628 16889board. The initial bring-up used a basic NSH port. 16890- LCXpresso-LPC54628: On-board SDRAM is also supported 16891- LCXpresso-LPC54628: Add support for I2C2 and for the I2C tool to 16892the NSH configuration. 16893- LCXpresso-LPC54628: Add support for the USER button. Enable the 16894apps/examples/button test in the NSH configuration. 16895- LCXpresso-LPC54628: Add the fb configuration for testing the LCD. 16896- LCXpresso-LPC54628: Add support for the the FT5x06 touchscreen 16897controller. Enable the driver as well as the apps/examples 16898touchscreen test. 16899- LCXpresso-LPC54628: Add an NxWM configuration. 16900- LCXpresso-LPC54628: Add logic to bring up SDMMC. 16901- LCXpresso-LPC54628: Add logic to register the RTC character driver 16902if it is enabled. Enable the RTC and RTC character driver in the 16903NSH configuration. 16904- LCXpresso-LPC54628: Add a netnsh configuration that was be used to 16905test the Ethernet driver. 16906- LCXpresso-LPC54628: Add LittlevGL graphics demo configuration. 16907 16908* On Semiconductor LC823450 16909 16910- LC823450 SMP improvements: (1) Apply irq_spin APIs to 16911modifyregXX, (2) Do not use modifyreg32() to enable Mutex, (3) 16912Modify IRQ control for i2s. Apply irq_spin APIs to 16913dma/syscontrol/usbdev. From Masayuki Ishikawa. 16914- LC823450: LC823450 http streaming improvements: (1) Use spinlock 16915APIs in lc823450_gpio.c. (3) Fix a potential race condition in 16916up_enable_irq(), (3) Use spinlock APIs instead of critical section 16917APIs, (4) Enable HRT_TIMER in lc823450_timerisr.c. (5) Use spinlock 16918APIs instead of critical section APIs. (6) Fix race conditions in 16919dma/usbdev. From Masayuki Ishikawa. 16920- LC823450: Introduce DVFS. This version only supports manual mode 16921and Vdd1 is fixed to 1.2V. From Masayuki Ishikawa. 16922 16923* On Semiconductor LC823450 Drivers 16924 16925- LC823450: Refactor timer driver. Add MTM timer APIs for DVFS. 16926Introduce up_rtc_gettime() for CONFIG_RTC_HIRES. Introduce idle 16927time calculation in DVFS. Also, DVFS autonomous mode based on CPU 16928idle time is supported. NOTE: voltage control is still disabled. 16929From Masayuki Ishikawa. 16930 16931* On Semiconductor LC823450 Boards 16932 16933- LC823450-XGEVK: I2S interrupt will be handled on CPU0 with this 16934change. Assign CPU1 to lpwork. This change will improve load 16935balancing for networking with RNDIS. From Masayuki Ishikawa. 16936- LC823450-XGEVK: Enable SPINLOCK_IRQ and NXPLAYER in rndis. From 16937Masayuki Ishikawa. 16938- LC823450-XGEVK: LC823450 http streaming improvements: (1) In SMP 16939mode, H/W interrupts should be handled on CPU0 to avoid deadlocks. 16940(2) Call up_enable_irq() to assign CPU0 for IRQ handling. (3) 16941Enable HRT_TIMER, LC823450_MTM0_TICK, SPINLOCK_IRQ, (4) Enable 16942NET_TCP_RWND_CONTROL, NXPLAYER_HTTP_STREAMING_SUPPORT (rndis only) 16943From Masayuki Ishikawa. 16944- LC823450-XGEVK: Enable DVFS in lc823450_bringup.c. Enable DVFS 16945in audio and rndis. Add Telnet character mode to rndis. From 16946Masayuki Ishikawa. 16947- LC823450-XGEVK: Explicitly assign I2S IRQ handling to CPU0. From 16948Masayuki Ishikawa. 16949- LC823450-XGEVK: Enable RTC_HIRES instead of RTC_DATETIME (audio/ 16950rndis). Disable TCP_WRITE_BUFFERS and change SCHED_LPWORKPRIORITY 16951(rndis). Update SMP and DVFS related part. From Masayuki Ishikawa. 16952 16953* STMicro STM32: 16954 16955- STM32 F7: Add support for the STM32F72x/73x family. From Bob 16956Feretich. 16957 16958* STMicro STM32 Drivers: 16959 16960- STM32 HRTIM: Add interface to change outputs SET/RST configuration. 16961From Mateusz Szafoni. 16962- STM32 HRTIM: Add interface to get timer clock frequency, 16963calculation, add compare/capture registers significant bits 16964checking. From Mateusz Szafoni. 16965- STM32 HRTIM: Add interface to set timer frequency, fix slave timers 16966reset configuration, change POWER_INFO to TIMER_INFO From Mateusz 16967Szafoni. 16968- STM32 HRTIM: Add repetition support and fix enum overflow From 16969Mateusz Szafoni. 16970- STM32 HRTIM: Add HRTIM push-pull mode configuration. From 16971raiden00pl. 16972- STM32 FLASH: Add progmem support for STM32L15XX From Juha Niskanen. 16973 16974* STMicro STM32 Boards: 16975 16976- configs/photon: Adds BOARD_TIMn_FREQUENCY macros From Anthony 16977Merlino. 16978- configs/indium-f7: Adds support for the RAF Research Indium-F7 16979board. From Bob Feretich. 16980- Rename the configs/stm32f0discovery board directory to 16981configs/stm32f051-discovery. There are others stm32f0discovery 16982boards with different MCUs and different peripherals on the board. 16983From Alan Carvalho de Assis. 16984- configs/stm32f072b-discovery: Adds support for stm32f072b-disco 16985board. This is the board. I added the LEDs of this board and tested 16986the compilation. From Alan Carvalho de Assis. 16987- configs/stm32f103-minimum: Add AT24 EEPROM support on STM32F103- 16988Minimum board From Alan Carvalho de Assis. 16989- configs/stm32f103-minimum: Add support to BMP180 on BluePill 16990(stm32f103-minimum) board. From Alan Carvalho de Assis. 16991- configs/stm32f334-disco: Add buck converter and boost converter 16992logic. From Mateusz Szafoni. 16993- configs/stm32f103-minimum: Add zerocross support to STM32F103- 16994Minimum board From Alan Carvalho de Assis. 16995- configs/stm32f103-minimum: Add OLED SSD1306 support to 16996STM332F103-Minimum From Alan Carvalho de Assis. 16997- configs/stm32f103-minimum: Add board support to MAX6675 Thermocouple 16998sensor From Alan Carvalho de Assis. 16999- configs/stm32f746g-disco: Add stm32f746g-disco Ethernet configuration. 17000Add USART1 support (connected to the USB virtual serial port) From 17001Louis Mayencourt. 17002- configs/viewtool-stm32f107: Add support for FT80X initialization. 17003Add ft80x configuration that will eventually be used for testing the 17004ft80x if I ever receive hardware. 17005 17006* Tools: 17007 17008- tools/logparser: Add a tool which will help me to convert git logs 17009to ChangeLog format. 17010 17011* NSH: apps/nshlib: 17012 17013- apps/nshlib: Add support for a truncate command. This will be used 17014to test the new ftruncate file system support. 17015- apps/nshlib: Add support for Telnet character mode. From Masayuki 17016Ishikawa. 17017- apps/nshlib: Add support for '-n' option to the echo command. From 17018Masayuki Ishikawa. 17019- apps/nshlib: Add irqinfo command. 17020 17021* Examples/Tests: apps/examples: 17022 17023- apps/examples/userfs: Add truncate() support for userfs. 17024- apps/examples/lvgldemo: Add lvgldemo example for LittlevGL. 17025- apps/examples/veml6070: Add VEML6070 Application Example. From 17026Alan Carvalho de Assis. 17027- apps/examples/bmp180: Add BMP180 application example. From Alan 17028Carvalho de Assis. 17029- apps/examples/ft80x: Add a test of the FT80x based on FTDI 17030SampleApp. Includes tests of GPU primitives and graphics co- 17031processor commands. 17032 17033* Network Utilities: apps/netutils: 17034 17035- apps/netutils/netlib: Add default route in netlib_set_dripv4addr(). 17036From Masayuki Ishikawa. 17037 17038* Graphics: apps/graphics: 17039 17040- apps/graphics/littlevgl: Add littlevgl library. From Alan Carvalho 17041de Assis. 17042- apps/graphics/ft80x: Add the FTDU FT80x GUI support library. 17043Consists of some display list helpers, audio helpers, touch helpers, 17044RAM access, register access etc. 17045 17046* System Utilities (apps/system) 17047 17048- apps/system/nxplayer: Add support for HTTP streaming in nxplayer. 17049From Masayuki Ishikawa. 17050- apps/system/setlogmask: Adds 'setlogmask' application that allows 17051you to set the syslog priority via a simple command. From Anthony 17052Merlino. 17053- apps/system/usbmsc: Added Kconfig options to configure write 17054protection for each LUN. From Fabio D'Urso. 17055- system/stackmonitor: Re-design the stack monitor so that it does not 17056make forbidden calls directly into the OS, breaking the portable POSIX 17057OS interface. It now properly uses the PROCFS file system to glean 17058information about stack usage. 17059 17060Bugfixes. Only the most critical bugfixes are listed here (see the 17061ChangeLog for the complete list of bugfixes and for additional, more 17062detailed bugfix information): 17063 17064* Core OS: 17065 17066- System Timer: Change the way that the 64-bit time is sampled. 17067Previously, we disabled interrupts before sampling the 64-bit 17068timer since the uint64_t access is not atomic on most CPUs. However, 17069disabling (local) interrupts does not work in the SMP case. In that 17070case, the timer interrupt may be running on only one of the CPUs; 17071disabling interrupts on a different CPU will provide no protection 17072from timer rollover. To work around this, logic was added that 17073samples 64-bit timer is sampled twice and if 32-bit rollover was 17074detected between samples, then loops until there is no rollover. 17075- POSIX Timers: In SMP mode, running TCB is not always at the head of 17076the g_readytorun list. This change removes DEBUGASSERT() to avoid 17077this condition. From Masayuki Ishikawa. 17078- Spinlocks: Add memory barrier operations in spin_unlock(). In ARM 17079document regarding memory barriers, SP_DMB() must be issued before 17080changing a spinlock state to SP_UNLOCKED. However, we found that 17081SP_DSB() is also needed to ensure that spin_unlock() works 17082correctly for network streaming aging test. From Masayuki Ishikawa. 17083- Sporadic Scheduler: Fix compiler error in Sporadic Scheduler when 17084priority inheritance is enabled. Noted by eunb.song@samsung.com 17085- Priority Inheritance: Fix some priority inheritance related issues 17086noted during review of logic. Also add some REVISIT comments for some issues noted in the design. 17087- boardctl: Remove the BOARDIOC_TSCTEST_TEARDOWN and 17088BOARDIOC_TSCTEST_SETUP boardctl() commands. Remove all 17089implementations of board_tsc_teardown(). Each board now initializes 17090the touchscreen controller as a normal part of its board bring-up. 17091board_tsc_setup() is gone; the touchscreen controller is now treated 17092like any other on-board device. 17093- configs: CONFIG_MAX_TASKS must be a power of 2. 17094- SMP: Introduce a new global IRQ clearing logic and tasklist 17095protection. The previous implementation of clearing global IRQ in 17096sched_addreadytorun() and sched_removereadytorun() was done too 17097early. As a result, nxsem_post() would have a chance to enter the 17098critical section even nxsem_wait() is still not in blocked state. 17099This patch moves clearing global IRQ controls from 17100sched_addreadytorun() and sched_removereadytorun() to 17101sched_resumescheduler() to ensure that nxsem_post() can enter the 17102critical section correctly. For this change, 17103sched_resumescheduler.c is always necessary for SMP configuration. 17104In addition, by this change, task_exit() had to be modified so that 17105it calls sched_resumescheduler() because it calls 17106sched_removescheduler() inside the function, otherwise it will cause 17107a deadlock. However, I encountered another DEBUGASSERT() in 17108sched_cpu_select() during HTTP streaming aging test on LC823450-XGEVK. 17109Actually sched_cpu_select() accesses the g_assignedtasks which might 17110be changed by another CPU. Similarly, other tasklists might be 17111modified simultaneously if both CPUs are executing scheduling logic. 17112To avoid this, I introduced tasklist protection APIs. With these 17113changes, SMP kernel stability has been much improved. From Masayuki 17114Ishikawa. 17115- SMP: Fix this_task() to be an atomic operation. In the previous 17116implementation, this_task() was defined in sched.h by using just a 17117macro current_task(this_cpu()). However, I found that this is not 17118atomic and actually sometimes switching CPU happened in executing 17119the macro when we tested audio steaming plus executing commands via 17120Telnet. This change resolves this issue by implementing atomic 17121this_task()in sched_thistask.c which is newly introduced. From 17122Masayuki Ishikawa. 17123- SMP: Implements a global scheduler lock capability as part of SMP 17124support. This allows the scheduler to be locked with no knowledge 17125or access to the TCB of the currently running task. This is 17126necessary because accessing the TCB of the currently running task 17127is, itself, a non-atomic operation. This global scheduler lock 17128capability was add just to support that atomic access to the TCB. 17129- SMP: Extend the last global lock change to work with the 17130LC823450-XGEVK which does not support the atomic fetch add but 17131does support disabling interprocessor interrupts. Disabling 17132interprocessor interrupts will also guarantee that the TCB address 17133calculation is atomic. 17134- SMP: Fix a infinite recursion problems that a recent changes 17135introduced into the i.MX6 SMP implementation. This is not seen 17136with the LC823450 because you can disable inter-processor interrupts 17137in that architecture; but you cannot in the ARMv7-A/GIC architecture. 17138- SMP: Remove SMP related logic in sig_dispatch.c. This change 17139prevents from a deadlock in up_schedulesigaction.c where inter-CPU 17140signal handling is actually implemented. arch/arm/src/armv7-m: Fix 17141signal handling for SMP. In previous implementation, signal handling 17142for SMP was incorrect. Thus, for example, if an inter-CPU signal 17143happened an incorrect tcb was signaled and caused ASSERT(). This 17144change fixes the issues and works for both inter-CPU signal handling 17145and signal handling on the same CPU. From Masayuki Ishikawa. 17146- Tasking: Add nxtask_create(). Kthread_create() and nxtask_create() 17147are internal OS functions and should not modify the errno variable. 17148Convert legitimate uses of task_create() to nxtask_create(). 17149Review handling of returned values from all uses of kthread_create() 17150(as well as nxtask_create()). 17151- Tasking: Threads started by board bring-up logic should be kernel 17152threads, not user tasks. 17153- Tasking: Threads started by drivers should be kernel threads, not 17154user tasks. 17155- Semaphore Usage: Added ECANCELED condition to DEBUGASSERT's 17156checking sem_wait result From Dmitriy Linikov. 17157 17158- errno: Add new internal OS function nxsched_setaffinity() that is 17159identical to sched_isetaffinity() except that it does not modify the 17160errno value. All usage of sched_setaffinity() within the OS is 17161replaced with nxsched_setaffinity(). 17162- errno: Internal functions sched_reprioritize() and 17163sched_setpriority() no longer modify the errno value. Also renamed 17164to nxsched_reprioritize() and sched_setpriority(). 17165- errno: Add new internal OS function nxsched_getscheduler() that is 17166identical to sched_getscheduler() except that it does not modify the 17167errno value. All usage of sched_getscheduler() within the OS is 17168replaced with nxsched_getscheduler(). 17169- errno: Add new internal OS function nxsched_setparam() that is 17170identical to sched_setparam() except that it does not modify the 17171errno value. All usage of sched_setparam() within the OS is 17172replaced with nxsched_setparam(). 17173- errno: Add new internal OS function nxsched_getparam() that is 17174identical to sched_getparam() except that it does not modify the 17175errno value (actually, the previous value erroneously neglected to 17176set the errno value to begin with, but this fixes both issues). All 17177usage of sched_getparam() within the OS is replaced with 17178nxsched_getparam(). 17179- errno: wd_start() is an internal OS function and should not set the 17180errno value. Reviewed and updated every call to wd_start() to 17181verify if return value is used and if so if the errno value is 17182accessed. 17183- errno: Fix several inappropriate accesses to get_errno() that were 17184missed in previous changes (some going back to nuttx-7.23). Add new 17185nxsched_setscheduler() and nxsched_getaffinity() which are 17186equivalent to their counterparts without the nx on front. These 17187versions do not modify the errno value. Changed all calls within 17188the OS to use these newer versions of the functions. 17189- errno: binfmt/, configs/, graphics/, libc/, mm/, net/, sched/: OS 17190references to the errno variable should always use the set_errno(), 17191get_errno() macros. 17192- drivers/, fs/ and libc/: OS references to the errno variable should 17193always use the set_errno(), get_errno() macros. 17194 17195* File System/Block and MTD Drivers: 17196 17197- FAT: CONFIG_FAT_MAXFNAME may not exceed NAME_MAX (CONFIG_NAME_MAX) 17198- NFS: Correctly infer file type. The file type is in struct 17199nfs_statinfo_s's ns_type field, not in the ns_mode field. From 17200Michael Jung. 17201- NFS: Fix buffer corruption. In case multiple read requests to the 17202NFS server are required to fill up the user provided buffer, 17203nfs_read() might write behind the end of said buffer. This is fixed 17204with this change. From Michael Jung. 17205- VFS: reopen() should return NULL when oflags is less than 0, not 17206equal to 0. Because negative value is returned on failure of 17207lib_mode2offlags() which converts the mode string into file open 17208mode flag. 17209- ProcFS: Fix an error in a common function that manages read data. 17210- drivers/mmcsd: Respect SDIO_CAPS_DMABEFOREWRITE on CMD25. From 17211Evgeniy Bobkov. 17212- AT24xx: Correct page size for AT24C02 part. From Alexander 17213Oryshchenko. 17214- mtd_config.c: Add still more error handling (to detect bad 17215underlying flash implementations). Remove MTD_ERASE that was 17216erasing data block instead of erase block. This is a partial 17217revert of 4f18b4. Reported-by: Pascal Speck <iktek01@yahoo.com> 17218 17219* Graphics/Display Drivers: 17220 17221- drivers/lcd: Fix the default I2C address of SSD1306 OLED display 17222(7- vs 8-bit addressing) From Alan Carvalho de Assis. 17223- drivers/lcd: lcd_framebuffer.c does not need to include board- 17224specific board.h. 17225- include/lcd: Eliminate a warning from an SSD1306 header file by 17226adding a forward reference to struct i2c_master_s. From Sebastien 17227Lorquet. 17228 17229* Networking/Network Drivers: 17230 17231- ARP: Fix an error introduced when ICMP and ICMP6 socket support was 17232added in NuttX-7.3. A gratuitous ARP (or solicitation) was being 17233sent after receive of the ECHO replay (advertisement). 17234- ARP: Fix IGMP multicast address computation on NuttX network stack. 17235This change fixes the IGMP address computation to allow multicast 17236UDP messages. The destination address was created with the incorrect 17237bytes of the given IPv4 address. From Louis Mayencourt. 17238- ioctl: The existence of the network driver ioctl() method should 17239depend on CONFIG_NETDEV_IOCTL rather than CONFIG_NETDEV_PHY_IOCTL. 17240The former enables the method, the later enables a subset of 17241possible driver IOCTLs. 17242- TCP: Write buffering logic should not wait for a free buffer if 17243the socket was opened non-blocking. 17244- TCP: Fixed bad return value handling in psock_tcp_send(). send() 17245expects psock_tcp_send() to return a negated errno value, not -1 17246with the errno set (GN: I added same change for tcp_send_buffered.c 17247which has the same issue as tcp_send_unbuffered.c) From Pelle 17248Windestam. 17249- TCP: Fixes hardfault when network goes done and network monitoring 17250is in place. From Gianpaolo Ferroni Ariani. 17251- TCP: tcp_send_[un]buffered.c: Check routing table in 17252psock_send_addrchck(). Previously only ARP table was considered 17253when determining if the data will actually be sent. From Juho 17254Grundstrom. 17255- TCP: Generalize Juho Grundstrom's IPv4 change for IPv6 as well. 17256- UDP: Remove some conditional logic that was true if there is only a 17257single network device, but not true in the multi-device context. 17258- UDP: In sendto(), return EHOSTUNREACH if the network is down. 17259 17260* Common Drivers: 17261 17262- drivers/pipes: In poll logic, fix off-by-one error in calculation 17263of bytes in the buffer. Buffer calculation in pipe poll setup is 17264off-by-one when read index is larger than write index. This causes 17265poll() not getting POLLIN when buffer has one byte as calculation 17266gives zero bytes in buffer. From Jussi Kivilinna. 17267- drivers/audio: Improve stability of the WM8776 driver in SMP mode. 17268Apply irq_spin APIs to improve performance. Repeat to process a 17269message to avoid deadlock. From Masayuki Ishikawa. 17270- drivers/ioexpander: Fixed build of PCF8574 driver when its 17271interrupts aren't enabled by config. From Dmitriy Linikov. 17272- drivers/syslog: Fixes LOG_UPTO macro to include specified log level. 17273From Anthony Merlino. 17274- drivers/sensors: Fix HTS221 sensor reset with BOOT bit From Jussi 17275Kivilinna. 17276- drivers/loop: If we want to open read-only in losetup.c, flags 17277should be O_RDONLY not O_RDWR. From Fabio D'Urso. 17278- drivers/timers/ds3231.c: Correct some debug statements. From 17279Alexander Oryshchenko. 17280- drivers/sensors/lis2dh: Use realtime clock if monotonic is not 17281available From Juha Niskanen. 17282- drivers/i2c and drivers/spi: Fix compile error if 17283CONFIG_DISABLE_PSEUDOFS_OPERATIONS, fix bad NULL checks From Juha 17284Niskanen. 17285 17286* ARMv7-A: 17287 17288- Data Cache: Fix cp15_invalidate_dcache. In cases where more than 17289one dcache line was to be invalidated, a missing branch label 17290would result in a false branch target into cp15_flush_idcache. Also 17291the .size macro was fixed for both cp15_invalidate_dcache. From 17292Michael Jung. 17293- SMP: Port the signal-related SMP change by Masayuki Ishikawa to the 17294ARMv7-A family. 17295 17296* Extensa: 17297 17298- SMP: Port the signal-related SMP change by Masayuki Ishikawa to the 17299Xtensa family. 17300 17301* Infineon XMC4xxx Drivers: 17302 17303- XMC4xxx: Only setup USB clock when USB PLL is enabled From Alan 17304Carvalho de Assis. 17305- XMC4xxx: Fix USIC_BRG_SCLKCFG definition From Alan Carvalho 17306de Assis. 17307 17308* Microchip PIC32MZ 17309 17310- MIPS32: In up_idle, the kludge that was conditionally enabled if 17311the work queue was enable appears to be needed even when he work 17312queue is not enabled on the PIC32MZ. 17313- PIC32MZ: Fix some typos in debug instrumentation in pic32mz-gpio.c; 17314fix some typos related to UART5 configuration in pic32mz-serial.c. 17315 17316* Microchip/Atmel SAMD/L: 17317 17318- SPI: In sam_spibus_initialize(), the pinmux configuration was 17319smashing the previous CTRLA register configuration. There are 17320also some typos in samd_spi.h From Matt Thompson. 17321- SPI: Fixes g_spi2ops and g_spi2dev using incorrect values From Matt 17322Thompson. 17323- SPI: SPI must be disabled before changing the mode bits in CTRLA 17324register From Matt Thompson. 17325- DMA: Fix DMA controller support. From Matt Thompson. 17326 17327* NXP/Freescale LPC17xx Drivers: 17328 17329- LPC17xx: Disable LPC17 FDR when not used. If a boot loader set the 17330fractional divider (FDR) the baud rate in nuttx will be wrong 17331(multiplied by this fraction). So if it is not used, it should be 17332disabled. From Harald Gutsche. 17333 17334* NXP/Freescale Kinetis Drivers: 17335 17336- Kinetis: Correct some Ethernet PHY register bit tests for the 17337KSZ8081 PHY. From Stewart. 17338 17339* On Semiconductor LC823450 17340 17341- arch/arm/src/LC823450: Add SP_DMB() into lc823450_testset.c. 17342In LC823450, ldrex and strex are not supported. So we implemented 17343up_testset() with H/W Mutex. However, there was a bug in memory 17344access order. This change ensures correct memory access order in 17345up_testset() for LC823450. From Masatoshi Tateishi. 17346 17347* STMicro STM32 Drivers: 17348 17349- STM32 F3 RCC: A flash wait state configuration. Flash latency must 17350be fixed according to sysclk frequency. If this operation is not 17351done or done after PLL configuration, the STM32 fail to continue 17352boot operation if the frequency if greater than 24MHz according to 17353the board variable STM32_SYSCLK_FREQUENCY. Tested on stm32f334-disco 17354board. From Gwenhael Goavec-Merou. 17355- STM32 RTC: Make STM32 usable with an external RTC. 17356- STM32 SPI: Removed unnecessary (and incorrect) speed limitation. 17357From Alexander Oryshchenko. 17358- STM32 SPI: I have a SPI bus with both Mode 0 and Mode 3 devices 17359on it. After performing SPI I/O to a Mode 0 device, switching to a 17360Mode 3 device locked up the SPI interface. Only zeroes would be 17361read. I traced the reason for the lock-up to arm/arm/src/stm32f7/stm32_spi.c function spi_setmode(). Changing 17362the mode causes a spurious SPI clock transmission that confuses the 17363stm32f7 SPI input hardware. This problem is solved by (1) changing 17364the SPI mode with SPI (and perhaps DMA) disabled, and (2) flushing 17365the receive FIFO if the mode change results in garbage in the FIFO. 17366From Bob Feretich. 17367- STM32 and STM32 F7: Remove confusing, redundant, and misleading 17368definitions of STM32_BKP_BASE from the F2, F3, and F4 memory 17369maps. Unlike the F1, these parts do not have a separate BKP address 17370region. The BKP registers are with the RTCC address regions. 17371stm32_bkp.h should only be used for STM32 F1. stm32_rtcc.h should be 17372used to access BKP registers on F2, F3, and F4. 17373- STM32 and STM32 F7: Architecture-specific code is not permitted to 17374modify the errno variable. 17375- STM32 F4 I2C: Correct some recent changes to STM32F4 I2C that broke 17376poll mode of operation. From Alexander Oryshchenko. 17377- STM32 F4 I2C: Corrections to STM32 F4 I2C to restore functionality. 17378From Alexander Oryshchenko. 17379- STM32 F4 I2C: Corrections to STM32 F4 I2C to fix the NORESTART 17380flag. From Alexander Oryshchenko. 17381- STM32 F7: Fixes a bug in multi-block SD-card operations on the 17382STM32F7 platform. DBLOCKSIZE must be the size of SD-card block, not 17383the total amount of transferred bytes. From Evgeniy Bobkov. 17384- STM32 F7: Fix undefined variable when using USART1 for other 17385purposes than UART (e.g. SPI). From Frank Benkert. 17386- STM32 F7: Backport RTC alarm setting changes from STM32L4. Most 17387notably this fixes RTC getting stuck issue when both alarms were 17388used. Root cause was writing RTC ISR register contents to RTC CR 17389register. From Juha Niskanen. 17390- STM32 L4 Flash: Change flash programming to use page buffer for 17391unaligned writes. From Juha Niskanen. 17392 17393* STMicro STM32 Boards: 17394 17395- Nucleo-L432KC: Fix some bogus logic noted by Fanda. 17396- configs/nucleo-* and configs/stm32l476vg-disco: Fix more 17397stm32_userleds.c bogus logic From Juha Niskanen. 17398- Nucleo-L432KC: Fixed nucleo-l432kc broken build when 17399CONFIG_USERLED_LOWER defined From Fanda. 17400- Nucleo-L432KC: Issue #85: /dev/userleds is not working for 17401Nucleo-L432KC fixed From Fanda Vacek. 17402- STM32F429I-Disco: Separate SPI4 from MTD init. I was trying to 17403attach a non-MTD peripheral to an STM32F429I Discovery Board's SPI4 17404port and was hitting compilation problems, since CONFIG_MTD and 17405thus 'struct mtd_geometry_s' was not defined. This patch separates 17406SPI4 initialization logic from MTD initialization logic. From 17407Michael Jung. 17408- STM32F103-Minimum: Remove CONFIG_NX_LCDDRIVER dependence from 17409stm32_ssd1306.c From Alan Carvalho de Assis. 17410 17411* C Library/Header Files: 17412 17413- libc/stdio: In dtoa(), up_interrupt_context() is used in a debug 17414assertion. up_interrupt_context() is not available in the user-mode 17415phase of the PROTECTED or KERNEL build configurations. In those 17416configurations, enabling libc floating point support and debug 17417assertions will result in an undefined reference to 17418up_interrupt_context(). 17419- libc/netdb: Fixed parsing of DNS response packets having compressed 17420names ending with pointer. There were troubles parsing response 17421packets which have compression of QNAME/NAME field when only 17422trailing part of the name (not the whole name) is replaced with 17423pointer to another part of the packet. This commit fixes parsing of 17424such packets. Also I added checks to keep parsing only in bounds of 17425the read part of DNS response packet. From Dmitriy Linikov. 17426 17427* Tools 17428 17429- tools/*.c: Add #define _GNU_SOURCE to all C files that call 17430asprintf() to eliminate a warning. 17431- tools/cvsparser.c: Add a check to avoid access past the end 17432of a fixed size array 17433 17434* NSH: apps/nshlib: 17435 17436- apps/nshlib: Fix compile error when CONFIG_NSH_DISABLESCRIPT is not 17437defined. The field np_flags does not exist if scripting is disabled. 17438 17439* Examples/Tests: apps/examples: 17440 17441- apps/examples/touchscreen: Eliminate BOARDIOC_TSCTEST_SETUP. 17442 17443* Network Utilities: apps/netutils: 17444 17445- apps/netutils/ftpc: Fix some corner-cases that could cause FTP to 17446access past the end of valid data. 17447 17448* Wireless Utilities: apps/wireless: 17449 17450- apps/wireless/ieee802154/i8shark: Fixes special XBee compensation 17451by purposely chopping off the FCS. From Anthony Merlino. 17452 17453NuttX-7.25 Release Notes 17454------------------------ 17455 17456The 125th release of NuttX, Version 7.25, was made on June 3, 2018, 17457and is available for download from the Bitbucket.org website. Note 17458that release consists of two tarballs: nuttx-7.25.tar.gz and 17459apps-7.25.tar.gz. These are available from: 17460 17461https://bitbucket.org/nuttx/nuttx/downloads 17462https://bitbucket.org/nuttx/apps/downloads 17463 17464Both may be needed (see the top-level nuttx/README.txt file for build 17465information). 17466 17467Additional new features and extended functionality: 17468 17469* File Systems/Block and MTD Drivers 17470 17471- fs/cromfs: Added CROMFS file system. CROMFS is a compressed, in- 17472memory, read-only file system based on LZF. 17473- fs/vfs: Added support for checking if a descriptor is a socket in 17474fstat(). From Pelle Windestam. 17475 17476* Graphics/Display Drivers: 17477 17478- drivers/lcd: Remove support for the Nokia6100 LCD. That LCD uses a 174799-bit SPI interface (the 9th bit being the command/data bit that is 17480normally a discrete). That communication was never successfully 17481integrated. I now believe that it would would require some special 17482support from the low-level, MCU SPI driver to manage that 9th bit. 17483The deleted code is still available in the Obsoleted repository. 17484 17485* Networking/Network Drivers: 17486 17487- net/tcp: Added support for TCP Keepalive, add SO_KEEPALIVE socket 17488option. Added socket options needed to manage TCP-keepalive and TCP 17489state machine logic to detect if that the remote peer is alive. 17490- net/tcp: In tcp_input(), add the logic to detect, decode, and 17491respond to TCP Keep-Alive packets. 17492- net/tcp: Extended support for sending to non-blocking tcp sockets. 17493From Pelle Windestam. 17494- net/bluetooth: Added support for AF_BLUETOOTH sockets. 17495- drivers/net: Added TAP (network bridge) mode to tun.c. In the 17496previous implementation, TAP mode did not handle a packet correctly. 17497Also, the driver did not set the link layer type and could not 17498assign the interface name. This change fixes such issues and supports 17499TAP mode correctly. From Masayuki Ishikawa. 17500 17501* Wireless/Wireless Drivers: 17502 17503- wireless/ieee802154: Added basic MAC support for RX-ENABLE.request 17504primitive From Anthony Merlino. 17505- wireless/ieee802154: Added MAC ackreq flag to TX descriptor for use by 17506radio driver. The radio layer is responsible for a full "transaction". 17507Because of differences in radio capabilities, the radio must be 17508responsible for the handling of acks and retransmissions. This commit 17509simply passes the ackreq meta-data flag along to the radio. Also 17510Fixes bug where primitive was freed when it shouldn't have been, 17511causing double free call. From Anthony Merlino. 17512- wireless/bluetooth: Bring in the Bluetooth stack from the Intel/ 17513Zephyr arduino101_firmware_source-v1.tar package. 17514- drivers/bluetooth: Added re-architected version of the Bluetooth 17515UART driver from the Intel/Zephyr arduino101_firmware_source-v1.tar 17516package. 17517- include/nuttx/wireless: Added a setbaud() method to the HCI UART 17518lower half interface that can be used to change the default BAUD 17519selection. 17520- wireless/bluetooth and include/nutt/net: Added support for Bluetooth 17521IOCTL commands. 17522- drivers/wireless/bluetooth: Added a NULL device to support some very 17523low level testing on the Simulator. 17524- drivers/wireless/cc3000: Eliminate support for the CC3000 wireless 17525part because it doesn't use the USRSOCKET. From Alan Carvalho de 17526Assis. 17527- drivers/wireless/ieee80211: Added BCM43428 support. From hhuysqt. 17528 17529* Other Common Device Drivers: 17530 17531- drivers/1wire: Added 1-wire subsystem and ds28e17 driver From Juha 17532Niskanen. 17533- drivers/1wire: Added PM hooks and unlink support to sht21 sensor 17534(allowing hot-swappable I2C bus from 1-wire converter). Unlike most 17535other unlink implementations in NuttX drivers, this one does not 17536allow any I2C operations after unlink, making it possible to 17537deallocate the I2C bus. From Juha Niskanen. 17538- drivers/i2c: Added support for the pca9540bdp i2cmultiplexer. From 17539Giorgio Groß. 17540- drivers/power: Added pm_unregister From Juha Niskanen. 17541- drivers/power: Added generic upper-half motor driver From Mateusz 17542Szafoni. 17543- drivers/rgbled: Added support for multichannel PWM (multiple PWM 17544channels on a single timer) From Anthony Merlino. 17545- drivers/sensors: Added support for Sensirion SHT2x humidity sensor. 17546From Juha Niskanen. 17547- drivers/sensors: Added LSM330 SPI and ADXL372 drivers along with the 17548- drivers/sensors: Added support for INA3221 power sensor. This has a 175493 channel bus/shunt voltage pairs. From Anthony Merlino. 17550cluster driver infrastructure. From Bob Feratich. 17551- drivers/sensors: Added multiple MAX31855 sensors feature support. 17552From Tiago Almeida. 17553- drivers/wireless/cc1101.c: Driver improvements from from lihaichen. 17554- progmem interface: Discern r/w and erase page sizes. Introduce new 17555up_progmem_erasesize architecture API to be able to communicate the 17556read/write page size independently from erase page size. Implement 17557up_progmem_erasesize for all architectures that already support 17558progmem, assuming that for those architectures the sizes of both 17559read/write and erase pages are identical. From Michael Jung. 17560 17561* Simulation 17562 17563- configs/sim: Added a configuration that will support some limited 17564testing of the Bluetooth stack. 17565 17566* ARM: 17567 17568- ARM: All ARM architectures now support CONFIG_ARCH_IDLE_CUSTOM. 17569 17570* MIPS: 17571 17572- MIPS: All MIPS architectures now support CONFIG_ARCH_IDLE_CUSTOM. 17573 17574* Infineon XMC4xxx Drivers: 17575 17576- XMC4: Added SPI support for Infineon XMC45xx microcontroller. From 17577Alan Carvalho de Assis. 17578 17579* Infineon XMC4xxx Boards: 17580 17581- XMC4500-Relax: Added board support for SPI. From Alan Carvalho de 17582Assis. 17583 17584* Nordic NRF52: 17585 17586- NRF52: Initial support for the NRF52 including UART, Timer, and 17587GPIO support. From Janne Rosberg. 17588 17589* Nordic NRF52 Drivers: 17590 17591- NRF52: Added watchdog timer drivers. Includes significant 17592updates from Levin Li. 17593- NRF52: Added nRF52 Flash PROGMEM support From Alan Carvalho de 17594Assis. 17595 17596* Nordic NRF52 Boards: 17597 17598- configs/nrf52-pca10040: Added support for the NRF52-PCA10040 board 17599including LEDs and buttons From Janne Rosberg. 17600- configs/nrf52-pca10040: Added support for starting the watchdog 17601timer on the nRF52. From Alan Carvalho de Assis. 17602- configs/nrf52-pca10040: Added a configuration for testing the 17603watchdog timer. From Alan Carvalho de Assis. 17604 17605* NXP Freescale i.MX RT: 17606 17607- i.MX RT: Brings in basic support for the i.MX RT 1050 'crossover' 17608SoC. Includes timer and UART support. This port was the joint 17609effort of Janne Rosberg, Ivan Ucherdzhiev, and myself. I give 17610credit to Ivan for the kill because he is the one to held on to 17611the end. From Ivan Ucherdzhiev. 17612 17613* NXP Freescale i.MX RT Drivers: 17614 17615- i.MX RT: Added power management hooks. 17616- i.MX RT: Added eDMA support (unverified). 17617- i.MX RT: Added Ethernet driver. From Jake Choy. 17618- i.MX RT: Added cache operations to permit the Ethernet driver to 17619work with the D-Cache enabled, at least in write-through mode. 17620Added support for PHY interrupts and PHY IOCTLs. 17621 17622* NX FreescaleP i.MX RT Boards: 17623 17624- IMXRT1050-EVK: Added support for booting from the on board HYPER 17625Flash. From Ivan Ucherdzhiev. 17626- IMXRT1050-EVK: Added logic to support the board's user LED. From 17627Jake Choy. 17628- IMXRT1050-EVK: Added procfs auto-mount support in imxrt_bringup.c. 17629From Ivan Ucherdzhiev. 17630- IMXRT1050-EVK: Added LIBCXX test configuration. 17631- IMXRT1050-EVK: Added support for the imxrt1050-evk button. From 17632Jake Choy. 17633- MXRT1050-EVK: Added support for on-board NOR FLASH boot. From 17634Ivan Ucherdzhiev. 17635- IMXRT1050-EVK: Disable LED support because pins conflict with PHY. 17636Enable device statistics. Enable NSH ifup and ifdown commands. 17637Added an NSH configuration for testing Ethernet. 17638 17639* NXP Freescale Kinetis: 17640 17641- K28F: Added architecture support for the Kinetis K28F. 17642 17643* NXP Freescale Kinetis Drivers: 17644 17645- SDHC: Make Kinetis SDHC pullups work the same as the STM32 SDIO 17646pullups. 17647 17648* NXP Freescale Kinetis Boards: 17649 17650- Freedom-K28F. Added support for the Kinetis Freedom-K28F board. 17651 17652* NXP LPC17xx: 17653 17654- LPC17xx: Added support for ARMv7-M run time stack checking on NXP 17655LPC17xx MCUs based on CONFIG_ARMV7M_STACKCHECK. Basically copied 17656from STM32. From Michael Jung. 17657 17658* NXP LPC17xx Drivers: 17659 17660- LPC17xx: Added a configurable option to allow using a part of 17661LPC17xx's internal flash memory as a Memory Technology Device via 17662NuttX' mtd_progmem infrastructure. Tested with LPC1769. From 17663Michael Jung. 17664 17665* NXP LPC17xx Boards: 17666 17667- Olimex-LPC1766STK: Remove support for the Nokia6100 LCD. That 17668LCD uses a 9-bit SPI interface (the 9th bit being the command/data 17669bit that is normally a discrete). That communication was never 17670successfully integrated. 17671 17672* NXP LPC43xx Boards: 17673 17674- configs/bambino-200e: Added support for multiple MAX31855 sensors 17675to the bambino-200e. From Tiago Almeida. 17676 17677* OpenRISC 17678 17679- arch/or1k/src. Added basic architectural support for the OpenRISK 17680mor1kx architecture. The initial commit was verified on a Qemu 17681simulation but is otherwise untested. From Matt Thompson. 17682 17683* OpenRISC Board 17684 17685- configs/or1k. OpenRISK mor1kx Qemu simulation. From Matt Thompson. 17686 17687* STMicro STM32: 17688 17689- STM32: Added support for the STM32F401xB and STM32F401xC families. 17690 17691* STMicro STM32 Drivers: 17692 17693- STM32 HRTIM: Added HRTIM software capture trigger, added software 17694reset trigger, added outputs polarization configuration From 17695raiden00pl. 17696- STM32 ADC: Added ADC injected channels configuration. From Mateusz 17697Szafoni. 17698- STM32 HCIUART: Added a Bluetooth HCI UART lower half driver for the 17699STM32. 17700- STM32 HCIUART: Implement the setbaud() method for the STM32 HCI 17701UART interface. 17702- STM32 SDIO: Added support for SDIO card to SDIO driver. From 17703hhuysqt. 17704- STM32 SDIO: Added internal pull-up option for SDIO pins. From Alan 17705Carvalho de Assis. 17706- STM32 F2/F4 ADC: Added Vbat measurement to ADC driver for 17707STM32F20xx and STM32F4xxx. As with the MCU temperature and VREFINT 17708measurement, this change requires user to enable the corresponding 17709channel first. For Vbat channel the ioctl cmd is 17710IO_ENABLE_DISABLE_VBAT_CH, and its arg should be a pointer to bool 17711which must be true to enable and false to disable the Vbat channel. 17712Moreover, since Vbat input contains a built-in voltage divider, it 17713is highly suggested to disable Vbat input channel after measurement 17714is done in order to prevent battery drain through the divider. From 17715Dmitriy Linikov. 17716- STM32, STM32L4 1WIRE: Added one bit read and write to 1-wire 17717interface. This is needed for devices that require single bit 17718timeslot generation and for 1-Wire search algorithm triplets. From 17719Juha Niskanen. 17720- STM32 F3 SPI: Enable DMA for SPI on stm32f30xxx MCUs. From Michal 17721Lyszczek. 17722- STM32 L4 1WIRE: Ported 1wire driver from STM32. From Juha 17723Niskanen. 17724- STM32 L4 I2C/SPI/1WIRE: Added PM hooks to I2C, SPI and 1-wire From 17725Juha Niskanen. 17726- STM32 F7 RTC: Added CONFIG_RTC_PERIODIC support. Also makes the RTC 17727lowerhalf more like in STM32L4. From Juha Niskanen. 17728- STM32 F7 ADC/I2C/SPI: Added PM hooks to ADC, I2C and SPI. From 17729Juha Niskanen. 17730 17731* STMicro STM32 Boards: 17732 17733- Indium-F7: Removed support for the Indium-F7 board. This was done 17734for two reasons: (1) The board support was just clone of the 17735Nucleo-144 board support with naming changes. There has been no 17736support and no further development for the board support. (2) There 17737does not seem to be any available Indium-F7 board available to the 17738public anywhere on the Internet. There is not even a reference to 17739the board on the rafresearch.com web stie. 17740- Nucleo-L452RE: Added buttons example From Juha Niskanen. 17741- Nucleo-L476RG: Added support to Nokia LCD PCD8544 on nucleo-l476rg. 17742From Alan Carvalho de Assis. 17743- Nucleo-L476RG: Added nxdemo configuration to nucleo-l476rg using 17744PCD8544. From Alan Carvalho de Assis. 17745- Olimex-STM32-P407: Added a zmodem test configuration. 17746- Olimex-STM32-P407: Added the module configuration. 17747- Photon: Added RGB led support From Anthony Merlino. 17748- STM32F103-Minimum: Added support for DFU bootloader From Simon 17749Piriou. 17750- Spark: Removes Spark board configuration. Still available in the 17751Obsoleted repository. If there is no CC3000 support, then there is 17752no purpose in supporting the Spark either. 17753- STM32F334-Disco: Added buck/boost converter example configuration. 17754From Mateusz Szafoni. 17755- STM32F4 Discovery: Added support for multiple MAX31855 sensors to the 17756STM32F4 Discovery From Tiago Almeida. 17757- STM32F4 Discovery: Added support in bring-up logic to initialize the 17758HCI UART and register the HCI UART network device. 17759- STM32F4 Discovery: Added MAX7219 support to STM32F4Discovery board. 17760From Alan Carvalho de Assis. 17761- STM32F4 Discovery: Added board configuration for CS43L22 audio 17762example. From Alan Carvalho de Assis. 17763- STM32F4 Discovery: Added a module configuration for testing the 17764kernel module example with the STM32F4Discovery board. From Alan 17765Carvalho de Assis. 17766- STM32F429I-DISCO: Added a LittlevGL configuration for stm32f429i- 17767disco. From seyyah. 17768- STM32F746G-DISCO. Added clang support to stm32f746g-disco board. 17769From Goran Mekic. 17770- STM32L1 Discovery: Added support for the STM32L152RCT6 version of 17771the board. 17772 17773* TI TMS570: 17774 17775- TMS570: Added support for the TMS570LS3137ZWT. From Ivan Ucherdzhiev. 17776 17777* TI TMS570 Boards: 17778 17779- configs/tms570ls31x-usb-kit: Added support for the TI Hercules 17780TMS570LS31x USB Kit From Ivan Ucherdzhiev. 17781 17782* TI Tiva: 17783 17784- CC3200: Remove all support for the CC3200. This was a port that was 17785started but never completed. What good is partial CC3200 support 17786with no wireless support?. 17787 17788* TI Tiva Drivers: 17789 17790- EEPROM: Implements an EEPROM driver in compliance with MTD driver 17791as provided by NUTTX for TM4C1294. The EEPROM driver currently 17792supports only two functionalities - read bytes(multiple of 4) and 17793write bytes (multiple of 4). From Shirshak Sengupta. 17794- FLASH: Implemented Flash CONFIG_MTD_BYTE_WRITE for TM4c1294. 17795Implemented the tiva_write function which will write an arbitrary 17796number of bytes to flash (in multiple of 4). From Shirshak Sengupta. 17797- Serial: Added TERMIOS IOCTL support to the Tiva serial driver. 17798From Dmitry Sharihin. 17799 17800* TI Tiva Boards: 17801 17802- CC3200-Launchpad: Remove all support for the CC3200-Launchpad. 17803This was a port that was started but never completed. What good is 17804partial CC3200-Launchpad board support with no wireless support?. 17805 17806* Libraries/Header Files: 17807 17808- libs/: Moved all of the libraries under a common directory called 17809libs/ (libc, libnx, and libxx). This almost certainly break libcxx 17810for now. 17811- libs/libc/time: Added an implementation of clock(). 17812- libs/libc/lzf: Added a modified version of Marc Alexander Lehmann's 17813LIBLZF3.6 library From Boris Astardzhiev. 17814- libs/libc/unistd: Initial, minimal implementation of sysconf(). 17815Only sufficient to support the functionality of less standard 17816getdtabilesize(). From Michael Jung. 17817- libs/libdsp: Added DSP support library. From Mateusz Szafoni. 17818- include/sys: Added resource.h. 17819- include/nuttx/video: Add overlay support to framebuffer interface 17820definition. From Marco Krahl. 17821 17822* Tools: 17823 17824- tools/gencromfs.c: Added tools/gencromfs.c, a tool that can be used 17825to generate CROMFS file system images. 17826- tools/mkromfsimg.sh: Include an option in mkromfsimg.sh to ignore 17827FAT/RAMDISK. This permits you to build tiny systems with ROMFS but 17828with the rather large FAT FS support. From Alan Carvalho de Assis. 17829- tools/nxstyle.c: Added check for blank lines before and after single 17830line comments. From Bob Feretich. 17831- tools/sethost.sh: Added support for macOS. 17832- tools/uncrustify.cfg: An initial cut at an uncrustify C formatting 17833script from Gregory Nutt. Updated, corrected, and verified. From 17834Bob Feretich. 17835 17836* Build System: 17837 17838- Makefile: Added support for nconfig frontend for 'make nconfig'. 17839From Michal Lyszczek. 17840- configs/: Added definition of strip to many Make.defs files. 17841- staging/: Remove fixed lib/ subdirectory and its content. Replace 17842with new directory called staging/ that is created dynamically when 17843building and removed when 'make clean' is done. This both improves 17844the naming and eliminates a garbage directory from the repository. 17845- tools/: Move all build-related files (except the top-level Makefile) 17846into the tools/ sub-directory. This really cleans up the top-level 17847directory. 17848 17849* NSH: apps/nshlib: 17850 17851- apps/nshlib: Added the mkfatfs -r option which can be used to 17852specify the number of entries in the FAT12/FAT16 root directory. 17853From Boris Astardzhiev. 17854 17855* Examples/Tests: apps/examples: 17856 17857- apps/examples/adxl372_test and lxm330spi_test: Added ADXL372 and 17858LSM330 tests. From Bob Feretich. 17859- apps/examples/cc3000: Removed the CC3000 example. From Alan 17860Carvalho de Assis. 17861- apps/examples/cromfs: Added an example of how to build a CROMFS 17862file system image. 17863- apps/examples/elf: Extend the ELF program module demo so that you 17864can use compressed ELF programs with CROMFS. 17865- apps/examples/elf: Use strip command to make ELF binaries MUCH 17866smaller. Added an option to strip debug symbols even if the debug 17867symbols are enabled in the base code. 17868- apps/examples/max31855: Added an example to read multiple max31855 17869sensors. From Tiago Almeida. 17870- apps/examples/netloop: Update network loopback example so that it 17871can be used to test TCP KeepAlive. 17872- apps/examples/nxdemo: Added nxdemo application From Alan Carvalho 17873de Assis. 17874- apps/examples/powerled: Added arch initialization. 17875- apps/examples/uavcan: Removed because apps/canutils/libuavcan is no 17876longer available. 17877 17878* System Utilities: apps/system 17879 17880- apps/system/lzf: Added the test case from Marc Alexander Lehmann's 17881LIBLZF3.6 librrary From Boris Astardzhiev. 17882- apps/system/embedlog: Support for embedlog data loggin package from 17883https://embedlog.kurwinet.pl/ From Michal Lyszczek. 17884- apps/system/zmodem: Added an option to enable hardware flow control 17885via termios. Allow stack size and priority to be configured. 17886- apps/system/zmodem: Call tcflush() before closing the serial port. 17887This is necessary because that close operation may hang if hardware 17888flow control is enabled. Consider this scenario: After the host 17889sz runs on the host, it exits and leaves CTS high. The target rz 17890completes, and tries to close the serial port. But if there is 17891buffered Tx data, then the close will hang when it tries to drain 17892the buffered Tx data since there is no where it can go. tcflush() 17893discards the buffered data and permits the close to continue. 17894There is additional logic in nuttx/drivers/serial needed to work 17895with this. 17896 17897* CAN Utilities: apps/canutils: 17898 17899- apps/canutils/libuavcan. Removed! libuavcan has not built for a 17900year or so. The basic problem is that as NuttX advances, the old 17901frozen version of libuavcan has become absolute because it violates 17902the portable POSIX OS interface. No one is maintaining the port so 17903there is no alternative but to remove it. 17904 17905* Network Utilities: apps/netutils: 17906 17907- apps/netutils/tftpc: Modified the TFTP client functions to use a 17908data read/write callback instead of a file. This allows TFTP to 17909write to arbitrary destination (in my case, a MTD device - for 17910firmware update). Two new functions are introduced for this, named 17911tftpget_cb and tftpput_cb. They are just made of most of the 17912existing code. The previously existing tftpget/tftpput functions 17913are now wrappers on the new ones, with callbacks that read/write 17914from files, so my modifications are backwards compatible with 17915existing applications, eg the associated nsh commands don't need to 17916be changed. From Sebastien Lorquet. 17917 17918* Wireless Utilities: apps/wireless: 17919 17920- apps/wireless/bluetooth/btsak: Added a Bluetooth debug tool. 17921 17922Bugfixes. Only the most critical bugfixes are listed here (see the 17923ChangeLog for the complete list of bugfixes and for additional, more 17924detailed bugfix information): 17925 17926* Core OS: 17927 17928- sched/sched: Fix a deadlock in SMP mode. Two months ago, I 17929introduced sched_tasklist_lock() and sched_tasklist_unlock() to 17930protect tasklists in SMP mode. This change works well for HTTP 17931audio streaming aging test with lc823450-xgevk. However, I found a 17932deadlock in the scheduler when I tried similar aging tests with DVFS 17933autonomous mode where CPU clock speed changed based on cpu load. In 17934this case, call sequences were as follows. To avoid this deadlock, 17935I added sched_tasklist_unlock() when calling up_cpu_pause() and 17936sched_addreadytorun(). Also, added sched_tasklist_lock() after the 17937call. Also added critical sections to lib_filesem.c, mm_sem.c, and 17938net_lock.c for SMP for SMP. From Masayuki Ishikawa. 17939- sched/sched: Change ordering of round-robin time slice check 17940(sched_process_scheduler()) and processing of wdog timers 17941(wd_timer()). wd_timer()'s callback function can change current 17942running task and, hence, must be done after the time slice check. 17943The time slice check will decrement the currently running task's 17944time slice allotment. If such a context switch occurs, then the 17945newly started task will lost one could of that allotment before it 17946even has a chance to run. From EunBong Song. 17947 17948* File System/Block and MTD Drivers: 17949 17950- fs/fat: In fs_stat(), when stat'ing the root directory, avoid 17951calculating the address of the root directory entry. The 17952calculation is bogus (but not harmful) because the root directory 17953does not have a directory entry. Noted by Boris Astardzhiev. 17954- fs/fat: Avoid calculating the bogus directory entry address for 17955the FAT root directory (since it has no directory entry). This 17956change should have no effect, other than making the logic clearer. 17957From Boris Astardzhiev. 17958- fs/mount: Fix wrong size reported by df -h. Reason is that size 17959in bytes is calculated always on uint32_t types and cards bigger 17960than 4GB will overflow uint32_t type. Solution is to use uint64_t 17961where possible. From Michal Lyszczek. 17962- fs/smartfs: Fix a hardfault in SmartFS. Problem occurred when 17963opening a file with O_CREAT (only) when the file arelready exists 17964but has a size of zero. From Michal Lyszczek. 17965- fs/vfs: Fix negative errno set in fs_open.c From Michal Lyszczek. 17966- drivers/mtd: Fixed a W25 driver w25_cacheflush sector bug. From 17967lihaichen. 17968- drivers/mtd: mtdconfig_register() returned OK instead of -ENOMEM on 17969failed allocation. From Michal Lyszczek. 17970 17971* Graphics/Display Drivers: 17972 17973- drivers/lcd/ft80x: ACTIVE host command appears to be formatted 17974differently than other host commands; Fix ROM CHIPID. Appears to 17975be big-ending, BCD. Fix some compile issues when debug features 17976are enabled. 17977- drivers/lcd/ft80x: Fix a typo that caused the driver to fail to 17978recognize the ft801 chip version. From Gregory Nutt. 17979- Review all board implementations of board_lcd_initialize(). The 17980NuttX convention is that all internal functions that return errors 17981as an 'int' must return a negated errno value on failure and a non- 17982negative value on success. Most were right but eight of them had 17983cloned logic that returns 1 on success and zero on failure. both 17984of which are interpreted as success by the caller since they are 17985non-negative. 17986 17987* Networking/Network Drivers: 17988 17989- net/tcp: Fixed problem with send() return value when using 17990nonblocking I/O over buffered tcp socket From Dmitriy Linikov. 17991- net/sixlowpan: Fix a nasty, byte-ordering/endian-ness problem. 17992The root cause has been found and corrected. And a half dozen 17993or so bandaid fixes were reverted. 17994- net/sixlowpan: Preserve big-endian (network order) when 17995uncompressing address. From Anthony Merlino. 17996- net/sixlowpan: TCP send should have PSH and ACK flags set when 17997sending. This matches the standard network (Ethernet) TCP send 17998logic. From Anthony Merlino. 17999- net/udp: Fix several issues using connected UDP sockets: sendto() 18000should not accept an address. Normally send() should be used with 18001connect UDP sockets instead. recvfrom() is no longer necessary. 18002recvfrom() and poll() should not reset to accept any addresses but 18003should, instead, only accept inputs and events from the connected 18004remote peer. On of these issues was noted by ??? 18005<liguiding@pinecone.net>. Changes were made as summarized here: 18006http://www.masterraghu.com/subjects/np/introduction/unix_network_programming_v1.3/ch08lev1sec11.html 18007From Gregory Nutt. 18008- net/udp: Resolve race condition in connection-less UDP sockets with 18009read-ahead buffering. In connection-mode UDP sockets, a remote 18010address is retained in the UDP connection structure. This 18011determines both there send() will send the packets and which packets 18012recv() will be accepted. This same mechanism is used for 18013connection-less UDP sendto: A temporary remote address is written 18014into the connection structure to support the sendto() operation. 18015That address persists until the next recvfrom() when it is reset to 18016accept any address. When UDP read-ahead buffering is enabled, 18017however, that means that the old, invalid remote address can be left 18018in the connection structure for some time. This can cause read- 18019ahead buffer to fail, dropping UDP packets. Shortening the time 18020between when he remote address is reset (i.e., immediately after the 18021sendto() completes) is not a solution, that does not eliminate the 18022race condition; in only makes it smaller. With this change, a flag 18023was added to the connection structure to indicate if the UDP socket 18024is in connection mode or if it is connection-less. This change 18025effects only UDP receive operations: The remote address in the UDP 18026connection is always ignored if the UDP socket is not in connection- 18027mode. No for connection-mode sockets, that remote address behaves as 18028before. But for connection-less sockets, it is only used by sendto(). 18029 18030* Wireless/Wireless Drivers: 18031 18032- drivers/wiresless/ieee80211: Correct some initialization problems 18033with BCM43362 chip. From hhuysqt. 18034- drivers/ieee802154/xbee: Added a timeout to send logic to handle 18035case where XBee module fails to respond to a Transmit request with 18036a Transmit Status From Anthony Merlino. 18037 18038* Common Drivers: 18039 18040- Per OpenGroup.org, syslog -- and, hence, nonstandard vsyslog, and 18041debug wrappers -- does not return a value. Rename _vsyslog to 18042nx_vsyslog. Use internal nx_vsyslog in the few cases where a 18043return value is required. 18044- drivers/leds: Fixes RGB LED issues caused by uninitialized memory 18045with CONFIG_RGBLED_MULTICHAN. The uninitialized pwm_info_s struct 18046caused a rogue channel to be started causing errors in the pwm 18047driver From Anthony Merlino. 18048- drivers/sensors/lis2dh: Clear INT1 at SNIOC_WRITE_INT1THRESHOLD 18049ioctl. From Jussi Kivilinna. 18050- drivers/sensors/sht21: Changed I2C_TRANSFER return value so that 18051it return on zero on success, not the count of bytes transferred. 18052From Juha Niskanen. 18053- drivers/serial: Per Matias Edlund: I recently used the tcflush 18054function and found that it failed with ENOTTY. The reason is that 18055the TCFLSH case in the function uart_ioctl in the file 18056drivers/serial/serial.c does not update the ret value." On 18057success, the TCFLSH IOCTL logic needs to explicitly set the return 18058value (ret) to zero. 18059- drivers/serial: Added a timeout to uart_tcdrain(). Even if 18060tcflush() is used to discard buffered data, the close() can still 18061hang if (a) hardware flow control is enabled, (b) CTS == 1, and 18062(c) there is data stuck in the hardware Tx FIFO. tcflush() does 18063not currently clear the MCU serial drivers' hardware Tx FIFOs. 18064This is a workaround for that. 18065- drivers/sensors: Fix APDS9960 work queue BUG found by Kyle Lei. 18066From Alan Carvalho de Assis. 18067 18068* Simulator: 18069 18070- arch/sim: Various fixes necessary to build the simulator under 18071MSYS2. 18072 18073* ARMv7-R: 18074 18075- ARMv7-R: Corrected several ARMv7-R issues. From Ivan Ucherdzhiev. 18076 18077* Infineon XMC4xxx Boards: 18078 18079- XMC4500-Relax: Call xmc4_spidev_initialize() in xmc4_boot.c. From 18080Alan Carvalho de Assis. 18081 18082* NXP/Freescale LPC17xx Drivers: 18083 18084- LPC17xx USB: Fix USB device endpoint allocation bookkeeping. From 18085Michael Jung. 18086- LPC17xx USB: Freeing endpoints should be set the same allocations 18087as when endpoint was allocated. 18088- LPC17xx USB: Fix loss of RX initiatives. USB bulk endpoints are 18089double buffered on LPC17xx MCUs. This means that up to two packets 18090might be received on an OUT endpoint that can not be handled 18091immediately if the receive request queue is empty. Thus, 18092rxpending must be a counter not a boolean flag. From Michael Jung. 18093 18094* NXP/Freescale Kinetis Drivers: 18095 18096- Kinetis USG: USB device fixes: Use correct CONFIG OTG control, 18097Fix interrupt storm when cable is disconnected. The DM, DP state 18098were incorrect because the pulldowns were not enabled. Also the 18099pending asynchronous resume interrupt needed to be re-armed after 18100the suspend is in effect. This is now done in the isr. From David 18101Sidrane. 18102- Kinetis Serial: In kinetis_lowputc.c, fix esBRFA calculation 18103effecting baudrate. Previous BRFA was not cleared and or-ed into 18104new BRFA, hence, buadrate was wrong. Where Baud Rate Fractional 18105Divisor (BRFD) UART baud rate = clock / (16 * (SBR + BRFD)). From 18106David Sidrane. 18107- Kinetis Serial: In kinetis_lowputc.c, fixed parity settings. 18108Kinetis UART must be placed in 9 bit mode (M=1) with when 8 bit data 18109with parity is required. If left in 8 bit mode (M=0) with parity 18110then D7 of the TX/RX register becomes parity bit. Hence what is 18111called 9-bit or 8-bit Mode Select is a misnomer. 8 bit mode when 18112parity is enabled is really 7 bit with parity. From David Sidrane. 18113 18114* NXP/Freescale Kinetis Boards: 18115 18116- configs/teensy-3.x: Remove CONFIG_USBDEV_DUALSPEED from the usbnsh 18117configuration. Hardware supports only FS. 18118 18119* NXP i.MX6 Drivers: 18120 18121- i.MX6: Bring in a few i.MX6 fixes that were committed to similar 18122files for the i.MX RT. 18123 18124* STMicro STM32: 18125 18126- STM32 F3: Problem: stm32f30xx hangs waiting for LSE to initialize. 18127Reason for hang is that operation of setting LSE_ON does not take 18128effect because there is no clock on PWR peripheral. This is 18129initialized later in the code From Michal Lyszczek. 18130 18131* STMicro STM32 Drivers: 18132 18133- STM32 and STM32 L4 1WIRE: In 1wire driver, do not write useless 18134WRITEBIT zero return value to const buffer From Juha Niskanen. 18135- STM32 HRTIM: Fixed capture_get function,. From raiden00pl. 18136- STM32 F3 ADC: Fixed bug in RCC reset logic that resets ADC1 18137configuration when both ADC1 and ADC2 are in use From Mateusz 18138Szafoni. 18139- STM32 Ethernet: In case of PHY failure, usually because of the 18140lack of 25/50 MHz REFCLK input, the Ethernet block would lock up 18141in a while loop waiting for readiness, which will never happened. 18142This prevented the board from starting at all in the case of a PHY 18143failure. This commit adds a retry loop to avoid bricking the board 18144if the Ethernet block is unable to start. From Sebastien Lorquet. 18145- STM32 F7 SDMMC: Added support for the second SDMMC device. The 18146second SDMMC device was already supported but the clock was never 18147enabled. This fixes that. From William Douglas. 18148- STM32 Serial: Fix UART glitch when lowputc is enabled. From 18149Simon Piriou. 18150- STM32 USB: Skip recipient check for descriptor related 18151requests From Simon Piriou. 18152 18153* TI Tiva Drivers: 18154 18155- Tiva ADC: Fix compilation errors on Tiva ADC code when ADC is 18156enable. From Vinicius Maciel. 18157- Tiva Serial: Allow building of Tiva platform with no serial 18158console. From Dmitry Sharihin. 18159 18160* C Library/Header Files: 18161 18162- lib/libc/netdb: Fixed boundary conditions in dns_recv_response(). 18163Fixed typos in include/nuttx/net/dns.h. From Masayuki Ishikawa. 18164- libs/libc/modlib: Fixed backward test for an error in 18165modlib_verify.c. 18166 18167* Build System: 18168 18169- Makefiles: Eliminate the spurious errors reported by 'make 18170savedefconfig'. 18171- Makefile(s): There is a sort command in the 'make savedefconfig' 18172file. I found that sort behaves differently on different platforms 18173based on the environment variable LC_ALL. Now, Makefile.unix will 18174force LC_ALL=C just for the sort command so that we can all generate 18175equivalent defconfig files. 18176- Makefile(s): The clean_context target needs to invoke a 18177corresponding clean_context target in the apps/Makefile in order to 18178remove linkages. From Gregory Nutt. 18179- LibTargets.mk, tools/Config.mk: Drop executable bit on installed 18180libraries. The rules to install libraries under lib/ were modified 18181to use mode 0644 instead of the default 0755. From Andrey Zabolotnyi. 18182 18183* Examples/Tests: apps/examples: 18184 18185- apps/examples/ft80x: Fix some size calculations. Added option to 18186disable primitive tests. just too boring to have to watch over and 18187over again. Fix a typo in backlight fade logic; Fix error in 18188formatted display light debug dump output. 18189- apps/examples/ft80x: Text is handled by the coprocessor and, hence, 18190must use RAM_CMD, not RAM_DL. 18191- apps/examples/ft80x: Fix some errors in co-processor demos. Correct 18192an error in the spinner demo. 18193- apps/examples/nsh and posix_spawn: Must not call exec_setsymtab() 18194directly. That is a non-POSIX internal OS interface. 18195- apps/examples/ostest: Do not call AIO test without 18196CONFIG_EXAMPLES_OSTEST_AIO From Juha Niskanen. 18197- apps/examples/smps: Fix typos in Kconfig. All power, voltage, 18198current values were strings with no default. I assume they should 18199be 'int' with what default?. 18200- apps/examples/smps: Fixes in some printf and in Kconfig From 18201Mateusz Szafoni. 18202- apps/system/zmodem: Fix Makefile.host. It was broken when zmodem.h 18203was moved to apps/include/system. Fix an incompatibility with the way 18204that CRCs are calculated. 18205 18206* System Utilities: apps/system: 18207 18208- apps/system: Applications should use the standard clock() interface, 18209not the internal NuttX clock_systimer() interface. 18210- apps/system/stackmonitor: Fix comparison between pointer and zero 18211character constant. From Juha Niskanen. 18212 18213* Network Utilities: apps/netutils: 18214 18215- apps/netutils/netlib: Various fixes needed to get a clean netlib 18216build with Bluetooth only. 18217 18218* Wireless Utilities: apps/wireless: 18219 18220- apps/wireless: Applications should use the standard clock() 18221interface, not the internal NuttX clock_systimer() interface. 18222 18223NuttX-7.26 Release Notes 18224------------------------ 18225 18226The 126th release of NuttX, Version 7.26, was made on September 8, 2018, 18227and is available for download from the Bitbucket.org website. Note 18228that release consists of two tarballs: nuttx-7.26.tar.gz and 18229apps-7.26.tar.gz. These are available from: 18230 18231https://bitbucket.org/nuttx/nuttx/downloads 18232https://bitbucket.org/nuttx/apps/downloads 18233 18234Both may be needed (see the top-level nuttx/README.txt file for build 18235information). 18236 18237Additional new features and extended functionality: 18238 18239* Core OS: 18240 18241- General: Eliminate use of the non-standard type systime_t and 18242replace it the equivalent, standard type clock_t From Gregory Nutt. 18243- General: Replace non critical PANIC with DEBUGPANIC to save the 18244code space From Xiang Xiao. 18245- General: Replace all ASSERT with DEBUGASSERT to save the code 18246space From Xiang Xiao. 18247- Initialization: Add option to mount block device for 18248INIT_FILEPATH case. From anchao. 18249- clock(): clock_systimer() is no longer a system interface. It has 18250been replaced with the equivalent, standard interface clock(). 18251Moved the implementation of clock() from the C library into the OS 18252core. This is necessary because it calls the (now) internal OS 18253function clock_systimer(). clock() is now accessed only via a 18254system call in certain configurations. From Gregory Nutt. 18255- clock Utilities: Move clock_timespec_[add|subtract] to 18256include/nuttx/clock.h From Xiang Xiao. 18257- Binary Loader: Add binfmt_initialize(). All binary formats are 18258now registered centrally vs. in board-specific logic. This 18259simplifies the usage of the binfmt subsystem. From Xiang Xiao. 18260- Binary Loader: Reference default symtab name to binfmt From anchao. 18261- mm: Add mm_heapmember function and reimplement kmm_heapmember base 18262on mm_heapmember since this function is very useful if multiple 18263heaps exist. From Xiang Xiao. 18264- mm: Add {kumm/kmm}_calloc API. Add calloc API for manage user 18265memory and kernel memory in Flat Build/Kernel Build without kernel 18266heap. From zhuyanlin. 18267- pthreads: Add support static pthread stack. Add standard 18268pthread_attr_setstack() and pthread_attr_getstack(). In all cases 18269where the stack is released, add check to see which allocator must 18270be used to free the stack: The user or the kernel allocator. From 18271xuanlin. 18272- Semaphores: Apply the semaphore wait function 18273nxsem_wait_uninterruptible(). This function is a wrapped version 18274of nxsem_wait() that is uninterruptible and convenient for use. 18275From liuhaiyang. 18276- Signals: Add default signal action to SIGKILL. From ligd. 18277- Signals: Update the signal default action logic to support 18278sigaction(). signaction() must be able to handle and input action 18279of SIG_DFL to setup the default signal action; it mast also return 18280SIG_DFL it is replacing the default action. From Gregory Nutt. 18281- Signals: Default Signal Actions. Change some types to 18282superficially simplify. Add configuration options to enabled 18283default signal behaviors on a per-signal basis. I don't think 18284users are prepared for SIGALRM to terminate the task (which is the 18285correct default behavior if you don't change it). Extend the 18286implementation of default signals so that it is totally table 18287driven and extensible by simply mondifying the content of const 18288tables. From Gregory Nutt. 18289- Signals: Add support for SIGINT in addition to SIGKILL. 18290- Signals: Add logic and an interface to determine if a signal can 18291be caught or ignored. sigaction now correctly returns EINVAL on 18292any attempt to catch or ignore such signals (only SIGKILL for now 18293and only if CONFIG_SIG_DEFAULT=y). From Gregory Nutt. 18294- Signals: Add support for default signal actions for SIGSTOP, 18295SIGSTP, and SIGCONT. Add procfs support to show stopped tasks. 18296From Gregory Nutt. 18297- Signals: Add nxsig_action() to solve a chicken and egg problem: 18298We needed to use sigaction to set default actions, but sigaction() 18299would refuse to set actions if the default actions could not be 18300caught or ignored. From Gregory Nutt. 18301- Signals: Add configuration option to selectively enabled/disable 18302default signal actions for SIGSTOP/SIGSTP/SIGCONT and SIGKILL/SIGINT. 18303- Signals: If a task/thread was already blocked when 18304SIGSTOP/SIGSTP was received, it will restart in the running state. 18305It will appear that to the task/thread that the blocked condition 18306was interrupt by a signal and returns the EINTR error. From 18307Gregory Nutt. 18308- Signals: Update signal default STOP action. If waitpid was 18309called with the WUNTRACED then wake up waitpid(). From Gregory 18310Nutt. 18311- IRQs: Monitor the IRQ execution time. This is very useful for 18312measuring the interrupt latency. From Xiang Xiao. 18313- IRQ Dispatch: Add support interrupt chains in NuttX. IRQ chain is 18314very useful in these cases: (1) Multiple hardware connect to the 18315same request line(e.g. PCI), (2) Need multiple driver to support 18316one hardware block (like Linux MFD) From zhuguangqing. 18317- Work Queue: Modify high priority work queue to support multiple 18318threads. From ligd. 18319- System Calls: Add support for getpeername() and get_sockname() 18320system calls. From Gregory Nutt. 18321- System Calls: svcall/sycall logic needs to get the ucontext 18322argument from R4 instead of stack since all syscall parameters pass 18323from registers in syscall.h From Xiang Xiao. 18324- CPU Load Measurement: Support the CPU load measurement using 18325timer_lowerhalf_s interface From Xiang Xiao. 18326- Assertions: Change CONFIG_BOARD_RESET_ON_CRASH to 18327CONFIG_BOARD_RESET_ON_ASSERT, arch/: Implement call to 18328board_reset() if in all implementations of up_assert() when 18329CONFIG_BOARD_RESET_ON_ASSERT=y. From Xiang Xiao. 18330- boardctl(): Add support for board_app_finalinitialize() From ligd. 18331- Architecture Interface: Add prototype for an architecture-specific 18332up_trigger_irq function. From dongjianli. 18333- Architecture Interface: Add the garbage collection hook so each 18334architecture can do custom memory cleanup if necessary. From Xiang 18335Xiao. 18336- Architecture Interface: Add architecture-specific prototypes for 18337conversions between physical and virtual address. From ligd. 18338 18339* File Systems/Block and MTD Drivers 18340 18341- ProcFS: Add support for a procfs entry that will permit examining 18342the environment of any task. From Gregory Nutt. 18343- ProcFS: Add support for proc/self/, a convenient way for getting 18344information about the currently running task. From Gregory Nutt. 18345- HostFS: Add support for open() append mode From anchao. 18346- HostFS: Add ftruncate support. From Xiang Xiao. 18347- HostFS: Remove ARCH_SIM dependence since other architectures 18348(e.g., arm semihosting) could support hostfs too From Xiang Xiao. 18349- HostFS: Support remote directory names without a trailing '/' 18350From ligd. 18351- HostFS: Add re-try when hostfs mount() fails From ligd. 18352- NFS: Update NFS client mount to VER3 From zhangyuan7. 18353- Partitions: Add PTABLE parser fs/partion: Add a partition parser 18354framework fs/driver/fs_blockpartition.c: Add 18355register_blockpartition for block partition From Xiang Xiao. 18356- MTD: Add gd25 driver From wangyanjiong. 18357- MTD: In MTD partitions, copy the partition name to internal 18358buffer so that the caller can free the name argument From Xiang 18359Xiao. 18360- MTD: Support initialization of an FTL block device with a custom 18361name From Xiang Xiao. 18362- MTD: FTL: Reduce size of stack buffer from 64 to a maximum size 18363as determined from NAME_MAX. From Gregory Nutt. 18364- VFS poll(): Send poll() notification when the Tx buffer is flushed 18365From ligd. 18366- VFS fstat(): Add file_fstat() function for internal OS use. From 18367ligd. 18368- VFS fcntl(): Add file_fcntl, psock_fcntl, and psock_dupsd for use 18369within the kernel. From Xiang Xiao. 18370- VFS dup2(): Addpsock_dupsd for use within the kernel. From Xiang 18371Xiao. 18372- VFS poll(): Add poll use in kernel space. From dongjianli. 18373- VFS select(): Make select be more consistent with Linux man page: 18374'The timeout ... Some code calls select() with all three sets 18375empty, nfds zero, and a non-NULL timeout as a fairly portable way 18376to sleep with subsecond precision.' From anchao. 18377 18378* Networking/Network Drivers: 18379 18380- Sockets: Add getpeername() support From ligd. 18381- sockopt(): Move psock check from [get|set]sockopt to 18382psock_[get|set]sockopt From Xiang Xiao. 18383- getsockname(): Add psock_getsockname function From Xiang Xiao. 18384- Netlink Sockets: This brings in a fragmentary, experimental 18385implementation of NETLINK sockets. There is not too much to that 18386socket support on this initial commit, just the netlink socket 18387framework. However, I decided to bring it into master because 18388there is a enough that I would not want to lose what is in place. 18389And since it is dependent on CONFIG_EXPERIMENTAL, its presence on 18390master should be innocuous. From Gregory Nutt. 18391- Interface Indexes: Add driver interface index support. Add 18392implementation of if_nametoindex() and if indextoname(). Raw 18393AF_PACKET sockets now depend on CONFIG_NETDEV_IFINDEX. Add syscall 18394support for if_nametoindex() and if_indextoname(). Includes an 18395algorithm to prevent an interface index from being reused until all 18396network interfaces have by assigned once. The prevents removable 18397devices from being removed, unregistered and re-installed, 18398re-registered and keeping the same interface index. From Gregory 18399Nutt. 18400- Driver Interface: Add devif_loopback() to check the loopback 18401case where a packet is being sent to itself. Modify the net driver 18402to call this function in this case. This function will simply 18403re-inject the packet back into the network and the network driver 18404will not put anything on the wire. From Xiang Xiao. 18405- Network Devices: Remove all references to CONFIG_NET_USER_DEVFMT. 18406That feature is now unconditionally enabled. This was done because 18407(1) the feature does not require very much additional memory, and 18408(2) it causes confusion in the configuration due to the additional 18409complexity. Any network drivers that fail to zero the device 18410structure interface name field (d_ifname) because calling 18411netdev_register() will, however, get a nasty surprise. From 18412Gregory Nutt. 18413- Network Devices: Add support for Microchip LAN91C111 driver From 18414Xiang Xiao. 18415- Network Devices: netdev_findby_ipv[4|6]addr return 18416netdev_default() as last resort but don't return loopback device 18417if another network device is in the UP state. From Xiang Xiao. 18418- Network Device IOCTLs: Add si_ioctl callback and net_ioctl_arglen 18419so usrsock could forward the ioctl to the remote end/ From 18420dongjianli. 18421- IPv6: Rename g_ipv6_allzeroaddress with the more meaning 18422g_ipv6_unspecaddr since the all-zero address is the IPv6 18423unspecified address (sometime IN6_ADDR_ANY). Replace more inline 18424tests for IPv6 multicast with common net_is_addr_mcast() macro. 18425From Gregory Nutt. 18426- ARP: arp_find() now checks if the target IP belongs to one of the 18427local network devices. From Xiang Xiao. 18428- ARP: Make the function arp_find() thread-safe. It now returns a 18429copy of the MAC address from the ARP table entry, rather than a 18430potentially unstable reference to the ARP table entry. From 18431Gregory Nutt. 18432- TCP: Re-work of TCP receive window size algorithm. The new logic 18433is based only on the ability to buffer TCP read-ahead data. From 18434Gregory Nutt. 18435- UDP: Add support for the UDP_BINDTODEVICE protocol socket option 18436From Sebastien Lorquet. 18437- Slip: Uncomment the prompt of NET_SLIP_PKTSIZE in Kconfig file. 18438From Xiang Xiao. 18439- USRSOCK: Combine some the duplicated logic. From Xiang Xiao. 18440- USRSOCK: Optimize option dependence From Xiang Xiao. 18441- USRSOCK: Add the listen/accept/getpeername/ioctl support From 18442dongjianli. 18443 18444* Other Common Device Drivers: 18445 18446- Analog DAC: Add driver for digital to analog converter DAC7571. 18447Nucleo-L422KC: Add support for a connect DAC7571 converter. From 18448Daniel Pereira Carvalho. 18449- Audio Interface: Change member samp of apb to pointer so driver 18450can customize sample buffer allocation From ZhongAn. 18451- Audio Interface: Add ioctl cmd 'AUDIOIOC_SETBUFFERINFO' so user 18452space could config the buffer From ZhongAn. 18453- Audio Interface: Add hardware format support From anchao. 18454- I2S Interface: Add i2s_rxchannels and i2s_txchannels methods to 18455the I2S lower half interface. From ZhongAn. 18456- Audio: Move the I2S character driver to a dedicated folder. From 18457Xiang Xiao. 18458- Audio: Add audio_i2s device driver. From ZhongAn. 18459- Audio: Add the composite audio driver From Xiang Xiao. 18460- Crypto: Move dev_urandom.c into new crypto folder. From Xiang 18461Xiao. 18462- GPIO driver: Add gpio_pin_unregister function to GPIO driver 18463driver/ioexpander: Add pinset struct to GPIO driver for interrupt 18464pins larger than 64. Initialize pintype/inttype when registering 18465ioexpander device. Add SETPINTYPE ioctl command to the GPIO 18466driver. From zhuyanlin. 18467- I2C Interface: Add a definition to distinguish a new START of 18468messages from a repeated start. No lower-half I2C drivers actually 18469implement this new flag bit, however. In I2C write/read logic use 18470new repeated START definition where appropriate. Rename 18471I2C_M_NORESTART to I2C_M_NOSTART since it may be used in other 18472contexts than a repeated start. Add comments to clarify setup for 18473repeated start. From Gregory Nutt. 18474- I2C: Add the standard speed macros. From dongjiuzhu. 18475- Leds: Add support to MAX7219 to control 7-segment displays. From 18476Alan Carvalho de Assis. 18477- Power: PM: Add pm_stay and pm_relax function so special apps(e.g. 18478mediaplayer) could disable suspend during playback much like linux 18479kernel counterpart From Xiang Xiao. 18480- Power: PM: Add pm_querystate function From zhuguangqing. 18481- Power: PM: Don't update the power state in work thread: (1) 18482Simplify the code logic and remove the work queue dependence, (2) 18483Power calculation is too simple to delay into the work queue From 18484Xiang Xiao. 18485- Power: PM: Decrease the power state in the reverse order. Since 18486the child driver need power off before parent driver. From 18487zhuguangqing. 18488- Power: PM: Make power manager service available as soon as 18489possible: (1) Initialize g_pmglobals at the definition, (2) skip 18490hold the lock if OS isn't ready From Xiang Xiao. 18491- Power: PM: Add PM_RESTORE to notify driver that device exit WFI 18492so the driver could restore state. For example, WDT may stop 18493counting before enter low power state and restore the counting 18494again in PM_RESTORE notification From zhuguangqing. 18495- Power: PM: Add timer to decrease PM level automatically. From 18496ligd. 18497- PTYs: Add support so that a PTY can poll for both IN/OUT event 18498simultaneously. From ligd. 18499- PWM: Move pwm.c into pwm folder From Xiang Xiao. 18500- RTC Interface: Extend struct rtc_time by adding. From Xiang 18501Xiao. tm_nsec if RTC supports hiresolution time. From Xiang Xiao. 18502- Sensors: Add support for Telair T6713 carbon dioxide sensor. From 18503Juha Niskanen. 18504- Sensors: Add support for LSM303AGR and LSM6DSL sensors From 18505DisruptiveNL. 18506- Sensors: Add driver for DHTxx sensor. From Ouss4. 18507- syslog: Enable a partial, crippled version of syslog_flush(); 18508Call syslog_flush() from assertion handling logic of all 18509architectures. From Gregory Nutt. 18510- syslog: Channel configuration. Decouple SYSLOG_SERIAL_CONSOLE and 18511ARCH_LOWPUTC. Since some hardware can output log to the special 18512debug channel not serial. From anchao. 18513- syslog: Support pre-pending a prefix string to log output if 18514enabled. This very useful to identify which CPU send out the log 18515in AMP SoC. From anchao. 18516- Serial: Add Ctrl-C/Ctrl-X support. From ligd. 18517- Serial: Support UART direct write for non console device From 18518xuanlin. 18519- Serial: It is no longer necessary to restrict Ctrl-C handling to 18520the FLAT build sched/signal: Add a new configuration option to 18521select signal default actions, separate handling of signal default 18522actions from both task startup logic and from the serial TTY 18523Ctrl-C logic. Add a signal set in the group structure to keep 18524track of what signals have been set to the default action. In 18525dispatching signals in PROTECTED or KERNEL mode, use this signal 18526set to determine if the default signal handler is attached and 18527dispatch the signal in kernel mode for the default actions. From 18528Gregory Nutt. 18529- Serial: Integrate new Ctrl-C logic with the ISIG flag in the 18530termios c_lflag. From Gregory Nutt. 18531- Serial: Use SIGINT instead of SIGKILL when control-C is pressed. 18532From Gregory Nutt. 18533- Serial: Add support for Ctrl-Z. This works just like the 18534recently added Ctrl-C support except that SIGSTP is sent when the 18535Ctrl-Z characters is encountered vs. SIGINT. From Gregory Nutt. 18536- 16550 UART: Add a configuration, analogous to the STM32 18537configuration option, to suppress the NuttX standard re-ordering 18538for /dev/ttySN for special case of the 16550 UART. 18539- 16550 UART: Add CONFIG_SERIAL_UART_ARCH_MMIO option so the a 18540memory mapped device doesn't need to provide uart_getreg() and 18541uart_putreg() implementations. 18542- 16550 UART: Add stub implementations of DMA-related methods in the 1854316550 UART v-table. From ligd. 18544- 16550 UART: Add serial termios handling From anchao. 18545- 16550 UART: Support 16550 auto hardware flow control 18546drivers/serial/uart_16550.c: Add configuration option 18547CONFIG_16550_SUPRESS_INITIAL_CONFIG. This is identical to the 18548standard configuration in arch/Kconfig 18549CONFIG_SUPPRESS_UART_CONFIG, but with scope of only the 16550 18550driver. From Xiang Xiao. 18551- syslog: Make timestamp output same as linux kernel. It's very 18552useful if NuttX syslog retarget to Linux syslog. From Xiang Xiao. 18553- Timers: Add maxtimeout method to the struct timer_ops_s interface 18554From Xiang Xiao. 18555- Timers: Add a new method to the struct oneshot_operations_s 18556interface to get the current time from a oneshot timer driver (if 18557it is available from the lower half) From Xiang Xiao. 18558- Timers: Implement timer arch API on top of timer driver. From 18559Xiang Xiao. 18560- Timers: Implement alarm arch API on top of oneshot driver 18561interface. From Xiang Xiao. 18562- Timers: Implement RTC arch API on top of RTC driver interface. 18563From Xiang Xiao. 18564- CDC/ECM: Adds USB device support for CDC/ECM From Michael Jung. 18565- USB Host: Add support for the Maxim M3421E USB host driver. Not 18566yet fully tested. From Gregory Nutt. 18567 18568* General Architecture-Specific: 18569 18570- All architectures: Make sure the up_irq_enable() is available on 18571all architectures. From Gregory Nutt. 18572 18573* Simulation 18574 18575- Simulator Configurations: Add dsptest configuration. From Mateusz 18576Szafoni. 18577- Simulator: In network driver (1) Remove up_comparemac() check for 18578matching MAC address. Let's trust that the tap device just return 18579the packet which belong to us like other real network device 18580hardware. (2) Add network device statistics support. From Xiang Xiao. 18581 18582* ARM: 18583 18584- ARM (all): Add CONFIG_DEBUG_MEMFAULT to Kconfig. From Masayuki 18585Ishikawa. 18586- ARM: (1) Add semihost support for syslog, (2) Add semihost support 18587for HostFS From Gregory Nutt. 18588 18589* ARMv6-M: 18590 18591- ARMv6-M: Introduce CONFIG_DEBUG_HARDFAULT_INFO to up_hardfault.c 18592From Masayuki Ishikawa. 18593 18594* ARMv7-M: 18595 18596- ARMv7-M: Removes support for the dedicated vector handling from the 18597many older architectures. Only common vectors are now supported. 18598From Gregory Nutt. 18599- ARMv7-M: Introduce CONFIG_DEBUG_HARDFAULT_INFO to up_hardfault.c 18600From Masayuki Ishikawa. 18601- ARMv7-M: Implement SYSTICK timer driver From Xiang Xiao. 18602- Simulator: Add loadable demo for arch sim. From anchao. 18603- ARMv7-M: Add logic to trigger ARMv7-M interrupts and exceptions. 18604From Gregory Nutt (from sample logic by Xiang Xiao). 18605- ARMv7-M: Add NVIC definitions needed by up_trigger_irq(). From 18606Gregory Nutt. 18607 18608* ARMv7-R: 18609 18610- ARMv7-R: Add general interrupt controller. This is based on 18611ARMv7-A gic controller code. From EunBong Song. 18612- ARMv7-R: Add invalidate dcache in arm_head.S. From EunBong Song. 18613 18614* Infineon XMC4xxx Drivers: 18615 18616- XMC4 GPIO: Add a specific bit encoding to GPIO driver for 18617opendrain GPIO pin. From Alan Carvalho de Assis. 18618 18619* Infineon XMC4xxx Boards: 18620 18621- XMC4500-Relax: Add support to MAX6675 on XMC4500-Relax board. 18622From Alan Carvalho de Assis. 18623 18624* Microchip PIC32MX Boards; 18625 18626- PIC32MX: Update some PIC32MX configurations so that either the 18627MPLAB or Penguino toolchains may be used. From Gregory Nutt. 18628 18629* Microchip/Atmel SAMD2x/L2x: 18630 18631- SAMD2x/L2x: Rename all usage of samdl/SAMDL to samd2l2/SAMD2L2 to 18632make room in the name space for samd5e5/SAMD5E5 From Gregory Nutt. 18633 18634* Microchip/Atmel SAMD5x/E5x: 18635 18636- SAMD5x/E5: Add a port to the SAMD5x/E5x MCU family. From Gregory 18637Nutt. 18638 18639* Microchip/Atmel SAMD5x/E5x Drivers: 18640 18641- SAMD5x/E5x SPI/I2C: Bring in untested SPI and I2C drivers from 18642SAMD2L2. From Gregory Nutt. 18643- SAMD5x/E5x DMA: Leverage the SAMD2L2 DMA controller. From Gregory 18644Nutt. 18645- SAMD5x/E5x USB: Bring the SAMDL2 USB driver into the SAMD5E5 18646port. From Gregory Nutt. 18647 18648* Microchip/Atmel SAMD5x/E5x Boards: 18649 18650- Metro M4: Add support for the Adafruit Metro M4 board. From 18651Gregory Nutt. 18652- Metro M4: Add an option to build the Metro M4 image to run out of 18653SRAM. This ought to be a safer and quicker way to do the initial 18654bring-up (having bricked the first Metro M4 due to a bad FLASH 18655image). From Gregory Nutt. 18656- Metro M4: Add a configuration option to use OSCULP32K instead of 18657XOSC32K. From Gregory Nutt. 18658- Metro M4: After some final fixes related to the SERCOM console, 18659the basic NSH configuration appears fully functional. From 18660Gregory Nutt. 18661- Metro M4: Verify the CMCC and enable it by default in the NSH 18662configuration. From Gregory Nutt. 18663 18664* Microchip/Atmel SAMv7 Drivers: 18665 18666- SAMv7 CAN: Add ability for CAN BUS_OFF autorecovery according 18667ISO11898-1:2015. With this change we added an ioctl for triggering 18668the autorecovery sequence for BUS_OFF to the CAN-driver and the 18669SAMV7 low-level driver. According the datasheet: If the device 18670goes Bus_Off, it will set MCAN_CCCR.INIT of its own accord, 18671stopping all bus activities. Once MCAN_CCCR.INIT has been cleared 18672by the processor (application), the device will then wait for 129 18673occurrences of Bus Idle (129 * 11 consecutive recessive bits) 18674before resuming normal operation. At the end of the Bus_Off 18675recovery sequence, the Error Management Counters will be reset. 18676During the waiting time after the resetting of MCAN_CCCR.INIT, each 18677time a sequence of 11 recessive bits has been monitored, a Bit0 18678Error code is written to MCAN_PSR.LEC, enabling the processor to 18679readily check up whether the CAN bus is stuck at dominant or 18680continuously disturbed and to monitor the Bus_Off recovery 18681sequence. MCAN_ECR.REC is used to count these sequences. From 18682Frank Benkert. 18683 18684* NXP Freescale i.MX RT Drivers: 18685 18686- i.MXRT RTC: Add support for the i.MXRT RTC. This is code complete 18687(with limited features and options) but untested. The HPRTC is 18688functional. However, if the LPSRTC is enabled, then there is a 18689hang during LPSRTC initialization. It appears that there is some 18690problem in providing clocking and initializing the LPSRTC domain. 18691From Gregory Nutt. 18692- i.MXRT SNVS: Add trivial SNVS from Rev 1. of the Reference Manual. 18693From Gregory Nutt. 18694- i.MXRT LSPI: IMXRT1050 LPSPI register and bit definitions added. 18695From Ivan Ucherdzhiev. 18696- i.MXRT Serial: IMXRT1050 LPUART TERMIOS support added. From Ivan 18697Ucherdzhiev. 18698 18699* NXP Freescale i.MX RT Boards: 18700 18701- IMXRT1050-EVK: Add knsh configuration. PROTECTED mode NSH build. 18702From Gregory Nutt. 18703 18704* NXP Freescale Kinetis: 18705 18706- Kinetis: Add DMA support. From David Sidrane. 18707 18708* NXP Freescale Kinetis Drivers: 18709 18710- Kinetis: Use circular DMA as an option to augment the RX FIFOs in 18711the Serial driver. From David Sidrane. 18712 18713* NXP LPC54xx: 18714 18715- LPC54xx: The LPC54608 can only run at a maximum frequency of 18716180Mhz. This configuration requires uses the clk_in, external 18717crystal clock, to drive the PLL. When that input was selected, the 18718board bootup failed waiting for the PLL to lock. After referring 18719the driver from NXP, we should turn on power sources for the ext 18720clock if system pll input select clk_in. NOTE that the LPC54628 18721did not require this step... perhaps because the system oscillator 18722power was already enabled. From kxjiang. 18723- LC823450: Add support for mpu and userspace LC823450-XGEVK: Add 18724kostest PROTECTED build LC823450-XGEVK: Add knsh PROTECTED build 18725From Masayuki Ishikawa. 18726 18727* NXP LPC54xx Boards: 18728 18729- Lpcxpresso-LPC54628: Update lvgl board config to use the new 18730version From Alan Carvalho de Assis. 18731 18732* On Semi LPC23450 Drivers: 18733 18734- LC823450 Bluetooth: Add lc823450 Bluetooth support. From Masayuki 18735Ishikawa. 18736- LC823450 I2S: Add tx start threshold to lc823450_i2s.c In 18737addition, lc823450_i2s_send() now accepts byte-aligned stream. 18738From Masayuki Ishikawa. 18739- LC823450 SPI: Add SPI flash driver for lc823450. NOTE: Only bus 18740accelerator mode is supported. From Masayuki Ishikawa. 18741- LC823450: Change C-Buffer under-level control. The under-level 18742setting was changed from 1KB to 55KB. In previous implementation, 18743the setting can be changed by the tx threshold but it is fixed at 18744startup. Also, check write size and adjust alignment if needed. 18745From Masayuki Ishikawa. 18746 18747* On Semi LPC23450 Boards: 18748 18749- LC823450-XGEVK: Add loopback test for digital MIC on lc823450 via 18750i2schar driver. From Masayuki Ishikawa. 18751- LC823450-XGEVK: Add lc832450 elf test. From Masayuki Ishikawa. 18752- LC823450-XGEVK: Add posix_spawn configuration From Masayuki 18753Ishikawa. 18754 18755* STMicro STM32: 18756 18757- STM32 L4: Add initial support to STM32L4+ chips From Juha Niskanen. 18758- STM32 H7: A partial port to the STMicro STM32H7 by Simon Laube was 18759brought in from the PX4 repositories. Numerous changes were 18760make(by Mateusz Szafone). The basic STM32 H7 NSH configuration is 18761now functional, thanks to Mateusz Szafoni. 18762 18763* STMicro STM32 Drivers: 18764 18765- STM32 F0, F1-F4, F7, L4, H7: Added Single Wire Kconfig variable. 18766From David Sidrane. 18767- STM32 DAC: Set OUTEN bit for DAC1CH2 and DAC2CH1 power/motor. 18768Direction parameter is now int8 + add overload fault. From Mateusz 18769Szafoni. 18770- STM32 F1-F4 ADC: Allow multiple channels without DMA on 18771STM32L15XX. From Juha Niskanen. 18772- STM32 F1: Add FLASH register definitions for F1 parts that have 18773dual banked FLASH. From Dmitriy Linikov. 18774- STM32 F2: Added progmem interface support for STM32 F2 From 18775Dmitriy Linikov. 18776- STM32 F4: Ports STM32 LTDC and STM32 DMA2D to use the 18777framebuffer interface From Marco Krahl. 18778- STM32 F7: This change ports Marco Krahl's STM32F4 framebuffer 18779overlays for the LTDC and DMA2D into the STM32F7. That driver was 18780same as the STM32 F4 driver. From Gregory Nutt. 18781- STM32 F7: Port input capture from stm32. From Juha Niskanen. 18782- STM32 F7 FLASH: Ported the STM32 F2/F4 driver to the STM32 F7 18783platform. From Evgeniy Bobkov. 18784- STM32 F7 SDMMC: Add SDIO card support to SDMMC driver. From 18785Ramtin Amin. 18786- STM32 F7 Serial: Previous logic would invalidate the data cache as 18787each byte was read from the DMA buffer. This change adds logic to 18788invalidate the data cache less frequently by monitoring the state 18789of the Rx DMA buffer cache coherency and invalidating only regions 18790as necessary. From Evgeniy Bobkov. 18791- STM32 F7: Add up_stackcheck.c From Daniel Agar. 18792- STM32 F7: Port the low-level PM functions to STM32 F7. From Juha 18793Niskanen. 18794- STM32 L4: STM32L4 has fetchadd and testset From Juha Niskanen. 18795- STM32 L4: Added custom pin mapping for STM32L4X2XX processors. 18796From Daniel P. Carvalho. 18797- STM32 L4 FLASH: stm32l4xrxx: allow board to override flash wait 18798states From Juha Niskanen. 18799- STM32 L4: Some updates to analog peripherals ADC, COMP and DFSDM 18800for STM32L4XR From Juha Niskanen. 18801- STM32 L4: Add getstatus and getperiod() method to the timer 18802driver (includes coding standard changes made prior to commit) 18803From Goden Freemans. 18804- STM32 H7: Remove old references to RXDMA. Add configuration 18805- STM32 H7: Remove old references to RXDMA. Add configuration 18806option to select the Rx FIFO threshold level. From Gregory Nutt. 18807 18808* STMicro STM32 Boards: 18809 18810- STM32F103 Minimum: Add blackpill LED support From Russ Webber. 18811- Viewtool-STM32F107: Add a TCP performance test using 18812apps/examples/tcpblaster. From Gregory Nutt. 18813- Viewtool-STM32F107: Add support for the MAX3421E to the 18814Viewtool-STM32F107 board support From Gregory Nutt. 18815- STM32F334-DISCO: Use a PID controller from libdsp in the BuckBoost 18816driver. From Mateusz Szafoni. 18817- STM32F4-Discovery: Remove STM32F4BB dependence from RNDIS; add 18818RAMDISK support. From Alan Carvalho de Assis. 18819- STM32F4-Discovery Add board support for MAX7219 as numeric display 18820controller. From Alan Carvalho de Assis. 18821- Olimex-STM32-P407: Add kernel ELF (kelf) configuration. From 18822Gregory Nutt. 18823- Olimex-STM32-P407: Add a kmodule configuration that can be used 18824for testing installation of kernel modules in the protected build. 18825From Gregory Nutt. 18826- Olimex-STM32-P407: Add logic to support initialization of the 18827kernel module symbol table installed in the pass1/ directory during 18828the application phase of the build. The kmodule configuration 18829appears to be fully functional. From Gregory Nutt. 18830- Olimex-STM32-P407: Add board support for the DHTxx sensor. From 18831Ouss4. 18832- STM32F476G-DISCO: Add support for STM32F746G-disco board LCD. 18833From Marcin Wyrwas. 18834- STM32F476G-DISCO: Add a configuration to build working nxdemo 18835application From Fanda. 18836- STM32F476G-DISCO: Add support for STM32F746G-disco board SDRAM 18837Changed fb config to use SDRAM. From Marcin Wyrwas. 18838- STM32F476G-DISCO: Add touchscreen support and a LittlevGL demo for 18839STM32F746G-DISCO From Marcin Wyrwas. 18840- Nucleo-L476RG: Add support for an external SPI-driven SD card on 18841the Nucleo-L476RG. From Gregory Nutt. 18842- Nucleo-L476RG: Add support for LSM303AGR and LSM6DSL sensors From 18843DisruptiveNL. 18844- Nucleo-H743ZI: Use Nucleo Virtual console as default console in 18845the NSH configuration From Mateusz Szafoni. 18846- STM32L4R9-DISCO: Add stm32l4r9ai-disco support. From Juha Niskanen. 18847- B-L475E-IOT01A: Add timer driver support. From Goden Freemans. 18848 18849* Libraries/Header Files: 18850 18851- libc endian: Add support for endian.h. From Gregory Nutt. 18852- libc net: Add inet_aton() From Juha Niskanen. 18853- libc netdb: Add getaddrinfo() and friends. From Juha Niskanen. 18854- libc termios: Add lib_cfmakeraw.c From Masayuki Ishikawa. 18855- libc stdlib: Add implementation of random() and srandom(). From 18856Gregory Nutt. 18857- libc unistd: Add a crippled version of daemon(). From Gregory Nutt. 18858- libdsp: All floats with f-sufix libdsp: (1) add precision option 18859for library, (2) add debug option for library and assertions in 18860functions, (3) add current samples correction for SVM3, (4) add 18861some motor control specific functions, (5) add basic speed 18862observer, (6) fix phase shift in SMO observe, (7) add more logic to 18863FOC. From Mateusz Szafoni. 18864- include/nuttx/compiler.h, include/poll.h: Add logic to determine 18865if the compiler supports anonymous structures and unions. From 18866Gregory Nutt. 18867- include/nuttx/mutex.h: Add inline wrapper functions to more 18868clearly support semaphores when used as mutexs. From QianWenfa. 18869- include/nuttx/nuttx.h: Added nuttx.h header file which is 18870analogous to the linux.h header file. Currently, it contains on 18871the definition of the container_of() macro. From zhuyanlin. 18872- include/queue.h: Add dq_tail marco From zhuguangqing. 18873- include/stdio.h: Add prototypes for popen() and pclose(). Actual 18874implementation is in apps/system/popen() From Gregory Nutt. 18875- include/sys/param.h: Add a dummy sys/param.h header file. This is 18876not a standard file but is used by other systems and having the 18877dummy file may minimize some porting efforts. From Gregory Nutt. 18878 18879* Tools: 18880 18881- nuttx/tools/kconfig2html.c: Due to new usage, tool needs to be 18882able to handle configuration files with names other than Kconfig. 18883From Gregory Nutt. 18884- nuttx/tools/kconfig2html.c: Update tool to handle tristate types. 18885From Gregory Nutt. 18886- nuttx/tools/Config.mk: Add function CATFILE definition. Currently 18887only used in apps/builtin/Makefile. From Gregory Nutt. 18888- nuttx/tools/Config.mk: Add the recursive wildcard function, 18889RWILDCARD, to Config.mk. From Gregory Nutt. 18890- nuttx/tools/testbuild.sh: Add an option to specify the location of 18891nuttx directory. From Gregory Nutt. 18892- nuttx/tools/refresh.sh: Add a --prompt option that will let you 18893use --silent but will prompt before overwriting the original 18894defconfig. From Gregory Nutt. 18895- nuttx/tools/link.sh. Update link.sh per suggestions by Mark so 18896that it can be used with MSYS vs copydir.sh. From Gregory Nutt. 18897- nuttx/tools/mkexport.sh: Save the System.map file and User.map 18898file (if it exists) in the export package so that it can be used to 18899extract addresses. From Gregory Nutt. 18900- nuttx/tools/mkexport.sh: Save the name of the STRIP tool too. From 18901Gregory Nutt. 18902- nuttx/tools/nxstyle.c: Add capability to detect multiple blank 18903lines. Single spacing required by the coding standard. Also coding 18904standard fixes to server .c files for problems found during testing 18905nxstyle. From Gregory Nutt. 18906- apps/tools: Add +x to mksymtab.sh. From Masayuki Ishikawa. 18907- apps/tools/define.sh and define.bat: Move a copy of define.bat 18908and sh from nuttx/tools to apps/tools so that they will be 18909available for the import build. From Gregory Nutt. 18910 18911* Build System: 18912 18913- Apps/ Build System. The apps/ build system has undergone a major 18914renovation to better support building applications as ELF modules. 18915Module selections have changed from 'bool' to 'tristate' types. 18916This means that building an ELF now is as simple setting the value 18917to 'm'. This effort required many changes, too many to summarize 18918here. The solution was contributed by Masayuki Ishikawa, Anchao 18919An, and Xiang Xiao (and myself to a lesser extent). 18920- NuttX/ Build System: This change extends support for the two-pass 18921build. Its primary purpose is to incorporate source logic 18922generated by applications into the kernel phase of the build. 18923In the two pass build, the application logic is built during the 18924first phase, pass 1. In that phase, the application may generate 18925and install source files in the pass1/directory. The operating 18926system is built during phase 2 of the build. At that time, those 18927source files in the pass1/ directory will be built and incorporated 18928into the kernel address space. 18929The primary purpose of the pass1/ directory is to such 18930application-generated kernel symbol tables. For an example of the 18931use of this feature, look at 18932apps/examples/module/drivers/Makefile. Kernel symbol tables are 18933needed to support kernel modules. Of course, addition 18934board-specific logic in, say, configs/<board>/src would have to be 18935included to make use of the application-installed symbol tables. 18936From Gregory Nutt. 18937- Remove CONFIG_ARCH_CALIBRATION. It is awkward to use and no longer 18938necessary now that we have apps/examples/calib_udelay. From 18939Gregory Nutt. 18940- Build System: With recent changes to apps/ all configurations that 18941build applications as modules must now also select 18942CONFIG_APPS_LOADABLE. From anchao. 18943- Build System: Add dynamic application loadable support. From 18944anchao. 18945- Build System: Add configuration CONFIG_ARCH_GNU_NO_WEAKFUNCTIONS 18946to suppress use of weak functions. Some gnu derived toolchains do 18947not support weak symbols. From Xiang Xiao. 18948- Kconfig: Move 'option modules' from NSH_FILE_APPS to 18949BUILD_LOADABLE From anchao. 18950- apps/ Build System: Introduce a build system for loadable apps 18951for nsh. Add 'option modules' to NSH_FILE_APPS so that a user can 18952change an application configuration to tristate (y/n/m) 18953- apps/import: Add Makefile.symtab which can be used to compile the 18954dynamically created symbol table C file. Also adds 18955tools/mksymtab.sh. From Gregory Nutt. 18956 18957* NSH: apps/nshlib: 18958 18959- apps/nshlib: Add parsing support for back-slash quoted 18960characters. Currently only implemented properly if 18961CONFIG_NSH_ARGCAT is also selected. This commit is in response to 18962Bitbucket Issue 11 opened by Maciej Wójcik From Gregory Nutt. 18963- apps/nshlib: Add inverted logic support in the form of 'if ! 18964<cmd>' From Beat Küng. 18965- apps/nshlib: Expand reboot and poweroff commands to include a 18966second, optional mode argument From ligd. 18967- apps/nshlib: Add a force flag (-f) to mksmartfs command. SmartFS 18968will be formatted only if (1) the FLASH does not already hold a 18969SmartFS, or (2) the force flag is set. From Xiang Xiao. 18970- apps/nshlib: NSH prompt string is now configurable. nsh> is 18971still the default. From Xiang Xiao. 18972- apps/nshlib: Add control-C support for terminating built-in and 18973exec'ed file tasks. From ligd. 18974- apps/nshlib: Call BOARDIOC_FINALINIT after start-up script (or 18975immediately after BOARIOC_INIT is there is no start-up script). 18976From ligd. 18977- apps/nshlib: When using waitpid() to wait for a built-in 18978application or a file application to exit. Add the WUNTRACED 18979options to so the the waitpid() call will also be awakened if the 18980waited-for task is stopped as well. From Gregory Nutt. 18981 18982* NSH Builtins: apps/builtin: 18983 18984- apps/builtin/Makefile. This commit changes apps/builtin to search 18985the registry recursively. By supporting directories, external 18986projects can install the hooks into the registry and easily clean 18987them up and reinstall if something needs to be updated. Based on 18988an idea from Anthony Merlino. From Gregory Nutt. 18989 18990* Examples/Tests: apps/examples: 18991 18992- apps/examples/calib_udelay: Add tool for calibrating 18993CONFIG_BOARD_LOOPSPERMSEC From Juha Niskanen. 18994- apps/examples/dhtxx: Example for the DHTxx sensor. From Ouss4. 18995- apps/examples/dsptest: Add unit test for NuttX DSP library From 18996Mateusz Szafoni. 18997- apps/examples/elf: CROMFS and ROMFS configuration currently only 18998usable in FLAT build. Add configuration to use ELF objects on 18999external media like SD card or USB drive instead. From Gregory 19000Nutt. 19001- apps/examples/elf: If the test ELF files are on media in 19002removable media such as SD or USB FLASH, the wait until the media 19003has been installed and initialized before starting the test. From 19004Gregory Nutt. 19005- apps/examples/fb: Adds example to test framebuffer overlay From 19006Marco Krahl. 19007- apps/examples/gps: Add GPS example using MINMEA lib From Alan 19008Carvalho de Assis. 19009- apps/examples/i2sloop: Add i2sloop application. This application 19010can be used to test I2S loopback like: ' nsh> i2sloop &'. From 19011Masayuki Ishikawa. 19012- apps/examples/lvgldemo: Update LVGL to version 5.1.1 From Alan 19013Carvalho de Assis. 19014- apps/examples/module: Add support for CROMFS and for stripping 19015symbols from ELF module binaries. From Gregory Nutt. 19016- apps/examples/module: Add support for automounting removable media. 19017This involves a wait for the block driver to become available 19018before performing the mount. From Gregory Nutt. 19019- apps/examples/module: When built in the PROTECTED or KERNEL 19020modes, the symbol table is not built by the application. That is 19021because the build will fail since the kernel module depends on 19022internal OS symbols thar are not available to the application 19023build. With this change the examples does not attempt to build 19024the kernel symbol table in these modes. Instead it just copies 19025the kernel module symbol table into the nuttx/pass1 directory 19026where it can be build directly into the OS during pass2 of the 19027build. From Gregory Nutt. 19028- apps/examples/ostest: Add a small test for SIGSTOP, SIGCONT, and 19029SIGKILL actions. From Gregory Nutt. 19030- apps/examples/popen: Add a test of popen/pclose. From Gregory 19031Nutt. 19032- apps/examples/powerled: Add arch initialization. From Mateusz 19033Szafoni. 19034- apps/examples/tcpblaster: Add TCP performance measurement test. 19035From Gregory Nutt. 19036 19037* System Utilities: apps/system 19038 19039- apps/system/cle: Usage improvements including command line 19040history (taken from readline) and support for addition control 19041characters. From mst. 19042- apps/system/i2c: Adapt to rename I2C_M_RESTART->i2C_M_START. 19043I2C_M_NOSTOP should be in flags of first message in every 19044write-read and write-write message sequence. From Gregory Nutt. 19045- apps/system/i2c: Allow registers besides 0x00 in the dev command. 19046From Jakob Haufe. 19047- apps/system/nsh: Add logic to automatically register an 19048application symbol table as part of NSH initialization. From 19049Masayuki Ishikawa. 19050- apps/system/nsh: The symbol table name and size variable names 19051can now be configured. From Gregory Nutt. 19052- apps/system/nsh: Move apps/examples/nsh to apps/system/nsh. It 19053has become so entrenched that it is hardly an example these days. 19054May as well formalized it as a system task. From Gregory Nutt. 19055- apps/system/nxplayer: Refactor nxplayer.c. Apply 19056netlib_parsehttpurl() and 19057remove unnecessary usleep(). From Masayuki Ishikawa. 19058- apps/system/nxplayer: Release buffer before session and release 19059semaphore in nxplayer_setvolume system/nxplayer/nxplayer.c: 19060Remove & for apb->samp reference. It is already a pointer. From Xiang Xiao. 19061- system/nxplayer/nxplayer.c: Add playraw command From ZhongAn. 19062- apps/system/nxrecorder: Add nxrecorder application From ZhongAn. 19063- apps/system/popen: Add an implementation of the standard popen() 19064and pclose() OS interfaces. These are implemented as applications 19065vs. part of the OS because they depend on NSH. Untested on 19066initial commit. From Gregory Nutt. 19067- apps/system/system and popen: Adapt so that these can be used in 19068the KERNEL build mode. In this case, simply replace task_spawn() 19069with posix_spawn(). This depends on the existence of some 19070environment where /bin/sh exists and can be used to execute one 19071NSH command. For the case of system(), this change was more 19072complete because it previously used task_create(). Now it uses 19073either task_spawn() or posix_spawn(), depending upon the 19074configuration. From Gregory Nutt. 19075- apps/system/taskset: Add taskset command for SMP systems. This 19076command can be used to retrieve or set a process's CPU affinity. 19077For example, 19078 19079nsh> taskset -p 4 19080pid 4's current affinity mask: 2 19081 19082nsh> taskset -p 3 4 19083pid 4's current affinity mask: 3 19084 19085nsh> taskset -p 1 busyloop & 19086 19087From Masayuki Ishikawa. 19088- apps/system/zmodem: Support -p <path> for rz to change the folder 19089for the received file. Switch debug output from printf to 19090syslog. Send the next packet for ZME_ACK in ZMS_SENDING to avoid 19091rz on the host side stuck make send work reliable even without 19092hardware flow control. From Xiang Xiao. 19093 19094* Network Utilities: apps/netutils: 19095 19096- apps/netutils/dhcpc: Activates BINDTODEVICE if available. From 19097Sebastien Lorquet. 19098 19099* Wireless Utilities: apps/wireless: 19100 19101- apps/wireless/i8sak: i8sak daemon now gets shutdown if not in use. 19102Previously, once the i8sak daemon was started, by running any 19103command, it would stay running. This means that if you want to use 19104i8sak to setup your network, but then want exclusive access to the 19105char device, or network device, you have to manually shutdown the 19106i8sak daemon. Now the daemon stays active as long as required to 19107finish any commands, or stays open if a new command keeps it on, 19108but when all work is finished, it shuts down. From Anthony Merlino. 19109 19110* Filesystem Utilities: apps/fsutils: 19111 19112- mkfatfs: Clean up some name BS_ and MBR_ refer to the same record 19113and should use the same naming (MBR_). From Gregory Nutt. 19114- mkfatfs: Add definitions for the FAT boot record (FBR). From 19115Gregory Nutt. 19116- mksmartfs: Add a check to see if the SmartFS is already 19117formatted. From Xiang Xiao. 19118 19119* Graphic Utilities: apps/graphics: 19120 19121- graphics/littlevg/: Update LVGL to version 5.1.1 From Alan 19122Carvalho de Assis. 19123 19124* Test Utilities: apps/testing: 19125 19126- testing/unity: Add Unity - unit testing library from 19127ThrowTheSwitch.org. From Mateusz Szafoni. 19128 19129Bugfixes. Only the most critical bugfixes are listed here (see the 19130ChangeLog for the complete list of bugfixes and for additional, more 19131detailed bugfix information): 19132 19133* Core OS: 19134 19135- Signals: Signal handlers maybe run with interrupts enabled or 19136disabled, depending on how the task the received the signal was 19137blocked. (i.e.: If sem_wait() is called, then we disable 19138interrupts, then block the currently running task). This could be 19139dangerous, because user code would be running with interrupts 19140disabled. 19141This change forces interrupts to be enabled in up_sigdeliver() 19142before executing the signal handler calling up_irq_enable() 19143explicitly. This is safe because, when we return to normal 19144execution, interrupts will be restored to their previous state when 19145the signal handler returns. From Gregory Nutt (Based on a 19146recommendation by Mark Shulte). 19147- Signals: Lock the scheduler while while killing the children so 19148that we do not lose priority and let the task group continue to 19149run in an indeterminate state. From Gregory Nutt. 19150- Groups: Fix a deadlock when loading an ELF From Masayuki Ishikawa. 19151- Groups: In some circumstances, group_killchildren() could have 19152called pthread_cancel() to kill a task. Also, the behavior would 19153not be as expected if a pthread had cancellation disabled. From Gregory Nutt. 19154- Posix Message Queues: mq_notify() fix - only part of struct copied 19155to internal structure. As source address the address of the struct 19156member sigev_value was used, and it is not located the start of the 19157struct. This leads to invalid data being copied to internal 19158structure. Both source and destination should be of type struct 19159sigevent* . From Simon Liedl. 19160- vfork(): vfork operation needs to allocate and copy the task 19161argument too. Also correction of the address correction cannot 19162depend on the stack pointer since it is not available in all 19163architectures. Rather calculate the offset from the stack 19164allocation pointer From Xiang Xiao. 19165- IRQ Dispatch: Ensure vector never points to NULL since interrupt 19166may happen before irq_initialize() From Xiang Xiao. 19167- Work Queue: workqueues don't need set global data to zero since 19168.bss is cleared automatically. Removing this unnecessary 19169initialization also avoids the loss the work items queued before 19170initialization. From ligd. 19171- Work Queue: Remove work queue polling delay to simplify the code 19172logic and save the power. From xuanlin. 19173- syslog: Fix syslog crash on 64bit simulation. From anchao. 19174- Pipes: Write to a pipe when there are no readers from the pipe 19175should return -EPIPE. From ligd. 19176- System Calls: Fix 6th parameter type of posix_spawnp in 19177syscall.csv From Masayuki Ishikawa. 19178- System Calls: Remove unused SYS_nnetsocket from syscall.h. Because 19179SYS_nnetsocket is not implemented so far, it should be removed so 19180that SYS_prctl can work correctly. From Masayuki Ishikawa. 19181- Binary Loader: Refactor binfmt_exec.c. This change also fixes an 19182argv issue for CONFIG_SCHED_ONEXIT=n or CONFIG_SCHED_HAVE_PARENT=n 19183From Masayuki Ishikawa. 19184- Binary Loader: Re-architect the way that loadable ELF or NXFLAT 19185modules are unloaded. Memory resources must be recovered when the 19186task loaded into memory exits. The original implementation used 19187the death-of-child SIGCHLD signal to perform the unload. There are 19188several problems with this: It is overly complex, it requires that 19189the parent task stay resident while the loaded task runs, and it 19190has fatal logic flaws in the protected and kernel model builds 19191because the user signal handler attempts to run in the kernel 19192address space. This corrects the issue using a mindlessly simply 19193BINFMT callback when the task exits. From Gregory Nutt. 19194- ELF Binary Loader: Set priority level to default if parent has no 19195priority. From anchao. 19196 19197* File System/Block and MTD Drivers: 19198 19199- Auto-mounter: Ignore return values from work_cancel(). From 19200Gregory Nutt. 19201- SmartFS: Fixed filesystem corruption when writing to small file 19202after open(... O_APPEND). From Dmitriy Linikov. 19203- SmartFS stat(): A previous change added support for checking if a 19204descriptor is a socket in fstat().' but it changed sys/stat.h in 19205way that breaks smartfs file-type stat flags. CROMFS is similarly 19206broken, as tools/gencromfs.c was not updated to match the 19207sys/stat.h changes. This commit fixes both issues. It probably is 19208not a good idea to use NuttX sys/stat.h bit-field values directly 19209in stored structure of filesystem. From Jussi Kivilinna. 19210- HostFS: Update duplicated definitions in HOSTFS that must match 19211NuttX values. From ligd. 19212- HostFS: Ensure f_type is equal to HOSTFS_MAGIC. From Xiang Xiao. 19213- ROMFS: Make romfs_devread32 more portable From anchao. 19214- TmpFS: Correct logic in tmpfs_ioctl() that extracts the priv state 19215structure from the file system structures. It was not getting the 19216right value and causing mmap() to fail. Noted by Jesse. From 19217Gregory Nutt. 19218- ProcFS network statistics: Was not handling the output correct for 19219the case of an IEEE 802.11 device. From Gregory Nutt. 19220- ProcFS IRQs: Fix occasional computation error when fracpart >= 192211000 From Xiang Xiao. 19222 19223* Networking/Network Drivers: 19224 19225- TAP/TUN: Fixed custom tun devname formatting. From Dmitriy Linikov. 19226- Network Drivers: This change attempts remove some long standard 19227confusion in naming and some actual problems that result from the 19228naming confusion. The basic problem is the standard MTU does not 19229include the size of the Ethernet header. For clarity, I changed 19230the naming of most things called MTU to PKTSIZE. For example, 19231CONFIG_NET_ETH_MTU is now CONFIG_NET_ETH_PKTSIZE. This makes the 19232user interface a little hostile. People think of an MTU of 1500 19233bytes, but the corresponding packet is really 1514 bytes (including 19234the 14 byte Ethernet header). A more friendly solution would 19235configure the MTU (as before), but then derive the packet buffer 19236size by adding the MAC header length. Instead, we define the 19237packet buffer size then derive the MTU. 19238The MTU is not common currency in networking. On the wire, the 19239only real issue is the MSS which is derived from MTU by subtracting 19240the IP header and TCP header sizes (for the case of TCP). Now it 19241is derived for the PKTSIZE by subtracting the IP header, the TCP 19242header, and the MAC header sizes. So we should be all good and 19243without the recurring 14 byte error in MTU's and MSS's. From 19244Gregory Nutt. 19245- netdev: Fix.. Too many calls to net_unlock() From Gregory Nutt. 19246- IPv6: There are many different checks for IPv6 multicast 19247addresses. Most of the checks are different. RFC 3513 clearly 19248specifies how to detect an IPv6 multicast address: they should 19249begin with 0xffxx. I did not change some of the checks in 19250ipv6_input.c, however. In that file, the comments indicate that 19251the code should only pick of certain multicast address that begin 19252with 0xff02. From Gregory Nutt. 19253- ARP: Fix some backward logic in an if condition. From Gregory 19254Nutt. 19255- TCP Re-assembly: Rename CONFIG_TCP_REASSEMBLY to 19256CONFIG_IPv4_REASSEMBLY. Add some fixes to get a clean compile with 19257CONFIG_IPv4_REASSEMBLY enabled. There are several problems with 19258the current implementation: It is untested (and depends on 19259CONFIG_EXPERMIMENTAL). It uses some Ethernet specific definitions 19260(and depends on CONFIG_NET_ETHERNET). There is only a single 19261reassembly buffer. The last two issues prevent use of this feature 19262in any context where IPv4 packets may be reassembled for multiple 19263network devices concurrently). From Gregory Nutt. 19264- TCP: Set the default TCP MSS to the value required by RFC 879 and 19265never change it under any circumstance unless the remote host 19266requests a larger MSS via an option the TCP header. From Gregory 19267Nutt. 19268- TCP: Fix a deadlock condition that can occur when (1) all network 19269logic runs on a single work queue, (1) TCP write buffering is 19270enabled, and (2) we run out of IOBs. In this case, the TCP write 19271buffering logic was blocking on iob_alloc() with the network 19272locked. Since the network was locked, the device driver polls that 19273would provide take the write buffer data and release the IOBs could 19274not execute. This fixes the problem by unlocking the network lock 19275while waiting for the IOBs. From Gregory Nutt. 19276- TCP: Remove g_netstats.tcp.syndrop++ from tcp_data_event() From 19277Masayuki Ishikawa. 19278- TCP Monitor: Fix net unlock issue when tcp close. This bug could 19279leave the net locked. From zhangyuan7. 19280- UDP: When sending a broadcast (or multicast) packet do not attempt 19281to look up the device by the destination IP address. Rather, use 19282the locally bound address for these cases to select the correct 19283network device. From Gregory Nutt. 19284- UDP: Restore some legacy behavior that was lost with the 19285implementation of CONFIG_NET_UDP_BINDTODEVICE: If no device has a 19286local address when the broadcast packet is sent and the UDP socket 19287is not bound to a device, there select some arbitrary device. This 19288is certainly lunacy in the case where there are multiple network 19289devices registered because the wrong device will probably be 19290returned. It works find, however, for the legacy case where only a 19291single network device is registered. From Gregory Nutt. 19292- UDP: Fix for network byte-order issue when checking if an address 19293is a multicast address. From Jake Choy. 19294- USRSOCK: Correct of semaphore usage issues. From Gregory Nutt. 19295- USRSOCK: Fix re-definitions of struct iovec. From ligd. 19296- ICMP/ICMPv6 Connection: Change the type of id in 19297icmpv[6]_findconn to uint16_t From Xiang Xiao. 19298- ICMP/ICMPv6: Fix failure to poll ICMP socket issue. From 19299dongjianli. 19300 19301* Wireless/Wireless Drivers: 19302 19303- XBee: Fixes issue with timeouts. Timeouts were in ticks but 19304should have been in ms. This caused false triggers of timeout 19305causing redundant packets, etc. From Anthony Merlino. 19306- BCM43xx: Add missing logic to the BCM43xx IEEE 802.11 driver to 19307poll for more Tx data after the last transfer completes. From 19308Gregory Nutt. 19309- BCM43xx: Bring in some fixes from the 'Haywire' branch. From 19310Ramtin Amin. 19311 19312* Common Drivers: 19313 19314- Audio: Fix compile error in i2schar.c (CONFIG_DEBUG_ASSERTIONS=y) 19315From Masayuki Ishikawa. 19316- Audio I2S: Fix bad NULL pointer check From Juha Niskanen. 19317- Input: Fixed FT5x06 driver to correctly close (previously it 19318unregistered interrupt handler during close). From Marcin Wyrwas. 19319- MMC/SD: Fix an error that was causing SDIO multiple block 19320transfers from achieving full performance. From Bob Feretich. 19321- Sensors: Increases SPI frequency in MAX6675 from 400Khz to 4MHz. 19322From Alan Carvalho de Assis. 19323- Sensors: Remove comment references to touchscreens from ADXL345 19324driver. From Russ Webber. 19325- Serial: Don't overwrite nwritten unconditionally on UART write 19326failure. From Xiang Xiao. 19327- Serial DMA: Move head/tail pointer reset to uart_recvchars_dma 19328since dma may be still transferring in the background. From Xiang 19329Xiao. 19330- Serial DMA: In DMA mode, the use of uart_disablexinit() is 19331insufficient to protect a critical section. 19332enter/leave_critical_section() must be used in those cases if 19333CONFIG_SERIAL_DMA=y From Xiang Xiao. 19334- Serial DMA: Fix typo error in uart_recvchars_dma() From Xiang Xiao. 19335- 16550 UART: u16550_txempty() should check UART_LSR_TEMT to avoid 19336some data left in the transmit FIFO From Xiang Xiao. 19337 19338* ARMv7-A: 19339 19340- ARMv7-A (and i.MX6): Add support for per-CPU IRQ and FIQ interrupt 19341stacks (bugfix). Add support so that up_assert will print the 19342correct interrupt stack on an assertion (FIQ stack is still not 19343printed). From Gregory Nutt. 19344 19345* ARMv7-R: 19346 19347- ARMv7-R: Fix some wrong configuration of program status 19348register. PSR_E_BIT bit should be set for big endian system. 19349PSR_A_BIT bis is set automatically as arm cortex-r4 reference 19350manual 3.7.4. So we don't need to set this bit. From EunBong Song. 19351- ARMv7-R: Fix some wrong MPU register definition. Change 19352MPU_RBAR_ADDR_MASK and MPU_RACR_TEX_SHIFT mask as arm cortex-r4 19353reference manual. Region Base Address Register 0-4 bits are 19354reserved. MPU Region Access control register type 3-5 bits. From 19355EunBong Song. 19356 19357* ARMv7-M: 19358 19359- ARMv7-M, Cortex F7: Add a configuration to enable workaround for 19360r0p1 Errata 837070: Increasing priority using write to BASEPRI does 19361not take effect immediately. This update is required to be 19362serialized to the instruction stream meaning that after this update 19363completes, it takes effect immediately and no exceptions of lower 19364priority than the new boosted priority can preempt execution. 19365Because of this erratum, the priority boosting does not take place 19366immediately, allowing the instruction after the MSR to be 19367interrupted by an exception of lower priority than the new boosted 19368priority. This effect is only limited to the next instruction. 19369Subsequent instructions are guaranteed to see the new boosted 19370priority. This was raised in Bitbucket issue 113 from Vadzim 19371Dambrouski. From Gregory Nutt. 19372- ARMv7-M: MPU: mpu_log2regionceil needs take into account the 19373offset too From Xiang Xiao. 19374- ARMv7-M MPU: The prototype of mpu_log2regionfloor() changed; an 19375additional parameter was added. However, none of the calls to 19376mpu_log2regionfloor() were updated to pass the new, additional 19377parameter. From Gregory Nutt. 19378 19379* Infineon XMC4xxx Drivers: 19380 19381- XMC4 SPI: XMC4 SPI was working only for the first transfer From 19382Alan Carvalho de Assis. 19383 19384* Microchip/Atmel SAMv7 Drivers: 19385 19386- SAMv7 MCAN: Correct an error in the BUS_OFF reporting. In case of 19387BUS_OFF the old implementation was leading to a package storm. Now 19388it reports the error condition BUS_OFF only once. From Frank 19389Benkert. 19390 19391* NXP/Freescale LPC43xx Drivers: 19392 19393- LPC43xx CAN: Fix lpc43 CAN configuration. Configuration settings 19394were used and documented in README.txt files, but never in any 19395Kconfig file. From Gregory Nutt. 19396- LPC43xx: Make WWDT usable again. LPC43xx WWDT driver was not 19397updated when irq_dispatch grew an argument parameter. Also fixes 19398two typos and a naming inconsistency (WWDT vs. WWDG). From Jakob 19399Haufe. 19400 19401* NXP/Freescale Kinetis Drivers: 19402 19403- kinetis: USB0 fix interrupt storm on error. The ERROR bit of 19404USBx_ISTAT needed to be cleared once an error occurs. From David 19405Sidrane. 19406- Kinetis: SDHC fix SDIO driver so that DMA works. There were 2 19407problems. The first was that the interrupt did test DINT and raise 19408a completion events. But since DINT is just an indication of DMA 19409completion, TC is a valid way to determine that the transfer is 19410complete. The second problem is that Software Reset For DAT Line 19411SDHC_SYSCTL[RSTD] clears the bits 24-0 in SDHC_PROTO this looses 19412the wide bus setting DTW From David Sidrane. 19413- Kinetis: (1) PIT add Lifetime and Chaining, (2) flexcan fix 19414duplicate line and ordering, (3) kinetis_lowput.c LPUART data 19415format with parity fix. The 9-bit data mode is typically used with 19416parity to allow eight bits of data plus the parity, (4) lowputc 19417LPUART_BAUD_INIT has to be defined. Build fails with test case 19418enable LPUART0 and make UART1 console. If HAVE_LPUART_DEVICE is 19419defined then LPUART_BAUD_INIT has to be defined even if the LPUART 19420is not the console From David Sidrane. 19421- Kinetis: I2C ensure timeout on bus error. The code had a dead 19422wait on I2C_S_BUSY. Noise on the bus would cause the driver to 19423hang. Add timeout on invalid states of I2C_S_BUSY to allow the 19424upper layers do deal with restart or abort. From David Sidrane. 19425 19426* NXP i.MXRT Drivers: 19427 19428- i.MXRT Ethernet: I finally got the Ethernet CRC32 to work properly 19429after the FAE pointed me in the right direction: (1) Added CRC32 19430functions for multicast address filtering, (2) Do not reset PHY 19431settings when doing an ifup, (2) Use chip's unique id as the device 19432MAC, and (4) Enable discard enet frames with errors at PHY layer. 19433From Jake Choy. 19434 19435* On Semi LC823450 Boards: 19436 19437- LC823450-XGEVK: Fix parallel build on lc823450-xgevk. This change 19438fixes an archive file (*.a) corruption by locking $(TOPDIR). 19439Please note that locking the current directory is insufficient 19440because some archive files such as libapps.a are specified with 19441absolute path. From Masayuki Ishikawa. 19442- LC823450-XGEVK: Change IOB related params for rndis. Since TCP 19443flow control scheme was changed, HTTP audio streaming has not been 19444working. These IOB params are not optimized but HTTP audio 19445streaming now works. From Masayuki Ishikawa. 19446 19447* STMicro STM32: 19448 19449- STM32 F7: Fix compile error caused by intentional use of fall 19450through From Daniel Agar. 19451 19452* STMicro STM32 Drivers: 19453 19454- STM32 F1-F4: Port Bob Feritich's change to STM32 F2 and F4 which 19455appear to have identical SD support and I/O compensation 19456requirements. 19457- STM32 F1-F4, STM32 F7, and STM32 L4: The STM32 RTC driver was 19458being selected by the global CONFIG_RTC option. That is in 19459correct. For example, if you want to disabled the STM32 RTC and 19460use an external RTC you cannot because the external RTC also 19461depends on the global CONFIG_RTC. The solution is to add a new 19462CONFIG_STM32xx_RTC configuration option the permits to you select 19463or deselect the STM32 RTC but still be able to select the external 19464RTC. From Gregory Nutt. 19465- STM32 F3 I2C: Fix compile error with I2C reset. From Juha 19466Niskanen. 19467- STM32 F7 Serial: Fix ioctl TIOCSSINGLEWIRE The TRM notes that UE 19468must be disabled in order to write HDSEL in USART_CR3. This was not 19469being done, so calls to TIOCSSINGLEWIRE were silently failing. 19470This change checks the state of UE in USART_CR1, clears the UE bit 19471before writing HDSEL, then re-enables it if necessary. From Kurt 19472Kiefer. 19473- STM32 F7 DMA: DMA macros did not account for the increase from 8 19474to 16 DMA channels. From Gregory Nutt. 19475- STM32 F7 I2C: I2C reset Configure I2C pins as GPIO output. Pins 19476were reset to inputs in the deinit(). This resets them to outputs. 19477From David Sidrane. 19478- STM32 F7: All of the SDMMC pins were set to 50 MHz, but not the 19479clock. This sets the clock to 50 MHz also. This combined with 19480turning on I/O compensation makes intermittent failures go away. 19481From Bob Feritich. 19482- STM32 F7: Port Bob Feritich's change to SDMMC2 and to all other 19483STM32 F7 architectures. Also add a configuration option to 19484automatically enable I/O compensation. From Gregory Nutt. 19485- STM32 F7 SDMMC: Fix data timeout errors with multi-block 19486transfers. From Bob Feretich. 19487- STM32 L4: Corrects some mistakes in pin definitions for the 19488STM32 L4 family. According to datasheet of STM32L496xx, STM32L475xx 19489and STM32L443XX the AF2 of PE14 is TIM1_BKIN2 not TIM2_BKIN. From 19490Daniel Pereira Carvalho. 19491- STM32 L4: Avoid using redundant CONFIG_STM32L4_STM32L4X2. This is 19492almost always same as CONFIG_STM32L4_STM32L4X3. Avoid duplication 19493to reduce macro clutter. This patch limits 19494CONFIG_STM32L4_STM32L4X2 usage to dependency tracking and pinmap. 19495Also enable ADC for CONFIG_STM32L4_STM32L4X5 (untested, but same 19496RM). From Juha Niskanen. 19497- STM32 H7 Serial: don't include stm32_dma.h From raiden00pl. 19498 19499* STMicro STM32 Boards: 19500 19501- STM32F4-Discovery: Fix pca9635pw LED driver compilation on 19502STM32F4-Discovery. From Alan Carvalho de Assis. 19503- STM32F4-Discovery: Krassimir Cheshmedzhiev claims that sys/types.h 19504needs to be included in the RGB LED file to avoid undeclared 'OK' 19505From Gregory Nutt. 19506- STM32F4-Discovery: Missing EXTERN(_vectors) in linker script. 19507From Gregory Nutt. 19508- Nucleo-L422KC: Fix RAM size; STM31L4x2xx has only 64Kb of RAM. 19509Remove references to I2C and SDIO: There is no I2C2 or SDIO on the 19510STM32F4x2xx. From Daniel P. Carvalho. 19511- Nucleo-L422KC: Fix stm32_userleds. After change LD2 to LD3 in 19512board.h stm32_userleds.c was broken. From Daniel P. Carvalho. 19513- Nucleo-L422KC: Fix TIMx clock configuration. Also removes 19514definitions related to timers not available in the STM32L432KC. 19515From Daniel Pereira Carvalho. 19516- Nucleo-L452RE: Fix TIMx clock configuration. This is cloned from 19517similar change to the Nucleo-L422KC. Also fixes DAC build 19518failure. From Juha Niskanen. 19519- B-L475E-IOT01A: Fix copy paste errors in names: 19520stm32_bringup->stm32l4_bringup. Noted by Freemans Goden. From 19521Gregory Nutt. 19522- STM32VL-Discovery: Changed the status LED to be the green one as 19523mentioned in the README file. Removed the global array for buttons 19524and replace it with the only button. Improve defconfig for the nsh 19525configuration. From Ouss4. 19526 19527* C Library/Header Files: 19528 19529- libc audio: Call nxsem_destroy in apb_free. From Xiang Xiao. 19530- libc netdb: The 'port' argument to the static alloc_ai() function 19531is always in network byte order. However, that static function was 19532still calling HTONS() on the port, incorrectly converting it back 19533to host byte order. From Gregory Nutt. 19534- libc netdb: Fix a link error in lib_gethostbynamer.c with protected 19535build. NOTE: g_lo_ipv4addr also exists in 19536net/loopback/lo_globals.c which can be linked with kernel build 19537only. From Masayuki Ishikawa. 19538- libc unistd : Fix backward conditional logic in Kconfig. From 19539Gregory Nutt. 19540- include/nuttx/compiler.h: Fix warning: __cplusplus is not defined. 19541Some gcc derived compiler do not define __cplusplus From Xiang 19542Xiao. 19543- include/nuttx/fs/binfs.h: Fix warning: Type defaults to 'int' in 19544declaration of 'mountpt_operations' From Xiang Xiao. 19545- include/nuttx/net/ethernet.h: Remove CONFIG_NET_ETHERNET guard 19546From Xiang Xiao. 19547- include/nuttx/semaphore.h: don't include nuttx/fs/fs.h. (1) Avoid 19548nested loops if CONFIG_SIG_EVTHREAD enabled, (2) semaphore.h 19549doesn't depends on fs.h. From Gregory Nutt. 19550- include/crc64.h: Fix warning: integer constant is too large for 19551its type From Xiang Xiao. 19552- include/limits.h and include/sys/types.h: Fix warning about 19553'SIZE_MAX' redefined. include/nuttx/usb/audio.h: Fix warnings due 19554to '-' used whete '_' intended. From Xiang Xiao. 19555- include/spawn.h: Fix posix_spawnattr_destroy warning: 'the 19556address of attr will always evaluate as true' From Xiang Xiao. 19557- include/sys/types: Move wint_t and wctype_t from wchar.h to 19558types.h. This change is compatible as before since wchar.h 19559include types.h indirectly. This fixes a compilation error with 19560newlib's math.h: 'unknown type name wint_t' From Xiang Xiao. 19561- apps/include/netutils/netlib.h: Eliminate a warning about 19562AF_UNSPEC and AF_INET not defined. From Gregory Nutt. 19563 19564* Build System: 19565 19566- Build System: Fix parallel build in making context. This change 19567avoids running $(MKSYSCALL) and .context in parallel and ensures 19568that tools/mksyscall is built before it is actually used. From 19569Masayuki Ishikawa. 19570- Kconfig files: Fix several errors noted by Alex Denisov in 19571Bitbucket issue 115. From Gregory Nutt. 19572- apps Build System: Fix an error when building apps/ without 19573nuttx/, using only the NuttX export package and assuming that the 19574nuttx/ directory in not even present. In this case, the problem 19575fixed where the apps/Make.defs file was selecting tools from the 19576/tools directory which does not exist because TOPDIR=apps/import. 19577Instead, for this build case, I have not thought of any option but 19578to duplicate scripts as necessary in the apps/tools directory. 19579Also added a top-level target to compile the symbol table. Misc 19580fixes: quoting in scripts, some errors in script syntax. From 19581Gregory Nutt. 19582- apps/Application.mk: If a loadable module is generated the we 19583need to add logic to remove the loadable module in the 'make 19584clean' logic. From Gregory Nutt. 19585 19586* Tools: 19587 19588- nuttx/tools/Makefile.unix: Was not cleaning up export directory 19589if it was left from a failed export. From Gregory Nutt. 19590- apps/tools: Fix an error in mksymtab.sh From Masayuki Ishikawa. 19591 19592* NSH Library: apps/nshlib: 19593 19594- apps/nshlib: Fix 'while' and 'until' loop condition The loop 19595condition logic was inverted: 'while true; do echo "test"; done' 19596would exit immediately, while using 'until' would stay in the 19597loop. This is the opposite of how it is supposed to work. The 19598reason is that 'state' was set wrong because 'whilematch' is a 19599bool. From Beat Küng. 19600- apps/nshlib: I was able to cause an assertion with some typos in 19601testing the 'fi' command. Not an important thing, but this will 19602protect against the assertion. From Gregory Nutt. 19603- apps/nshlib: Increase the default configuration for the maximum 19604number of command line arguments to 7 (CONFIG_NSH_MAXARGUMENTS). 19605This is needed for 'mount' with the -o option. From Xiang Xiao. 19606- apps/nshlib: Do not dereference NULL 'pstate' in nsh_console.c. 19607From Juha Niskanen. 19608 19609* Examples/Tests: apps/examples: 19610 19611- apps/examples: Remove illegal calls into OS to initialize BINFMT 19612support. This must be moved to the board initialization logic 19613within the OS. From anchao. 19614- apps/examples/nettest: Fix typo: NET_LOOPBACK -> 19615CONFIG_NET_LOOPBACK nettest: Fix compilation error. Should enable 19616NET_SETSOCKOPT for preventing compilation error. From EunBong Song. 19617- apps/examples/ostest: Signal handling tests should use the same 19618configurable stack size as used in other tests, not 19619PTHREAD_STACK_DEFAULT. From Gregory Nutt. 19620- apps/examples/ostest: Attempt to make the nested signal test 19621compatible with the suspend/resume test. Some signals cannot be 19622caught when the suspend/resume configuration is in place. From 19623Gregory Nutt. 19624- apps/examples/smps: Fixes in some printf and in Kconfig. From 19625Mateusz Szafoni. 19626 19627* System Utilities: apps/system: 19628 19629- apps/system/cu: (1) Protect from possible re-definition of signal 19630values, (2) Fix CU ctrl-C hand when remote core hang. From ligd. 19631- apps/system/i2c: Fix a backward comparison in i2c_main.c. Noted 19632by Jakob Haufe. From Gregory Nutt. 19633- apps/system/nsh: Fix compile errors with 19634CONFIG_EXAMPLES_NSH_SYMTAB=y. From Masayuki Ishikawa. 19635- apps/system/ping and ping6: Send ID and seqno in network byte 19636order. From Xiang Xiao. 19637- apps/system/ping and ping6: Change dependency in ping and ping6 19638Kconfig. These may be implemented in users sockets and, hence, 19639may need to be available even if ICMP and ICMPv6 sockets are not 19640support. From Xiang Xiao. 19641- apps/system/system: Add 'const' to make function prototype 19642compatible with OpenGroup.org requirement From Xiang Xiao. 19643- apps/system/zmodem: Fix error "sz_main.o: No such file or 19644directory" From Xiang Xiao. 19645 19646* Network Utilities: apps/netutils: 19647 19648- apps/netutils/ftpc: Fix handling of url-encoded strings From 19649Dmitriy Linikov. 19650- apps/netutils/ping: Remove unsupported ping. netutils/ping is not 19651supported anymore. It's better to remove this folder for 19652preventing confusing. ping is supported by system/ping. From 19653EunBong Song. 19654 19655* Wireless Utilities: apps/wireless: 19656 19657- apps/wireless/wapi: Remove dependency on CONFIG_EXPERIMENTAL from 19658Kconfig From Gregory Nutt. 19659 19660* GPS Utilities: apps/gpsutils: 19661 19662- apps/gpsutils/minmea: Include wchar.h in minmea.c file to fix 19663wint_t error From Alan Carvalho de Assis. 19664 19665* Interpreters: apps/interpreters: 19666 19667- Remove apps/interpreters/micropthon. There are several reasons 19668for this. (1) the current version 1.3.8 is very old and no one is 19669supporting it. (2) the port only includes the core micropython 19670logic and none of the Python libraries. As such it is useless in 19671any real application. (3) There have recently been compile 19672failures reported. It looks like this is due to changes in newlib 19673based toolchains that now bring in incompatible newlib header 19674files. See issue 104 at 19675https://bitbucket.org/nuttx/nuttx/issues/104/build-micropython-138-error. 19676With no one dedicated to the support of micropython, it can no 19677longer be carried in the NuttX apps/ repository. From Gregory Nutt. 19678 19679NuttX-7.27 Release Notes 19680------------------------ 19681 19682The 127th release of NuttX, Version 7.27, was made on November 14, 2018, 19683and is available for download from the Bitbucket.org website. Note 19684that release consists of two tarballs: nuttx-7.27.tar.gz and 19685apps-7.27.tar.gz. These are available from: 19686 19687https://bitbucket.org/nuttx/nuttx/downloads 19688https://bitbucket.org/nuttx/apps/downloads 19689 19690Both may be needed (see the top-level nuttx/README.txt file for build 19691information). 19692 19693Additional new features and extended functionality: 19694 19695* Core OS: 19696 19697- Assertions: Add 'BOARD_ASSERT_RESET_VALUE' in config/Kconfig and 19698replace reboot status '0' to 'CONFIG_BOARD_ASSERT_RESET_VALUE'. From 19699Gregory Nutt. 19700- Assertions: up_registerdump capture the general register if not yet 19701saved and up_saveusercontext is implemented, the register dump is very 19702useful to find the cause of failure. From Xiang Xiao. 19703- Assertions: up_stackdump() dump the full stack if stack overflow the 19704stack info is very useful to find the backtrace From Xiang Xiao. 19705- binfmt/ and libs/libc: Make exepath_*() more common: Move 19706exepath_*() related code to libc/misc, rename exepath_ to envpath_, 19707and rename BINFMT_EXEPATH to LIBC_ENVPATH. From nchao. 19708- CLOCK: Support CLOCK_MONOTONIC in clock_getres.c. From Xiang Xiao. 19709- Clock Timekeeping: Use clock_basetime() to initialize 19710g_clock_wall_time to get the best initial RTC value and initialize 19711g_clock_last_counter too since the hardware may not start counting 19712from zero. From Xiang Xiao. 19713- exit(): Add SCHED_EXIT_KILL_CHILDREN option to kill all child threads 19714when the main thread of a task exits. From nchao. 19715- IOBs: Add an IOB notifier that will notify any registered threads 19716that want to known when an IOB has been freed. This is basically just 19717a wrapper around the generic notifier. Includes a divider that can be 19718used to reduce the rate of IOB notifications. From Gregory Nutt. 19719- Memory Manager: In mm_free(), add DEBUGASSERT()'s to catch memory 19720corruption early. From Petteri Aimonen. 19721- Memory Manager: Add debug option CONFG_MM_FILL_ALLOCATIONS to fill 19722all mallocs() with recognizable value. From Petteri Aimonen. 19723- sched/signal and syscall/: Add support for pselect() and ppoll() 19724functions From dongjianli. 19725- Task Groups: group_foreachchild() now iterates in reverse order since 19726the callback (e.g. group_killchildren) may remove the tcb from list. 19727From zhangyuan7. 19728- WDOG Timer: Improve accuracy of wd_gettime() in tickless mode From 19729ligd. 19730- Work Queues: Add a generic notification facility that runs on a work 19731queue. The notification facility can notify a group of subscribers to 19732an event via callbacks. This API is for use within the OS only. From 19733Gregory Nutt. 19734 19735* File Systems/Block and MTD Drivers 19736 19737- FAT: Add CONFIG_FAT_LFN_ALIAS_HASH to speed up creating long 19738filenames. Long filenames on FAT file systems have associated 8.3 19739character alias short filenames. The traditional form of these is 19740FILENA~1.EXT with a running count of the number of similar names. 19741However creating this unique count can take several seconds if there 19742are many similarly named files in the directory. Enabling 19743FAT_LFN_ALIAS_HASH uses an alternative format of FI0123~1.TXT where 19744the four digits are a hash of the original filename. This method is 19745similar to what is used by Windows 2000 and later. From Petteri 19746Aimonen. 19747- FAT: Add CONFIG_FAT_LFN_ALIAS_TRAILCHARS alternative format for 8.3 19748filenames. Traditional format for long filename 8.3 aliases takes 19749first 6 characters of long filename. If this option is set to N > 0, 19750NuttX will instead take first 6-N and last N characters to form the 19751short name. This is useful for filenames like "datafile12.txt" where 19752the first characters would always remain the same. From Petteri 19753Aimonen. 19754- FAT: if block driver wait seems to be a long one, give time for other 19755threads to run. From Petteri Aimonen. 19756- file_open(): Add file_open() implementation with some fully-function, 19757interim, placeholder logic. Change occurrences of open() followed by 19758file_detach() in the OS to file_open(). From Gregory Nutt. 19759- MX25LF25635F: Add support to Macronix MX25LF25635F serial NOR flash 19760From David Sidrane. 19761- nx_open(): Add nx_open() which is the same as open() except that it 19762does not create a cancellation point nor does it modify the errno 19763variable. Change most other, non-controversial calls to open() to 19764nx_open(). From Gregory Nutt. 19765- file_ioctl(): Replace calls to ioctl() in the OS to file_ioctl(). 19766From Gregory Nutt. 19767- mount: Add mount() support for file systems that require MTD drivers 19768(vs. block drivers). From Gregory Nutt. 19769- mount: Add support for mounting a file system with either a block or 19770an MTD driver. From Xiang Xiao. 19771- MTD FTL: Support BIOC_FLUSH ioctl From Xiang Xiao. 19772- MTD FTL: Make READAHEAD and WRITEBUFFER work independently of each 19773other. There have cases we use writebuffer but not readbuffer, so the 19774write buffer must be flushed before read. Let rwb driver do it. From 19775zhuyanlin. 19776- MTD FTL: Allocate eblock only when it's really needed From Xiang Xiao. 19777- MTD FTL: Add support support unlink operation to avoid the memory 19778leak. From Xiang Xiao. 19779- MTD Partition: Add register_mtdpartition() for MTD partition From 19780Xiang Xiao. 19781- MTD Partition: Remove the hard code partition name length From Xiang 19782Xiao. 19783- MTD Proxy: Make MTD device accessible via a character driver proxy 19784like block devices From Xiang Xiao. 19785- ProcFS: Change output of the ProcFS 'env' file so that it looks more 19786like output from the 'env' command. From Gregory Nutt. 19787- ProcFS: Add support to provide MLD statistics at /proc/net/mld. From 19788Gregory Nutt. 19789- ProcFS: Remove MTD ProcFS and mtd_procfsoperations() since we can now 19790get the same information from inode From Xiang Xiao. 19791- ProcFS: Add /proc/version support to get version info From iuhaitao. 19792- ProcFS: Add support for named MTD drivers in the pseudo file system. 19793This will, eventually, allow us to mount file systems that need MTD 19794drivers without having to fake an intervening block driver. 19795- R/W Buffer: Don't queue work to flush write buffer if 19796CONFIG_DRVR_WRDELAY == 0 From Xiang Xiao. 19797- R/W Buffer: Improve the rwb_read/write overlap performance From 19798zhuyanlin. 19799- SIM HOSTFS: Support S_IFSOCK, DT_LNK, O_DIRECT and O_SYNC From Xiang 19800Xiao. 19801- SPIFFS: Brings in a NuttX port of version 0.3.7 of Peter Anderson's 19802SPIFFS flash file system into NuttX. From Gregory Nutt. 19803 19804* Networking/Network Drivers: 19805 19806- Network Configuration Add new configuration CONFIG_NET_MCASTGROUP. 19807This option is selected automatically if either CONFIG_NET_IGMP or 19808CONFIG_NET_MLD are selected. Most conditional logic based on 19809CONFIG_NET_IGMP replaced with conditioning on CONFIG_NET_MCASTGROUP. 19810From Gregory Nutt. 19811- Network Device: Add notification logic for the case where the network 19812goes down. From Gregory Nutt. 19813- Network Device: Rename netdev_dev_lladdrsize() to netdev_lladdrsize() 19814and move the prototype to include/nuttx/nex/netdev.h, giving is global 19815scope within the OS. From Xiang Xiao. 19816- ARP: Redesign ARP table aging to simplify the net initialization 19817From Xiang Xiao. 19818- ARP: Check ifname match before sending packet. From Xiang Xiao. 19819- ARP and ICMPv6: Double the delay time on each iteration for ARP/ICMP 19820to fight work jitter better. From Xiang Xiao. 19821- ICMP/ICMPv6: Add NET_ICMP[v6]_NO_STACK for usrsock case From Xiang 19822Xiao. 19823- ICMPv6: Encapsulate the link scope address generation into 19824icmpv6_linkipaddr() From Xiang Xiao. 19825- ICMPv6: Remove the coupling between ICMPv6 and Ethernet by moving all 19826Ethernet stuff to neighbor_ethernet_out.c and make the mac address as 19827first field. From Xiang Xiao. 19828- ICMPv6 MLD: Implement Multicast Listener Discovery (MLD) protocol based 19829on RFC 2710 and RFC 3810. From Gregory Nutt. 19830- ICMPv6 MLD: Implement MLDv1 compatibility mode. From Gregory Nutt. 19831- ICMPv6 MLD: Implement 'Other Querier Present Timer'. This timer is 19832used to revert to Querier mode if there is no other querier on the 19833network. From Gregory Nutt. 19834- IGMP: Backport some MLD design improvements/fixes. From Gregory Nutt. 19835- IPv4 setsockopt(): Add implementation for all IPv4 socket options that 19836have implemented IOCTL command counterparts. From Gregory Nutt. 19837- IPv4/6 Socket Options: Add framework to support IPv4 and IPv6 19838protocol socket options (i.e., SOL_IP and SOL_IP6). Handling of these 19839socket options was a necessary step on the way to ICMPv6 MLD support. 19840From Gregory Nutt. 19841- ICMPv6 Autoconfiguration: Don't take the network device down when 19842reconfiguring only the IP address from within ICMPv6 logic. 19843Recommended by Xiang Xiao in order to avoid the long delays of 19844bringing some networks back up. Normally it is required that the 19845network be in the "down" state when re-configuring the network 19846interface. This is thought not to be a necessary here because: (1) 19847The ICMPv6 logic here runs with the network locked so there can be no 19848outgoing packets with bad source IP addresses from any asynchronous 19849network activity using the device being reconfigured. And (2) incoming 19850packets depend only upon the MAC filtering. Network drivers do not 19851use the IP address; they filter incoming packets using only the MAC 19852address which is not being changed here. From Gregory Nutt. 19853- IPv6 Input: Add logic to skip over the variable number of IPv6 19854extension headers that may be present between the IPv6 header and the 19855transport layer header. The extension headers are simply ignored. 19856This is necessary because with MLD, certain incoming messages may 19857have, at a minimum, a Router Alert Hop-by-hop extension header. 19858Additional changes to ICMPv6, TCP, and UDP input to handle the offset 19859protocol headers. From Gregory Nutt. 19860- IPv6 Neighbor: Simplify the neighbor table aging process From Xiang 19861Xiao. 19862- IPv6 Neighbor: Simplify neighbor_dumpentry() implementation From 19863Xiang Xiao. 19864- IPv6 Neighbor: neighbor_lookup() checks if the target IP belongs to 19865one of the local network devices. From Xiang Xiao. 19866- IPv6 Neighbor: Support neighbor_out() for multiple link layer at the 19867same time From Xiang Xiao. 19868- IPv6 setsockopt(): Implement the IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP 19869socket options. From Gregory Nutt. 19870- TCP: Extend the TCP notification logic logic so that it will report 19871loss of connection events. From Gregory Nutt. 19872- SLIP: Add IPv6 support and fix minor issue From Xiang Xiao. 19873- TCP: Add TCP poll() logic to receive notifications when IOBs are 19874freed. From Gregory Nutt. 19875- TCP: In TCP backlog, add SOMAXCONN definition and implementation per 19876OpenGroup.org. From zhangyuan7. 19877- TCP/UDP: Extend send()/sendto() logic it also requires that at least 19878one IOB is also available to be able to send. From Gregory Nutt. 19879- TCP/UDP: Add notification logic when TCP or UDP read-ahead data is 19880buffered. From Gregory Nutt. 19881- TUN: Call ipv[4|6]_input dynamically by checking packet header and 19882remove the code duplication From Xiang Xiao. 19883 19884* Wireless/Wireless Drivers: 19885 19886- Broadcom IEEE 802.11: Add capability for Broadcom chips to get 19887firmware and CLM data from a mounted file system vs. in-memory data 19888structures. From Ramtin Amin. 19889- XBee IEEE 802.15.4: Add support for setting/getting tx power. From 19890Anthony Merlino. 19891 19892* Other Common Device Drivers: 19893 19894- GPIO: Support multiple registrations of GPIO signal events. From 19895Xiang Xiao. 19896- INA226: Add INA226 device driver. From Daniel P. Carvalho. 19897- MAX7219: Support all digits presented in the MAX7219 datasheet. From 19898Alan Carvalho de Assis. 19899- MLX90614: Add support for the Infrared Thermometer MLX90614 From 19900Alan Carvalho de Assis. 19901- RTC Driver: up_rtc_set_lowerhalf call clock_synchronize() for 19902external RTC. From Xiang Xiao. 19903- SYSLOG: Uncomment the g_syslog_channel->sc_flush call in 19904syslog_flush(). From Xiang Xiao. 19905- SYSLOG: syslog_initialize initialize dev/syslog too and call syslog 19906to add the prefix and timestamp. From Xiang Xiao. 19907- USB Composite and DFU drivers: Add support for Microsoft OS 19908descriptors. These Microsoft-only descriptors help in loading the 19909correct driver on Windows. They are especially helpful to give libusb 19910access to a custom device without having to manually configure/install 19911WinUSB driver. With this change DFU interface works automatically on 19912Windows 10 with dfu-util 0.9 and libusb 1.0.22. On Windows 7 it still 19913appears to need driver installation. From Petteri Aimonen. 19914- USB DFU Device: Add DFU Runtime driver for activating boot-loader 19915through USB command. From Petteri Aimonen. 19916- USB RNDIS Device: Account for CONFIG_NET_GUARDSIZE in allocation of 19917packet buffer allocation: Make USB device parameters configurable. 19918From Sakari Kapanen. 19919- USB RNDIS Composite Device: Fix strid comparison. Add support for 19920composite configuration. From Petteri Aimonen. 19921 19922* Microchip PIC32MX Boards; 19923 19924- PCBLOGIC-PIC32MX: Remove support for the PCB Logic PIC32MX board. I do 19925not find any references to PCB Logic on the web and I do not believe 19926that this breakout board is available any longer. From Gregory Nutt. 19927 19928* NXP Freescale i.MX RT: 19929 19930- i.MXRT: Added support for the i.MXRT 106x family. From David Sidrane. 19931 19932* NXP Freescale i.MX RT Drivers: 19933 19934- i.MXRT: Add LPI2C driver. From Ivan Ucherdzhiev. 19935- i.MXRT LPSPI: Add full support for the LPSPI in poll mode; includes a 19936minor fix for LPI2C. 19937- i.MXRT USDHC: Initial commit of the i.MXRT SDHC driver working in PIO 19938mode. From Dave Marples. 19939- i.MXRT USDHC: Complete the interrupt driven USDHC1 functionality for 19940the IMXRT EVKB. Improve SD card handling in the DMA case. From Dave 19941Marples. 19942 19943* NXP Freescale i.MX RT Boards: 19944 19945- IMXRT1060-EVK: Add support for the IMXRT1060-EVK. From David Sidrane. 19946 19947* NXP LPC17xx Boards: 19948 19949- Olimex-LPC1766STK: Add support to initialize a USB HID keyboard. Add 19950a configuration for testing the HID keyboard. From Gregory Nutt. 19951 19952* On Semi LPC23450 Drivers: 19953 19954- LC823450: MPU support for FLAT build From Masayuki Ishikawa. 19955 19956* STMicro STM32: 19957 19958- STM32: Add support for STM32F303xD/E. From Mateusz Szafoni. 19959- STM32 L4: Add initial support for STM32L412 and STM32L422 chips From 19960Juha Niskanen. 19961 19962* STMicro STM32 Drivers: 19963 19964- STM32 ADC: Major refactor: Use STM32 ADC IP core version and ADC 19965available functions instead of chip family names in conditional 19966compilation. Replace family specific ADC headers with STM32 ADC IP 19967core version headers. Configurable sample time supported for all 19968chips, not just L1. Enable/disable interrupts supported for all 19969chips, not just L1. Add ADC resolution configuration. From Mateusz 19970Szafoni. 19971- STM32 PWM: Improvements in STM32 PWM low level driver: Support 19972complementary outputs, dead-time configuration, output polarity and 19973IDLE state configuration. From Mateusz Szafoni. 19974- STM32 PWM: Break and lock configuration and some cosmetics From 19975Mateusz Szafoni. 19976- STM32 SPI. Enable separate DMA per SPI configuration From Daniel Agar. 19977- STM32 F7 FLASH: Allow programming OTP blocks through progmem 19978interface From Jussi Kivilinna. 19979- STM32 H7 I2C: Add I2C support for STM32H7. From raiden00pl. 19980- STM32 H7 RCC: Update RCC definitions, add SPI clock configuration and 19981some fixes in RCC. From raiden00pl. 19982- STM32 H7 SPI: Add basic SPI support for H7. Enable SYSCFG clock in 19983RCC. From Mateusz Szafoni. 19984 19985* STMicro STM32 Boards: 19986 19987- Nucleo-F302R8: Add support for Nucleo-F302R8 board From raiden00pl. 19988- Nucleo-F302R8: Add PWM support. From Mateusz Szafoni. 19989- Nucleo-F303ZE: Add basic support for nucleo-f303ze. From Mateusz 19990Szafoni. 19991- Nucleo-F303ZE: Support for ADC and ADC example. From Mateusz Szafoni. 19992- Nucleo-L432KC: Added support for AT45DB Serial Flash From Daniel P. 19993Carvalho. 19994- Nucleo-L432KC: Add support for the INA226. From Daniel P. Carvalho. 19995- Nucleo-H743ZI: Add NRF24L01 support. From Mateusz Szafoni. 19996- Olimex-STM32-P407: Add a HID keyboard configuration. From Gregory 19997Nutt. 19998- STM32F4-Discovery: Add MLX90614 support for the STM32F4-Discovery 19999board From Alan Carvalho de Assis. 20000- STM32F429I-DISCO: Add PWM support. From Mateusz Szafoni. 20001- STM32F429I-DISCO: Support for ADC and ADC example. From Mateusz 20002Szafoni. 20003 20004* MIPS32: 20005 20006- MIPS32 Toolchain.defs: Add toolchain flags for the pinguino toolchain 20007under Linux. From Ouss4. 20008 20009* RISC-V: 20010 20011- RISC-V GAP: This commit brings in support for the GAP8 architecture. 20012The GAP8 is a 1+8-core DSP-like RISC-V MCU. Also included is support 20013for the Gapuino GAP8 evaluation board. From hhuysqt. 20014 20015* Other Tools: 20016 20017- tools/tesbuild.sh: No longer installs and builds the NxWidgets 20018libraries. They are now a port of apps/. From Gregory Nutt. 20019 20020* Libraries/Header Files: 20021 20022- include/net and include/sys: Align the constant values with values in 20023the Linux kernel which makes targeting the usrsock server to Linux 20024kernel easier. From Xiang Xiao. 20025- include/netdb.h Add NO_ADDRESS definition From zhangyuan7. 20026- include/netinet/in.h: Adds definitions for IPPROTO_IPV6 socket 20027options to netinet/in.h. Adds missing fields to sockaddr_in6. Adds 20028struct ipv6-mreq. These changes all follow the opengroup standard for 20029netinet/in.h From Anthony Merlino. 20030- include/netinet/in.h: Add IPv4 SOL_IP socket options for symmetry 20031with IPv6 definitions added in a previous commit. Remove some 20032duplicate types from sys/sockio.h. From Gregory Nutt. 20033- include/netinet/in.h: Add other definitions required by 20034OpenGroup.org. From Gregory Nutt. 20035- include/netinet/in.h: Add Linux IP_PKTINFO and IPV6_PKTINFO 20036definitions. 20037- include/nuttx/net/ipv6ext.h: Create header file with all of the 20038definitions of IPv6 extension headers that I could find. From Gregory 20039Nutt. 20040- include/nuttx/net/mld.h: Add MLD header file based on RFC2710 and 20041RFC3810. From Gregory Nutt. 20042- include/sys/socket.h: With increased size of struct sockaddr_in6, the 20043size of struct sockaddr_storage in include/sys/socket.h must also be 20044increase so that it can contain the new, larger sockaddr_in6. From 20045Gregory Nutt. 20046 20047- libs/libc/misc: Add implementation of CRC8-CCITT. From Alan Carvalho 20048de Assis. 20049- libs/libc/modlib: Add per-module library symbol table support. From 20050nchao. 20051- libs/libc/net: Add basic implementation for recvmsg() and sendmsg() 20052per OpenGroup.org specification. From ligd. 20053- libs/libc/netdb: A few improvements to getaddrinfo: (1) Use the 20054protocol and socktype hints in returned address, (2) Ignore AI_PASSIVE 20055argument if hostname is not NULL From Anthony Merlino. 20056- libs/libc/netdb: Make DNS receive timeout configurable. From ligd. 20057- libs/libc/stdio: Eliminate recursive in conversion functions of 20058lib_vsprintf(). From Xiang Xiao. 20059- libs/libc/string: Add some new functions defined in POSIX.1-2017: 20060stpncpy(), strsignal(), psignal(), psiginfo(). From Gregory Nutt. 20061- libs/libc/string: Add memrchr() function From Xiang Xiao. 20062- libs/libc/string: Make strerror() return the string "Success" for 20063error = 0. From Petteri Aimonen. 20064 20065* Build System: 20066 20067- Makefile.unix/win: Remove deletion of Eclipse project files from make 20068distclean target. From Gregory Nutt. 20069- apps/Application.mk: Fix some build issues. (1) Unable to found 20070target 'context' when CONFIG_NSH_BUILTIN_APPS disabled. (2) Unable to 20071generate multiple programs. From Chao An. 20072- apps/Directory.mk: Fix distclean targets. Makefiles were not 20073removing generated Kconfig files. There was then no way to remove 20074this Kconfig files without manually deleting them one at a time. From 20075Gregory Nutt. 20076 20077* NSH: apps/nshlib: 20078 20079- apps/nshlib/, apps/examples/: Update to show newer file system 20080object types returned by stat(). From Gregory Nutt. 20081- apps/nshlib: Add support for the 'env' command. From Gregory 20082Nutt. 20083- apps/nshlib: Add support for NSH local variables if 20084CONFIG_NSH_VARS are set. These are like environment variables but 20085are local to NSH. The importance of this is that these variables 20086are *not* inherited when NSH creates a new task. The new command 20087'export' was added. In this case, the NSH variable will be promoted 20088to an environment variable and will then be inherited by any tasks 20089executed by NSH. From Gregory Nutt. 20090- apps/nshlib: If CONFIG_NSH_VARS=y, the NSH 'set' command with no 20091argument will list all of the local NSH variables. From Gregory 20092Nutt. 20093 20094* Examples/Tests: apps/examples: 20095 20096- apps/examples/gpio: Align with GPIO driver update From wangyanjiong. 20097- apps/examples/ina226: Added INA226 example From Daniel P. Carvalho. 20098- apps/examples/mld: Add a test of MLD. Provides a mechanism for some 20099low-level bring-up of MLD. From Gregory Nutt. 20100- apps/examples/mlx90614: Add mlx90614 test example From Alan Carvalho 20101de Assis. 20102- apps/examples/mlx90614/: Include support to change device address on 20103mlx90614 From Alan Carvalho de Assis. 20104- apps/examples/fstest: Adapt the existing fstest example for SPIFFS: 20105For SPIFFS, add garbage collection and file system integrity IOCTL 20106calls. Call statfs() and show state of file system on each loop. Add 20107logic to dump logic content of SPIFFS. Ignore EINTR errors while 20108reading or writing. Add configuration option to customize stack 20109size. Detect when the media is full and stop writing files. Report 20110total file size. From Gregory Nutt. 20111- apps/examples/tcpblaster: Add an option to use poll() to pace input 20112or output. From Gregory Nutt. 20113- apps/examples/tcpblaster: Select CONFIG_LIBC_FLOATINGPOINT 20114automatically. Units in output are wrong: Not Kbps bus Kb/Sec. From 20115Gregory Nutt. 20116- apps/examples/udpblaster: Add option to use poll() on output (only). 20117From Gregory Nutt. 20118 20119* System Utilities: apps/system 20120 20121- apps/system/ping and apps/system/ping6: Set optind to zero in the 20122error case/. Move all ping preparation work into icmp_ping. Support 20123-W <timeout> and -s <size> option. Decouple the output from ping 20124logic. From Xiang Xiao. 20125- apps/system/ping and pings and apps/netutils/ping: Extract icmp ping 20126and icmpv6 ping6 logic from system/ to C-callable library in 20127netutils/. From ligd. 20128- apps/system/progmem: Remove this utility. It makes illegal direct 20129calls into the OS. From Gregory Nutt. 20130 20131* Network Utilities: apps/netutils: 20132 20133- apps/netutils/netlib and apps/examples/igmp: Adapt to use the 20134corrected, semi-standard version of struct ip_msfilter. From Gregory 20135Nutt. 20136- apps/netutils/chat and apps/examples/chat: 'constify' chat variables 20137and parameters From Xiang Xiao. 20138 20139* Wireless Utilities: apps/wireless: 20140 20141- apps/wireless/ieee802154/i8sak: Properly shuts down event thread. 20142From Anthony Merlino. 20143- apps/wireless/ieee802154/i8sak: Fixes i8sak name. Accidentally renamed 20144to i8ask in recent changes From Anthony Merlino. 20145- apps/wireless/ieee802154/i8sak: Adds support for getting/setting 20146transmit power. From Anthony Merlino. 20147 20148* Graphic Utilities: apps/graphics: 20149 20150- apps/graphics/NxWidgets: Move the NxWidgets repository into the apps/ 20151repository. Remove old apps/NxWidgets directory. Move NxWidgets 20152files into apps/graphics/NxWidgets. Integrate configuration/build 20153system. Fix file paths in file headers. Remove some duplicate 20154tools. Add new NxWidgets Unit Test configuration and build logic. 20155From Gregory Nutt. 20156- apps/graphics/NxWidgets: Add CNxString string + operator and 20157::format() function. Add CNumericEdit option to include unit name 20158after the value. Make CNxWidget useWidgetStyle() public. From 20159Petteri Aimonen. 20160- apps/graphics/NxWidgets: Add CLabelGrid control for displaying text 20161in grid format. From Petteri Aimonen. 20162 20163Bugfixes. Only the most critical bugfixes are listed here (see the 20164ChangeLog for the complete list of bugfixes and for additional, more 20165detailed bugfix information): 20166 20167* Core OS: 20168 20169- Clock: Remove g_monotonic_basetime and g_clock_monotonic_time since 20170we don't need ensure monotonic time start from zero as state here: 20171http://pubs.opengroup.org/onlinepubs/009696899/functions/clock_getres.html 20172From Xiang Xiao. 20173- Clock: Don't call up_timer_gettime in clock_gettime() and 20174clock_systimer() to ensure the return value from them consistent with 20175clock_systimespec From Xiang Xiao. 20176- Clock Initialization: clock_inittime() needs to be done with 20177CONFIG_SCHED_TICKLESS and clock_initialize should skip 20178clock_inittime() for external RTC case since the RTC isn't ready yet. 20179From Xiang Xiao. 20180- IOBs: Work around some issues with the IOB throttle semaphore. It 20181has some odd behaviors that can cause assertions in sem_post(). Also, 20182it seems to get outside of its range occasionally. Need to REVISIT 20183this. From Gregory Nutt. 20184- IOBs: iob_navail() was returning the number of free IOB chain queue 20185entries, not the number of free IOBs. Completely misnamed. From 20186Gregory Nutt. 20187- PM: Use the start time of state btime to calculate thrcnt; remove the 20188loop whose count may be very big after the long idle From ligd. 20189- PM Uninitialization: Fix pm_domain_s.stime un-initialize caused time 20190error. From ligd. 20191- sched_kfree() and sched_ufree(): This patch prevent heap corruption 20192in a corner case where memory is freed while switching contexts. This 20193change forces all de-allocations via sched_kfree() and sched_ufree() 20194to be delayed. Eliminating the immediate de-allocation prevents the 20195problem with the the re-entrant semaphore because the deallocation 20196always occurs on the worker thread, never on the suspended task. From 20197EunBong Song. 20198- sigsuspend(): sigsuspend() shouldn't eat the pending signal but 20199dispatch all instead From Xiang Xiao. 20200- task_restart(): Was restarting tasks with all signals set in the 20201sigprocmask set. Should have restarted with the sigprocmask cleared. 20202Noted by Jeongchan Kim From Gregory Nutt. 20203- unsetenv(): Fix and error in unsetenv() when un-setting the last of 20204the environment variables. From Gregory Nutt. 20205- waitpid(): Remove a bad error check. From Gregory Nutt. 20206 20207* File System/Block and MTD Drivers: 20208 20209- FAT: Fix file data corruption in fat_truncate(). From Petteri Aimonen. 20210- Partitions: Try MTDIOC_GEOMETRY IOCTL before bops's geometry. 20211From Xiang Xiao. 20212- MTD Progmem: Change up_progmem_npages() to up_progmem_neraseblocks(). 20213page is a unit for read/write operation. eraseblock is a unit for 20214erase operation. up_progmem_npages() is a little bit confusing 20215because it returns number of erase blocks in flash memory. This patch 20216changes up_progmem_npages to up_progmem_neraseblocks. 20217up_progmem_eraseblock erase a block. so it's better to return the 20218erase block size than page size. From EunBong Song. 20219- R/W Buffer: Fix a lock issue From Xiang Xiao. 20220- SmartFS: Current sector should have a space for next entry size. If 20221not, we should move to next sector. From EunBong Song. 20222 20223* Networking/Network Drivers: 20224 20225- 6LoWPAN: Fixes bug in uncompress_addr handling of odd postfix. This 20226affected multicast compress/uncompress since it's the only logic that 20227used an odd postfix. The odd byte needs to be handled first, not 20228last. From Anthony Merlino. 20229- ARP and ICMPv6: Don't call d_txavail directly since it may point to 20230NULL From Xiang Xiao. 20231- ICMPv6: icmpv6_neighbor() shouldn't use the out of scope 20232variable(dripaddr) From Xiang Xiao. 20233- IPv6 input: Fixes logic in ipv6_input to handle more than ff02::/16 20234multicast addresses. Don't forward mcast packets if scope is not 20235appropriate From Anthony Merlino. 20236- IPv6 Input: Fix a logic error when the received IPv6 srcaddr is a 20237multicast address. Exiting logic only supported UDP multicast. But 20238MLD and certain other ICMPv6 packets also require acceptance of 20239multicast packets. From Gregory Nutt. 20240- TCP: In TCP recv window calculations, in order to receive data we 20241must not only have IOBs available, but we must also have at least one 20242IOB chain qentry available. Otherwise, we will advertise that we an 20243buffer a lot of data when, in fact, we cannot. This is an 20244experimental fix to a performance problem noted by Masayuki Ishikawa. 20245From Gregory Nutt. 20246- TCP: Fix compiler error and warning when CONFIG_NET_SENDFILE=y From 20247Xiang Xiao. 20248- TCP Input: Fix recovery when ackseq > unackseq. The comment near 20249this line says "reset the number of outstanding, unacknowledged 20250bytes". However, the code actually resets the whole TCP connection. 20251It was changed to the current form in commit f034d84ea1f with no 20252explanation of the intent. Recover the line to what it was before that 20253commit. From Sakari Kapanen. 20254- TCP Write Buffering: Fix buffer release handling on failed buffer 20255allocation. Attempt to release write buffer on failed TCP write I/O 20256buffer alloc and tryalloc failed to wrb->wb_iob assertion. From Harri 20257Luhtala 20258- TCP/UDP: In the POLLOUT poll logic, request an immediate Tx poll from 20259the network device bound to the socket. From Gregory Nutt. 20260- UDP: On a failure to find the destination device, fallback to 20261netdev_default device if the device is not found, rather than 20262arbitrary using the device at the head of the list of devices. From 20263Xiang Xiao. 20264- USRSOCK: Revert previous commit to re-allow combination of usrsock 20265and NuttX TCP/IP stack. For example, in case device has Ethernet and 20266mobile connectivity and NuttX TCP/IP stack is used when configured to 20267use Ethernet connection and usrsock when configured to use modem 20268(modem TCP/IP stack through usrsock). From Jussi Kivilinna. 20269- USRSOCK accept(): Mark newconn ready before issue accept request to 20270avoid the case that the request is discarded due to the socket being 20271in the invalid state From Xiang Xiao. 20272 20273* Wireless/Wireless Drivers: 20274 20275- Broadcom 802.11 Driver: There were two functions that have a address 20276issue. In bcmf_read_sbreg() and bcmf_write_sbreg(): 20277SBSDIO_SB_OFT_ADDR_MASK should be used before map address space. 20278Noted by Shao Li in Bitbucket issue #126. From Gregory Nutt. 20279- Broadcom 802.11 Driver: Remove incorrect OR condition. Always true. 20280Noted by Shao Li in Issue 127. From Gregory Nutt. 20281- NRF24L01: Fix compilation errors. From Mateusz Szafoni. 20282 20283* Other Common Drivers: 20284 20285- ALARM Upper Half: Fix alarm ISR error when no CONFIG_SCHED_TICKLESS 20286drivers/timers/arch_alarm.c: Use uint64_t to avoid alarm 32-bit 20287overflow. From ligd. 20288- MAX11802: Fix compilation errors and allow setting PULL and SAMPLE 20289registers. From Petteri Aimonen. 20290- S25FL1: During a MTDIOC_GEOMETRY ioctl call, the driver was 20291incorrectly reporting the blocksize to be the same as the erasesize. 20292The blocksize should be 256 (the page size). This patch fixes that, 20293and now the SmartFS configuration is working. From Ken Pettit. 20294- SYSLOG: nx_syslog's return value should include the timestamp length 20295From Xiang Xiao. 20296- SYSLOG: syslog_putc() calls sc_force in idle task even if interrupt 20297buffer enabled. The following cases may hang randomly in the bring up 20298phase: (1) boot up process and (2) suspend/resume process. Either 20299case runs in the idle task context, so it's difficult to debug the 20300hang issue if these output go through the interrupt buffer. From 20301Xiang Xiao. 20302- SYSLOG: Ensure interrupt log doesn't interlace in normal log. Don't 20303call syslog_putc in syslog_default_write because syslog_putc will try 20304to empty the interrupt buffer every time. From Xiang Xiao. 20305- UART 16550: Fix UART flow control issue. UART_MCR_RTS need be high 20306even UART_MCR_AFCE is enabled From zhangyuan7. 20307- USB RNDIS Device: Fix buffer overrun check in rndis.c. The rndis 20308driver has been working since 13 Nov 2017. However, I finally found 20309that it depends on network and buffer configurations. If a receiving 20310TCP packet is divided into smaller ones based on USB max packet size, 20311this condition check works correctly. From Masayuki Ishikawa. 20312 20313* ARMv7-A: 20314 20315- ARMv7-A: Replicate the same fix was previously committed for the 20316ARMv7-R. From Gregory Nutt. 20317 20318* ARMv7-R: 20319 20320- ARMv7-R: Fix error in cp15_flash_dcache. Change mcrne to mcr for 20321unconditional dcache. From EunBong Song. 20322 20323* ARMv7-M: 20324 20325- ARMv7-M Interrupts: Correct all ARMv7-M architectures. Interrupts 20326were not be disabled correctly on power up. Writing zero to the NVIC 20327SET-ENABLE registers has no effect. In order to disable interrupts, 20328it is necessary to write all ones to the NVIC CLEAR-ENABLE register. 20329Noted by David Sidrane. From Gregory Nutt. 20330 20331* Broadcom BCM2708 Drivers: 20332 20333- BCM2708 Serial: Juha Niskanen's fix related to STM32 20334CONFIG_SERIAL_OFLOWCONTROL also applies to cloned logic in BCM2708. 20335From Gregory Nutt. 20336 20337* Intel x86: 20338 20339- Qemu i486: Correct .bss, IDLE stack, heap organization. From Gregory 20340Nutt. 20341 20342* NXP/Freescale LPC43xx Drivers: 20343 20344- LPC43 Ethernet: Fix Ethernet TX_EN pin definitions. TX_EN on LPC43xx 20345can be routed via P0.1 and PC.4 in both MII and RMII mode. Before, 20346P0.1 was hard-coded for MII and PC.4 was hard-coded for RMII. Also, 20347the definitions used inconsistent naming (TXEN vs. TX_EN). From Jakob 20348Haufe. 20349- LPC43 Serial: Fix copy-paste error: g_usart1port->g_uart1port. From 20350Dave Marples. 20351- LPC43 SDMMC: Fix the LPC43 family SDMMC card access: Clocks were 20352wrongly configured, way too fast because there is no primary divider 20353on LPC4330, the LPC43_SDMMC_DELAY register was not being set, the 20354LPC43_SDMMC_BLKSIZ and LPC43_SDMMC_BYTECNT registers had the wrong 20355values. From Dave Marples. 20356- LPC43 SDMMC: Corrected a problem in lpc43_dmasendsetup(). There was 20357no linked DMA descriptor code on the send side. The end result was 20358stalls while sending multiple sectors. This commit adds that in and 20359the send code is working much better. From Dave Marples. 20360- LPC43 SDMMC: With these changes the SDMMC card for LPC43 is now 20361working properly: Timing was dependent on CPU speed rather than 20362absolute time, end of transfer handling was a bit mixed up. It is 20363possible for data to still be in the FIFO (i.e. not have reached the 20364card) when a next write is requested, so we need to wait for that to 20365complete. Interrupt Status could be carried over from one transfer 20366episode to the next, corrupting progress. Multi-descriptor DMA 20367writing simply wasn't implemented. From Dave Marples. 20368 20369* NXP/Freescale LPC43xx Boards: 20370 20371- Bambino-200E: Correct calculation of SDMMC clock configuration. The 20372LPC43 has no SDMMC source clock divider. Error noted by Dave 20373Marples. From Gregory Nutt. 20374 20375* NXP/Freescale Kinetis: 20376 20377- Kinetis: Remove all attempts to reprioritize interrupts. From Gregory 20378Nutt. 20379 20380* NXP/Freescale Kinetis Drivers: 20381 20382- Kinetis I2C: I2C On failed reset re-initialization I2C and clocking. 20383If a reset fails, we still must reinitializes the I2C block so that 20384subsequent transfers will not cause a hard-fault due to the clock 20385being off. If that transfer fails it can try to reset again. From 20386David Sidrane. 20387- Kinetis Serial: Juha Niskanen's fix related to STM32 20388CONFIG_SERIAL_OFLOWCONTROL also applies to cloned logic in Kinetis. 20389From Gregory Nutt. 20390 20391* NXP i.MXRT Drivers: 20392 20393- i.MXRT Ethernet: The board would not come up if I ran NuttX from cold. 20394I dumped the PHY registers to see what the differences were and the 20395PHY was coming up in NANDTree mode. This is a mode for testing 20396connectivity between the PHY and the MAC. Switching this mode off in 20397the PHY registers has fixed the problem. From Dave Marples. 20398- i.MXRT Ethernet: Fix a race condition in setting up the Ethernet Tx 20399transfer. From Dave Marples. 20400- i.MXRT Ethernet: Corrections for the i.MXRT Ethernet: (1) Now the 20401Ethernet is completely re-initialized when an error occurs by means of 20402taking the interface down and back up but the PHY is _not_ 20403renegotiated for that case because that is very time consuming and an 20404error in the Ethernet is no reflection on the state of the PHY 20405anyway. (2) Explicitly sets the expected PHY address to zero (this 20406could be moved into the config rather than searching for it which 20407takes ages, and it's zero anyway for this board (that's the broadcast 20408address, and anything that cannot respond on that has multiple PHYs, 20409so that would be a new board). (3) Allows for the renegotiation of 20410the PHY to be optional when a reset is needed. If a non-renegotiated 20411reset doesn't result in good comms to the PHY then it'll automatically 20412be escalated to a renegotiated one. (4) Only performs a reset for 20413errors that need it (the CRITICAL_ERROR define). The list of errors 20414that need reset are somewhat arbitrarily chosen based on my prejudices 20415and might need to be revisited, but certainly the jabber errors don't 20416need reset, the partial packet is thrown away by the layer above 20417anyway. (5) Re-loads the multicast table on reset. (6) Adds a bit 20418more logging into the imxrt Ethernet module. From Dave Marples. 20419- i.MXRT LPI2C: Fixes 2 bugs in the for IMXRT1050: (1) I2C time out and 20420did not send STOP condition when sending single byte, (2) I2C could 20421not receive bytes after repeated start. From Ivan Ucherdzhiev. 20422- i.MXRT LPSRTC: SVNC LPCR register bits 0 & 1 are NOT reserved and 20423are, in fact, needed to enabled the SRTC. Now the SRTC is working. 20424From Ivan Ucherdzhiev. 20425- LPC54 SDMMC: Add support for and SDMMC errata. It appears that now I 20426can read the SD card successfully, but I get CRC errors when writing 20427to the card. From Gregory Nutt. 20428- LPC54 SDMMC: Ported Dave Marples fixes LPC43 SDMMC to the LPC54. 20429From Gregory Nutt. 20430- i.MXRT WDOG: Typos in bit definitions, wdog registers are 16 bits, 20431wdog update has to be within 255 clocks of unlock, define board 20432clocking based on divisor and muxes. From David Sidrane. 20433 20434* NXP i.MXRT: 20435 20436- i.MXRT: clockconfig bug fix: Fixed logic that was not clearing bits 20437as ~ was missing in &= mask operations. Use values from the board.h 20438file so set the Mux that selects the clock sources. Use board 20439defined PODF values to select clock. Only configure USDHC2 clocks 20440when board defines clocks. From David Sidrane. 20441 20442* NXP i.MXRT Boards: 20443 20444- IMXRT1050-EVK: Previous committed implemented SPI-based MMC/SD card 20445support conditioned on CONFIG_MMCSD. This interferes with the 20446implementation of MMC/SD card support using the SDIO-based 20447peripheral. This commit renames that atypical support to *mmcsd_spi* 20448and conditions using the SPI-based support on CONFIG_MMCSD_SPI which 20449will then not interfere with the MMC/SD support that can be 20450conditioned on CONFIG_MMCSD_SDIO. From Gregory Nutt. 20451 20452* On Semi LC823450 Boards: 20453 20454- LC823450: Fix up_allocate_heap() in lc823450_allocateheap2.c. For 20455lc823450, heap area in flat build mode must start just after 20456_eronly. Because bss/data area is allocated in lower address than 20457text area in SRAM. See ld.scripts for details. Also, this change 20458removes unused up_allocateheap.c From Masayuki Ishikawa. 20459 20460* Silicon Labs EFM32 Drivers: 20461 20462- EFM32 Serial: Juha Niskanen's fix related to STM32 20463CONFIG_SERIAL_OFLOWCONTROL also applies to cloned logic in EFM32. 20464From Gregory Nutt. 20465- EFM32 USB Device: The epin_configure() function used the same eptype 20466as the TxFIFO number for all endpoints. This should probably be the 20467physical EP number, not the EP type. Suggested by Key Two. From 20468Gregory Nutt. 20469 20470* STMicro STM32 Drivers: 20471 20472- STM32* SPI: Don't rely on SPI_CR1_SPE to determine if peripheral has 20473been initialized. This change is needed specifically for the case 20474where a boot loader sets the SPE bit before starting NuttX. In that 20475case, the test in the SPI driver is wrong. This change fixes that by 20476assuring that NuttX has booted and initialized at least once (whether 20477or not SPE is set) before the driver starts refusing to initialize. 20478From Anthony Merlino. 20479- STM32 F0, F7, H7, L4 Serial: Fix use of CONFIG_SERIAL_IFLOWCONTROL 20480where CONFIG_SERIAL_OFLOWCONTROL was intended. From Juha Niskanen. 20481- STM32 TIM: Don't use hard-coded UIF interrupt in some functions. 20482From raiden00pl. 20483- STM32 (FS/HS), STM32F7, and STM32L4 OTGFS/HS Device: The 20484epin_configure() function used the same eptype as the TxFIFO number 20485for all endpoints. This should probably be the physical EP number, 20486not the EP type. Suggested by Key Two. From Gregory Nutt. 20487- STM32 F2: Fixes Kconfig options to include all STM32F20XX processors, 20488not just STM32F207. Also removes redundant STM32_STM32F429 depends 20489from Kconfig. STM32F4XXX already does this. From Anthony Merlino. 20490- STM32 F4 DAC: STM32F407VG has only one DAC. NDAC=2 causes 20491compilation error when trying to use e.g. STM32_DAC1_CR macro. From 20492Petteri Aimonen. 20493- STM32 F7 Serial: Force invalidation of data cache after DMA re-enable 20494when returning from low-power mode From Juha Niskanen. 20495 20496* STMicro STM32 Boards: 20497 20498- B-L475E-IOT01A: Correct timer source clock frequencies. From Freemans 20499Goden. 20500- Nucleo-L432KC: Fix SPI pin definitions in board.h. From Daniel P. 20501Carvalho. 20502 20503* MIPS32: 20504 20505- CP0 Definitions: Fix some copy-paste errors that cause malformed 20506comments and syntax errors when certain CP0 CONFIG1 bits are 20507referenced. Note in Issue 123 by Anonymous. From Gregory Nutt. 20508- microMIPS: Reported by Anonymous in Bitbucket Issue #129: When MIPS 20509port is built for microMIPS and then loaded as an application, the 20510__start entry point is entered in microMIPS mode, but the CPU core 20511initialization code there misses to set the config3ISAOnExc bit to 1. 20512Subsequently, exceptions are entered in MIPS32 mode, but the code base 20513was built for microMIPS. 20514 20515* Microchip PIC32MZ: 20516 20517- PIC32MZ Startup: In pic32mz-head.S, initialize the global pointer in 20518all shadow sets. From Ouss4. 20519 20520* Microchip PIC32MZ Drivers: 20521 20522- PIC32MZ Serial: Fix a typo in assignment of TTYS0 to UART6 From Ouss4. 20523 20524* Simulation: 20525 20526- SIM Network Driver: Fix error 'invalid operands to binary &' From 20527Xiang Xiao. 20528 20529* C Library/Header Files: 20530 20531- Fix typographical error in endian.h and resource.h From anchao. 20532- include/net/if.h: Adds extern "C" guard in include/net/if.h From 20533Anthony Merlino. 20534- include/netinet/in.h: Per OpenGroup.org, type of sin_port in struct 20535sockaddr_in must be in_port_t vs uint16_t. NOTE: in_port_t is 20536typdef'ed as uint16_t anyway. From Gregory Nutt. 20537- include/nuttx: Fix definitions used to access OS functions within the 20538libraries. In the FLAT build, we must always set the errno and/or 20539create cancellation points because the same library functions are used 20540within the OS as are used by applications. This could cause issues 20541for the OS but corrects some problems at the user interface. Noted by 20542Federico Braghiroli in Bitbucket issue 121. From Gregory Nutt. 20543- include/nuttx/clock.h: Fix uptime wrong if DEBUG_FEATURES and 20544SCHED_TICKLESS enabled. From Xiang Xiao. 20545- include/nuttx/fs/fs.h: Fix some backward parameters in a new macro 20546definition. From Gregory Nutt. 20547- include/nuttx/fs/fs.h: Register_mtddriver should depend on CONFIG_MTD 20548not CONFIG_MTD_PARTITION From Xiang Xiao. 20549- include/sys/socket.h: Renumber the socket types. They must begin at 205501, not zero. Socket type zero has a special meaning for some 20551interfaces. For example, getaddrinfo() uses a socket type of zero to 20552many any type of socket. The is no standard name for the 20553any-type-socket, but macOS uses SOCK_UNSPEC. NuttX will do the same. 20554Issue noted by Anthony Merlino. From Gregory Nutt. 20555 20556- libs/libc: Correct some errors in psignal() and stpncpy(). From 20557Lokesh B V. 20558- libs/libc/math: Add variable convergence in log() and logf() to avoid 20559hangs caused by failure to converge for very specific input values. 20560Also includes a small change to log() and logf() that improves 20561accuracy and convergence time. From Rajan Gill. 20562- libs/libc/stdio: Fix conversion for format specifiers in sscanf() that 20563appear right after a floating point format specifier. When 20564performing a floating point conversion the parsing code could consume 20565more than required characters from the input buffer. This made 20566impossible to convert input of form "1.1K" using format "%f%c". Fix 20567the issue by advancing the input buffer with the actual characters 20568converted as a float point number. From Mihai Serban. 20569- libs/libc/stdio: Remove CONFIG_NOPRINTF_FIELDWIDTH. That option 20570does, indeed, make the printf family of functions much smaller. But 20571it also adds a lot of complexity and makes the functions 20572non-standard. Removing this might break some of the tinier platforms 20573but it is the best thing to do for long term maintenance for for 20574OpenGroup.org compliance. 20575- libs/libc/stdio: Update to vsprintf(). This resolves the integer 20576field width problem if Issue 35 for the cases of integer, long and 20577long long integer types. The output now matches the output form 20578glibc. From Gregory Nutt. 20579- libs/libc/string: Correct the return pointer value from stpncpy() for 20580the case where the NUL terminator is transferred. From Gregory Nutt. 20581- libs/libc/string: Fix strrchr() so that it considers null terminator 20582as part of string. From Petteri Aimonen. 20583- libs/libc/wqueue: Eliminate a race condition noted by Xiang Xiao. 20584Use sigprocmask() so that we do not lose a signal. From Gregory Nutt. 20585- libs/libnx/nxfonts: Fix kerning of 'I' in Sans17x22 font. From 20586Petteri Aimonen. 20587- libs/libnx/nxfonts: In nxfonts_getfont(), avoid unnecessary warnings 20588for other whitespace chars also. From Petteri Aimonen. 20589- libs/libnx/mxmu: NXMU now re-validates window pointer for mouse 20590events. NXMU caches the previous window pointer so that further mouse 20591events can be sent to the same window. However, if the window is 20592destroyed while mouse button is held down, the pointer may become 20593invalid and cause a crash. This patch revalidates the pointer before 20594using it. From Petteri Aimonen. 20595- libs/libnx/nxtk: nxtk_bitmapwindow: Fix warning message when bitmap is 20596fully off-screen. From Petteri Aimonen. 20597 20598* Build System: 20599 20600- Fix issue with libcxx build. This was changed multiple times, but 20601should be fixed now. From Anthony Merlino. 20602- configs/Makefile and tools/Config.mk: Move single file copy to the 20603new function COPYFILE. This fixes the Windows native build case when 20604there is no cp or cp does not recognize Windows paths. From Anatol 20605Ivanov. 20606- tools/Config.mk and tools/Makefile.win: Force use 'cmd' for shell 20607with windows native build From Anatol Ivanov. 20608- tools/Directories.mk: Correct the path to the installed libcxx 20609directory. From Gregory Nutt. 20610- tools/Makefile.win/unix: Staging directory (and its libraries) should 20611be removed on 'make clean' (issue noted by Dave Marples). From 20612Gregory Nutt. 20613 20614- apps/Directory.mk: If the current directory contains a Kconfig file 20615and MENUDESC is not defined, then Directory.mk must not trash the 20616Kconfig in the current directory. From Gregory Nutt. 20617- apps/Makefile: Fix Windows native build patch extension. From Anatol 20618Ivanov. 20619 20620* Other Tools: 20621 20622- tools/Config.mk: Fix an error in RWILDCARD implementation From 20623Anthony Merlino. 20624- tools/configure.c: Add missing '\n' in printf statement 20625- tools/configure.c: Add missed -g option to getopt() string. From 20626Anatol Ivanov. 20627- tools/configure.c and tools/configure.sh: Fix Windows native 20628pre-build kconfig-conf incompatibility. From Anatol Ivanov. 20629- tools/csvparser.h: Extend MAX_PARMSIZE to 256. Fixes this issue: 2063070: Parameter too long: ... From Xiang Xiao. 20631- tools/link.bat: Fix .fakelink creation. From Anatol Ivanov. 20632- tools/mkdeps.c: Fix '\0' missing with MinGW. From Anatol Ivanov. 20633 20634* NSH Library: apps/nshlib: 20635 20636- apps/nshlib: Correct maximum number of arguments that can be provided 20637to the mksmartfs command. From Eunbong Song. 20638- apps/nshlib: Add fflush to nsh_consolewrite(). This resolves this 20639problem: 'cat /dev/ttyCP &' followed by 'echo ls >/dev/ttyCP'. In 20640that case we can't get the 'ls' result immediately, because 'cat' cmd 20641uses nsh_consolewrite() and that uses fwrite with no fflush. We can 20642get the 'ls' result after type '\n', because nsh will fflush output 20643when get '\n'. From ligd. 20644- apps/nshlib: nsh_catfile() should not append '\n' if the last char in 20645file is already '\n' From Xiang Xiao. 20646- apps/nshlib: Fix warning g_oldpwd defined but not used 20647[-Wunused-const-variable] in nsh_envcmds.c. From Xiang Xiao. 20648 20649* Examples/Tests: apps/examples: 20650 20651- apps/examples/adc/Kconfig: CONFIG_BOARDCTL_ADCTEST does not exist 20652anymore and should removed as a dependency. From Eunbong Song. 20653- apps/examples/webserver/Kconfig: The webserver "app" allows for DHCP 20654client to be enabled. However, the Kconfig infrastructure does not 20655contain EXAMPLES_WEBSERVER_DHCPC config. Based on patch from 20656"Anonymous" attached to Bitbucket Issue #130. From Gregory Nutt. 20657 20658* System Utilities: apps/system: 20659 20660- apps/system/hexed: Fix memory leak From zhuyanlin. 20661- apps/system/i2c: Fix i2c_msg freq initialization problem. Typo 20662prevented I2C frequency initialization in a struct i2c_msg. From 20663dongjiuzhu. 20664- apps/system/system: Fix warning when passing argument 6 of 20665'task_spawn' from incompatible pointer type 20666[-Wincompatible-pointer-types] From Xiang Xiao. 20667 20668* Network Utilities: apps/netutils: 20669 20670- Correct some network-related configuration variable names. All *_MTU 20671defines were changes to *_PKTSIZE gut that was not reflected in 20672apps/ From Gregory Nutt. 20673- apps/netutils/netlib/netlib_parsehttpurl.c: Correct handling of long 20674URLs as noted in Bitbucket issue #119 (in the nuttx/ repository, not 20675the apps/ repository). From Gregory Nutt. 20676- apps/netutils/codecs: "dst" overflow protection when base64 string 20677ends with "=" From Aleksandr Vyhovanec. 20678- apps/include/netutils/ipmsfilter.h: Eliminate error generated by bad 20679pre-processor logic. From Gregory Nutt. 20680 20681* GPS Utilities: apps/graphics: 20682 20683- apps/graphics/NxWidgets: Fix garbage returned when 20684CCycleButton::getValue() is called after removeAllOptions(). 20685CScrollingPanel should not draw outside the widget area. From 20686Petteri Aimonen. 20687 20688NuttX-7.28 Release Notes 20689------------------------ 20690 20691The 128th release of NuttX, Version 7.28, was made on January 19, 2019, 20692and is available for download from the Bitbucket.org website. Note 20693that release consists of two tarballs: nuttx-7.28.tar.gz and 20694apps-7.28.tar.gz. These are available from: 20695 20696https://bitbucket.org/nuttx/nuttx/downloads 20697https://bitbucket.org/nuttx/apps/downloads 20698 20699Both may be needed (see the top-level nuttx/README.txt file for build 20700information). 20701 20702Additional new features and extended functionality: 20703 20704* Core OS: 20705 20706- Critical Section Monitor: Adds data collection logic in support of 20707pre-task monitoring critical sections and pre-emption state. From Gregory 20708Nutt 20709- Critical Section Monitor: Add support for global pre-emption and 20710global critical sections to monitor as suggested by Xiang Xaio. From 20711Gregory Nutt 20712- Interrupt Time: Measurement of interrupt handler duration used to 20713be available only in Tickless mode since it used the high resolution 20714Tickless timer to measure interrupt time. This change adds 20715CONFIG_SCHED_IRQMONITOR_GETTIME which, if enabled, will force the 20716interrupt duration calculation to use the same high-resolution, 20717platform-specific timer as is used with the Critical Section Monitor. 20718This leads to two improvements: (1) You can now measure interrupt 20719duration in non-Tickless mode, and (2) in either mode, the interrupt 20720duration and the critical section measures will use the same 20721high-resolution timer and should, therefore, never be any discrepancy 20722due to different clock sources. From Gregory Nutt 20723- Context Switching Protection: Add debug assertions before each call 20724to up_block_task() to assure that there is no attempt to block an 20725IDLE task. From Dave Marples 20726- init Task: Allow the init task priority to be configurable. From 20727David Sidrane 20728- pthreads: Implement pthread_key_delete(). This involves some minor 20729changes to the group data structure. From Gregory Nutt 20730 20731* File Systems/Block and MTD Drivers 20732 20733- ProcFS: Extended the process ID ProcFS output to show per-thread 20734maximum time for pre-emption disabled and maximum time within a 20735critical section. From Gregory Nutt 20736- NXFFS: Pass unrecognized IOCTL commands to the contained MTD 20737driver. From Daniel P. Carvalho 20738- LittleFS: Adds an initial port the ARM mbed littlefs to NuttX. This does 20739not include FLASH formatting utilities. Depends on CONFIG_MTD_BYTE_WRITE. 20740From lihaichen 20741- AT25 MTD Driver: Added support for AT25DF081A serial flash chip. 20742From Marc Rosen 20743- MTD Configdata Device: Extends the MTD configdata device with the 20744following features / additions: 207451. Configurable option to use named config items instead of enumerated 20746ID/Instance numbers. 207472. Ability to iterate through the existing configdata items in the 20748/dev/config device. 207493. Ability to "unset" a configdata item. 207504. Ability to perform "flash_eraseall" on the /dev/config device. 20751From Ken Pettit 20752 20753* Networking/Network Drivers: 20754 20755- Telnet Driver: Add NAWS and poll interface to telnet for screen size 20756negotiation used with termcurses. From Ken Pettit 20757 20758* Wireless/Wireless Drivers: 20759 20760- BLE HIC Core: Add second RX work function From Lwazi Dube 20761- BLE IOCTL Commands: Add SIOCBTCONNECT and SIOCBTDISCONNECT ioctl 20762commands From Lwazi Dube 20763- CC2564: Add cc2564 HCI UART driver. From Lwazi Dube 20764 20765* Graphics/Display Drivers: 20766 20767- Sitronix ST7032i: Add support to Alphanumeric Sitronix ST7032i 20768display From Alan Carvalho de Assis 20769- NXP TDA19988: This commit brings in a complete, but untested, 20770implementation of a driver for the TI TDA19988 HDMI Encoder. This encoder 20771is used on the Beaglebone Black board. Since this driver is untested, it 20772requires CONFIG_EXPERIMENTAL in the configuration. From Gregory Nutt 20773 20774* Crypto: 20775 20776- crypto/aes.c: This change provides an improved AES cipher API in 20777addition to the existing routines. The reasons for this new API are: 207781) better performance, giving the possibility to avoid re-setting-up 20779the key for each AES block when the same key is used multiple times. 20780This is important for the current single user of AES, which is 20781related to storage and FTL. And 2) suitable for simultaneous use of 20782multiple AES keys, which will be required by the upcoming crypto 20783framework. It retains compatibility with the previous API, so there 20784is no need to change anything else right now. From Sebastien Lorquet 20785 20786* Other Common Device Drivers: 20787 20788- MMCSD SDIO: The mmcsd_sdio driver makes calls for dcache 20789invalidation through the chip specific architecture function 20790SDIO_DMARECVSETUP(). I changed the arch/arm/stm32f7 chips to use 20791arch_invalidate_dcache_by_addr() instead of arch_invalidate_dcache(). 20792 20793This commit includes additional changes to mmcsd_sdio.c. I 20794created SDIO_DMADELYDINVLDT() (DMA delayed invalidate) to 20795invalidate store-into mode dcaches after the DMA transfer. I 20796have been using SDIO_DMADELYDINVLDT() for several weeks now and 20797it has fixed the problems that I previously reported regarding 20798non-cache aligned buffer invalidation errors (for my store-through 20799dcache). However, it does not permit use of unaligned DMA buffers 20800for store-into mode dcaches. 20801 20802SDIO_DMADELYDINVLDT() is a NoOp unless the chip specific Kconfig 20803file selects CONFIG_ARCH_HAVE_SDIO_DELAYED_INVLDT. I have modified 20804all the stm32f7 chips to select it. From Bob Feretich 20805- SPI Lower Half Interface: Extend the HW features supported by SPI. 20806It now supports a deferred DMA trigger hardware configuration. From 20807Dave Marples 20808- DS28E17 1-Wire Driver: Optimize I2C write followed by read to same 20809address. From Juha Niskanen 20810- LMP92001: Add support for the TI LMP92001 Multi-channle DAC/ADC 20811device. From Abdelatif Guettouche. 20812- EEPROM Character Driver: Add support to Microchip AT24CM02 From 20813Alan Carvalho de Assis 20814- Microchip MCP73871: Add support to Microchip MPC73871 Battery Charger. 20815From Alan Carvalho de Assis 20816- MCP7941x: Add support for the Microchip MCP741x external RTC. From Ouss4 20817- Sensirion SCD30: Driver for Sensirion SCD30 CO2 sensor. From Jussi 20818Kivilinna 20819- Sensirion SGP30: Driver for Sensirion SCD30 gas sensor. From Jussi 20820Kivilinna 20821- Sensirion SPS30: Driver for Sensirion SCD30 particulate matter sensor. 20822From Jussi Kivilinna 20823- USB CDC/ACM Device: When implemented usb cdc on nrf52840, I found 20824some issues with cdc driver: 208251. Lost data when receiving buffer is full; 208262. Low-water mask implement issue; 208273. Re-flush cdc buffer when enabling 208284. Serial dma is conflict with cdc , modify the serial.h 20829From Levin Li 20830 20831* MIPS32: 20832 20833- Configuration System: Allow Penguino for windows for the Windows 20834Ubuntu platform as well. 20835 20836* Maxim Integrated MAX326xx 20837 20838- MAX32660: Support for the MAX32660 was added (along with partial 20839support for other members of the MAX326xx family). The initial port 20840includes Clock configuration, timer, GPIO pin configuration, ICC, 20841and UART. Additional untested drivers are complete and ready for 20842testing: DMA, GPIO interrupts, SPI0 Master, TC, WDT. The following 20843drivers are not yet implemented: I2C and I2S. 20844 20845* Maxim Integrated MAX326xx boards 20846 20847- MAX32550-EVSYS: Basic support for the Maxim Integrated MAC3X660 20848EVSYS is included. A basic NSH configuration is available and is 20849fully functional. Includes unverified support for an SPI0-based 20850SD card. 20851 20852* Microchip/Atmel SAMD21/L21 Drivers: 20853 20854- SAMD21/L21: Adds a complete ADC header file for SAMD21 and a partially 20855complete ADC header file for the SAML21. From Alexander Vasiliev 20856- SAMD21/L21: Export sam_i2c_master_initialize(int bus) to be used by 20857board config. From Alan Carvalho de Assis 20858 20859* Microchip PIC32MZ Drivers: 20860 20861- PIC32MZ I2C: Add support for the I2C bus. From Ouss4 20862 20863* ARMv7-A 20864 20865- ARMv7-A MMU: Use TLBIMVA vs TLBIMVAAIS to invalidate the Cortex-A8 20866cache. From Petro Karashchenko 20867 20868* ARMv7-M 20869 20870- Cortex-M7 Cache: This commit adds a new function 20871arch_invalidate_dcache_by_addr(). It takes the same parameters as 20872arch_invalidate_dcache(), but performs invalidation of only the lines 20873in cache that need to be invalidated. This new function could be 20874used as a a direct replacement for arch_invalidate_dcache(). From 20875Bob Feretich 20876- ARMv7-M: In the current implementation we only use very high 20877priority interrupts (levels 0, 0x10 and 0x20 in CORTEX-M speak) but 20878that means there are loads of lower priority ones that are 20879effectively unused. I have *not* changed the semantics of these 20880levels but have 'shifted' them to be based around the midpoint of the 20881available interrupts (0x80) rather than at the top end....that allows 20882for interrupts to be defined above (or, indeed, below) them as needed 20883by the application. This should have no functional effect on 20884existing code but adds in a clean capability to define higher 20885priority interrupts. From Dave Marples 20886 20887* Broadcom BCM2708: 20888 20889- BCM2708: Remove all support for the BCM2708/2835. This was added 20890only for support of the RaspberryPi Zero board which was previously 20891removed. The support was minimal and unverified. The removed files 20892can still be found in the Obsoleted directory. From Gregory Nutt 20893 20894* Broadcom BCM2708 Boards: 20895 20896- Raspberry Pi Zero: Remove the partial support for the Raspberry Pi 20897Zero. This port was started with the best of intentions but was 20898never completed. The board support can still be found in the 20899Obsoleted repository. From Gregory Nutt 20900 20901* Nordic NRF52 Boards: 20902 20903- Improve LED handling #if~#endif in nrf52_autoleds.c and 20904nrf52_userleds.c 20905Add Adafruit Feather nRF52 board LED support 20906Add Adafruit Feather nRF52 board 20907Add nrf52-generic 20908Replace 'pca10040' with 'generic' 20909Copy from nrf52-pca10040 to nrf52-generic 20910From Zou Hanya 20911 20912* NXP i.MX RT Drivers: 20913 20914- i.MXRT: Add PIT, GPT, and QIMER(TMR) header files From David Sidrane 20915- i.MXRT: Add FLEXPWM. From David Sidrane 20916- i.MXRT: Add ADC chip header From David Sidrane 20917- i.MXRT Build: Include up_systemreset and up_stackcheck.c From David Sidrane 20918- i.MXRT GPIO: Add GPIO Support Input daisy selection. From David Sidrane 20919- i.MXRT Serial: Support independent input and output flow control. From 20920David Sidrane 20921- i.MXRT USB: Use single define for USB pin definitions. From David Sidrane 20922- IMXRT106X: Add FLEXCAN3 to pinmux header file. From David Sidrane 20923 20924* NXP Freescale i.MX RT Boards: 20925 20926- IMXRT1050-EVK: GPIO device driver support added and tested by 20927Pavlina Koleva and Ivan Ucherdzhiev. From Pavlina Koleva 20928 20929* On Semi LPC23450: 20930 20931- LPC23450: Add support for SPI flash boot. Also, remove unnecessary 20932code for the SPI flash boot. From Masayuki Ishikawa 20933 20934* On Semi LPC23450 Boards: 20935 20936- LC823450-XGEVK: Add linker script for SPI flash boot. From 20937Masayuki Ishikawa 20938- LC823450-XGEVK: Enable NFS client for RNDIS configuration. Also, some 20939stack size were adjusted to work with NFS From Masayuki Ishikawa 20940 20941* Simulation 20942 20943- Critical Section Monitor: Add low level timer support for simulation. From 20944Gregory Nutt 20945 20946* STMicro STM32: 20947 20948- Configuration: Simplify ARM core selection logic From Mateusz Szafoni 20949- Configuration: USB Host is an option. From David Sidrane 20950- STM32 L0: Brings in initial support for the STM23 L0. From Mateusz 20951Szafoni 20952 20953* STMicro STM32 Drivers: 20954 20955- STM32 ADC: Configurable ADC DMA mode (one shot mode, circular 20956mode). From Mateusz Szafoni 20957- STM32 ADC: Start conversion on startup is now possible if TIM 20958triggering selected. This can be useful to start ADC TIM conversion 20959for ADC IPv2 when opening ADC device. 20960- STM32 DAC: Unified naming for DAC interfaces From Mateusz Szafoni 20961- STM32 DMA: Add interfaces to interact with high priority DMA 20962interrupts. From Mateusz Szafoni 20963- STM32 DMA: Use STM32 DMA IP core version instead of chip family 20964names. From Mateusz Szafoni 20965- STM32 DMA: Add support for DMA v1 CSELR support. From Mateusz Szafoni 20966- STM32 HRTIM: Do not enable timers on startup if option from Kconfig 20967selected and add interface to enable/disable timers. From Mateusz 20968Szafoni 20969- STM32 PWM: Add timer enable/disable and frequency update to 20970low-level ops. From Mateusz Szafoni 20971- STM32 SPI: Implements the new deferred DMA trigger feature. From 20972Dave Marples 20973- STM32 F0 Build: Rename the stm32f0 directory to stm32f0l0 to make a 20974space for STM32 L0. Rename files, functions and defines, removing 20975the f0_ from the names in order to make them MCU agnostic. From 20976Gregory Nutt 20977- STM32 F0 GPIO: Add support for GPIO EXTI. From Mateusz Sfafoni 20978- STM32 F2 FLASH: stm32_flash_writeprotect() supported the same for 20979STM32F20XX as STM32F4XXX From Anthony Merlino 20980- STM34 F7 DMA: stm32f7 enable separate DMA per SPI configuration 20981From Daniel Agar 20982- STM32 F7 QEncoder: Ported the QEncoder from F4 to F7. From Eduard 20983Niesner 20984- STM32 F7 SPI: Port Dave Marples STM32 deferred trigger enhancement 20985to the STM32 F7 SPI drivers. From Gregory Nutt 20986- STM32 H7 SPI: Port Dave Marples STM32 deferred trigger enhancement 20987to the STM32 H7 SPI drivers. From Gregory Nutt 20988- STM32 L4 SPI: Port Dave Marples STM32 deferred trigger enhancement 20989to the STM32 L4 SPI drivers. From Gregory Nutt 20990 20991* STMicro STM32 Boards: 20992 20993- B-L072Z-LRWAN1: Add basic support for b-l072z-lrwan1. Nucleo boards 20994use as default ST LINK MCO as clock input from MCU and for this 20995HSEBYP must be enabled. From Mateusz Szafoni 20996- Nucleo-F103RB: Add board support. From Mateusz Szafoni 20997- Nucleo-F103RB: Add ADC and PWM examples. From Mateusz Szafoni 20998- Nucleo-F207ZG: Add board support. From Mateusz Szafoni 20999- Nucleo-F207ZG: Add ADC and PWM examples. From Mateusz Szafoni 21000- Nucleo-F302R8: Add high priority ADC interrupts example to the 21001'highpri' configuration. From Mateusz Szafoni 21002- Nucleo-F334R8: Add support for ADC injected sequence to the 'highpri' 21003configuration, add triggering from TIM1. From Mateusz Szafoni 21004- Nucleo-F334R8: Add example for the SPWM generation (custom STM32 PWM 21005usage). From Mateusz Szafoni 21006- Nucleo-F767ZI: Use on board USB UART as default console. Board is powered 21007by USB which can be used as UART link for upload and console. Previously 21008it was set to use Arduino shield which developer may not have. From Phil 21009Coval 21010- Nucleo-F767ZI: Add ethernet config based on nsh configuration plus 21011stm32f769i-disco/nsh-ethernet. From Phil Coval 21012- Nucleo-L073RZ: Add basic support for nucleo-l073rz. Nucleo boards 21013use as default ST LINK MCO as clock input from MCU and for this 21014HSEBYP must be enabled. From Mateusz Szafoni 21015- Nucleo-L152RE: Add board support. From Mateusz Szafoni 21016- STM32F4 Discovery: Add timing support for the critical section 21017monitor using the DWT CYCNT register. From Gregory Nutt 21018- STM32F4 Discovery: If the Critical Section Monitor, modify the 21019ITM_LAR register to assure that the DWT cycle counter is enabled. 21020Suggested by Dave Marples. From Gregory Nutt 21021- STM32F4 Discovery: Add board support to display ST7032i From Alan 21022Carvalho de Assis 21023- STM32F4 Discovery: Add loadable application build support in 21024Make.defs From Masayuki Ishikawa 21025- STM32F4 Discovery: Update RNDIS configuration: (1) Add NFS and adjusted 21026stack size for usermain and telnetd client. (2) Add support for loadable 21027application and ping. From Masayuki Ishikawa 21028- STM32F4 Discovery: Update nsh configuration: (1) Add 21029CONFIG_BOARD_INITIALIZE=y, (2) Add CONFIG_EXAMPLES_HELLO=y. From Masayuki 21030Ishikawa 21031- STM32F429I-DISCO: Add high priority ADC interrupts example to the 21032'highpri' configuration. From Mateusz Szafoni 21033- configs/nucleo-l073rz: Support for nrf24l01. From Mateusz Sfafoni 21034 21035* TI CCxx: 21036 21037- CC13x0 family and CC13x2/CC26x2: Basic, minimal support was added 21038for these two chip families. This is a Work-In-Progress: There is 21039just enough logic in place to support a simple NSH configuration. 21040However, the port is still missing certain, necessary hooks into the 21041TI ROM-based 'DriverLib'. As a result, the support is not fully code 21042complete and is totally untested. Support for the CC26x2, which is 21043nearly identical to the CC13x2 is fragmentary. Stay tuned. 21044Hopefully full support will be available in NuttX 7.29. 21045 21046* TI CCxx Boards: 21047 21048- LAUNCHL-CC1312R1: Board support is available for the TI 21049LAUNCHL-CC1312R1. That board support consists only of an unverified 21050NSH configuration. The primary purpose of this port for the time 21051being is simply support the core architecture bring-up. 21052 21053* TI AM335x: 21054 21055- AM335x: Adds initial support for the TI AM355x family. 21056- AM335x: Add minimal wdog logic needed to disable the watchdog timer. 21057Otherwise, the board is rebooted after certain time expires while NuttX is 21058running. From Petro Karashchenko 21059- AM335x: Switch to DMTimer2 for system tick generation. U-Boot does not 21060enable DMTimer1ms clocks hence it is not possible to use it until 21061implementation in am335x_clockconfig.c is ready. From Petro Karashchenko 21062 21063* TI AM335x Boards: 21064 21065- Beaglebone Black: Initial port for BeagleBone Black board support 21066(TI AM335x family based on Cortex-A8). Includes a basic functional NSH 21067configuration . From Petro Karashchenko 21068 21069* TI Tiva: 21070 21071- LM3S9B92: Add support for LM3S9B92. From Lwazi Dube 21072 21073* TI Tiva Drivers: 21074 21075- Tiva HCI UART: Port bluetooth HCI uart interface from stm32 to tiva 21076From Lwazi Dube 21077 21078* TI Tiva Boards: 21079 21080- TM4C1294-Launchpad: Add IRQBUTTONS support to tm4c1294 launchpad. 21081From Lwazi Dube 21082 21083* Tools: 21084 21085- tools/convert-comments.c: Add a tool to convert C++-style comments 21086to C89 C-style comments. From Gregory Nutt 21087- tools/detab.c: Add detab.c which will convert all tabs in a file to 21088spaces. From Gregory Nutt 21089- tools/lowhex.c: Add lowhex.c that will convert hexadecimal constants 21090in a file to use lower case representation. From Gregory Nutt 21091- tools/mkconfig.c: Add definitions to distinguish between tristate 21092'y' and 'm' options. From Gregory Nutt 21093- tools/nxstyle.c: Add logic to detect long lines. From Gregory Nutt 21094- tools/nxstyle.c: Add -h for help. From Gregory Nutt 21095 21096* Libraries/Header Files: 21097 21098- include/nuttx/lcd/edid.h: Add EDID definitions From Gregory Nutt 21099- libs/libc/netdb: Make DNS retries configurable From Juha Niskanen 21100- libs/libc/netdb: Harden query logic against DNS spoofing. This 21101commit implements most of the RFC 5452 guidelines for making DNS more 21102resilient. We now verify response matches against what was queried 21103and use unpredictable query IDs. It is also checked that response 21104come from correct DNS server. Also fixes a buffer overflow when 21105querying hostnames longer than CONFIG_NETDB_DNSCLIENT_NAMESIZE. From 21106Juha Niskanen 21107- libs/libc/netdb: Support multiple IP addresses per hostname From 21108Juha Niskanen 21109 21110* NSH: apps/nshlib: 21111 21112- apps/nshlib: Add support to use SLCD as NSH Console From Alan Carvalho de 21113Assis 21114- apps/nshlib: Add support for CROMFS start-up script. From David Sidrane 21115- apps/nshlib: Add var expansion in NSH parse. From Daniel Agar 21116- apps/nshlib: Display built-in apps using multi-column mode like the NSH 21117commands. From Ken Pettit 21118- apps/nshlib: In all multi-column help output, calculate an optimal column 21119width rather than using a hard-coded width that may or may not be 21120appropriate. Also make the number of rows presented dependent upon the 21121maximum width of the widest column. From Gregory Nutt 21122- apps/nshlib: Adds addroute command options for setting default gateway. 21123Like 'addroute default <ipaddr> <interface>'. From Anthony Merlino 21124 21125* Examples/Tests: apps/examples: 21126 21127- apps/examples/battery: Add Battery Charger Monitor Example From Alan 21128Carvalho de Assis 21129 21130* System Utilities: apps/system 21131 21132- apps/system/configdata: Adds an "cfgdata" command which allows 21133manipulation of the /dev/config items via the command line. One such use 21134for this utility would be to set a "macaddr" configdata item, etc. The 21135utility is sort-of like a u-boot env variable edit function: 21136 21137For instance, to set a "macaddr" when the new CONFIG_MTD_CONFIG_NAMED 21138option is selected, you would do: 21139 21140nsh> cfgdata set macaddr [0xfc 0x01 0x0b 0x45 0xa1 0x12] 21141(The brackets denotes an array of bytes) 21142nsh> cfgdata set hostname myboard 21143 21144or using the old ID,INSTANCE numeric method: 21145 21146nsh> cfgdata set 0,0 [0xfc 0x01 0x0b 0x45 0xa1 0x12] 21147(The brackets denotes an array of bytes) 21148nsh> cfgdata set 1,0 myboard 21149 21150You can also display all config items: 21151 21152nsh> cfgdata print all 21153Name Len Data 21154macaddr 6 0xFC 0x01 0x0B 0x45 0xA1 0x12 21155hostname 8 myboard 21156 21157From Ken Pettit 21158- apps/system/critmon: Add a daemon to monitor critical section usage. From 21159Gregory Nutt 21160- apps/system/nsh: Set NSH priority if the NSH task was scheduled at a 21161different priority than the configured priority. From Gregory Nutt 21162- apps/system/nxplayer: Introduce CONFIG_NXPLAYER_MAINTHREAD_STACKSIZE. From 21163Masayuki Ishikawa 21164- apps/system/termcurses: Addition of termcurses libraries in 21165apps/system/termcurses From Ken Pettit 21166- apps/system/vi: New feature additions 211671. Vi startup feature to prepend the current working directory to the 21168supplied filename if it does not start with '/' absolute path 21169specifier. This allows editing files in the current directory 21170without needing to fully qualify the filename. 211712. Standard '~' empty screen line characters for proper identification 21172of empty '\n' only lines at the end of the file. 211733. Moving into insert or append mode now prints '--INSERT--' in the 21174status line and clears it upon exit. 211754. Integration with termcurses to detect special keystrokes and to 21176handle terminal type differences. Haven't yet converted all vt100 21177print codes to termcurses equivalents. 211785. Support for up, down, left, right arrows, page-up, page-down keys in 21179command mode. 211806. Added 'b' command to move cursor 'b'ack to previous word. Honors the 21181command repeat value for multiple word moves. 211827. Added 'w' command to move cursor to next 'w'ord. Honors the command 21183repeat value for multiple word moves. 211848. Added 'f' and 't' commands to find characters on the current line. 21185Honors the command repeat value. 211869. Added the find 'n'ext command to repeat the previous find operation. 2118710. Added the 'H', 'M', and 'L' commands to move the cursor to top, 21188middle and bottom of the display. 2118911. Extended yank/paste to manage a paste buffer with character mode in 21190addition to line mode. Character mode allows cut / paste of 21191individual characters or groups of characters vs. full lines. 2119212. Added support in the 'd'elete and 'y'ank commands for character mode 21193deletions such as 'dw', 'dfa', '2yw', etc. 2119413. Added support in paste routine for multiple paste using command value 21195argument. 2119614. Added support for the 'D' and 'C' delete and change to end of line 21197commands. 2119815. Added support for 's'ubstitute key ('x' followed by insert mode). 2119916. Modified yank / paste allocation scheme to avoid repeated alloc and 21200free of paste buffer. Uses a minimum allocation size scheme and only 21201does free / realloc when paste does not fit. If the paste is smaller 21202than the current allocation and the current allocation is larger than 21203the threshold, then the buffer is freed and a smaller buffer 21204allocated. Otherwise the existing buffer is used. 2120517. Support for 'P'aste before current cursor position. 2120618. Support for '?' reverse search mode. 2120719. Support for 'J'oin next line with current line command. 2120820. Printing of current row,col in status line of display. 2120921. Command repeat '.' support for commands that modify text. 2121022. Support in replace / insert mode for arrow keys, PGUP / PGDN, HOME, 21211and END. Using these will cause the command repeat buffer to reset 21212such that only the last text addition after a cursor movement is saved. 2121323. Added 'X' delete previous command. 2121424. Added "gg" go to top of document command sequence. 2121525. Added "ZZ" save and quit command (equivalent to :wq). 2121626. Implemented '^' goto first non-whitespace on current line, along with 21217'+' and '-' goto first non-whitespace on next / previous line. 2121827. Added CR / LF goto first non-whitespace on next line in command 21219mode. From Ken Pettit ? 21220 21221* Network Utilities: apps/netutils: 21222 21223- apps/netutils/webserver: The webserver/httpd app is was broken when script 21224support was enabled (CONFIG_NETUTILS_HTTPD_SCRIPT_DISABLE). The root cause 21225has been tracked down to the "Content-length" not being available ahead of 21226time in this case (length of -1 passed to send_headers() ). On the other 21227hand, the server closing the socket does not result in FIN being sent to 21228the browser either (FIN not supported by NuttX yet). 21229 21230Simple solution: Add support for HTTP Chunked Encoding to webserver/httpd. 21231The change is simple. It adds a configuration option to enable chunked 21232encoding. When enabled, the implementation will auto-detect the cases where 21233content length is not available ahead of time, and will automatically 21234engage chunked encoding transfers. 21235 21236Without this patch, the browser/client hangs forever, as it is expecting 21237more data. With this patch, the browser displays the content. From Vlado 21238Vidovic 21239 21240* Wireless Utilities: apps/wireless: 21241 21242- apps/wireless/bluetooth/btsak: Add connect and disconnect commands to 21243btsak. From Lwazi Dube 21244 21245* Graphic Utilities: apps/graphics: 21246 21247- apps/graphics/pdcurs34: Integration of termcurses into pdcurses, plus 21248pdcurses updates for multi-thread support From Ken Pettit 21249- apps/graphics/pdcurs34: Adds a configuration option to pdcurses to enable 21250line-drawing character (ALTCHARSET) when using the short 16-bit chtype. 21251This is done by limiting the characters to 7-bit ASCII values and using the 212528-th bit as the A_ALTCHARSET bit. This allows a significant RAM savings 4K 21253- 20K depending on terminal size) while still allowing the nicer 21254line-graphic characters for border drawing. From Ken Pettit 21255 21256* Testing: apps/testing: 21257 21258- apps/testing/ostest: Add test for pthread-specific data. From Gregory 21259Nutt 21260 21261Bugfixes. Only the most critical bugfixes are listed here (see the 21262ChangeLog for the complete list of bugfixes and for additional, more 21263detailed bugfix information): 21264 21265* Core OS: 21266 21267- Assertions: Identify the running task correctly when dumping task 21268state information. It takes time to switch to the target task after 21269g_readytorun has been modified. If panic/assert happen during this 21270period, the dump will contain the incorrect and confusing information 21271due to the difference between the real running task and the return 21272value of this_task(). This change resolve this problem by adding 21273g_running_task to track the real running task through the context 21274switch. From Xiang Xiao 21275- Assertions: Correct duplicated logic from commit 21276dbf01d12b7321d1b48b68d3b69842a853b049376. Checking for PID == zero 21277is not a valid way to test for the IDLE task in all configurations! 21278This is only true in the single CPU configuration. In multiple CPU 21279configurations, there will be a separate IDLE task for each CPU with 21280a different PID and an alternative check must be used. NOTE: The 21281logic fixed in some places still lacks sufficient intelligence in SMP 21282mode to find the right stack for the CPU IDLE thread and could still 21283show the wrong stack. From Gregory Nutt 21284- Interrupt Prioritization: Remove all driver-specific logic that may 21285set the interrupt priority to anything but the default. There is no 21286good reason to change the interrupt priority unless you just want to 21287debug a difficult problem. OR if you want to use high priority 21288interrupts. In that case the specific interrupt priorities will need 21289to be set by board-specific logic. From Gregory Nutt 21290- Memory Management: Revert "This patch prevent heap corruption as in 21291below case." This solution to the problem noted by EunBong Song 21292results in major memory fragmentation and out-of-memory 21293conditions on the PX4 platform. On that platform the lower priority 21294work queue is very low priority and essentially never runs when the 21295system is busy. As a result, the systems gets slowly starved of 21296memory until failures and bad behaviors begin to occur. From Gregory Nutt 21297- Memory Management: This is a replacement for EunBong Song's reverted 21298change. This change adds (1) logic in getpid() to return an error instead 21299of the PID if the (apparent) currently executing task is not marked as 21300RUNNING. Then (2) mm_trysemaphore() (the root implementation of both 21301kmm_trysemaphore() and umm_trysemaphore()) will know that the (apparent) 21302running task cannot be the holder of the semaphore. How could the 21303non-running task be trying to get the MM semaphore? I think only in the 21304exact scenario that Eunbong Song has described. So this new solution 21305should provide the same protection as the original change but without the 21306bad consequences to memory usage. From Gregory Nutt (with corrections 21307from David Sidrane) 21308- Memory Management: In implementation of calloc(), verify that the number of 21309elements times the size of an element will not overflow type size_t. This 21310is required by the SEI CERT C coding style and resolves anonymous Bitbucket 21311Issue #139 From Gregory Nutt 21312- sigtimedwait(): Remove unnecessary disable of pre-emption. From 21313Gregory Nutt 21314- _exit(): Update all architecture-specific _exit() implementations 21315so that they correctly call the scheduler instrumentation layer for 21316the new task that runs when the old one exits. This missing 21317instrumentation was confusing the Critical Section Monitor logic with 21318uses this instrumentation to track the state of critical sections. 21319From Gregory Nutt 21320- sched_foreach(): sched_foreach() should not have to hold the 21321critical section over the entire traversal. It should be acceptable 21322to simply only the critical section while one entry is being 21323processed (the caller can always call sched_foreach within a critical 21324section is greater stability is needed). From Gregory Nutt 21325- task_spawn(): Correct description of input parameters to 21326task_spawn_exec(). Noted by: JeongchanKim From Gregory Nutt 21327 21328* Crypto: 21329 21330- crtypo/: This change: 21331 21332Avoids the use of up_aesinitialize() entirely, which resolves 21333dependency problems, because this function does not make sure that 21334an actual hardware aes implementation was made available: each SoC 21335is now responsible to ensure the AES hardware is initialized before 21336first use. This applies to lpc43xx, stm32 and sam34. 21337 21338Remove definitions of the NEVER used aes_init and aes_update 21339operations. The new AES API will be more suitable. 21340 21341From Sebastien Lorquet 21342 21343* File System/Block and MTD Drivers: 21344 21345- opendir(): Corrects a problem with opendir() noted by Petteri 21346Aimonen in Bitbucket Issue 132: "opendir() fails for FAT filesystem 21347with trailing slash in path". I see the following behaviour on NuttX 213487.26, where I have SD card mounted on /flash and a directory called 21349"frm" on it: 21350 21351opendir("/flash") returns (DIR *) 0x1000c580 21352opendir("/flash/") returns (DIR *) 0x1000c5d0 21353opendir("/flash/frm") returns (DIR *) 0x1000c620 21354opendir("/flash/frm/") returns (DIR *) 0x0 21355 21356From POSIX specs for opendir(): "A pathname ... that ends with one or 21357more trailing slashes shall be resolved as if a single dot character 21358( '.' ) were appended to the pathname." So for mount points, 21359opendir() works correctly, but for FAT32 filesystem it fails to open 21360directory if the path has a trailing slash... 21361 21362NOTE: You would not see this problem if you call opendir() indirectly 21363in NSH (like 'ls -R /') because NSH contains logic to remove trailing 21364'/' characters from paths. From Gregory Nutt 21365- dup()/dup2(): dup() and dup2() were broken some time back. 21366fs_dupfd() was return returning OK on success, not the file 21367descriptor of the duplicated fd. From David Sidrane 21368- ProcFS: Remove the unnecessary critical section From Xiang Xiao 21369- CROMFS: Fix hardfault. From David Sidrane 21370- SmartFS MTD Driver: Fix smart_write_alloc_sector sector size mapping. 21371Was not correctly calculating the encoded sector size for small (256) 21372byte or large (>= 4096 byte) sectors. Noted by Daniel P. Carvalho. 21373Fix from Ken Pettit 21374- AT25 MTD Driver: Fixed missing opening parenthesis. From Marc Rosen 21375- MTD Configdata MTD Driver: Check return value mtdconfig_readbytes(). 21376From Jussi Kivilinna 21377- S25FL1 MTD Driver: Minor change for the s25fl1 QSPI FLASH driver which 21378fixes additional sectorshift vs. pageshift confusion. From Ken Pettit 21379 21380* Networking/Network Drivers: 21381 21382- All network drivers! Change pre-processor logic that selects the 21383high priority work queue or gives preferential treatment to the high 21384priority work. All network logic must run on the low priority work 21385queue! Or suffer the consequences. From Gregory Nutt 21386- Socket Clone/Dup: On a failure to start the TCP monitor, the cloned 21387socket is closed but is not properly freed, leaving it attached to a 21388TCP connection structure with the wrong reference count. From 21389Gregory Nutt 21390- ARP: Fix whitespace after ARPHRD_IEEE80211 in ARP header file. From 21391Daniel Agar 21392- 6LoWPAN: Fixes decompression of ipaddr from MAC address. The logic 21393used to populate the IP from the radio address should match 21394sixlowpan_ipfromsaddr/sixlowpan_ipfromeaddr From Anthony Merlino 21395- 6LoWPAN: Fixes logic surrounding the Universal/Local bit. This bit 21396represents whether the IID is locally/globally administered. The U/L 21397bit is bit 1 of the MSB of the EUI-64. It should only be inverted in 21398cases where there is a full EUI-64. In cases where the IID is derived 21399from say, a short address, this bit should be forced to 0, indicating 21400that it is locally administered. See: 21401https://tools.ietf.org/html/rfc4291#section-2.5.1 21402https://tools.ietf.org/html/rfc4944#section-6 21403https://tools.ietf.org/html/rfc2464#section-4 21404From Anthony Merlino 21405- 6LoWPAN: IEEE802.15.4 stores and uses addresses in little endian 21406order. From Anthony Merlino 21407- 6LoWPAN: Address comment regarding avoiding double lookup of address 21408context. From Anthony Merlino 21409- 6LoWPAN: Record and restore d_buf on entry/exit of sixlowpan_input. 21410This avoids an issue where d_buf gets set to NULL by 6LoWPAN, and 21411then is used by forwarding logic from another network interface 21412before getting set back to the drivers internal buffer. From Anthony 21413Merlino 21414- 6LoWPAN: sixlowpan_input should always return 0 if the incoming frame was 21415consumed. From Anthony Merlino 21416- TUN Driver: Fixes a problem reported by Masayuki Ishikwawa: Recently I 21417noticed that ARP response packet is corrupted when I tried to run 21418bluekitchen with the latest tun.c in TAP mode. If I revert commit 214198193c28e9126c9cb89042e80d6ebab7485a831e4, then it works again. From Xiang 21420Xiao 21421- Telnet Driver: Add missing logic to set read event flags in poll() 21422method. From Ken Pettit 21423 21424* Wireless/Wireless Drivers: 21425 21426- BLE: Fix uninitialized variables. From Lwazi Dube 21427- BLE GATT header file: Fix struct name. From Lwazi Dube 21428- BLE GATT: Remove unnecessary GATT ioctls From Lwazi Dube 21429 21430* Graphics/Display Drivers: 21431 21432- ST7032: Fix seek method. Was not taking into account the offset for the 21433SEEK_END case. Did not account for negative offsets. On errors, it was 21434clobbering the filep->f_pos setting. From Gregory Nutt 21435- PCF8574 Backpack: Fix seek method. Had the same problems as noted for 21436ST7032 driver. From Gregory Nutt 21437 21438* Common Drivers: 21439 21440- Button Upper Half: Fix two bad NULL checks From Juha Niskanen 21441- PWM Interface: Remove dependency on CONFIG_PWM for the upper-half 21442PWM header. This allows compilation for the lower-level PWM drivers 21443even if the upper-half PWM logic is not used. From Mateusz Szafoni 21444- Various I2C Drivers: In most I2C drivers, correct upper index value 21445in I2C trace dump. Eliminates the extra NONE event from the trace 21446dump output. From Ouss4 21447- Battery Gauge: Add missing initialization of semaphore. From Alan 21448Carvalho de Assis 21449- Batter Charger: Add missing initialization of semaphore. From Alan 21450Carvalho de Assis 21451- MCP73871: Fix Microchip MCP73871 Battery Charger driver to register 21452correctly as a battery charger. The first element of a 'struct 21453battery_charger_dev_s' should be a pointer to operations structure. From 21454Alan Carvalho de Assis 21455- MCP794xx: Fix MCP794xx driver to wait for OSCRUN and fix tm_year. From 21456Abdelatif Guettouche 21457- Numerous files: Fixes usage of CONFIG_BIG_ENDIAN; should be 21458CONFIG_ENDIAN_BIG From Anthony Merlino 21459 21460* ARMv7-A: 21461 21462- ARMv7-A MMU: Fix end address calculation for mmu_invalidate_region() API 21463From Petro Karashchenko 21464 21465* ARMv7-M: 21466 21467- ITM: Fix missing space causing macro issues From Alan Carvalho de 21468Assis 21469- Common Exception Handlers: This commit changes the lazy and non-lazy 21470exception handler to remove a couple of cpsid instructions from them 21471on ARMv7-m. If my understanding is correct then these interrupt 21472manipulations aren't doing anything anyway because prioritization 21473stops secondary interrupts arriving and, even if they did work, they 21474would have introduced race conditions for the period of time between 21475the interrupt arriving and further interrupts being disabled. From 21476Dave Marples 21477- MPU/Protected Mode Build: Revert "arch/arm/armv7-m: MPU: 21478mpu_log2regionceil needs take into account the offset too". Masayuki 21479Ishikawa reports that this commit breaks ALL PROTECTED mode builds. It 21480violates the basic requirements of the use of the MPU in protected mode. 21481Those basic requirements are: 214821. The MPU region must be aligned to the base address of the memory 21483region being mapped (it may NEVER extend before the memory region). 21484That is, the following MUST always be zero: (base & ((1 << l2size) - 1)) 214852. The MPU region must never extend beyond the end of the memory region. 21486That is, the following must be true: size >= (1 << l2size) 21487From Gregory Nutt 21488 21489* Microchip PIC32MX Drivers: 21490 21491- PIC32MX Ethernet: Fix a comparison in a debug assertion. Should be 21492<= vs <. Noted by Anonymous in Bitbucket Issue 134. From Gregory Nutt 21493 21494* Microchip PIC32MZ: 21495 21496- PIC32MZ chip.h Header: Add a missing " in an error message. From Ouss4 21497 21498* Microchip PIC32MZ Drivers: 21499 21500- PIC32MZ Ethernet: Fix a comparison in a debug assertion. Should be 21501<= vs <. Noted by Anonymous in Bitbucket Issue 134. From Gregory Nutt 21502 21503* Microchip/Atmel SAMD21/L21 21504 21505- SAMD21/L21: Corrects behavior of the I2C_M_NOSTART flag. Also adds 21506a release a bus on RXNACK and corrects typo priv->flags to msg->flags 21507as priv->flags is never set. From Alexander Vasiliev 21508- SAMD21/L21: Fix SAMD2L2 arch to use calibrated oscillator value. Now 21509SAMD20 and SAMD21 should work fine without external crystal. Note that 21510SAML21 Xplained board has an external crystal and doesn't need this change, 21511unless you don't want to use the crystal. From Alexander Vasiliev 21512- SAMD21/L21 I2C Master: Adds calculation of a timeout and disables 21513interrupts in case of error. From Alexander Vasiliev 21514 21515* Microchip/Atmel SAMD21/L21 Boards 21516 21517- SAML21-Xplained: Fix removed MAXCOARSESTEP from saml21-xplained board. 21518From Alan Carvalho de Assis 21519 21520* Microchip/Atmel SAMD51/Ex 21521 21522- SAMD51/Ex: Alexander Vasiliev's fix to the SAMD21 I2C Master (commit 21523b1110ba91c549572e94c24ebed202643233deee3) should probably also be 21524applied to the SAMD51 I2C Master which is identical. From Gregory Nutt 21525 21526* Microchip/Atmel SAMV7 21527 21528- SAMV7 Serial: Fix case where TTYS0 is not defined. From Ken Pettit 21529 21530* Maxim Integrated MAX326xx 21531 21532- MAX326xx: WFI instruction in IDLE loop seems to interfere with 21533stability. Commented out for now. Needs to be investigated further. 21534From Gregory Nutt 21535 21536* NXP i.MXRT Drivers: 21537 21538- i.MXRT FLEXPWM: Correct duplicated definitions From David Sidrane 21539- i.MXRT SERIAL: Fix TTYS0 defined definitions of higher numbered ports 21540From David Sidrane 21541- i.MXRT LPSPI: Removed unused clock, that borked the build. From David 21542Sidrane 21543- i.MXRT LPI2C: I2C Reset rework From David Sidrane 21544 21545* On Semi LC823450: 21546 21547- LC823450: Fix up_allocate_heap() in lc823450_allocateheap2.c. This 21548change fixes heap size and also implements up_addregion(). From 21549Masayuki Ishikawa 21550- LC823450: Fix go_os_start() in lc823450_start.c. I found a bug in 21551go_os_start() that it returns immediately because it does not compare 21552r1 to zero. This commit fixes this bug. Also, this commit fixes its 21553description. From Masayuki Ishikawa 21554- Other Architectures: Masayuki Ishikawa's change to go_os_start() was 21555also to all MCU-specific start-up functions that support 21556go_os_start(). From Gregory Nutt 21557 21558* On Semi LC823450 Boards: 21559 21560- LC823450-XEVK: Fix IOB params in rndis/defconfig. These parameters 21561work for HTTP audio streaming. From Masayuki Ishikawa 21562- LC823450-XGEVK: Change RNDIS MAC address assignment in rndis 21563configuration. In previous implementation, mac[0] was assigned to 215640xaa for RNDIS host to avoid MAC address conflicts with RNDIS 21565device.. However, I noticed that this assignment causes a random MAC 21566address generation on ubuntu16.04 or later which is inconvenient to 21567set up network interface. This new assignment scheme fixes this 21568issue. From Masayuki Ishikawa 21569- LC823450-XGEVK: Fix overlapped memory settings in memory.ld. From 21570Masayuki Ishikawa 21571 21572* STMicro STM32 Drivers: 21573 21574- STM32: Remove redundant STM32 family definitions from chip.h header 21575file. It is already done in arch/arm/src/stm32/Kconfig From Mateusz 21576Szafoni 21577- STM32 ADC: There is no DMA CFG bit for the basic IPv1 ADC. From 21578Mateusz Szafoni 21579- STM32 ADC: Refactor adc_reset. It should be easier to maintain this 21580code if it's divided into smaller functions From Mateusz Szafoni 21581- STM32 F0 Clocking: Fixes the problem in GPIO port clocks. Only port 21582A clock was enabled although the comment states otherwise. From Juha 21583Paalijärvi 21584- STM32 F7 I2C: I2C out of bounds access on priv->msgv. Error in if 21585statement. It was checking for msgc > 0. If message count is 1, only 21586index 0 is valid on priv->msgv. Therefore random values in memory 21587were used to set next_norestart. From David Sidrane 21588- STM32 H7 I2C: Applied David Sidrane's I2C fix to the identical logic 21589for STM32 H7. From Gregory Nutt 21590- STM32 L4 I2C: Applied David Sidrane's I2C fix to the identical logic 21591for STM32 L4. From Gregory Nutt 21592 21593* STMicro STM32 Drivers: 21594 21595- STM32 ADC: Fix RCC reset logic. From Mateusz Szafoni 21596- STM32 ADC: Fix compilation errors for chips with one ADV TIM. From 21597Mateusz Szafoni 21598- STM32 DMA: Add missing DMA channel configuration. 21599- STM32 PWM: STM32 MOE is not being appropriately handled for PWM for 21600advanced timers. It is only ever reset and so no PWM train is 21601generated. This change addresses this. Noted by Dave Marples. From 21602Mateusz Szafoni 21603- STM32 PWM: Fix compilation errors if the upper-half PWM logic is not 21604enabled. From Mateusz Szafoni 21605- STM32 SPI: STM32F446 & STM32F469 correct PC1 SPI assignments From 21606David Sidrane 21607- STM32 TIM: Fix compilation error if there is no TIM8. From Mateusz 21608Szafoni 21609- STM32 F0: Fix GPIO EXTI lines assignment for STM32 M0. From Mateuz Szafoni 21610- STM32 F3 I2C: Remove the extra NONE event from the trace dump 21611output. From Ouss4 21612- STM32 F4 I2C: Remove the extra NONE event from the trace dump 21613output. From Ouss4 21614- STM32 F7 I2C: Use clock_t for ticks instead of uint32_t to hold system 21615time. From Jussi Kivilinna 21616- STM32 L4 I2C: Use clock_t for ticks instead of uint32_t to hold system 21617time. From Jussi Kivilinna 21618 21619* STMicro STM32 Boards: 21620 21621- STM32F429I-DISCO: Fix lvgl demo removing STM32_FB_CMAP. From Alan 21622Carvalho de Assis 21623- STM32VL Discovery: Fix SRAM and FLASH size in the linker script. 21624There is STM32F100RB with 8KB RAM and 128KB FLASH on the STM32VL 21625Discovery kit. Invalid memory size could cause a hard fault. From 21626Matous Pokorny 21627- STM32VL Discovery: Fix memory size configuration and documentation. 21628There is STM32F100RB instead of STM32F100RC on the STM32 VL Discovery 21629kit. From Matous Pokorny 21630- Viewtool-STM32F107: Change RNDIS MAC address assignment in rndis 21631configuration. In previous implementation, mac[0] was assigned to 216320xaa for RNDIS host to avoid MAC address conflicts with RNDIS 21633device.. However, I noticed that this assignment causes a random MAC 21634address generation on ubuntu16.04 or later which is inconvenient to 21635set up network interface. This new assignment scheme fixes this 21636issue. From Masayuki Ishikawa 21637 21638* TI Tiva: 21639 21640- Tiva LM/TM4C Start-Up: Remove option CONFIG_TIVA_BOARD_CLOCKCONFIG. It is 21641not used and unnecessary. Fix some naming. up_clockconfig() is 21642inappropriate. Change tiva_clockconfig() to tiva_clock_reconfigure() 21643then we can change up_clockconfig() to tive_clock_configure(). From 21644Gregory Nutt 21645- Tiva LM/TM4C GPIO Interrupts: Fix tiva gpio interrupts From Lwazi Dube 21646- Tiva LM/TM4C: Improve GPIO interrupt support by removing unnecessary, 21647hard-coded per-MCU defines and using the existing Kconfig configuration 21648options instead. From Lwazi Dube 21649 21650* TI Tiva Drivers: 21651 21652- Tiva TM4C Serial: After commit 2165351b78034ac8d1fdf598107bf4093f0beccd5b80b, my tiva console does not 21654work - enter key produces garbage characters. This commit fixes the 21655problem for me. From Lwazi Dube 21656 21657* C Library/Header Files: 21658 21659- include/dsp.h: Fix missing semicolon error in dsp.h From MYAPICI 21660- include/nuttx/compiler.h: Correct support of C-version-specific features. 21661Cannot depend on GCC version because -std=c89 may be used on comomand 21662line. Need instead to use __STDC_VERSION__ to determine if a feature is 21663supported. Also add conditional support inline, depending on C99. From 21664Gregory Nutt 21665- libs/libc/stdio: fread() should always set EOF if fewer than the 21666requested number of bytes was not read. Per Anthony Merlino. From 21667Gregory Nutt 21668 21669* Build System: 21670 21671- sched/irq/Make.defs: Fix warning about irq_csection.o appearing 21672multiple times in the same rule. From Gregory Nutt 21673 21674* Tools: 21675 21676- tools/gencromfs.c: "gencromfs.c:1171:3: warning: ignoring return 21677value of 'asprintf'", declared with attribute warn_unused_result 21678[-Wunused-result]. From David Sidrane 21679- tools/gencromfs.c: Fix build on macOS. From David Sidrane 21680 21681* NSH Library: apps/nshlib: 21682 21683- apps/nshlib: Fixes an error in the NSH parser. There was a bug when 21684executing an nsh shell script which contains a redirection. When the 21685command in the script is executed, it sets the vtbl->np.np_redirect flag 21686(as it should), but then doesn't restore it, leaving it set at the end of 21687the script execution. Then the vtbl->np.np_redirect flag is set when the 21688'sh' command completes, causing a restore from un-initialized variables, 21689thus leading to a crash. See the code snippet below for an example test 21690case. 21691 21692Test case: 21693 21694NuttShell (NSH) 21695nsh> mkrd -s 1024 40 21696nsh> mkfatfs /dev/ram0 21697nsh> mount -t vfat /dev/ram0 /tmp 21698nsh> echo "echo 1 > /dev/null" > /tmp/test.sh 21699nsh> cat /tmp/test.sh 21700echo 1 > /dev/null 21701nsh> sh /tmp/test.sh 21702... 21703 21704The nsh prompt doesn't get printed. You can type a couple of commands, 21705but then the system will crash because of bad pointers. From Ken Pettit 21706- apps/nshlib: Fix buffer overrun when redirected to a file. SAVE_SIZE 21707must be the same as sizeof(struct serialsave_s). From Masayuki Ishikawa 21708 21709* System Utilities: apps/system: 21710 21711- system/system.c: Fixes build error; There is no result variable, use 21712errcode instead. From Anthony Merlino 21713- apps/system/vi: Bug fixes: 217141. Deletion of last line in file using 'dd' caused infinite loop 21715searching for 'nextline'. Fixed. 217162. Insertion of line above 1st line using 'O' caused line to be 21717inserted on 2nd line. Fixed. 217183. Paste buffer from 'dd' was being free'd after the 'p'aste operation, 21719preventing multiple paste opportunity. Fixed. 217204. The cursor was not being bound to the line end and was allowed to 21721'hover' over the '\n' EOL character. This caused weird (relative to 21722standard vi) insertion locations and cursor movement with 'a'ppend 21723and 'i'nsert. Fixed. 217245. The 'vi_shrinkpos' position didn't take the end of file pointer into 21725account when calculating 'curpos', 'prevpos' variables causing 21726weirdness when deleting things near the end of the file. Fixed. 217276. The 'yy'ank command was improperly deleting the text from the 21728document instead of simply yanking to the paste buffer. Fixed. 217297. The 'dd'elete line function was not copying the deleted line to the 21730paste buffer as part of the delete operation. Fixed. 217318. The bottom line of the screen was sometimes being used for document 21732text and other times for command / find entry. Fixed by reserving 21733the bottom the bottom line for status / command only. 217349. When scrolling up / down through a file, the cursor position was not 21735preserved and moved further and further to the left column based on 21736the line lengths of the lines visited. Fixed. 2173710. The display was being COMPLETELY redrawn with each keystroke, 21738causing the responsiveness to be unbearable. Fixed. Added logic to 21739dynamicall indicated which portions of the screen need to be updated 21740(full display, current line to end of screen, current line only, 21741none). 2174211. The individual display line updates were being performed a character 21743at a time by calling the vi_putch() function, causing slow 21744performance, especially in telnet or USBCDC sessions where there is 21745a lot of overhead per packet. Fixed by calling vi_write() instead 21746with a block of characters with breaks as needed for TAB exansion. 2174712. The forward delete 'x' operation allowed deletion through '\n' 21748characters causing lines to be joined. This is different from 21749standard vi where 'x' at the end of a line performs a delete 21750backward operation. Fixed. 2175113. When in 'ex' or find sub-modes (':' or '/' bottom line modes), 21752hitting backspace with empty text did not return the operation to 21753command mode like it does in standard vi. Fixed. 2175414. Performing a 'find' opertation would only search from the current 21755cursor position to the end of the file and did not wrap like in 21756standard vi. Fixed. 2175715. Loading a file that was larger than the initial text allocation 21758would force a call to 'vi_extendtext', marking the file as modified 21759when in fact it hadn't even been loaded yet. Fixed. 2176016. Combined vi_insert_mode and vi_replace_mode into a single function 21761to save code space since they are nearly identical routines. 2176217. In command mode, backspace was deleting characters which is 21763different from standard vi. Backspace in command mode normally 21764simply moves the cursor left / to the previous line. Fixed. 2176518. Added code to handle boundary conditions when the file is new and 21766commands are applied to an empty file. 2176719. Fixed vi_shrinktext so it doesn't allocate a zero-length buffer when 21768the last character in the file is deleted. 2176920. The 'x' command was not copying to the paste buffer. Fixed. 2177021. Fixed parsecolon routine to properly deal with ":wq" command sequence. 21771From Ken Pettit 21772 21773* Wireless Utilities: apps/wireless: 21774 21775- apps/wireless/bluetooth/btsak: 'bt bnep0 info' outputs a reversed addr. It 21776should print BDAddr: aa:bb:cc:dd:ee:ff instead of BDAddr: 21777ff:ee:dd:cc:bb:aa. From Lwazi 21778- apps/wireless/bluetooth/btsak: Fix some errors in btsak. From Lwazi Dube 21779- apps/wireless/bluetooth/btsak/btsak_main.c: Fix address parsing. From 21780Lwazi Dube 21781- apps/wireless/bluetooth/btsak: Remove unnecessary gatt get commands. From 21782Lwazi Dube 21783- apps/wireless/bluetooth/btsak/btsak_scan.c: Fix reversed address. From 21784Lwazi Dube 21785- apps/wireless/ieee802154/i8sak: Fixes issues related to re-running 21786daemon. Releases lock when releasing daemon. Re-sets daemon_shutdown so 21787that a subsequent daemon launch does not immediately return. From Anthony 21788Merlino 21789 21790NuttX-7.29 Release Notes 21791------------------------ 21792 21793The 129th release of NuttX, Version 7.29, was made on March 25, 2019, 21794and is available for download from the Bitbucket.org website. Note 21795that release consists of two tarballs: nuttx-7.29.tar.gz and 21796apps-7.29.tar.gz. These are available from: 21797 21798https://bitbucket.org/nuttx/nuttx/downloads 21799https://bitbucket.org/nuttx/apps/downloads 21800 21801Both may be needed (see the top-level nuttx/README.txt file for build 21802information). 21803 21804Additional new features and extended functionality: 21805 21806* Core OS: 21807 21808- Configuration: CONFIG_NFILE_DESCRIPTORS=0 can no longer be used to 21809disable the file system. NuttX with no file system does not make 21810sense and is no longer supported. From Gregory Nutt. 21811- Rename most internal OS functions from sched_* to nxsched_* to 21812indicate that they are NuttX internal functions (some renaming is 21813still needed). From Gregory Nutt. 21814- Rename all internal OS functions from task_* to nxtask_* to indicate 21815that they are NuttX internal functions. From Gregory Nutt. 21816- Rename sched_process_timer to nxsched_process_timer. Rename 21817sched_timer_expiration to nxsched_timer_expiration. Rename 21818sched_alarm_expiration to nxsched_alarm_expiration. Those are the 21819appropriate names for an internal sched/ function (still many named 21820incorrectly). From Gregory Nutt. 21821- Standardize naming: Rename os_start() to nx_start(), rename os_smp* 21822to nx_smp*, rename os_bringup to nx_bringup, rename all internal 21823static functions to begin with nx_ vs os_. From Gregory Nutt. 21824- Initialization: Remove the option CONFIG_BOARD_INITTHREAD. Now, if 21825CONFIG_BOARD_INITIALIZE is selected, then the board_initialize() 21826logic will ALWAYS run on an internal kernel thread. This will 21827prevent the problems people have had doing inappropriate 21828board_initialization on the IDLE thread. From Gregory Nutt. 21829- Initialization: Add support for CONFIG_BOARD_EARLY_INITIALIZE. If 21830this option is selected then nx_start() will call a board-provided 21831function board_early_initialize() immediately after calling 21832up_initialize(). Rename board_initialize() to 21833board_late_initialize(). From Gregory Nutt. 21834- Signal Delivery: Add a flag to the TCB to indicate that we are in a 21835signal handler. Use this flag to assure that a there is never 21836attempts to nest signal handling operations on a thread. This was 21837guaranteed before but when locking of pre-emption during signal 21838delivering was eliminated in a previous commit, there was a remote 21839possibility of an attempt to do nested signal handling. This flag 21840assures that there is only one signal handled at a time. From 21841Gregory Nutt. 21842- Signal Handler Security: The architecture-specific signal handler 21843return register state is saved and available on the user stack. 21844This commit reorders some logic so that certain, critical registers 21845are preserved in the TCB. This eliminates most malicious exploits 21846which more the return address, for example, but does not make the 21847logic 100% secure. From Gregory Nutt. 21848- Timer Interrupt Procssing: Add a configurable call out to a 21849user-provided function, 'timer hook', on each timer interrupt. From 21850Gregory Nutt. 21851- PM Activity: Add pm_staycount() API for get stay numbers. This 21852function is currently not used and a waste of FLASH space. From ligd. 21853- Pthreads: Add support for pthread_mutex_timedlock From Leif Jakob. 21854- Pthread Spinlocks: Add a very preliminary implementation of the new 21855POSIX pthread_spinlock_* interfaces. From Gregory Nutt. 21856- Critical Section Monitor: Remove SCHED_IRQMONITOR_GETTIME to 21857simplify the clock source selection: (1) Use up_critmon_gettime if 21858SCHED_IRQMONITOR, (2) Call clock_systimespec if SCHED_TICKLESS, (3) 21859Don't collect timing info for all other cases. From Xiang Xiao. 21860- Work Queue Notification: Notifier can now work with either lpwork 21861or hpwork. From Xiang Xiao. 21862- Protected Build: Add add a new field (us_heapend) to struct 21863userspace_s that labels the end of the heap. From Xiang Xiao. 21864 21865* Binary Loader/Kernel Modules/Shared Libraries 21866 21867- Shared Libraries: Implement dlerror() using strerror(). From Xiang 21868Xiao. 21869- Shared Libraries: Add LD_LIBRARY_PATH environment variable 21870support. From anchao. 21871- ELF Loaders: Optimize elf load speed: (1) Don't zero out memory, 21872(2) Reduce the initial buffer size to 32 bytes. From Xiang Xiao. 21873- ARM ELF Relocation: Add support for the R_ARM_THM_JUMP11 relocation 21874type. This relocation type may be generated when LTO optimization 21875is enabled. From anchao. 21876- ELF Modules: Add relocation buffer table to reduce filesystem 21877access. From anchao. 21878- ELF Modules: Add symbol buffer table to reduce filesystem access. 21879From anchao. 21880 21881* File Systems/Block and MTD Drivers 21882 21883- Filesystem Mount: Move the union inode_ops_u i_mtd field into the 21884mount section of inode_ops_u and remove the guard to simplify fs 21885which support both block and mtd. From Xiang Xiao. 21886- ROMFS: Add support to mount a ROMFS volume using an MTD driver 21887interface using the standard mount() operation. From Xiang Xiao. 21888- LittleFS: VFS wrapper improvement: (1) Support block device 21889interface, (2) support ioctl, stat and sync file operation, (3) 21890support forceformat and autoformat option, (4) update file->f_pos 21891and dir->fd_position, (5) remove the internal struct from dir, and 21892(6) remove mtd byte read/write requirement. From Xiang Xiao. 21893- UnionFS: Support mount of UnionFS from the NSH command line. From 21894Xiang Xiao. 21895 21896* Networking/Network Drivers: 21897 21898- UsrSock: Add mutual exclusion so that only user can perform a 21899socket request From zhangyuan7. 21900- UDP: Initialize callback address structure to avoid random values 21901in padding. From anchao. 21902 21903* Wireless/Wireless Drivers: 21904 21905- SX127x: Initial support for SX127x LoRA radio From Mateusz Szafoni. 21906 21907* Graphics/Display Drivers: 21908 21909- Graphics: Fix a naming collision: Ye olde nx_start that started 21910the NX graphics is now nxmu_start(). nxmu_start() is now 21911prototyped in nxmu.h (instead of nx.h). From Gregory Nutt. 21912- NX Server Startup: Extend nxmu_start() so that receives a display 21913number as an argument. This makes it possible to have multiple 21914instances of the NX server running on boards that support multiple 21915displays. Also includes updates to boardctl() to accept display 21916number parameters. From Gregory Nutt. 21917- Graphics: nx_openwindow() and nxtk_openwindow() now accept an 21918additional 'flag' parameter. This argument is current used only to 21919select a RAM backed, per-window framebuffer. From Gregory Nutt. 21920- Per-Window Framebuffers: Windows may now be optionally created 21921with a RAM framebuffer backing up the window content. Rending into 21922the window will result in rending into the backup framebuffer, then 21923updating the physical display from the framebuffer. The advantage 21924of this option is that the application that manages window will no 21925longer receive redraw() callbacks. Those calls normally occur when 21926a window "above" moves exposing a portion of the window below. If 21927this option is selected, then the system will redraw the exposed 21928portion of the window from the backup framebuffer without 21929intervention of the window applications. This greatly reduces the 21930complexity of the application and performance of the window at the 21931expense of increased memory usage. Redraw requests in other cases 21932are also suppressed: Changes to window position, size, etc. As a 21933consequence, some manual updates will be required when certain 21934events occur (like removing a toolbar from a window). NOTE: A 21935significant amount of RAM, usually external SDRAM, may be required 21936to use per-window framebuffers. 21937 21938* Other Common Device Drivers: 21939 21940- Driver Notifications: Support signal notification through 21941SIGEV_THREAD in all drivers that provide signal notifications: 21942RTC, Joysticsks, buttons, Zero-Crossing, wireless, FT80x, Timer, 21943PHY. From Xiang Xiao. 21944- Watchdog Driver: Support auto-monitor service From Gregory Nutt. 21945- Timer and Alarm Drivers: Implement up_critmon_gettime and 21946up_critmon_convert and remove the critical section from 21947current_usec to infinite recursion. From Xiang Xiao. 21948- RTC Driver: Protect the RTC state with a semaphore. From Xiang 21949Xiao. 21950- Serial Upper Half: Call pm_activity() when characters are received 21951on a console device. From Gregory Nutt. 21952- MPU60x0: Initial support for TDK InvenSense MPU6000 and MPU6050 219536-axis gyroscope and accelerometers. This commit supports SPI 21954media only. From Bill Gatliff. 21955- EEPROM Driver: Add configurable SPI eeprom frequency. From 21956Valmantas Paliksa. 21957- GPIO Driver: Support reading and writing gpio pins using cat and 21958echo. From Valmantas Paliksa. 21959- MCP2515: Add MCP2515 clock input config to KConfig. From 21960Valmantas Paliksa. 21961- MAX7456: Support for the Maxim MAX7456 on-screen-display chip. 21962From Bill Gatliff. 21963 21964* Common Board Logic: 21965 21966- boardctl(): up_testset() can now be accessed by applications via 21967the boardctl() interface rather than attempting to call it 21968directly. pthread Spinlocks are not available unless the 21969architecture supports the up_testset() operation. From Gregory 21970Nutt. 21971- boardctl(): Add support for BOARDIOC_NXTERM which can be used to 21972create an NxTerm terminal. From Gregory Nutt. 21973- boardctl(): Add boardctl() commands to replace direct calls to 21974nxterm_redraw() and nxterm_kbdin(). From Gregory Nutt. 21975 21976* Microchip PIC32MZ Drivers: 21977 21978- PIC32MZ Timers: Add support for the PIC32MZ timers (driver, 21979lowerhalf, freerun and oneshot) From Abdelatif Guettouche. 21980 21981* Common ARM Options: 21982 21983- arch/arm: Move FPU options to a common place and unify the usage 21984by removing ARCH_CORTEXRxF. From Xiang Xiao. 21985- arch/: Unify the cache interface for all architectures that 21986support a data cache. From Xiang Xiao. 21987- ARMv7-M/A/R: Add a architecture-specific new barriers.h header 21988file that provides the memory barrier definitions that were 21989previously in the (now unified) cache.h header files. From Gregory 21990Nutt. 21991 21992* ARMv7-A 21993 21994- ARMv7-A: Support thumb mode and fix interworking issue. From 21995zhangyuan7. 21996- ARMv7-A: Add weak attribute to arm_data_initialize so platform 21997could provide the new implementation as needed. From zhangyuan7. 21998- ARMv7-A: Add SCR bit definitions. From Xiang Xiao. 21999- ARMv7-A: Add mmu_l1_map_regions() to remove the code duplication. 22000From Xiang Xiao. 22001- ARMv7-A: Add the initial cortex-a7 architecture support From 22002zhangyuan7. 22003 22004* ARMv7-M 22005 22006- ARMv7-M: stackcheck allow faulting stack calculation to make it to 22007the up_assert reg dump From David Sidrane. 22008 22009* Microchip/Atmel SAMD21/L21 Drivers: 22010 22011- SAMD2/L2: Add RS485 support to SAMD2L2 serial. From Alan Carvalho 22012de Assis. 22013 22014* Misoc: 22015 22016- Minerva: Add support for the Minerva architecture. From Ramtin 22017Amin. 22018 22019* Misoc Boards: 22020 22021- misoc: Add support for an NSH configuration using the Verilator 22022board. From Ramtin Amin. 22023 22024* Nordic NRF52: 22025 22026- NRF52: 1. Added 52840 family support 2. Use common IRQ and memory 22027layout header file for 52832 & 52840. From Levin Li. 22028 22029* Nordic NRF52 Drivers: 22030 22031- NRF52 RNG: 1. added RNG device driver 2. added errdata to correct 22032temp which will be used by RNG module 3. use general task_trigger / 22033event_clear inline api for all driver. From Levin Li. 22034 22035* NXP i.MX RT Drivers: 22036 22037- i.MXRT XBAR: Add XBAR Support. From David Sidrane. 22038- i.MXRT USB: Add USB analog header file. From David Sidrane. 22039- i.MXRT OCOTP: Added OCOTP Support. From David Sidrane. 22040- i.MXRT LCD: Adds framebuffer support for the i.MXRT 1050. 22041Includes DCD initialization for SDRAM to provide space for the 22042framebuffer. External code I used/ported is from NXP and is BSD 220433-clause license. From Johannes. 22044 22045* NXP i.MX RT Boards: 22046 22047- IMXRT1050-EVK: Adds framebuffer support for the i.MXRT 1050. 22048From Johannes. 22049 22050* NXP LPC17xx 22051 22052- LPC17xx: Add a configuration option to skip over the framebuffer 22053when adding DRAM to the heap. From Gregory Nutt. 22054 22055* NXP LPC17xx Boards 22056 22057- Open1788: Add a configuration to test NxTerms in the PROTECTED 22058mode. From Gregory Nutt. 22059- Open1788: Re-arrange PROTECTED mode link map to make more space 22060for large kernels with debug enabled. From Gregory Nutt. 22061- Open1788: Add a configuration for testing per-window frame buffers 22062using apps/examples/pwfb. From Gregory Nutt. 22063 22064* NXP LPC54xx Boards 22065 22066- LPCXpresso-LPC54628/pwfb: Add per-window framebuffer configuration 22067using apps/examples/pwfb. From Gregory Nutt. 22068- LPCXpresso-LPC54628: Add a configuration for addition per-window 22069framebuffer using apps/examples/pwlines. From Gregory Nutt. 22070 22071* STMicro STM32 Drivers: 22072 22073- STM32F0/L0 SPI: Add SPI support for F0. From Mateusz Szafoni. 22074- STM32 ADC, PWM and TIM: (1) configure injected channels external 22075trigger when ADC enabled, (2) update injected conversion queue of 22076context after configuration, (3) support for offset configuration, 22077and (6) support for advanced timers channel 5 and 6. From Mateusz 22078Szafoni. 22079- STM32 DFU Mode: Add logic to reboot the STM32 in DFU mode. 22080Current implementation only works for STM32F2 and F4. From Bill 22081Gatliff. 22082- STM32F7 LSE: Add configuration of LSE oscillator drive capability 22083From Jussi Kivilinna. 22084- STM32F7 I2C: Fix another memory access issue on a bus error. From 22085David Sidrane. 22086- STM32F7 TIM: Add OUTTOGGLE mode for STM32f7 timer From Valmantas 22087Paliksa. 22088- STM32F7 Timer Lower Half: Add timer lowerhalf driver for stm32f7. 22089From Valmantas Paliksa. 22090- STM32F7 ITM: Add ITM syslog support. From Valmantas Paliksa. 22091- STM32F7 CAN: Add CAN driver with support for three bxCAN 22092interfaces. From Valmantas Paliksa. 22093- STM32F7 QSPI: Add stm32f7 Quad SPI support. From Valmantas Paliksa. 22094- STM32L4 LSE: Ports Jussi Kivilinna's recent STM32F7 LSE change to 22095STM32L4. From Juha Niskanen (Haltian). 22096- STM32H7 I2C: Apply David Sidrane's fix for the STM32F7 to the 22097STM32H7. From Gregory Nutt. 22098- STM32H7 DMA: Rename DMA1/2 IRQ names to match those from other 22099STM32. Add auxiliary definitions. Add DMAMAP definitions for 22100MDMA, DMA1, DMA2 and BDMA. Add some address blocks. Change RCC 22101definitions to match other STM32 ports. Enable clock for MDMA and 22102BDMA. Rename DMA channel definitions. Separated files for MDMA, 22103DMA, BDMA and DMAMUX. Add missing definitions for MDMA, BDMA and 22104DMAMUX. SPI DMA mode. Add base addresses for D1, D2 and D3 22105domain; use 2 bytes to specify memory region. Add D1 domain core 22106prescaler configuration. From Mateusz Szafoni. 22107- STM32H7 OTG: Initial OTG support for STM32H7 and some minor 22108improvements. Add support for HSI48 clock. From Mateusz Szafoni. 22109- STM32H7 Build: Initial support for protected build mode. From 22110Mateusz Szafoni. 22111- STM32L4 I2C: Apply David Sidrane's fix for the STM32F7 to the 22112STM32L4. From Gregory Nutt. 22113 22114* STMicro STM32 Boards: 22115 22116- B-L072Z-LRWAN1: Add SX127x configuration. From Mateusz Szafoni. 22117- Nucleo-F091RC: Add support for SX127x radio. From Mateusz Szafoni. 22118- Nucleo-F091RC: Add SX127x configuration. From Mateusz Szafoni. 22119- Nucleo-F207ZG: Add support for USB and initialize CDCACM if 22120configured. From Mateusz Szafoni. 22121- STM32F429I-DISCO: Add an apps/examples/examples/nxhello 22122configuration. From Gregory Nutt. 22123- Nucleo-F446RE: Add support for the Nucleo F446RE. From Sebastien 22124Lorquet. 22125- B-L072Z-LRWAN1: Use HSI as default clock source. From Mateusz 22126Szafoni. 22127- Nucleo-L073RZ: Add SX127x configuration. From Mateusz Szafoni. 22128- Nucleo-L073RZ: Port button logic from nucleo-f072 which appears to 22129be the same. From Gregory Nutt. 22130- Nucleo-L432KC: Add support for I2C driver initialization. From 22131Nikolay Semenov. 22132- Nucleo-H743ZI: Add support for USB and initialize CDCACM if 22133configured. From Mateusz Szafoni. 22134- OmnibusF4: Initial support for the OmnibusF4 family of flight 22135management units. "OmnibusF4" is not a product name per se, but 22136rather a design spec that many product vendors adhere to. The spec 22137defines the major components, and how those components are wired 22138into the microcontroller. Airbot is one such vendor, and they 22139publish a schematic here: http://bit.ly/obf4pro. Other software 22140that supports the OmnibusF4 family include Betaflight, iNAV, and 22141many others. PX4 recently added support as well, using their own, 22142non-upstreamed, bespoke port of NuttX. No code from those resources 22143is included in this port. From Bill Gatliff. 22144- OmnibusF4: Add MAX7546 support. From Bill Gatliff. 22145 22146* TI CCxx: 22147 22148- CC1312R1: Code complete and builds successfully. Stalled on 22149further radio development. I planned to integrate the IEEE 802.15.4 22150radio interface, but the Cortex-M0 interface is not available with 22151an open license. 22152 22153* TI CCxx Boards: 22154 22155- LaunchXL-CC1312R1: Add support for on-board LEDs and buttons. The 22156LauchXL-CC1312R1 NSH Configuration is now fully functional. From 22157Gregory Nutt. 22158- LaunchXL-CC1310: Clone LED and button support from the 22159LaunchXL-CC1312R1. The number of LEDs and buttons as well as DIO 22160usage is identical (Still not functional). From Gregory Nutt. 22161 22162* Tools: 22163 22164- tools/rmcr.c: Add a tool to remove carriage returns and dangline 22165whitespace at the end of lines. From Gregory Nutt. 22166- tools/nxstyle.c: Can now detect if the C comment closing is not on 22167a separate line. From Gregory Nutt. 22168- tools/nxstyle.c: Make sure that all files begin with a comment on 22169line 1 (which should be the file header). From Gregory Nutt. 22170- tools/nxstyle.c: Add check for multiple definitions of local 22171variables on a line. From Gregory Nutt. 22172- tools/nxstyle.c: Beef up logic that detects multiple variable 22173definitions per line. From Gregory Nutt. 22174- tools/nxstyle.c: Add capability to detect CamelCase identifiers. 22175From Gregory Nutt. 22176- tools/nxstyle.c: Add logic to detect a blank line following a left 22177brace or a blank line preceding a right brace. From Gregory Nutt. 22178- tools/nxstyle.c: Don't complain about certain lowercase characters 22179in otherwise uppercase pre-processor identifiers: IPv6, IPv4, 22180ICMPv6, IGMPv2, p as a decimal point, d signifying a divisor. It 22181was a bad idea to let the door open a crack for there. While they 22182improve readability, the inconsistently also causes other 22183problems. From Gregory Nutt. 22184 22185* Build System: 22186 22187- Makefiles: Modify tools/Makefiles to add a "Do not Edit" warning 22188on defconfig files From Alan Carvalho de Assis. 22189 22190* Libraries/Header Files: 22191 22192- lib_vsprintf() (Nano): Add newlib-nano lib_vsfprintf has been 22193added and is now the default support for the printf family. This 22194fprintf code was originally adapted from AVR libc and provides 22195improved floating point output support, including 'g' mode and 22196making 'f' mode include digits past the decimal by default. The 22197newlib version can be found here: 22198https://salsa.debian.org/electronics-team/toolchains/newlib-nano. 22199That project is GPL overall, but the newlib-nano printf portions 22200are BSD licensed as described in the COPYING.NEWLIB file. From 22201Keith Packard. 22202- lib_vsprintf() (Nano): Added support for long lont types. From 22203Johannes. 22204- lib_vsprintf() (Nano): Added hh type modifier (without extending 22205the flag variable). From Johannes. 22206- lib_vsprintf() (Nano): Adds configurable support for numbered 22207arguments. From Johannes. 22208- lib_vsprintf() (Nano): Cleaned naming and allow for leading zeros 22209in argument number (which doesn't make sense but should be). From Johannes. 22210- lib_vsprintf() (Legacy): Add support for %g format which, for 22211these purpose, is equivalent to %f except that trailing zeroes are 22212suppressed. From Gregory Nutt. 22213- vscanf(): Moved vscanf logic to lib_sscanf.c Switched to stream 22214interface (tricky, because the old implementation used massive read 22215ahead, which isn't suitable for streams, chars already read are 22216gone). Added hh, h, and ll modifiers. From Johannes. 22217- scanf() and fscanf(): Added scanf and fscanf based on enhanced 22218vscanf(). From Johannes. 22219- uname(): Add build date and time to uname output (like Linux). 22220From Gregory Nutt. 22221- strsep(): Add strsep BSD/Linux function. From Xiang Xiao. 22222- netdb: Hostname support no longer depends on CONFIG_NET since the 22223host name is also useful in the non-network environment. 22224CONFIG_NET_HOSTNAME changed to CONFIG_LIBC_HOSTNAME. From Xiang Xiao. 22225- netdb: Support the nameserver change notification then we can pass 22226DNS info from server to client in usrsock case. From Xiang Xiao. 22227- include/fixedmath.h: Add macros for conversion between types 22228b16_t and type double From Gregory Nutt. 22229- include/limits.h: Define NL_ARGMAX (as well as some of the other 22230'invariant values' per 22231http://pubs.opengroup.org/onlinepubs/7908799/xsh/limits.h.html). 22232From Johannes. 22233- linclude/limits.h: Add 'range 9 999999' to CONFIG_LIBC_NL_ARGMAX 22234to Kconfig. Per OpenGroup.org, the minimum value for NL_ARGMAX is 222359. From Gregory Nutt. 22236- include/nuttx/lcd/edid.h: Add extended EDID block IDs From 22237Gregory Nutt. 22238 22239* apps/ General: 22240 22241- apps/: Follow up the kernel signal-related change in various files 22242under examples/ and graphics/. From Xiang Xiao. 22243- apps/: Update for corrected name of standard header file. Should 22244be dlfcn.h, not dllfcn.h. From Gregory Nutt. 22245- apps/: The file system can no longer be disabled. Remove all 22246conditional logic based on CONFIG_NFILE_DESCRIPTORS==0 From 22247Gregory Nutt. 22248- apps/: Remove/replace all conditional logic based on 22249CONFIG_NSOCKET_DESCRIPTORS == 0. That value is always greater than 22250zero now. In places just replace with #ifdef CONFIG_NET. From 22251Gregory Nutt. 22252- apps/: Some updates due to NuttX renaming: 22253CONFIG_BOARD_INITIALIZE is now CONFIG_BOARD_LATE_INITIALIZE; 22254board_initialize() is now board_late_initialize(). From Gregory 22255Nutt. 22256- apps/: Graphics interfaces nx_openwindow() and nxtk_openwindow() 22257now accept an additional 'flag' parameter. From Gregory Nutt. 22258 22259* NSH: apps/nshlib: 22260 22261- apps/nshlib/nsh_netinit.c: Update for changes to signal 22262notification structures. From Gregory Nutt. 22263 22264* Examples/Tests: apps/examples: 22265 22266- apps/examples/ini_dumper: New example program. ini_dumper is 22267example program that dumps content of ini file in pretty ascii table. 22268It is using inih ini library in fsutils/inih. From Michal Lyszczek. 22269- apps/examples/modbusmaster: Add Simple Modbus master example. 22270This example only supports Read/Write HoldingRegisters, but it is 22271easy to extend it to support Read/Write Input/Coils/etc. 22272Originally creatd by Vytautas in 2016 and updated with minor fixes 22273for this commit. From Alan Carvalho de Assis. 22274- apps/examples/pwfb: Added a test/example at apps/examples/pwfb 22275that was used for initial testing of the per-window framebuffer 22276feature. From Gregory Nutt. 22277- apps/examples/pwlines: Added another a test/example at 22278apps/examples/pwlines that was used for further testing of the 22279per-window framebuffer feature. From Gregory Nutt. 22280- apps/examples/sx127x: Add sx127x demo From Mateusz Szafoni. 22281 22282* File System Utilities: apps/system 22283 22284- apps/fsutils/inih: New package. inih (INI Not Invented Here) is a 22285simple .INI file parser written in C. 22286https://github.com/benhoyt/inih. From Michal Lyszczek. 22287 22288* Network Utilities: apps/netutils: 22289 22290- apps/netutils/codecs/: Remove the big Base64 stack array. From 22291Xiang Xiao. 22292- apps/netutils/codecs/: Add base64_[de|en]code_length() API From 22293ligd. 22294 22295* System Utilities: apps/system 22296 22297- apps/system/cfgdata: Make builtin task stack size and priority 22298configurable. Set default to 2048 (from 1024) per recommendation 22299of Ken Pettit. From Gregory Nutt. 22300- apps/system/embedlog: Update to version 0.4.0. From Michal Lyszczek. 22301- apps/system/nxplayer and nxrecorder: Change 'int prio' to 22302'unsigned int prio'. Required by changes to MQ function 22303prototypes. From Michal Lyszczek. 22304- apps/system/psmq: New package. psmq is publish subscribe message 22305queue. It's a set of programs and libraries to implement 22306publish/subscribe way of inter-process communication on top of 22307POSIX message queue. From Michal Lyszczek. 22308- apps/system/zmodem: Switch to the raw mode before transfer and 22309restore to the original setting after finishing the transfer. From 22310Xiang Xiao. 22311 22312* Testing: apps/testing: 22313 22314- apps/testing/: Move all file system tests from examples/ to 22315testing/ (cxxtest, fstest, nxffs, smart, smart_test, smp). From 22316Gregory Nutt. 22317- apps/testing/cxxtest: Add a README file. From Gregory Nutt. 22318- apps/testing/ostest: Add test of pthread_mutex_timedlock() From 22319Gregory Nutt. 22320- apps/testing/ostest: Fix several errors in the setvbuf() test. 22321From Gregory Nutt. 22322- apps/testing/scanftest: Port of Greg King's scanf test 22323(https://github.com/cc65). From Johannes. 22324 22325* Tools: apps/tools: 22326 22327- apps/tools/check-hash.sh: Add a tool check hash on downloaded 22328packages. From Michal Lyszczek. 22329 22330Bugfixes. Only the most critical bugfixes are listed here (see the 22331ChangeLog for the complete list of bugfixes and for additional, more 22332detailed bugfix information): 22333 22334* Core OS: 22335 22336- Signals: Restructure nxsig_deliver() so that the signal handler is 22337not called with the pre-emption disabled (or, at least no with 22338pre-emption disabled by nxsig_deliver() itself). From Gregory Nutt. 22339- Critical Section Monitor: Move up_critmon_* to arch.h avoid the 22340duplicated declaration. From Xiang Xiao. 22341- Assertions: Architecture-specific assertion logic should dump CPU0 22342IDLE stack only when PID equals 0. IDLE threads of other CPUs do 22343not need this special check. From Xiang Xiao. 22344- Message Queues: Change 'int prio' to 'unsigned int prio'. 22345According to open group specification, priority field in mq_* 22346functions should have unsigned type: 22347http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/mqueue.h.html. 22348From Michal Lyszczek. 22349- Timer Expiration: Fix macro SEC2TICK() 32-bits overflow by using 22350uint64_t in calculation. From ligd. 22351- Kernel Memory Manager: In mm/kmm_heap/kmm_kernel.c, remove unused, 22352duplicated kmm_heapmember(). From Xiang Xiao. 22353- User Memory Manager: Ensure all user allocation try sbrk before 22354fail From Xiang Xiao. 22355- waitid(): Could exit without leaving critical section on some 22356error conditions. From Gregory Nutt. 22357- IOBs: iob_allocwait() should decrease semcount manually. From 22358Xiang Xiao. 22359- IOBs: iob_copyin() should wait for each buffer and adjust the 22360return value of iob_copyin_internal return to simplify the code 22361From Xiang Xiao. 22362- IOB Notifier: Don't check iob_navail in iob_notifier_setup to 22363avoid a potential race condition. From Xiang Xiao. 22364- IOB Debug Dump: Format the whole line before log to avoid the 22365multiple timestamp prefix in each line. From Xiang Xiao. 22366- SHM: Convert bytes to pages by MM_NPAGES instead of MM_PGALIGNUP 22367From Xiang Xiao. 22368- SHM: shmget() should hould call shm_extend() to allocate the 22369physical memory. From Xiang Xiao. 22370- Page Allocator: mm/pgalloc: shouldn't just allocate one page 22371always. From Xiang Xiao. 22372- Granule Allocator: Fix the wrong data in g_1bit_info and make the 22373internal function static. From Xiang Xiao. 22374- srbk(): Fix a backward conditional test. Should call 22375mm_initialize() when brkaddr equal zero From Xiang Xiao. 22376- sbrk(): Pass ARCH_HEAP_VEND as maxbreak argument From Xiang Xiao. 22377- ELF Headers: Move elf related arch function to include/nuttx/elf.h 22378because the implementation is located in libs/libc/machine and in 22379order to avoid the conflict with the 3rd party libraries and clean 22380up the file inclusion: (1) Remove redundant elf32.h, (2) Remove 22381nuttx/binfmt/elf.h in libs/libc/machine, (2) Remove 22382nuttx/binfmt/elf.h in modlib, and (4) Remove nuttx/module.h in 22383modlib. From Xiang Xiao. 22384- ELF Executables: If there is an address environment 22385(CONFIG_ARCH_ADDRENV), binfmt/elf doesn't need to free ctor/dtor 22386alloc since freeing the address environment releases the heap 22387automatically. From Xiang Xiao. 22388- ELF Configuration: Correct libcxx exception handling by 22389introducing the generic config(CXX_EXCEPTION and CXX_LIBSUPCXX) 22390From Xiang Xiao. 22391- ELF Loaders: Call umm_initialize as soon as possible otherwise 22392elf_loadctors/elf_loaddtors may fail to allocate memory. From 22393Xiang Xiao. 22394 22395* Crypto: 22396 22397- Crypto AES: After NuttX 7.28 crypto/aes.c would no longer 22398compile. From Gregory Nutt. 22399 22400* File System/Block and MTD Drivers: 22401 22402- open(): Fix not returning failure for block_proxy() call. From 22403David Sidrane. 22404- AIO: aio_cancel() needs to signal caller after success. Also fix 22405minor issue in the error handler. From Xiang Xiao. 22406- HostFS: Remove the unnecessary use of host_stat() in 22407hostfs_bind() From ligd. 22408- LittleFS: Fix a minor issue found in code review: (1) Replace 22409printf to finfo/fwarn/ferr, (2) Replace malloc/free to 22410kmm_malloc/kmm_free, (3) define LFS_NAME_MAX to NAME_MAX, (4) Check 22411the big endian using CONFIG_ENDIAN_BIG. From Xiang Xiao. 22412- LittleFS: VFS Lookahead should use bit unit not byte unit. From 22413Xiang Xiao. 22414- NxFLAT: Correct a double free debug assertion. This occurs when 22415groups are enabled: (1) once via binfmt_exit and unload_module, 22416and (2) once via sched_releasetcb(). this was corrected by adding 22417logic to free/unload the memory once and nullify the pointer so 22418that cannot be freed a second time. This commit resolves Bitbucket 22419issue #145. From Valmantas Palikša. 22420- NxFLAT: File descriptor leaks when nxflat loading fails. From 22421Valmantas Palikša. 22422- ProcFS: Fix typo in procfs uptime logic. From Sebastien Lorquet. 22423 22424* Networking/Network Drivers: 22425 22426- Network Configuration: The setup seems to support a network 22427without sockets (CONFIG_NSOCKET_DESCRIPTORS == 0). That is not the 22428case; if the network is enabled, sockets must be provided. From 22429Gregory Nutt. 22430- Networking: The value ERROR should never be returned from internal 22431OS functions. That is reserved for returning values to appliations 22432with the errno value set. Within the OS, errors are returned with 22433a negated errno value ALWAYS. From Gregory Nutt. 22434- Networking: The struct in_addr doesn't have the member sin_addr. 22435The function lib_lo_ipv6match() is for IPv6. Correct the function 22436it calls from lib_lo_ipv4matchto() to lib_lo_ipv6match(). Also add 22437CONFIG_NET_IPv6 for configuration. From Kejun ZHOU. 22438- TCP (buffered) send: Fix assertion crash when window size is 22439zero. From Gregory Nutt. 22440- ICMP/ICMPv6: Bind icmp callback from device to connection. 22441Resolves the issue that bind() could not be called before send() 22442From anchao. 22443- TUN/TAP Driver: Re-order all TUN/TAP driver state data. Not only 22444was was with wasting memory due to alignment requirements, it was 22445also causing network packet buffers to be improperly aligned 22446causing problems because the network requires 16-bit packet buffer 22447alignment for uint16_t accesses. This alignment problem was 22448discovered by Alan Carvalho de Assis. From Gregory Nutt. 22449- TUN/TAP Driver: Packet buffer size should include the configured 22450GUARD_SIZE. And, given how the buffers are allocated, the 22451allocation size must be an even number of 16-bit values to preserve 22452alignment. From Gregory Nutt. 22453- Local Sockets: In local_connect(), initialize lc_result before 22454giving lc_waitsem From zhangyuan7. 22455- Local Sockets: Fixed deadlock issue by replacing nxsem_wait() with 22456net_lockedwait() so that we do not wait with the network locked. 22457From zhangyuan7. 22458 22459* Graphics/Display Drivers: 22460 22461- NX Graphics: Remove naming associated with the now non-existent 22462NXFE graphics layer: Rename nxfe_reportposition to 22463nxmu_reportposition. Rename nxfe_redrawreq to nxmu_redrawreq. 22464Rename nxfe.h to nxmu.h. Rename nxfe_state_s to nxmu_state_s. 22465Rename nxfe_conn_s to nxmu_conn_s. From Gregory Nutt. 22466- NxTERM: Remove the nxterm_unregister interface. The correct way 22467to unregister a device is to unlink it. From Gregory Nutt. 22468- NxTerm: Needs to clear display initially. Otherwise, garbage from 22469previous display may still be present from preceding NxWM window. 22470From Gregory Nutt. 22471- Font Cache: Fix a memory leak in the font cache. With a busy 22472NxTerm display, this could drain off all the memory pretty quickly! 22473From Gregory Nutt. 22474- Graphics: Nothing under graphics/ should set the errno. From 22475Gregory Nutt. 22476- Graphics: Fix a coordinate system error in nx_filltrapezoid(). 22477When no clipping rectangle is falls, it falls back to use the 22478entire window as for the clip. However, that window must then then 22479be in window relative coordinates, not in absolute device 22480coordinates. From Gregory Nutt. 22481 22482* Common Board Logic: 22483 22484- boardctl(): Fix compiling error when set 22485CONFIG_BOARDCTL_IOCTL/CONFIG_BOARDCTL_UNIQUEID. From Kevin Liu. 22486 22487* Common Drivers: 22488 22489- INA3221: Fix errors in INA3221 register field addresses and 22490bitfield values. Signed value was losing its signed-ness due to 22491use of unsigned type for register. From Ken Pettit. 22492- Serial Upper Half: Initialize OPOST and ONLCR in uart_register. 22493From Xiang Xiao. 22494- Serial Upper Half: Don't reset the circular buffer on close since 22495DMA may still be transferring data in the background if the user 22496closes the handle too quickly and the handle is opened with 22497O_NONBLOCK. From Xiang Xiao. 22498- 16550 UART: Fix error: 'g_uart0port' undeclared. From Xiang Xiao. 22499- 16550 UART: Fix typo for UART1 flow field initialization From 22500Gregory Nutt. 22501- CDC/ACM HCD: Fixes to the IOCTL method in recovery of UART pointer 22502and in names of Termios-related field. From xhbm. 22503- USB Device: Fix type for USBDEV_TRACE_INITIALIDSET in Kconfig. 22504From Mateusz Szafoni. 22505- TCA64xx: Fix some errors in the TCA64XX driver. From Bruno 22506Schwander. 22507- SYSLOG RAMLog: Fix error: Conflicting types for 'ramlog_addchar' 22508From Xiang Xiao. 22509- NRF24L01: Fix uninitialized irq_work which was causing a 22510hard_fault on interrupt handler whenever something was sent from 22511nrf24l01_term From Petri Ahonen. 22512- MCP2515: Use kmm_zalloc to allocate device state structure. Fix 22513some compiler errors. From Valmantas Paliksa. 22514 22515* Architecture Common: 22516 22517- arch/ Common: Remove architecture-specific watchdog.h and 22518arm-elf.h because they are empty. The arm-elf header file was 22519never used; the empty watchdog.h header file was used in only one 22520place. From Xiang Xiao. 22521- arch/ Common: Move up_pminitialize() after timer_initialize() 22522From ligd. 22523- arch/ Common: Align semi-hosting call style with other syscalls in 22524architecture-specific syscall.h. From Xiang Xiao. 22525- arch/ Common: Every file that uses serial IOCTLs (TIOC*) must 22526explicitly include nuttx/fs/ioctl.h. This was included previously 22527via sneak path in the now deleted arch/serial.h. From Gregory Nutt. 22528- arch/ Interfaces: Rename sched_process_cpuload to 22529nxsched_process_cpuload. All internal sched_ functions should be 22530prefixed with nx. From Valmantas Paliksa. 22531 22532* ARMv7-A: 22533 22534- ARMv7-A MMU: Updating the cp15_wrttb and cp15_wrdacr functions to 22535use inline assembly in the correct way. The incorrect method was 22536generating errors as ARMv7-a expects the MCR/MRC instructions to 22537provide registers as an argument(MRC p15, 0, <Rt>, c2, c0, 0) and 22538the code was providing a constant value(and hence the build 22539error). From Bilal Wasim. 22540- ARMv7-A: Remove inclusion pg_macros.h for armv7-a since this 22541header file does not exist. From zhangyuan7. 22542- ARMv7-A: Guard some assembly files if configuration not selected. 22543From zhangyuan7. 22544- ARMv7-A GIC: Fix assemble error when including gic.h From Xiang 22545Xiao. 22546- ARMv7-A GIC: Don't use GIC_ICDDCR_ENABLEGRP1 for GIC NONSECURE 22547since this bit doesn't exist in this mode. From liuzhuang. 22548 22549* ARMv7-R: 22550 22551- ARMv7-R Syscall: In arch/arm/include/syscall.h, add missing 22552inclusion of arch/armv7-r/syscall.h for Cortex-R. From Xiang Xiao. 22553 22554* ARMv7-M: 22555 22556- ARMv7-M Initialization: As noted by Roland Takacs in Bitbucket 22557issue 141, there is a compilation error for STM32 if CONFIG_NET and 22558CONFIG_NETDEV_LATEINIT are selected. That was due in part to the 22559commit which extended up_netinitialize() with a 22560!defined(CONFIG_NETDEV_LATEINIT) guard but did not add the guard to 22561concrete implementations. I say "in part" because I don't think 22562that the original intent of commit 19e16cb was to enable an 22563alternative initialization of MCU internal Ethernet support but 22564rather to enable support of external Ethernet devices that may have 22565dependencies on, for example, SPI. However, this is still a proper 22566fix to avoid the compilation error that can occur with this 22567combination of configuration options. From Gregory Nutt. 22568- ARMv7-M Configuration: ARCH_HIPRI_INTERRUPT shouldn't select 22569ARMV7M_USEBASEPRI. First because that is a violation of the 22570layered nature of the Kconfig architecture, but also because then 22571Kconfig will generate errors when high priority interrupts are used 22572with other architectures. From Xiang Xiao. 22573- ARMv7-M Vector Table: Make the default NVIC_VECTAB_TBLOFF_MASK 22574safer. The base address of the new vector table must be aligned to 22575the size of the vector table extended to the next larger power of 225762. From Xiang Xiao. 22577- ARMv7-M RAM Vectors: Correct bad NVIC_VECTAB_TBLOFF_MASK 22578definitions in previous commit. Were missing bits in the mask. 22579Raised DEBUGASSERT in armv7-m/up_ramvec_initialize.c line: 144. 22580From Mateusz Szafoni. 22581 22582* Espressif ESP32 Drivers: 22583 22584- ESP32 Timer ISR: Fix backward comparison. From Gregory Nutt. 22585- ESP32 Serial: Fix some backward arguments. Correct 2-stop bit 22586setting. From Gregory Nutt. 22587 22588* Microchip/Atmel SAMD2x/L2x Drivers: 22589 22590- SAMD2/L2 Serial: SAMD2/L2 serial driver. It needs 22591sam_usart_enable(). to work From Alan Carvalho de Assis. 22592 22593* Microchip/Atmel SAMD3/4 Drivers: 22594 22595- SAM3/4 Ethernet: Port Anthony Merlino's SAMv7 fix to similar 22596Ethernet driver for the SAM3/4. From Gregory Nutt. 22597 22598* Microchip/Atmel SAMV7 Drivers: 22599 22600- SAMv7 SPI: Fix DMA Tx/Rx timeout issue. From Kevin Liu. 22601- SAMv7 QSPI: Compile error when set CONFIG_SAMV7_QSPI_DLYBCT. 22602From Kevin Liu. 22603- SAMv7 Ethernet: The logic for determining the number of queues for 22604SAMV71 must be extended. All SAMv7 parts increase the number of 22605queues from 3 to 6 at revision B, not just the SAMV71. From 22606Gregory Nutt. 22607- SAMv7 Ethernet: Fixes rxdesc index logic to handle Buffer Not 22608Available (BNA) condition. If a SOF is found, but no EOF, don't 22609move past the frame. Instead, keep the index at the SOF buffer 22610until the rest of the data is written. This fixes a receiver 22611lockup condition where the peripheral and this driver get out of 22612sync with there head pointers. In this case the driver has moved 22613past buffers it owns, without clearing ownership, which results in 22614the peripheral and driver in a deadlock with each other. From 22615Anthony Merlino. 22616 22617* Microchip/Atmel SAMA5Dx Drivers: 22618 22619- SAMA5Dx Ethernet: Port Anthony Merlino's SAMv7 fix to similar 22620Ethernet driver for the SAMA5Dx. From Gregory Nutt. 22621 22622* Microchip/Atmel SAMA5Dx Board: 22623 22624- SAMA5D2-XULT: Move console from FLEXCOM4 to UART1. FLEXCOM4 does 22625not work for the Arduino serial. UART1 is used with the VCOM 22626provided by the EDBG. From Gregory Nutt. 22627 22628* NXP i.MXRT: 22629 22630- i.MXRT Clock Configuration: If SDRAM is activated it was only 22631running at 40MHz. This was because imxrt_clockconfig.c changed the 22632SEMC clock divider after the DCD was configured. This commit 22633corrects that. From Johannes. 22634 22635* NXP i.MXRT Drivers: 22636 22637- i.MXRT GPT: Correct register offsets. From David Sidrane. 22638- i.MXRT TMR: Fix addressing and restructure using common offset. 22639From David Sidrane. 22640- i.MXRT ADC: Error in offset. From David Sidrane. 22641 22642* NXP/Freescacle Kinetis Boards: 22643 22644- Teensy-3.x: Fix a mismatch in types in defconfig. From Gregory 22645Nutt. 22646 22647* NXP LPC17xx: 22648 22649- LPC176x Clock Configuration: The code preserves undocumented 22650reserved bits only if board does not set them to keep previous 22651behavior for boards where developers (hopefully) know what values 22652should be set into these bits. From Pavel Pisa. 22653- LPC17xx Clock Configuration: The enable of EMC clocks has to be 22654preserved when already enabled by loader. EMC and related pins 22655configuration has to be skipped if the system is run from SDRAM. A 22656region of SDRAM which is used by system must not be used for heap. 22657From Pavel Pisa. 22658 22659* NXP LPC17xx Drivers: 22660 22661- LPC17xx CAN: The name can_txready clashes with NuttX CAN core 22662global function. LPC178x has only single LPC17_SYSCON_PCLKSEL with 22663only single divisor. From Pavel Pisa. 22664 22665* NXP LPC17xx Boards: 22666 22667- Open1788: Add missing MPU configuration option. From Gregory Nutt. 22668 22669* On Semi LC823450 Boards: 22670 22671- LC823450-XGEVK: Remove -nostdinc to avoid build error From 22672Masayuki Ishikawa. 22673 22674* STMicro STM32: 22675 22676- STM32: Don't try including stm32_gpio.h from within chip/*.h 22677header files. Not only is bad style for a layered inclusion 22678system, but it doesn't always work. From Gregory Nutt. 22679 22680* STMicro STM32 Drivers: 22681 22682- STM32 PWM: Fix polarity and IDLE state configuration From Mateusz 22683Szafoni. 22684- STM32 ADC, PWM and TIM: (1) missing T1TRGO2 for JEXTSEL, (2) fix 22685sample time configuration for channels. The array index for 22686channels was missing, (3) fix TRGO/TRGO2 configuration, and (6) 22687support for advanced timers channel 5 and 6. From Mateusz Szafoni. 22688- STM32 Heap: Change 'if CONFIG_STM32_HAVE_CCM' to 'ifdef 22689CONFIG_STM32_HAVE_CCM' to avoid a warning when 22690CONFIG_STM32_HAVE_CCM is not defined. From Gregory Nutt. 22691- STM32 Oneshot Timer: Fix an error introduced be a previous timer 22692commit. From Maximilian Kriegleder 22693- STM32 Tickless Mode and Free-Running Timer: Apply Max's 22694stm32_oneshot.c fix to the tickless implementation and to the 22695freerunning time. From Mateusz Szafoni. 22696- STM32 PWM: Set CCPxP and CCPxNP bits if polarity is negative. 22697Missing commas in initializers could break compilation in certain 22698configurations. From Mateusz Szafoni. 22699- STM32F7 Interrupts: Add the missing macro STM32_IRQ_NIRQS used by 22700arch/arm/src/stm32f7/stm32_irq.c. From Kejun ZHOU. 22701- STM32H7 DMA: Fix AHB1 base addresses memory map. From Mateusz 22702Szafoni. 22703- STM32H7 SysTick: H7 appears to ignore the SysTick CLKSOURCE bit 22704and use the CPU clock in all cases. From Mateusz Szafoni. 22705 22706* STMicro STM32 Boards: 22707 22708- B-L072Z-LRWAN1: Fix typo in SPI1 pin definitions. From Mateusz 22709Szafoni. 22710- STM32F429I-DISCO: Handle multiple calls to the LCD 22711up_fbinitialize() function. From Gregory Nutt. 22712- STM32F769I-DISCO: Florian R. Hölzlwimmer reports that 22713stm32_appinitialize.c often has missing OK and NULL definitions. 22714This should be fixed by including sys/types.h where they are 22715defined. From GregoryN. 22716- STM32F769I-DISCO: Remove CONFIG_STM32F7_QUADSPI=y from the 22717configuration. This was apparently set before the implementation 22718was added. Now that the implementation was added, the configuration 22719will not build because it requires that QSPI GPIO pin definitions 22720be provided in the board.h header file. From Gregory Nutt. 22721 22722* TI AM335x Drivers: 22723 22724- AM335x Serial: Eliminate an error 'TIOCSBRK undeclared. From 22725Gregory Nutt. 22726 22727* C Library/Header Files: 22728 22729- strto*: In alll strto* function family, did't consume single '-' 22730or '+', allow sign in strotul(l)). From Johannes. 22731- getopt(): Add logic to reinitialize the stale context for the 22732FLAT/PROTECTED builds. In these builds getopt() global variables 22733may be shared by many tasks. If any task exits the getopt() loop 22734before all command line arguments have been parsed, then getopt() 22735global variables will be left in a bad state. The next time 22736getopt() is called, this logic should detect the bad state and 22737force the state of getopt() to be re-initialized so that it can be 22738reused. This logic is not full proof (it would fail, for example, 22739if you tried to parse the same command line twice) but should catch 22740the typical misuse cases. From Xiang Xiao. 22741- sscanf(): Initialized the lastc pointer to avoid the checks for 22742NULL. Removed a bug in the floating point parsing which allowed 22743several signs after each other. From Johannes. 22744- lib_vsprintf() (Legacy): No precision specifier resulted in 22745precision 0 but should be precision 6. From Johannes. 22746- lib_vsprintf() (Legacy): Correct justification for alternate forms 22747of %p and %P From ligd. 22748- lib_vsprintf() (Nano): Add long long support. 22749CONFIG_LIBC_LONG_LONG needs at least CONFIG_NANO_PRINTLEVEL 2. 22750Code size for compile without CONFIG_LIBC_LONG_LONG shouldn't be 22751affected. From Johannes. 22752- lib_vsprintf() (Nano): Remove CONFIG_LIBC_PRINT_MINIMAL. The 22753output in that configuration is unsatisfactory and inappropriate 22754for use with NuttX. For example, the output from many NSH commands 22755become corrupted and useless. Doesn't belong in this context. 22756From Gregory Nutt. 22757- libs/libc/symtab: Remove unused symtab_findorderedbyvalue(). From 22758Xiang Xiao. 22759- libs/libc/machine/arm: Fix the minor issue in libc arm machine 22760folder; MOVW/MOVT should use zero(not sign) extension. From Xiang 22761Xiao. 22762- libs/libc/libc.csv: Should be locale.h not local.h. From Joao 22763Matos. 22764- libs/libc/libc.csv: Needed logic for correct compilation if not 22765using CONFIG_LIBC_WCHAR. From Joao Matos. 22766- libxx: Always include libxx_cxa_guard.cxx in the build for for 22767uclibcxx. From zhangyuan7. 22768 22769- include/stdbool.h: Define bool only when __cplusplus isn't 22770defined. From Xiang Xiao. 22771- include/nuttx/list.h: Added a Linux-compatible list 22772implementation. From zhuyanlin. 22773- include/nuttx/irq.h: Fix enter_critical_section/spin_lock_irqsave 22774macro typo error and remove the duplicated inclusion of 22775arch/irq.h. From Xiang Xiao. 22776- include/dlfcn.h: Correct naming of standard header file. Should 22777be dlfcn.h, not dllfcn.h. From Gregory Nutt. 22778- include/nuttx/nx/nxmu.h: This header file could be lethal; it 22779declared an #error if CONFIG_DISABLE_MQUEUE=y. From Gregory Nutt. 22780- include/nuttx/compiler.h: Important fix for C++ users. 22781compiler.h was using the value of __STDC_VERSION__ to determine if 22782inline functions are supported or not. If not then the keyword 22783inline was defined out. Good for C but bad for C++ because C++ 22784does not define __STDC_VERSION__ at all. C++ applications may 22785draw in compiler.h indirectly via other head files and this can 22786result in C++ compiler problems since 'inline' is defined out. 22787This fix is to ignore the (undefined) __STDC_VERSION__ if 22788__cplusplus is defined. From Gregory Nutt. 22789- include/nuttx/elf.h: Adds missing extern "C" __cplusplus guard. 22790From Anthony Merlino. 22791- include/poll.h: Remove un-named union from 'struct pollfd'. It 22792is not required by OpenGroup.org and violates the NuttX C coding 22793standard because it is not C89 compatible. From Gregory Nutt. 22794- libs/libc/Makefile, libs/libnx/Makefile, and mm/Makefile: Remove 22795obj-path MKDEPS option since make dependency target (MT) is not 22796supported by some toolchains. From anchao. 22797- include/nuttx/compiler.h: Assume inline support if 22798__STDC_VERSION__ not defined. From Xiang Xiao. 22799 22800* Tools: 22801 22802- tools/convert-comments.c: Fix an error in handling of a blank C++ 22803comment before a comment block. From Gregory Nutt. 22804- tools/lowhex.c: Fix an initialization problem that was causing 22805some odd behavior at the beginning of lines. From Gregory Nutt. 22806- tools/nxstyle.c: Fix logic that detects if an operator is 22807correctly delimited with spaces. sched/: Various changes because 22808sched/ C files were used as Guinea Pigs to test nstyle.c. From 22809Gregory Nutt. 22810- tools/nxstyle.c: Was confusing hex constants with strings staring 22811with 'x'. Added logic to complain about hex constants containing 22812upper case characters. From Gregory Nutt. 22813- tools/nxstyle.c: Fix logic error that prevent detecion of '/' and 22814'/=' as operators. net/: Minor updates resulting from testing 22815tools/nxstyle. From Gregory Nutt. 22816 22817* NSH Library: apps/nshlib: 22818 22819- NSH Console: Fix copy paste errors. Some Kconfig configuration 22820names needed CONFIG_ prefix. From David Sidrane. 22821- nshlib/nsh_timcmds.c: Uninitialized struct tm caused 'date -s' to 22822fail. From Valmantas Palikša. 22823 22824* Examples: apps/examples: 22825 22826- apps/examples/nxterm: Replace direct calls to nxtk_register() 22827with legal, indirect calls via boardctrl(BOARDIOC_NXTERM). 22828Replace calls to (deleted) nxterm_unregister(). The correct way 22829to delete a driver is by unlink'ing it. From Gregory Nutt. 22830- apps/examples/nxterm: Most configuration options were not 22831available in the Kconfig file. From Gregory Nutt. 22832- apps/examples/nxterm: Replace illegal direct calls to 22833nxterm_redraw() and nxterm_kbdin() with new boardctl() calls. 22834From Gregory Nutt. 22835- apps/examples/nxterm: NxWM passed the size of the NxTK sub-window 22836but nxterm example passed the size of the complete NxTK window. 22837They must be made consistent. From Gregory Nutt. 22838 22839* Graphics Utilities: apps/graphics: 22840 22841- apps/graphics/NxWidgets/nxwm: Correct an error in the type of the 22842return value in CCalibration. From Gregory Nutt. 22843- apps/graphics/NxWidgets/nxwm: Replace direct calls to 22844nxtk_register() with legal, indirect calls via 22845boardctrl(BOARDIOC_NXTERM). Replace calls to (deleted) 22846nxterm_unregister(). The correct way to delete a driver is by 22847unlink'ing it. From Gregory Nutt. 22848- apps/graphics/NxWidgets: Replace illegal direct calls to 22849nxterm_redraw() and nxterm_kbdin() with new boardctl() calls. 22850From Gregory Nutt. 22851 22852* Modbus: apps/modbus: 22853 22854- apps/modbus/Kconfig: Fix modbus master Kconfig. Modbus Master 22855ASCII compiles correctly. From Alan Carvalho de Assis. 22856 22857* Network Utilities: apps/netutils: 22858 22859- apps/netutils/dhcpc/dhcpc.c: Fix an error for DHCP REQUEST 22860receiving a NAK.In DHCP Request operation, no need to update 22861ciaddr to the client address and keep it as 0. From Kevin Liu. 22862 22863* System Utilities: apps/system: 22864 22865- apps/system/vi/vi.c: Fix an infinite loop bug that can show up in 22866some cases (plus a couple of other items). From Ken Pettit. 22867- apps/system/vi: Condition KEY_CMDMODE_REPEAT with 22868CONFIG_SYSTEM_VI_INCLUDE_COMMAND_REPEAT to avoid build error when 22869option is not selected. From Anthony Merlino. 22870- apps/system/nxplayer/nxplayer.c: Fix build error when only enable 22871CONFIG_AUDIO_EXCLUDE_VOLUME is enabled. From ZhongAn. 22872- apps/system/system/system.c: Correct a path name. From anchao. 22873- apps/system/taskset: Fix command arguments are not passed. From 22874Masayuki Ishikawa. 22875 22876* Testing: apps/testing: 22877 22878- apps/testing/ostest/timedmutex.c: pthread_mutex_timedlock() 22879returns EDTIMEDOUT on a timedout, not EAGAIN. From Gregory Nutt. 22880 22881* Tools: apps/tools: 22882 22883- apps/tools/mksymtab.sh: 'export LC_ALL=C' to get the traditional 22884sort order From anchao. 22885 22886NuttX-7.30 Release Notes 22887------------------------ 22888 22889The 130th release of NuttX, Version 7.30, was made on May 19, 2019, 22890and is available for download from the Bitbucket.org website. Note 22891that release consists of two tarballs: nuttx-7.30.tar.gz and 22892apps-7.30.tar.gz. These are available from: 22893 22894https://bitbucket.org/nuttx/nuttx/downloads 22895https://bitbucket.org/nuttx/apps/downloads 22896 22897Both may be needed (see the top-level nuttx/README.txt file for build 22898information). 22899 22900Additional new features and extended functionality: 22901 22902* Core OS: 22903 22904- pthreads: Added non-standard pthread_get_stackaddr_np() and 22905pthread_get_stacksize_np(). From Joao Matos. 22906- boardctl(): Add a command to start the VNC server. From Gregory 22907Nutt. 22908- Signals: Remove references to CONFIG_DISABLE_SIGNALS in many 22909files. Signals can no longer be disabled. From Gregory Nutt. 22910 22911* Wireless/Wireless Drivers: 22912 22913- NRF24L01: Add support for "multicast" TX mode - no waiting for ACK 22914(needs to be enabled with fcntl SETTXPAYLOADNOACK) From Leif Jakob. 22915 22916* Graphics/Display Drivers: 22917 22918- NX Graphics: Add new server->client callback to notify the window 22919client of server events. Remove the old 'blocked' callback and just 22920make it one case of an 'event' callback. From Gregory Nutt. 22921- NX Graphics: Implement new interfaces nx_synch() and nxtk_synch(). 22922This are used to synchronize the NX server with the window client. 22923Currently most of the logic is equivalent to nx_block() and 22924nxtk_block(), but with slightly different semantics. They are 22925separate now because they are likely to diverge in the future. 22926From Gregory Nutt. 22927- NX Graphics: Add support for modal windows. From Gregory Nutt. 22928- NX Graphics: Implement a software cursor. The cursor behaves 22929like a "sprite", always at the top of the display with a 22930transparent background. Includes new NX interfaces to show/hide 22931the cursor, set the cursor image, and to move the cursor position. 22932From Gregory Nutt. 22933- NX Graphics: Added support for hiding windows. This features is 22934needed by Twm4Nx: When a window is iconified, the icon should 22935appear on the background and the window should disappear (i.e., be 22936hidden). The windows needs to remain healthy and to be updated in 22937all ways, but it cannot affect the display content. Conversely, 22938when the icon is clicked, the icon needs to be hidden on the 22939background and the window needs to be restored in its current 22940state (which may be different than the state of the window at the 22941time it was iconified. From Gregory Nutt. 22942- NX Graphics: Windows can now be created in the hidden state. 22943This can be used to clean up initial window presentation which may 22944involve several steps. This makes those steps all invisible until 22945nx[tk]_setvisibility() is called to make the windows visible. 22946From Gregory Nutt. 22947- NX Graphics: Add new NX interfaces to query if a window is hidden 22948or not. From Gregory Nutt. 22949- NxTerm IOCTLs: Replace specific interfaces between boardctl and 22950nxterm with a generalized IOCTL interface. From Gregory Nutt. 22951- NxTerm: Add a new IOCTL that can be used to inform NxTerm that 22952the size of a window has changed. From Gregory Nutt. 22953 22954* Other Common Device Drivers: 22955 22956- CAN Upper Half: Support multiple readers of the same port From 22957Valmantas Paliksa. 22958- MAX7456: Adds a read-only (for now) /dev/osd0/CM interface for 22959obtaining the chip's onboard NVM character map data. Use seek() 22960to position the cursor over a desired subset of bytes, or request 22961a large read to obtain the entire EEPROM memory contents. Values 22962are returned in binary form. Use hexdump, etc. to format them for 22963viewing. From Bill Gatliff. 22964- Serial Upper Half: The upper half serial driver configuration 22965CONFIG_SERIAL_DMA used to enable DMA on both RX and TX streams. 22966This was replaced with CONFIG_SERIAL_RXDMA and CONFIG_SERIAKL_TXDMA 22967which will permit supporting DMA on only one or both streams. 22968From Gregory Nutt. 22969- FUSB303: Add FUSB303 driver From Juha Niskanen. 22970 22971* Microchip PIC32MZ Drivers: 22972 22973- PIC32MZ GPIO: Adds support for edge detect mode. Slew Rate was 22974also added for completeness. From Abdelatif Guettouche. 22975 22976* Microchip/Atmel SAMv7 Boards 22977 22978- SAME70-xplained: Add a configuration for test Twm4Nx using VNC. 22979From Gregory Nutt. 22980 22981* Microchip LPCxx Drivers: 22982 22983- LPC17xx Ethernet: Added support for KSZ8081RNA PHY to LPC17xx 22984Ethernet driver. From jjlange. 22985- LPC17xx Ethernet: Added support for Ethernet PHY ioctl() on 22986LPC17xx. From jjlange. 22987 22988* NXP i.MX RT: 22989 22990- .i.MXRT1020: Gets imx1020 family support started. It is pretty 22991similar, but subtly different, to 1050/60 (less PLLs, less GPIO 22992banks, differently numbered ports etc. etc.). 22993 22994Moved each of the imxrt family-specific files into its own 22995subdirectory to tidy things up a bit, and remove the vast majority 22996of ifdefs from the mainline code. 22997 22998From Dave Marples. 22999 23000* NXP LPC54xx Drivers 23001 23002- LPC54xx USB FS Host: Bring in the USB FS OHCI driver from LPC17. 23003This is a quick'n'dirty port from LPC17 that I hope finish 23004sometime later. Currently, it is missing hardware clocking setup 23005and is not even hooked into the build system yet. From Gregory 23006Nutt. 23007 23008* NXP LPC54xx Boards 23009 23010- LPCXpresso-LPC54628: Add a Twm4Nx configuration. From Gregory Nutt. 23011 23012* Sony CXD56xx 23013 23014- CXD56xx: Add initial CXD56xx chip driver sources. From Nobuto 23015Kobayashi. 23016 23017* Sony CXD56xx Spresense Board 23018 23019- Spresense: Add Spresense board support. This is not the full 23020Spresense BSP from Sony, only the barebones logic to present an 23021NSH console. From Nobuto Kobayashi. 23022 23023* STMicro STM32: 23024 23025- STM32F7 Clocking: Add support for using the HSE in bypass mode, 23026configured by board.h From Anthony Merlino. 23027- STM32F7 Clocking: Added support for TICKLESS mode. From Valmantas 23028Paliksa. 23029- STM32H7 Backup Domain: Add backup domain control registers. From 23030Jukka Laitinen. 23031- STM32H7 Clocking: Set the STM32H7 default HSI pre-divider to 4. 23032The I2C driver currently assumes HSI clock to be 16MHz. From Jukka 23033Laitinen. 23034- STM32H7 Memorymap.: Add the STM32H7 SYSTEM_UID and DEBUGMCU_BASE 23035register definitions. From Jukka Laitinen. 23036- STM32L071x: Add support for STM32L071x. From Mateusz Szafoni. 23037 23038* STMicro STM32 Drivers: 23039 23040- STM32 OTGHS Host: Allow VBUS monitoring for the OTG_HS host 23041driver. From Jason Harris. 23042- STM32F0/L0 ADC: Initial ADC support for the STM32 M0 From Mateusz 23043Szafoni. 23044- STM32F0/LO I2C: Port STM32F7 I2C to STM32F0/L0, From Mateusz Szafoni. 23045- STM32F1 FLASH: As noted by Matias N, the FLASH base address used 23046was incorrect. It was using the address of the FLASH data, not 23047the address of the FLASH registers. From Gregory Nutt. 23048- STM32F3 I2C: Port STM32F7 I2C to STM32F3. From Mateusz Szafoni. 23049- STM32F7 Ethernet.c: Auto-generate Ethernet MAC address from 23050device unique ID. From Valmantas Paliksa. 23051- STM32F7 FLASH: Add flash block mapping support for progmem. From 23052Valmantas Paliksa. 23053- STM32F7 FMC: Updated stm32_fmc.h with more FMC definitions. From 23054Joao Matos. 23055- STM32F7 GPIO: Adds additional pin alternate function for SPI2. 23056From Anthony Merlino. 23057- STM32F7 PWM: Ported the PWM from F4 to F7. From Eduard Niesner. 23058- STM32F7 SDMMC: Support bypassing the input clock divider on the 23059SDMMC interface. This enables using the full clock speed provided 23060to the SDMMC interface with no dividing. From Anthony Merlino. 23061- STM32F7 SPI: Add SPI DMA threshold configuration. From Valmantas 23062Paliksa. 23063- STM32F7 UID: Add UID access. From Valmantas Paliksa. 23064- STM32F7 USB: USB High speed for STM32F7 series From Ramtin Amin. 23065- STM32H7 Ethernet: Add stm32h7 Ethernet driver. This is the 23066initial push for the Ethernet driver. The driver has been tested 23067to be working on a nucleo board. This is still WIP, it doesn't 23068for example do MAC filtering on HW level, but just receives all 23069Ethernet packets. From Jukka Laitinen. 23070- STM32H7 GPIO: Add the GPIO_ETH_RMII_RXD1 pinmap definition for 23071STM32H7. From Jukka Laitinen. 23072- STM32H7 SDMMC: Add STM32H7 SDMMC driver. It is mostly copied 23073from STM32F7, with modified register addresses and bits, and IDMA 23074dded. This is still WIP; it only works with IDMA. From Jukka 23075Laitinen. 23076- STM32H7 Timers: Add timer devices driver for STM32H7. This i 23077mostly a forklift from stm32f7 with some h7 specific 23078modifications. From Jukka Laitinen. 23079- STM32L0 AES: Add support for AES for L0. From Mateusz Szafoni. 23080- STM32L0 RND: Add support for RND. From Mateusz Szafoni. 23081- STM32L0 HSI48: Add support for HS148 for L0. Move HSI48 enable 23082from stm32_usbdev.c to stm32xx_rcc.c From Mateusz Szafoni. 23083- STM32L4 USB FS Device: Add USB FS device support. From Juha 23084Niskanen. 23085- STM32L4 HSI48: Port HSI48 from STM32F0/L0 From Juha Niskanen. 23086- STM32L4 CRS: Port CRS from STM32F0/L0 From Juha Niskanen. 23087 23088* STMicro STM32 Boards: 23089 23090- B-L072Z-LRWAN1: Add ADC example. From Mateusz Szafoni. 23091- B-L072Z-LRWAN1: Add nxlines_oled example (ssd1306). Add support 23092for the I2C tool From Mateusz Szafoni. 23093- Nucleo-144: Added STM32_RCC_DCKCFGR2_DSISRC definition to board.h. 23094From Joao Matos. 23095- Nucleo-144: Mount sysfs for ifconfig for f767-netnsh/defconfig. 23096Even if ifconfig is working to set IP, it will not work to display 23097NICs (without args) From Phil Coval. 23098- Nucleo-144: Add basic PWM support to nucleo-144 board. More PWMs 23099and multi channels support may be investigated and added later. 23100Tested on Nucleo-F767ZI. From Phil Coval. 23101- Nucleo-F303ZE: Add nxlines_oled example (ssd1306) From Mateusz 23102Szafoni. 23103- Nucleo-H743ZI: Enable the FPU. From Jason Harris. 23104- Nucleo-H743ZI: Add support for I2C devices: ssd1306, pca9635, 23105i2ctools From Mateusz Szafoni. 23106- Nucleo-H743ZI: Add default clock configuration for SDMMC for 23107Nucleo-H743ZI's board.h. From Jukka Laitinen. 23108- Nucleo-H743ZI: Add the input clock frequency definitions in 23109board.h for all the drivers. Assumes internal clock source for 23110all the timers. From Jukka Laitinen. 23111- STM32F4 Discovery: Keep c++ global constructor symbols From 23112Masayuki Ishikawa. 23113- Nucleo-L073RZ: Add MFRC522 support From Mateusz Szafoni. 23114- OmnibusF4: Add boardctl() reset logic. From Bill Gatliff. 23115- OmnibusF4: Add board_ioctl() which is needed only if 23116CONFIG_BOARDCTL_IOCTL=y is selected; Update NSH configuration 23117to enable board IOCTLs and DFU mode reset. From Bill Gatliff. 23118- STM32L Discovery: Add support for board_late_initialize(), Move 23119common initialization logic out of board_app_initialize() into new 23120file stm32_bringup.c From Gregory Nutt. 23121- STM32F103-Minimum: Add PROCFS automount support From Alan 23122Carvalho de Assis. 23123 23124* Libraries/Header Files: 23125 23126- include/alloca.h: Add alloca.h. Included limited implementation 23127of alloc() that is only available for GCC versions 3 and above. 23128From Joao Matos. 23129- include/cxx/cstdlib: Add std::random() From Gregory Nutt. 23130 23131* apps/ General: 23132 23133- Many locations: Remove references to CONFIG_DISABLE_SIGNALS. 23134Signals can no longer be disabled. From Gregory Nutt. 23135 23136* Examples/Tests: apps/examples: 23137 23138- apps/examples/fb: Add some awareness of overlays to 23139apps/examples/fb From Matthew Koch. 23140- apps/examples/lvgldemo. Update to Littlevgl 5.3. From Matthew 23141Koch. 23142- apps/examples/pwfb: Extend example to verify software cursors. 23143From Gregory Nutt. 23144- apps/examples/pwfb: Add options to reduce the number of windows. 23145This is helpful during debug to reduce the complexity. From 23146Gregory Nutt. 23147 23148* Network Utilities: apps/netutils: 23149 23150- apps/netutils/cjson: Support for the current version of cJSON. 23151From Mateusz Szafoni. 23152- apps/netutils/libcurl4nx: This is an initial commit libcurl4nx. 23153It is not complete yet, but I still wish to commit the unfinished 23154bits to describe the roadmap, and because it is already usable. It 23155will be updated and fixed in the future weeks and months, certainly 23156including POST support and later, SSL. From Sebastien Lorquet. 23157- apps/netutils/netinit. This commit removes the private network 23158initialization logic from NSH and puts in a common location at 23159apps/netutils/netinit. Now that netork initialization logic can be 23160used by applications that do not include NSH. From Gregory Nutt. 23161- apps/netutils/netlib: Add a more flexible version of 23162netlib_parsehttpurl(). This one can parse any URL, and is 23163extensible so future improvements keep the same API. From Sebastien 23164Lorquet. 23165 23166* System Utilities: apps/system 23167 23168- apps/system/spi: I needed a small test tool for spi in the style of 23169the I2C tool, but I didn't see one so I've hacked one out of the I2C 23170tool source. From Dave Marples. 23171 23172* Graphics: apps/graphics: 23173 23174- apps/graphics/twm4nx. This release introduces Twm4Nx. Twm4Nx is a 23175"port" of TWM, Tab Window Manager (or Tom's Window Manager) version 231761.0.10 to NuttX NX windows server. No, a port is not the right 23177word. It is are-design of TWM from the inside out to work with the 23178NuttX NX server and NXWidgets. The name Twm4Nx reflects this 23179legacy. But Twm4Nx is more a homage to TWM than a port of TWM. 23180 23181The original TWM was based on X11 which provides a rich set of 23182features. TWM provided titlebars, shaped windows, several forms of 23183icon management, user-defined macro functions, click-to-type and 23184pointer-driven keyboard focus, graphic contexts, and user-specified 23185key and pointer button bindings, etc. 23186 23187Twm4Nx, on the other hand is based on the NuttX NX server which 23188provides comparatively minimal support. Additional drawing support 23189comes from the NuttX NxWidgets library (which necessitated a 23190conversion to C++). 23191 23192Twm4Nx is greatly stripped down and targeted on small embedded systems 23193with minimal resources. For example, no assumption is made about the 23194availability of a file system; no .twmrc file is used. 23195 23196The state of the "port" is available in 23197apps/graphics/twm4mx/README.txt. To summarize: The port is fully 23198functional but probably only at an alpha release level. The only 23199missing critical feature is built-in touchscreen calibration. 23200 23201- apps/graphics/littlevgl. Update to Littlevgl 5.3. From Matthew 23202Koch. 23203- apps/graphics/nxglyphs: Put all NxWidgets and NxWM glyphs into a 23204common directory where they can eventually be shared. Decouple 23205from nxwidgets and nxwm so that they can be used elsewhere. 23206Creates include/graphics/nxglyphs.h From Gregory Nutt. 23207- apps/graphics/nxglyphs: Add some new cursor bitmap images. From 23208Gregory Nutt. 23209- apps/graphics/nxglyphs: Add mkcursor.c. Will auto-generate 23210cursor image header file from Gimp C output. From Gregory Nutt. 23211- apps/graphics/nxglyphs: Add 16x16 cursor images. 30x30 are kind 23212of large on small displays. From Gregory Nutt. 23213- apps/graphics/nxglyphs: Add a new resize cursor image. From 23214Gregory Nutt. 23215- apps/graphics/nxwm: Separate NxWidgets and NxWM into separate 23216directories. Remove old, common NxWidgets directory. From 23217Gregory Nutt. 23218- apps/graphics/nxwm: Move the NxWM unit test main() to apps/nxwm. 23219It is no longer a unit test, but the main startup entry point for 23220NxWM. From Gregory Nutt. 23221- apps/graphics/nxwidgets: Update NX window clients so that they 23222use the new 'event' callback (vs. the obsoleted 'blocked' callback). 23223From Gregory Nutt. 23224- apps/graphics/nxwidgets: Add a synchronize method to every window. 23225This is a wrapper arounc nx[tk]_sync and permits C++ applications 23226to synchronize with the NX server. From Gregory Nutt. 23227- apps/graphics/nxwidgets: Add support for modal windows. From 23228Gregory Nutt. 23229- apps/graphics/nxwidgets: Add cursor control methods to the 23230CNxServer class. From Gregory Nutt. 23231- apps/graphics/nxwidgets: Add a method to CButtonArray that will 23232allow us to dynamically resize the array (at the cost of losing all 23233button labels). From Gregory Nutt. 23234- apps/graphics/nxwidgets: Fix a possible deadlock condition when 23235waiting for window geometry data that will never come. Fixed by 23236re-requesting geometry data if we don't already have it. From 23237Gregory Nutt. 23238- apps/graphics/nxwidgets: Add handshake to 23239CWidgetControl::getWindowHandle() to avoid returning a NULL 23240handle. From Gregory Nutt. 23241- apps/graphics/nxwidgets: CNxTkWindow, CNxWindow, CNxServer: Add 23242support to create RAM backed windows. From Gregory Nutt. 23243- apps/graphics/nxwidgets: Add methods to all windows to query if a 23244window is visible or hidden. From Gregory Nutt. 23245 23246Bugfixes. Only the most critical bugfixes are listed here (see the 23247ChangeLog for the complete list of bugfixes and for additional, more 23248detailed bugfix information): 23249 23250* Core OS: 23251 23252- Clock Initialization: A recent change broke Tickless mode for all 23253architectures. The original change was intended to handle the 23254case where up_timer_gettime may not start from zero case. The 23255side effect is that this changed to order of initialization of 23256clocking, breaking Tickless mode:: After this change the tickless 23257timer structures are used before they are initialized in 23258clock_inittime(). The commit has been reverted. 23259- pthread Stack Attribute: Fixed pthread_attr_get/setstacksize 23260param type to size_t. From Joao Matos. 23261- Signals: The abnormal termination signal handler was just calling 23262exit() conditionally when, for example, Ctrl-C is sent to a task. 23263The abnormal termination handler must obey the rules of cancellation 23264points: If cancellation is disabled, then the abnormal termination 23265logic must wait for cancellation to be re-enabled; If cancellation 23266is deferred then the abnormal termination logic may have to wait 23267for the victim task to enter or exit a cancellation point. From 23268Gregory Nutt. 23269- Syscall: Added support for munmap() syscall. From Joao Matos. 23270- Syscall: Fix a warning due to inconsistencies in return type in 23271syscall.csv. From Gregory Nutt. 23272- Syscall: Correct an error syscall.csv. Error occurred when 23273creating the munmap() proxy if CONFIG_FS_RAMMAP is not defined. 23274From Gregory Nutt. 23275 23276* File System/Block and MTD Drivers: 23277 23278- fs/littlefs/lfs.c: Fix lfs_format bug. In superblock disk root- 23279block assignment, the second must be root[1]. From YanLin Zhu. 23280 23281* Networking/Network Drivers: 23282 23283- getsockname(): Fix addrlen check in socket debug features. 23284Getsockname() checked erroneously a pointer against 0, where the 23285intention was to dereference the pointer and to check the length. 23286This causes also a compilation failure if the code is compiled 23287with CONFIG_DEBUG_FEATURES and with -Werror flag set. From Jukka 23288Laitinen. 23289- Network Locking: net_lock() and net_restorelock() now return a 23290value. That values is the standard zero on success; negated errn 23291value on failure. This return value is only needed for 23292-ECANCELED. That cancellation indication needs to ripple all the 23293way back to the highest levels where the cancellation can be acted 23294on. This commit only adds the return value; it does not add 23295checking for the return values of net_lock() and net_restorelock() 23296at higher levels. That is required too. From Gregory Nutt. 23297- PHY Notification Driver: Change sprintf to strncpy in phy_notify. 23298On some platforms, the sprintf doesn't accept a const char* as a 23299format argument. From Jukka Laitinen. 23300- 6LoWPAN HC06: Correct an endian-ness problem in HC06 decompression. 23301From Ivan Ucherdzhiev. 23302 23303* Wireless/Wireless Drivers: 23304 23305- NRF24L01: Don't block in read if file descriptor is O_NONBLOCK. 23306From Leif Jakob. 23307 23308* Graphics/Display Drivers: 23309 23310- NX Graphics: Fix an error in coordinate system usage. Expected 23311rectangle in device coordinate frame, but was passing the 23312rectangle in window-relative coordinate frame. From Gregory Nutt. 23313- NX Graphics: Fix an oversight in the implementation of per-window 23314framebuffers. It is true that redraw callbacks can be suppressed 23315for all cases ... EXCEPT ONE: When the window is resized to a 23316larger size, then the newly exposed territory must be drawn for 23317the first time. From Gregory Nutt. 23318- NxTK: Fix an error in handling mouse events for framed windows. 23319When drawing, NX may report mouse positions outside of the Window. 23320The is only for NX windows, but the outside-the-side positions were 23321being discarded by nxtk_events(). From Gregory Nutt. 23322- NxTK: Refuse to open a toolbar of height zero or less. From 23323Gregory Nutt. 23324- Nxglib: Correct bogus logic in nxgl_interesting(). From Gregory 23325Nutt. 23326- VNC Server: Fix an error in color conversion. From Gregory Nutt. 23327 23328* Common Drivers: 23329 23330- APDS9960: Initial state of allocated structure was not being set. 23331Noted by Leif Jacob. From Gregory Nutt. 23332- MFRC522: In mfrc522_read uid.sak must be different from 0x04 not 23333as before from 0x00. SAK == 0x00 is a valid PICC type. Add 23334interface to read MIFARE Ultralight data From Mateusz Szafoni. 23335- Power: Fix build for battery gauge From Tom Kopriva. 23336- Syslog: In syslog buffered mode, avoid IOB alloc lock-up with 23337heavy network activity. This change alters the buffered syslog 23338logic to use 'iob_tryalloc' instead of blocking 'iob_alloc' to 23339avoid syslog printing from getting stuck when all IOBs are 23340depleted by network activity. An issue was seen when large 23341incoming TCP transfer uses free IOB buffers and processing 23342threads try to use syslog which then block at iob_alloc. From 23343Jussi Kivilinna. 23344- USB CDC/ACM Device: This fixes a problem where the host sent a 23345"get descriptor" message of type "standard" with a recipient of 23346type "interface". Since the composite driver would only pass 23347messages to the child interfaces when a message was not 23348"standard", this message was not handled. I changed the condition 23349so that the composite driver checks not only if this is a 23350"standard" message but if it is also directed to the device. 23351Otherwise, the handling is delegated to the children of the 23352composite device. From Matias N. 23353- USB HID: The usbhid_descriptor_s struct defined in hid.h included 23354some optional fields that should not be hard-defined as part of 23355that structure. An arbitrary number of optional entries could be 23356included in the descriptor, but that is not properly represented. 23357No code on NuttX currently depends on the structure definition 23358with an optional descriptor so it is safe to remove. From Matias N. 23359- USB MSC Device: Correct typo "const const" to "const". 23360arch/arm/src/stm32/stm32_i2s.c: In debug assertions, it on a 23361sample rate of 0, but based on other code comments this value 23362implies disabling the i2s master clock. From Jason Harris. 23363- Zerocross Driver: Fix some errors when debug assertions are 23364enabled. From Matous Pokorny. 23365- User Leds: Fix ledset validity check in ULEDIOC_SETALL ioctl. 23366From Jussi Kivilinna. 23367 23368* Architecture Common: 23369 23370- All board interfaces (those starting with board_) must be defined 23371in board-specific logic. Otherwise, they cannot be customized for 23372specialized usage by different boards. The board_reset() 23373interface was defined in architecture-specific logic that only 23374called up_systemreset(). That is useless! This change removes 23375the board_reset() implementation from the architecture-specific 23376code and re-implements it in the src/ directory of each board that 23377has CONFIG_BOARDCTL_RESET enabled. That is the correct functional 23378partitioning. From Gregory Nutt. 23379- Start-up: Remove dependency on CONFIG_ARCH_FPU for inclusion of 23380nvic.h in all other *_start.c files. From Gregory Nutt. 23381- Architecture initialization: up_initialize() needs to know about 23382ramlog_consoleinit() From Jason Harris. 23383 23384* Microchip PIC32MZ Drivers: 23385 23386- PIC32MZ GPIO: Corrects the gpioirq when mismatch mode is 23387selected. From Abdelatif Guettouche. 23388 23389* ARMv7-A: 23390 23391- ARMv7-A Build: Fix 'cc1: warning: switch -mcpu=cortex-a7 conflicts 23392with -march=armv7-a switch' From Xiang Xiao. 23393 23394* Nordic NRFxx 23395 23396- NRF52: Fix compiler error in nrf52832_errdata.c when following 23397C89. From Erik Englund. 23398 23399* STMicro STM32: 23400 23401- STM32 Configuration: It seems one option in the timer configuration 23402was lost at some point. From Matias N. 23403- STM32 start-up: Inclusion of nvic.h should not be conditioned on 23404CONFIG_ARCH_FPU. From Mateusz Szafoni. 23405- STM32H7 Clocking: Fixes for STM32H7 RCC definitions. From Jukka 23406Laitinen. 23407 23408* STMicro STM32 Drivers: 23409 23410- STM32F0/L USART: A few fixes for USART. From Mateusz Szafoni. 23411- STM32F1/F30 FLASH: RCC register access should not be offset by 23412FLASH register base. From Matias N. 23413- STM32F7 CAN: CAN fixes. From Valmantas Paliksa. 23414- STM32F7 I2C: I2C Interrupt storm fix. I2C track bad state. Now 23415we track bad state and so the SW reset only when it occurs. From 23416David Sidrane. 23417- STM32F7 OTG: Fixes some macros related to OTGFS/OTGHS preventing 23418OTGHS from working. From Anthony Merlino. 23419- STM32F7 OTG Device: Correct hard-coded FIFO size that is wrong 23420for OTG FS. From Ramtin Amin. 23421- STM32F7 QSPI: Fix QuadSPI interrupts. This commit essentially 23422replaces wrongly named configuration variable STM32F7_QSPI_INTERRUPTS 23423into CONFIG_STM32F7_QSPI_INTERRUPTS. Also fixes some getreg/ 23424putreg where register addresses were used instead of register 23425offsets From Pierre-Olivier Vauboin. 23426- STM32H7 I2C: Fix I2C4 compilation for STM32H7. From Jukka 23427Laitinen. 23428- STM32H7 UART: Fix compilation for UART7, UART8 and I2C4s. From 23429Jukka Laitinen. 23430- STM32L4 USB Device: Add missing PWR USBV enable, correct two USB 23431register bits From Juha Niskanen. 23432 23433* STMicro STM32 Boards: 23434 23435- STM32F103-Minimum: USB reset was not working appropriately since 23436the pin connected to D+ was incorrectly defined and the pullup/down 23437logic was reversed. From Matias N. 23438- Nucleo-l476RG: Fix some errors in GPIO logic when debug assertions 23439are enabled. From Matous Pokorny. 23440- Nucleo-L476RG: Add missing files of BMP180 example for Nucleo-L476RG. 23441From Fabian Justi. 23442- STM32F103-Minimum GPIO: Fix some errors when debug assertions are 23443enabled. From Matous Pokorny. 23444- STM32L4 PWM: Fix register addr, en_bit and resetbit for pwm timers. 23445From Fabian Justi. 23446- STM32F746G-DISCO: I2C1 config on stm32f746g-disco. Typo in 23447stm32f7/stm32_i2c.c From Matthew Koch. 23448 23449* C Library/Header Files: 23450 23451- include/limits.h: Remove the duplicate TMP_MAX definitions. The 23452standard requires that TMP_MAX defines be in stdio.h. From 23453Xiang Xiao. 23454- include/sys/select.h: Fix compiler error when 23455CONFIG_NSOCKET_DESCRIPTORS is undefined. From Xiang Xiao. 23456- include/signal.h: Add commented out definition of the si_addr 23457field. From Joao Matos. 23458- include/unistd.h: Fixed R_OK/X_OK definitions to match POSIX. 23459From Joao Matos. 23460 23461- libs/libc/locale: Improved error handling in setlocale(). From Joao 23462Matos. 23463- libs/libc: Fixed return code in uname(). From Joao Matos. 23464- libs/libc/stdio: Restore support for printing NULL string as 23465"(null)". Legacy printf supported printing "(null)" in place for 23466NULL string: printf("null: %s\n", NULL); => null: (null). This 23467commit restores this functionality for new printf library. From 23468Jussi Kivilinna. 23469 23470* Examples: apps/examples: 23471 23472- apps/examples/pca9635/pca9635_main.c: fix compilation error. From 23473Mateusz Szafoni. 23474 23475* Graphics Utilities: apps/graphics: 23476 23477- Various graphics apps (and apps/examples): If CONFIG_VNCSERVER=y, 23478don't call vnc_default_fbinitialize() directly. That is a violation 23479of the portable POSIX interface. Instead, call 23480boardctl(BOARDIOC_VNC_START);. From Gregory Nutt. 23481- apps/graphics/nxwidgets: CWidgetControl::handleLeftClick now 23482returns a value to indicate if the click was actually processed or 23483not. CWidgetControl::pollMouseEvents: Correct return value. From 23484Gregory Nutt. 23485- apps/graphics/nxwidgets/: NXWidgets::CNxWidgets: Fix some issues 23486with returned values. On setting the widget size or position, it was 23487returning false if there was no change in size or position. Many 23488places in the code were treating the false return value as an error. 23489From Gregory Nutt. 23490 23491* System Utilities: apps/system: 23492 23493- apps/system/nxplayer: Fix some logical errors from recent commits. 23494They broke the build of the nxplayer as a library vs. a task. 23495 23496NuttX-7.31 Release Notes 23497------------------------ 23498 23499The 131st release of NuttX, Version 7.31, was made on July 21, 2019, 23500and is available for download from the Bitbucket.org website. Note 23501that release consists of two tarballs: nuttx-7.31.tar.gz and 23502apps-7.31.tar.gz. These are available from: 23503 23504https://bitbucket.org/nuttx/nuttx/downloads 23505https://bitbucket.org/nuttx/apps/downloads 23506 23507Both may be needed (see the top-level nuttx/README.txt file for build 23508information). 23509 23510Additional new features and extended functionality: 23511 23512* Core OS: 23513 23514- poll(): Removed all references to CONFIG_DISABLE_POLL. The 23515standard POSIX poll() can no longer be disabled. From Gregory Nutt. 23516- LWL console: Add support for OpenOCD 'Lightweight Link' protocol 23517between a target and debugger for use when you need a console but 23518the target doesn't have a spare serial port or other available 23519resource. From Dave Marples. 23520 23521* Network/Network Drivers: 23522 23523- Socket Options: Previous change removed some incorrect SO_LINGER 23524socket option functionality. SO_LINGER was always enabled if 23525CONFIG_NET_SOLINGER was selected. This change implements a proper 23526version of SO_LINGER. It is based on new logic to drain the 23527buffered TX data, integrated with network event notification system. 23528Supports notification when UDP or TCP write buffer becomes empty. 23529From Gregory Nutt. 23530- Telnet Driver: Handle ctrl events (SIGINT, SIGSTP). From 23531Valmantas Paliksa. 23532- Telnet Driver: I/O thread now offloads reading from socket 23533from client thread to the I/O thread. From Valmantas Palikša. 23534 23535* Wireless/Wireless Drivers: 23536 23537- GS2200M: Add support for Telit GS2200M Wi-Fi module From Masayuki 23538Ishikawa. 23539- GS2200M: Introduce CONFIG_WL_GS2200M_SPI_FREQUENCY. Also, changed 23540usleep(100) to up_udelay(100) to avoid invalid response. From 23541Masayuki Ishikawa. 23542- GS2200M: Add channel parameter for AP mode in gs2200m.c From 23543Masayuki Ishikawa. 23544 23545* Graphics/Video/Display Drivers: 23546 23547- Video Streaming: Add basic Video Stream and Capture implementation 23548based on the SPresence SDK code release From Alin Jerpelea. 23549- video/: Create video/ directory to hold non-driver video-related 23550logic. From Gregory Nutt. 23551- EDID: Add some initial EDID logic ported from FreeBSD. From 23552Gregory Nutt. 23553- EDID: Add logic to sort video modes by how close they are to the 23554preferred mode. This is part of the logic to pick the best possible 23555video mode. From Gregory Nutt. 23556- EDID/Video Modes: Separate EDID and from videomode management. 23557They really are separate things. From Gregory Nutt. 23558- EDID/Video Modes: Add debug functions to dump the EDID and 23559videomode content. From Gregory Nutt. 23560- VESA GTF: Bring VESA Generalized Timing Formula (GTF) from FreeBSD. 23561From Gregory Nutt. 23562- Video Modes: At some additional lookups from FreeBSD. Not 23563currently used in NuttX so ifdef'ed out for now. From Gregory Nutt. 23564- tda19988: Now uses the new common videomode structure of 23565include/nuttx/video/videomode.h as do other video components. From 23566Gregory Nutt. 23567- ILI9340: Add ILI9340 LCD Single Chip Driver. Required LCD driver 23568settings: LCD_MAXCONTRAST should be 255, but any value >0 and <=255 23569will be accepted. LCD_MAXPOWER should be 1: 0=off, 1=on. From 23570Alin Jerpelea. 23571- LPM013M091A: Add JDI LPM013M091A LCD Driver. From Alin Jerpelea. 23572- ISX012: Add support for ISX012 Image sensor. From Alin Jerpelea. 23573 23574* Other Common Device Drivers: 23575 23576- SPI Interface: Added standard definitions for ADC SPI device ID. 23577From Daniel P. Carvalho. 23578- AK09911/AK09912: Add Asahi AK09911/AK09912 compass sensor over I2C 23579bus From Alin Jerpelea. 23580- AS726X: Add support for AS726X spectral sensor From Fabian Justi. 23581- BMI160: Add driver support for the Bosch BMI160 Inertial Measurement 23582sensor. This driver can be used with the BMI160 sensor connected 23583over SPI or I2C bus. From Alin Jerpelea. 23584- BMP280: Add Bosch BMP280 Barometic pressure sensor connected over 23585I2C bus. From Alin Jerpelea. 23586- INA3221: Adds INA3221_I2C_ADDRx macro helpers. From Anthony 23587Merlino. 23588- VL53L1x: Added support for VL53L1x TOF sensor. From Juan Flores. 23589 23590* Microchip PIC32MZ Drivers: 23591 23592- PIC32MZ DMA: Add DMA support. From Abdelatif Guettouche. 23593 23594* NXP i.MXRT Drivers: 23595 23596- i.MXRT EHCI: Add i.MXRT EHCI driver. From Dave Marples. 23597- i.MXRT USDHC: Implements SDIO and Multi-card support for i.MXRT. 23598From Dave Marples. 23599- i.MXRT USDHC: Implements USDHC1 & 2 selection on the imxrt. If 23600only one port is active (either 1 or 2) it will always be numbered 23601as 0, if both are active then USDHC1 will be number 0, USDHC2 will 23602be 1. From Dave Marples. 23603- i.MXRT Serial: Add TIOCSINVERT ioctls. From Beat Küng. 23604- i.MXRT Serial: Implemented RS485 RX/TX switching and RTS/CTS flow 23605control for the IMXRT family. It has been tested on 1020 but I 23606don't see any reason for issues on any other family member. From 23607Dave Marples. 23608 23609* NXP/Freescale Kinetis Drivers: 23610 23611- Kinetis Serial: Add UART signal inversion support From Beat Küng. 23612 23613* NXP LPC11xx: 23614 23615- LPC11xx: Support for the LPCXpresso-LPC1115 and for the LPC1115 23616architecture in general was removed after NuttX-7.30. The LPC11 23617port was never really used (to my knowledge) and was no longer 23618supported. A snapshot of the port is still available in the 23619Obsoleted repository. It can be brought back into the main 23620repository at any time if anyone is willing to provide support 23621for the architecture. From Gregory Nutt. 23622 23623* NXP LPC17xx Boards: 23624 23625- PNEV5180B: Add support for NXP Semiconductors' PN5180 NFC Frontend 23626Development Kit. This board is based on the NXP LPC1769 MCU. At 23627the moment there is just support for a minimal nsh configuration via 23628UART0. From Michael Jung. 23629- PNEV5180B: Add usbnsh configuration. This is basically the same as 23630the 'nsh' defconfig, but uses CDC/ACM as the NuttShell console 23631device. From Michael Jung. 23632- PNEV5180B: Adds NSH configuration with UART0 and eth0 via CDC/ECM 23633on USB device. From Michael Jung. 23634- PNEV5180B: Add new configuration includes a USB Composite Device 23635with both CDC/ACM and CDC/ECM. NuttShell provides a terminal via 23636CDC/ACM. A network interface (eth0) is provided via CDC/ECM. From 23637Michael Jung. 23638- PNEV5180B ROMFS: Auto-mount baked-in ROMFS image. Includes support 23639for linking a binary ROMFS image into the nuttx executable and for 23640mounting it during board bring-up. From Michael Jung. 23641- PNEV5180B PROTECTED: Add PROTECTED mode configuration with 23642NuttShell. From Michael Jung. 23643 23644* NXP LPC40xx: 23645 23646- LPC40xx: Add support for LPC40xx family chips. Renamed LPC17XX to 23647LPC17XX_40XX in directory, configuration, file names, etc., as 23648appropriate. Corrected a few peripheral definitions and pin 23649functions for the LPC17xx family. Added configuration options, chip 23650definitions, and additional pin functions for the LPC40xx family. 23651From jjlange. 23652 23653* NXP LPC40xx Boards: 23654 23655- LPC4088-Devkit: Added board configuration for Embedded Artists 23656LPC4088 Developer's kit. From jjlange. 23657- LPC4088-Quickstart: Added board configurations for Embedded Artists 23658LPC4088 Quickstart board. From jjlange. 23659 23660* NXP LPC54xx Boards 23661 23662- LPCXpresso-LPC54628: Enable DATE command in twm4nx1 and twm4nx2 23663configurations. From Gregory Nutt. 23664 23665* Sony CXD56xx 23666 23667- CXD56xx: Adds (1) the HW pin configuration, (2) GPIO support for 23668CXD56xx, (3) GPIO interrupts, (4) clock support, (5) PMIC (Power 23669management integrated circuit) support (6) add a simple FIFO 23670scheduler that minimizes overhead, (6) Inter Core Communication. 23671From Alin Jerpelea. 23672- CXD56xx: Add Package Configuration. The CXD56xx can come in FCBGA 23673185 pin or WLCSP 100 pin package. For each package we have to pick 23674the right pin setup. The default configuration is set to FCBGA 185 23675pin package From Alin Jerpelea. 23676- CXD56xx: Add Power Management support From Alin Jerpelea. 23677- CXD56xx: (1) Add syscontrol, (2) Add the function to change the 23678clock speed, (3) Add pinctrl and clock ctrl functionality. From 23679Alin Jerpelea. 23680 23681* Sony CXD56xx Drivers: 23682 23683- CXD56xx USB: Add basic support for USB connectivity. From Alin 23684Jerpelea. 23685- CXD56xx SDHC: Add SDHCI driver for the CXD56xx. From Alin 23686Jerpelea. 23687- CXD56xx SPI: Add SPI support. From Alin Jerpelea. 23688- CXD56xx DMA: Add DMA support. From Alin Jerpelea. 23689- CXD56xx RTC: Add RTC support. From Alin Jerpelea. 23690- CXD56xx PWM: Add support for PWM. From Alin Jerpelea. 23691- CXD56xx Power Management: Add Power Management PROCFS support. From 23692Alin Jerpelea. 23693- CXD56xx Timer: Add Timer driver. From Alin Jerpelea. 23694- CXD56xx Watchdog Timer: Add watchdog timer support. From Alin 23695Jerpelea. 23696- CXD56xx UID: Add support to be able to read the HW UID. From Alin 23697Jerpelea. 23698- CXD56xx I2C: Add I2C support. From Alin Jerpelea. 23699- CXD56xx I2C: Add I2C character driver support. For testing 23700purposes, we use the CXD56_I2C_DRIVER to register the /dev/i2c[] 23701character devices. Add battery gauge and battery charger drivers. 23702Add SPI-based SP card support. From Alin Jerpelea. 23703- CXD56xx SCU: Add Sensor Control Unit (SCU); Use DMAC for reading 23704sensing data from SCU on CXD56xx chip. From Alin Jerpelea. 23705- CXD56xx ADC: Add ADC interface support. From Alin Jerpelea. 23706- CXD56xx eMMC: Add eMMC support for CXD56xx chip From Alin Jerpelea. 23707- CXD56xx Camera: Add driver for hardware image processor device to 23708enable the hardware image processor set CXD56_GE2D=true. From Alin 23709Jerpelea. 23710- CXD56xx CISIF: Add CISIF support to be able to use cameras. From 23711Alin Jerpelea. 23712- CXD56xx GNSS: Add GNSS device, add Geofence Support, add UART0 23713interface. UART0 is an interface with hardware flow control in the 23714application subsystem. From Alin Jerpelea. 23715 23716* Sony CXD56xx Spresense Board: 23717 23718- Default Configurations: (1) We are using the framework to 23719initialize the CPU, (2) Enable PowerManager on SPresence board, (3) 23720Initialize the UART interfaces, (4) Enable clock management using 23721the CXD56 framework, (5) Use timerisr on the SPresence board, (6) 23722Enable USBDEV on Spresense board, (7) Enable SD Card support on 23723SPresence board, (8) Enable Mass Storage on Spresense board From 23724Alin Jerpelea. 23725- Default Configurations: Add support for RNDIS configuration. From 23726Masayuki Ishikawa. 23727- RTC: Enable RTC functionality on SPresence board From Alin 23728Jerpelea. 23729- SPI FLASH: Enable SPI Flash arch/arm/src/cdx56xx: (1) Group all 23730CXD56xx Options in one menu, (2) Add Storage Options menu and 23731Peripheral Support comment, (3) Add SPI Flash support From Alin 23732Jerpelea. 23733- Add SPI configuration for SPresence board. Enable PWM support on 23734SPresence board; The powermanager procfs is disabled by default and 23735need to be enabled by the CONFIG_CXD56_PM_PROCFS option. Timers can 23736be used on the SPresence board. Watchdog timer support also added. 23737From Alin Jerpelea. 23738- Add USERLED for SPresence board. From Alin Jerpelea. 23739- Enable I2CDEV for SPresence board. Add useful diagnostic LEDs on 23740the SPresence board. From Alin Jerpelea. 23741- Add support for Tilt GS2200M Wi-Fi module. From Masayuki Ishikawa. 23742- Remove SPI MMC/SD support and enable ADC support for SPresence 23743board. From Alin Jerpelea. 23744- Enable BMI160_I2C sensor over I2C on SPresence board. From Alin 23745Jerpelea. 23746- Add I2CTOOL support and extend GPIO for future use. Add delay 23747support for CXD56xx chip. For development is useful to register 23748I2C buses when the I2CTOOL is built. Enable GPIO interface on 23749the Spresense board. From Alin Jerpelea. 23750- Add use o the CXD56_I2C_DRIVER to register the /dev/i2c character 23751devices. Enable battery gauge and battery charger support. From 23752Alin Jerpelea. 23753- Enable UID functionality. To enable the UID functionality for 23754SPresence board set BOARDCTL_UNIQUEID in menuconfig. From Alin 23755Jerpelea. 23756- Add USBDEV_SETNOTIFYSIG signal ID. Set signal ID for notify USB 23757device connection status and supply current value. From Alin 23758Jerpelea. 23759- Register the procfs in the NSH configuration. This is a 23760configuration change in sync with the other ones. Enable 23761READLINE_CMD_HISTORY, enable by default SPI 4 and 5, and enable 23762SPI to keep all configurations in sync. From Alin Jerpelea. 23763- Add support for MSC and USB Composite device. Adds usbmsc 23764configuration. Spresense board does not have buttons and but a 23765template for gpio buttons that can be connected on the external 23766header From Alin Jerpelea. 23767- LCD: Add support for LPM013M091A LCD, add support for ILI9340 23768LCD, add a new configuration to support an LCD. From Alin 23769Jerpelea. 23770- WiFi: Improve performance for webserver: (1) Enable SPI DMA for 23771both TX and RX, (2) Increase SPI clock speed from 4MHz to 10MHz, 23772(3) Increase buffer size for sendfile() from 512B to 1KBm abd (4) 23773Enable sendfile() for webserver. From Masayuki Ishikawa. 23774- MPY: Add MPY defconfig. From Alin Jerpelea. 23775- Update defconfigs rndis and wifi: Enable RTC and webserver with 23776directory listing support. Also, changed start year/month/day for 23777NuttX 2019. From Masayuki Ishikawa. 23778- Build nuttx.spk images. Enable nuttx.spk binary image that can be 23779flashed on SPresence board. From Alin Jerpelea. 23780- configs/SPresence: Add entry point for MPY. The entry point is 23781needed for the downstream projects based on SPresence. From Alin 23782Jerpelea. 23783- Enable internal flash storage for SPresence boards. The SmartFS 23784flash is mounted under /mnt/spif folder. From Alin Jerpelea. 23785- For compatibility with SDK we need to change the INIT_ENTRYPOINT 23786in all configurations to spresense_main(). From Alin Jerpelea. 23787 23788* STMicro STM32: 23789 23790- STM32 Kconfig: Add MEDIUM_DENSITY selection. From Dave Marples. 23791- STM32 Kconfig: Add the missing STM32 LCD Clock Source Selections. 23792From Alan Carvalho de Assis. 23793- STM32G0: Initial support for STM32G0 family. From Mateusz Szafoni. 23794- STM32F0L0G0: Renamed directories STM32F0L0 to STM32F0L0G0 since 23795they now also supports the STM32G0 thanks to Mateusz Szafoni's 23796contribution From Gregory Nutt. 23797- STM32H7x3: Added ADC pins to pin map. From David Sidrane. 23798 23799* STMicro STM32 Drivers: 23800 23801- STM32 PWM: Add support for all PWM modes. Add an interface to 23802change PWM mode. Refactor pwm_mode_configure(). STM32_PWM_CHANx 23803corresponds to the timer channel and STM32_PWM_OUTx corresponds to 23804the timer channel output. Add CHAN5 and CHAN6 to 23805PWM_TIMx_NCHANNELS. Calculate thePWM_TIMx_NCHANNELS if 23806CONFIG_STM32_PWM_MULTICHAN is selected. From Mateusz Szafoni. 23807- STM32 FSM/FSCM: Split the STM32 FMC/FSMC functionality. Makes FMC 23808it's own thing rather than piggy backing on the FSMC code. The 23809peripherals have a few utility functions and this commits lets you 23810have a common architectural functions rather than having duplicate 23811functions in each board implementation. From Jason Harris. 23812- STM32F7 DTCM: Add procfs register From Daniel Agar. 23813- STM32F7 GPIO: Add GPIO driver. Code is inspired from STM32F3- 23814Discovery and Nucleo-L476RG platforms. Tested on Nucleo-F767ZI. 23815From Phil Coval. 23816- STM32F7 Serial: This adds the ability to invert and swap RX/TX on 23817STM32F7 UARTs. I added the TIOCGINVERT as well to reserve the IOCTL 23818number, but did not implement it. This is the same as for 23819TIOCGSINGLEWIRE. From Beat Küng. 23820- STM32L4 CRS: Make STM32L4 CRS synchronization source board 23821configurable. From Juha Niskanen. 23822- STM32L4 HSI48: Enable CRS_CR_CEN with CRS_CR_AUTOTRIMEN. From 23823Jussi Kivilinna. 23824- STM32L4 I2C: Add support for 16 and 120 MHz timings. Board can use 23825HSI16 clock for I2C From Juha Niskanen. 23826- STM32L4 PWR: Enable PWR peripheral for setting USV. From Jussi 23827Kivilinna. 23828- STM32L4 RCC: Use Range 1 Boost mode if SYSCLK is higher than 80 23829MHz. From Juha Niskanen. 23830- STM32L4 Serial: Add TIOCSINVERT and TIOCSSWAP ioctls. From Beat 23831Küng. 23832- STM32H7 ADC: Added ADC Driver, ADC clocking. From David Sidrane. 23833- STM32H7 Ethernet: Fix typo in define. From Pierre-Olivier Vauboin. 23834- STM32H7 PWM: Port PWM from STM32 From Mateusz Szafoni. 23835- STM32H7 QEncoder: Ported the QEncoder from F7 to H7. From Eduard 23836Niesner. 23837- STM32H7 Serial: Add TIOCSINVERT and TIOCSSWAP ioctls. Ensure 23838TIOCSSINGLEWIRE is atomic and UE disabled. From Beat Küng. 23839 23840* STMicro STM32 Boards: 23841 23842- Olimex-STM32-E407: Added BMP180 initialization and a configuration 23843to test the BMP180. From Juan Flores. 23844- Olimex-STM32-E407: Add DAC support, add IN219 support, add timer 23845driver support. From Juan Flores. 23846- Olimex-STM32-E407: Add support for MRF24J40 radio. From Gregory 23847Nutt. 23848- Axoloti: Adds initial support for the Axoloti sound/music 23849synthesizer board. Board is based on STM32F427 SoC. See 23850http://www.axoloti.com/. From Jason Harris. 23851- Nucleo-G071RB: Initial support for nucleo-g071rb. From Mateusz 23852Szafoni. 23853- Nucleo-L432KC: Add new configuration settings for CRS 23854synchronization to board.h. From Juha Niskanen. 23855- Nucleo-L432KC: Add support for testing the ina219 current sensor. 23856From Sebastien Lorquet. 23857- Nucleo-L452RE: Add new configuration settings for CRS 23858synchronization to board.h. From Juha Niskanen. 23859- Nucleo-144: Add ROMFS support. Image was generated using genromfs 23860tool. Tested on Nucleo-F767ZI. From Phil Coval. 23861- Nucleo-144: Add reset feature. Code is derives from STM32F4- 23862Discovery. It can be enabled using CONFIG_BOARDCTL_RESET From Phil 23863Coval. 23864- Nucleo-L476RG: (1) Add I2C tool to board init, (2) Add support for 23865AS726X spectral sensor From Fabian Justi. 23866- Nucleo-L496ZG: Add new configuration settings for CRS 23867synchronization to board.h. From Juha Niskanen. 23868- STM32L476VG-Disco: Add new configuration settings for CRS 23869synchronization to board.h. From Juha Niskanen. 23870- STM32L4R9AI-Disco: Add ksh config, some updates for I2C, SPI and 23871DFSDM support. From Juha Niskanen. 23872- Nucleo-H743ZI: Add ADC support. From David Sidrane. 23873- STM32F769I-Disco PWM: Enable PWM support for stm32f769i-disco 23874board. 23875- STM32L-Discovery: Add button support for stm32Ldiscovery. Add 23876chronometer board config. From Alan Carvalho de Assis. 23877 23878* TI AM335x: 23879 23880- AM335x Clock Module: Add clock module registers definition. Switch 23881to DMTIMER1 for systick. From Petro Karashchenko. 23882 23883* TI AM335x Drivers: 23884 23885- AM335x CAN, LCD: Add register description files for DCAN and LCD. 23886From Petro Karashchenko. 23887- AM355x I2C: Add register description files for I2C (plus various 23888improvements to the WDOG register definitions) From Petro Karashchenko. 23889- AM355x MCSPI: Add register description files for MCSPI. From Petro 23890Karashchenko. 23891- AM355x LCDC: This change brings in an initial LCD driver into the 23892AM335x architecture. Ported from FreeBSD. From Gregory Nutt. 23893- AM335x Framebuffers: Add logic to map the framebuffer to a non-cached, 23894non-buffered memory region. From Gregory Nutt. 23895- AM335x LCDC: Add logic to get/set the module reference clock. From 23896Gregory Nutt. 23897 23898* TI AM335x Boards: 23899 23900- Beaglebone-Black LCD: Add a configuration for bringing up the LCDC 23901driver. From Gregory Nutt. 23902- Beaglebone-Black LCD: Framework (only) for TDA19988 and LCD support 23903for Beaglebone Black. Can't use TDA19988 yet because there is no I2C 23904driver. In the mean time, support LCD initialization using a fixed, 23905configurable video mode. From Gregory Nutt. 23906 23907* ZiLOG z16f ZNeo: 23908 23909- z16f ZNeo: Add support for the latest 5.2.1 version of the ZDS-II 23910toolchain. From Gregory Nutt. 23911 23912* ZiLOG eZ80Acclaim!: 23913 23914- Integrate support for the newest eZ80 ZDSII 5.3.0 toolchain. From 23915Gregory Nutt. 23916 23917* ZiLOG eZ80Acclaim! Drivers: 23918 23919- eZ80 RTC: Integrate and verify the RTC driver From Gregory Nutt. 23920- eZ80 RTC: Add an RTC lower half driver. From Gregory Nutt. 23921 23922* ZiLOG eZ80Acclaim! Boards: 23923 23924- MakerLisp: Add initial support for the MakerLisp eZ80 board. Ref: 23925https://makerlisp.com/ From Gregory Nutt. 23926- MakerLisp: Add hooks needed by SPI driver. Move SPI MMC/SD chip 23927selected configuration from ez80_lowinit.c to here as is done in 23928other NuttX architectures. This enables support for multiple 23929devices on the SPI bus. From Gregory Nutt. 23930- MakerLisp: Add Smart Flash Programmer project. From Gregory Nutt. 23931- MakerLisp: Enable Procfs, RTC, SPI-based SD support, task name, NSH 23932data command in NSH configuration.. From Gregory Nutt. 23933- MakerLisp: Use .ztgt files from MakerLisp SDK. From Gregory Nutt. 23934- MakerLisp: Add a tiny FLASH-resident loader that will load and 23935start applications in Intel HEX format from an SD card. From 23936Gregory Nutt. 23937- MakerLisp: Bring in a new configuration to support execution 23938entirely out of external SRAM. From Gregory Nutt. 23939- MakerLisp: Add an sdboot configuration that will load .hex files 23940from the SD card. From Gregory Nutt. 23941- MakerLisp: Add a linker script to support copying the NuttX image 23942from FLASH into external SRAM. From Gregory Nutt. 23943- MakerLisp: The VGA display controller and keyboard controller come 23944up by default emulating a terminal with 'newline mode' on. That is 23945newlines expance to carriage-return, newline. This change turns that 23946mode off. From Gregory Nutt. 23947 23948* Libraries/Header Files: 23949 23950- include/cxx/cstddef: Add C11++ std::nullptr_t From junmin-kim. 23951- libc netdb: Implemented the netdb functions getnameinfo(), 23952getservbyport(), and getservbyport_r(). From Michael Jung. 23953 23954* Documentation 23955 23956- Applied a style sheet to static HTML files. Put the TOC of each 23957document to the side, where it made sense (in some documents the 23958TOC was actually inside a section so it wasn't possible). In some 23959cases the TOC is built with a table, in others with a <ul> element, 23960so I had to accommodate for this. I also didn't go into collapsing, 23961although this could really help for some long TOCs. From Matias N. 23962- Coding Standard: Add a brief section summarizing the major 23963differences between the NuttX C and C++ coding standards. This is a 23964stop-gap measure in lieu of having a real C++ coding standard. From 23965Gregory Nutt. 23966- Coding Standard: Update requirements for indenting C pre-processor 23967statements. From Gregory Nutt. 23968- Coding Standard: Small change discouraging the practice of 23969enclosing the value argument of 'return' statements in parentheses. 23970From Gregory Nutt. 23971- COPYING. Tools in the tools/ directory are not intended for binary 23972redistribution and may not all conform to BSD licensing. From 23973Gregory Nutt. 23974 23975* Tools: 23976 23977- tools/ocdconsole.py: OCD TCL interface changed after version 0.10 23978of OpenOCD. This change allows the script to work with both the 23979older and newer TCL interface. From Dave Marples. 23980- tools/nxstyle.c: Tool depends on the file under test containing 23981"Private Functions" or "Public Functions" block comments. Emit an 23982error if neither are present in a C source. From Gregory Nutt. 23983- tools/nxstyle.c: Bandaid-up logic that detects left brackets on the 23984same line in global structure/enumeration types and initializers. 23985From Gregory Nutt. 23986- tools/nxstyle.c: No warning for declarations that begin in column 1 23987within 'extern "C"'. This is because the 'extern "C"' is conditioned 23988on __cplusplus so the declarations are not normally indented. From 23989Gregory Nutt. 23990- tools/: Add spk binary format. The .spk binary format is used on 23991SPresence and other boards based on the CXD56 arch. To enable this 23992binary format set in your config CONFIG_CXD56_BINARY=y. From Alin 23993Jerpelea. 23994- tools/: Add flash_writer for CXD56 boards. This flash writter is 23995using the xmodem for firmware transfer for flashing please use: 23996'tools/flash_writer.py -s -c /dev/ttyUSB0 -d -b 115200 -n nuttx.spk'. 23997From Alin Jerpelea. 23998 23999* apps/ General: 24000 24001- Removed all references to CONFIG_DISABLE_POLL. The standard POSIX 24002poll() can no longer be disabled. From Gregory Nutt. 24003 24004* Examples/Tests: apps/examples: 24005 24006- apps/examples/abntcodi: Adds test/demo program for ABNT CODI 24007library. From Alan Carvalho de Assis. 24008- apps/examples/webserver: Update to compile with 24009CONFIG_NETUTILS_HTTPD_SENDFILE=y. Also some configs such as 24010CONFIG_NETUTILS_HTTPDFILESTATS can be selected by menuconfig. 24011From Masayuki Ishikawa. 24012- apps/examples/chrono: Add chronometer apps example. From Alan 24013Carvalho de Assis. 24014 24015* Network Utilities: apps/netutils: 24016 24017- apps/netutils/webserver: Add mp3 mime type to httpd.c. From 24018Masayuki Ishikawa. 24019- apps/netutils/webserver: Add directory listing to httpd. From 24020Masayuki Ishikawa. 24021- apps/netutils/webserver: Add web server info based on uname(). 24022From Masayuki Ishikawa. 24023 24024* Network Utilities: apps/wireless 24025 24026- apps/wireless/gs2200m: Add usrsock daemon for Tilt GS2200M Wi-Fi 24027module. From Masayuki Ishikawa. 24028- apps/wireless/gs2200m: Add channel parameter for AP mode. From 24029Masayuki Ishikawa. 24030 24031* Graphics: apps/graphics: 24032 24033- apps/graphics/nxglyphs: Add more modern looking button images for 24034the Twm4Nx CONTEMPORARY theme. From Gregory Nutt. 24035- apps/graphics/slcd: Adds a CSLcd class that will generate graphic 24036simulated segments of an SLCD display. From Gregory Nutt. 24037- apps/graphics/twm4nx: This change adds a calibration screen to 24038Twm4Nx. In addition to the Calibration screen port from NxWM, this 24039required extensions to the event handling logic to support (1) 24040receiving raw, uncalibrated touchscreen inputs, (2) shutting down 24041of externally controlled windows. From Gregory Nutt. 24042- apps/graphics/twm4nx: Move application-related files into different 24043directories to separate them from the core Twm4Nx files. From 24044Gregory Nutt. 24045- apps/graphics/twm4ndx: Compile out cursor support if we are using a 24046mouse. From Gregory Nutt. 24047- apps/graphics/twm4nx: Add an alternative COMPONTEMPORARY theme. 24048Still has some artifacts on the display. From Gregory Nutt. 24049- apps/graphics/twm4nx: Use custom CWidgetStyle to force Icon 24050background to match selected desktop background. From Gregory Nutt. 24051- apps/graphics/twm4nx: Add some definitions to support Themes. 24052Background image is now optional. From Gregory Nutt. 24053- apps/graphics/twm4nx: Add a configuration option to control the 24054number of buttons in one column of the Icon Manager. The Icon 24055anager no longer relies the default window width; now it 24056determines a preferred window width based primarily on the font 24057size. From Gregory Nutt. 24058- apps/graphics/tmw4nx: Add a CClock class that implements the 24059Twm4Nx digital clock based on the CSLcd simulated SLCD segments. 24060From Gregory Nutt. 24061- apps/graphics/twm4nx/README.txt: Add an overview of how to create 24062Twm4Nx applications. From Gregory Nutt. 24063 24064* Industry: apps/industry: 24065 24066- apps/industry/abnt_codi: Adds support for ABNT CODI library. This 24067is an energy meter protocol used in Brazil. From Alan Carvalho de 24068Assis. 24069 24070Bugfixes. Only the most critical bugfixes are listed here (see the 24071ChangeLog for the complete list of bugfixes and for additional, more 24072detailed bugfix information): 24073 24074* Core OS: 24075 24076- Semaphores: Fix a bad assertion in priority inheritance logic. 24077The comments state correctly that we cannot make any assumptions 24078about the number of holders of the semaphore, yet the code 24079asserts if there are any holders. This makes the code behave 24080closer to what the comments say. From Gregory Nutt. 24081- Memory Manager: Fix error that occurs when CONFIG_CPP_HAVE_VARARGS 24082is not defined. In that case, the arguments to the debug macro will 24083all be evaluated even though they are not used any variables that 24084are references must at least be defined. From Gregory Nutt. 24085- System Calls: Adapt the conditional compile logic on when to 24086include the vfork() syscall proxy and stub to the logic used for 24087vfork() itself. From Michael Jung. 24088- System Calls: Fixed SYS_mount syscall define when CONFIG_FS_READABLE 24089is undefined. From Joao Matos. 24090- waitpid(): In waitpid, remember to grab the exited child ptr. After 24091being unblocked in waitpid, the child pointer might be NULL. Modify 24092to use group_exitchild to get the pointer of recent exited child. 24093From Yang ChungFan. 24094 24095* File System/Block and MTD Drivers: 24096 24097- MMC/SD: Fixes bug where thread gets deadlocked due to recursive call 24098and addresses comment regarding events. When initializing the 24099MMCSD, if we are being told there is a card, but we fail to 24100initialize it, we should not re-register for an insertion event as 24101this will immediately cause us to call in again. Instead, we should 24102register for a removal event and wait for the card to be removed and 24103re-inserted. From Anthony Merlino. 24104 24105* Networking/Network Drivers: 24106 24107- UsrSock: Fix debug logs and remove DEBUGASSERT from 24108usrsockdev_do_request(). In a client mode, socket() will be the 24109first request for usrsockdev_do_request(). However, in a server 24110mode, the first request to accepted sockets will be recv() or other 24111which depend on applications. So I think we should remove thi 24112DEBUGASSERT from usrsockdev_do_request(). From Masayuki Ishikawa. 24113- ICMPV6 Autoconfig: Use ntohs() to convert IPv6 address from 24114network to host order int network debug output. From Bernd Walter. 24115- TCP Buffering: Fix TCP buffer send deadlock in iob_copyin() when 24116IOB buffers are exhausted and network lock is taken. From 24117Valmantas Paliksa. 24118- TCP Close: Fix TCP active close in inet_close.c. In previous 24119implementation, FIN packet was not sent when a socket is actively 24120closed (e.g. telnetd or webserver) without SO_LINGER. This issue 24121happens because the socket closing sequence waits for the 24122status.cl_sem only if lingering timeout is set. However, in many 24123server use-cases, SO_LINGER is not usually set and even in these 24124cases, FIN packet must be sent correctly. This changes the logic 24125in inet_close.c so that it can wait for status.cl_sem regardless 24126of SO_LINGER. Instead, if SO_LINGERis set, it waits for the 24127semaphore with timeout option. From Masayuki Ishikawa. 24128- UDP: Fix C89 compatibility problem. Empty initializers are not 24129permitted. Caused eZ80 build failure. From Gregory Nutt. 24130- Telnet: Fix a C89 non-compliance that was breaking the eZ80 build. 24131From Gregory Nutt. 24132 24133* Wireless/Wireless Drivers: 24134 24135- NRF24L01: Fix NRF24L01_NCMDS in ioctl.h. The last one in 24136nrf24l01.h is _WLCIOC(NRF24L01_FIRST + 15) From Masayuki Ishikawa. 24137- NRF24L01: Fix PIPENO/PKTLEN bitmask in RX FIFO header. In RX FIFO 24138header, the first byte should use 5 lsb to store PKTLEN and 3 msb 24139to store PIPENO. However, FIFO_PIPENO_SHIFT was set to 4 which 24140causes the lsb of pipe number to interfere with the received packet 24141size stored in the FIFO. This fix RX corruption when using pipe 24142number > 0. From Federico Braghiroli. 24143 24144* Graphics/Display Drivers: 24145 24146- Raising Windows: Fix a critical list handling bug in the graphics 24147system. When a lower-level window was raised while a model window 24148was in place, then list corruption could occur. From Gregory Nutt. 24149 24150* Common Drivers: 24151 24152- Serial: Limit the number of times that the poll semaphore is 24153incremented. From Dave Marples. 24154- USB Host: Remove duplicate const in USB Host files. From Adam 24155Porter. 24156- USB Host Composite: Class-specific descriptors were not available 24157if the interface is part of a composite device, since only interface 24158and endpoint descriptors are copied by usbhost_copyinterface(). 24159This change will copy any class-specific interface descriptors for 24160use in downstream class drivers. The loop was aborting due to 24161finding two interface descriptors back-to-back. From Adam Porter. 24162- USB Host Composite: The cfgdesc pointer was initialized after the 24163buffer had been advanced, so it was not pointing where it should. 24164The totallen operations at the end of the function ended up 24165overwriting memory belonging to the first copied interface 24166descriptor. From Adam Porter. 24167- USB MSC: Fix usbmsc_exportluns declaration. Fixes the following 24168error "...undefined reference to `usbmsc_exportluns'". From Alin 24169Jerpelea. 24170 24171* Architecture Common: 24172 24173- Rename all arch/<family>/src/<chip>/chip directories to 24174arch/<family>/src/<chip>/hardware. This eliminates a name collision 24175that is usually harmless but does cause problems at the time. The 24176problem is because the include path includes '.' and 'chip/.', 24177therefore an inclusion like '#include <chip/mcu_header.h' can be 24178ambiguous if a file named mcu_header.h exists in both at both 24179arch/<family>/src/<chip>/chip and at arch/<family>/src/chip/chip. 24180From Gregory Nutt. 24181 24182* Board Common: 24183 24184- Default Configurations: Update configurations for changes to 24185apps/netutils/netinit configuration. MAC address configuration 24186was represented by type long long. That is a problem for 24187architectures that do not support type long long. Replaces by 24188two long configuration items. From 24189Gregory Nutt. 24190- Default Configurations: Change CONFIG_NSH_MACADDR to 24191CONFIG_NETINIT_MACADDR From Masayuki Ishikawa. 24192- Default Configurations: Fix mac address settings for RNDIS. 24193Recently CONFIG_NETINIT_MACADDR_2 and CONFIG_NETINIT_MACADDR_1 were 24194newly introduced instead of CONFIG_NETINIT_MACADDR. This change 24195conforms to this change. From Masayuki Ishikawa. 24196- Default Configurations: Kconfig files should not select 24197SCHED_WORKQUEUE since that is really only is only the logical OR if 24198SCHED_LPWORK and SCHED_HPWORK. Selecting it has no effect other 24199than to produce an erroneous configuration. From Gregory Nutt. 24200- Linker Scripts: Make sure sections are aligned to 32-bits in all LD 24201linker scripts. This fixes and issues noted specifically for the 24202SAMD21 by Bernd Walter, but should be applicable to all other LD 24203scripts as well. 24204- Linker Scripts: Add . = ALIGN(4); before every .data section, 24205add . = ALIGN(4); before every ARM.extab section, add . = ALIGN(4); 24206before every definition of __exidx_start, add . = ALIGN(4); before 24207every .init_section. Convert TABs to spaces in all ld linker 24208scripts. This just makes things easier to modify with scripts 24209because the files are more consistent. From Gregory Nutt. 24210- configs/Board.mk: Cannot call $(AR) directly. That works only with 24211GCC. It must, instead use the ARCHIVE command from Config.mk as do 24212other Makefiles. From Gregory Nutt. 24213 24214* MIPS32: 24215 24216- Fix a copy-paste error. On vfork, the GP register was being set to 24217the new SP value vs. the context GP value. NOTED in Bitbucket issue 24218155. From Gregory Nutt. 24219- An older commit used CP0 register definitions that were not defined 24220in the NuttX cp0.h header file. Probably these were from the 24221Microchip hacked up GCC toolchain but are not generally available 24222outside that toolchain. Fix: Add definitions to NuttX cp0.h header 24223file. From Gregory Nutt. 24224 24225* Microchip PIC32MZ Drivers: 24226 24227- PIC32MZ GPIO: Use LAT instead of PORT when writing. From Ouss4. 24228 24229* Microchip/Atmal SAM3/SAM4 Drivers: 24230 24231- SAMD2/L2: Correct TC register bit field definitions used with 24232TC_CTRLBCLR and TC_CTRLSET registers. From Bernd Walter. 24233 24234* NXP LPC17xx Boards: 24235 24236- LPC17xx PROTECTED: On the LPC1769 there are two 16 KiB AHB SRAM 24237blocks, which are mapped back to back at physical address 0x2007C000 24238and 0x20080000 (i.e. right below and right above a 512 KiB boundary). 24239Memory from those two blocks is considered continuous when assigned 24240to a heap. In the protected build mode, when the memory protection 24241unit is used, though, it must be split into two MPU regions. This 24242is because MPU regions must be naturally aligned, and the 32KiB 24243continuous address space of the two 16KiB AHB SRAM blocks does not 24244start at an address divisible by 32KiB. The only other 24245configurations that use protected build mode on lpc17xx are 24246currently open1788/knsh and open1788/knxterm. The LPC1788 has the 24247AHB SRAM blocks mapped more sanely (from an MPU region point of 24248view), which is probably why no problems emerged here. Both still 24249compile with my change and other than wasting an MPU region (which 24250would otherwise remain unused) should work fine. That said, I 24251have no hardware to confirm. From Michael Jung. 24252 24253* NXP LPC54xx Boards: 24254 24255- LPCXpresso-LPC54628: Modify the TWM configurations to properly 24256inject keyboard data. This way, in the case of multiple NxTERMs, 24257only the NxTerm at the top of the hierarchy gets the keyboard input. 24258Otherwise, it is not possible to use multiple NxTerms with each the 24259keyboard input going to a different NxTerm window. From Gregory 24260Nutt. 24261 24262* NXP i.MXRT Drivers: 24263 24264- i.MXRT Serial: Fix serial TIOCSINVERT From David Sidrane. 24265- i.MXRT USDHC: USDHC Stopgap Fix for build breakage From David 24266Sidrane. 24267- i.MXRT USDHC: Fix compiler error for CONFIG_IMXRT_USDHC1 && 24268!CONFIG_IMXRT_USDHC2 From David Sidrane. 24269 24270* On Semiconductor LC823450: 24271 24272- LC823450-XGEVK: Remove CPU assignment for LPWORK. This change will 24273reduce audio under-run when running dvfs auto mode. From Masayuki 24274Ishikawa. 24275 24276* SiLabs EFM32 Drivers: 24277 24278- EFM32 USB Host: Apply Adam Porter's STM32 fix to EFM32 which has 24279the same IP. From Gregory Nutt. 24280 24281* STMicro STM32: 24282 24283- STM32F1 Pinmap: Fix names for complementary PWM outputs From 24284Mateusz Szafoni. 24285- STM32L4: If SRAM3 is used as heap, do not power it off in stop 2 24286mode. From Juha Niskanen. 24287 24288* STMicro STM32 Drivers: 24289 24290- STM32 ADC: Fix a compilation error when verbose analog debugging is 24291enabled for the STM32 ADC. not all STM32s have an SQR4 register. 24292From rajan gill. 24293- STM32 PWM: Fix pulse count for the number of counts greater than 128. 24294From Mateusz Szafoni. 24295- STM32 USB OTG FS/HS Host: In stm32_ctrlout() in the HS and FS host 24296drivers, the data buffer isn't sent. This patch passes the buffer 24297and buflen to the stm32_ctrl_senddata() function. With this change, 24298I am able to send MBIM control messages to my USB modem, and read the 24299response. From Adam Porter. 24300- STM32L4 USB: Fix USB device PMA accesses. USB PMA accesses are 24301done as 16-bit words on STM32L4 instead of 32-bit words on STM32L1. 24302From Jussi Kivilinna. 24303- STM32L4 OTG FS/HS: Fix constant using in comparison to determine 24304endpoint is interrupt type. From Adam Porter. 24305- STM32F7 OTG FS/HS: Fix constant using in comparison to determine 24306endpoint is interrupt type. From Adam Porter. 24307- STM32H7 PWM: Fix pulse count for the number of counts greater than 128. 24308From Mateusz Szafoni. 24309- STM32H7 Serial: Fix error when SINGLEWIRE or 24310CONFIG_STM32H7_SERIALBRK_BSDCOMPAT defined. From David Sidrane. 24311- STM32H7 SPI: Correct a typo in condition compilation. From 24312Jonathan Richner. 24313- STM32H7 Timer: Fixed compile errors with TIM13, TIM14, TIM7. From 24314David Sidrane. 24315- STM32H7 USB OTG FS/HS: Fix constant using in comparison to determine 24316endpoint is interrupt type. From Adam Porter. 24317- STM32G0 Serial: Fix STM32G0 error when SINGLEWIRE or SERIALBRK_BSDCOMPAT 24318defined (it reflects previous changes in STM32H7). From Mateusz Szafoni. 24319 24320* STMicro STM32 Boards: 24321 24322- Nucleo-L432KC: Shorten some long lines, fix i2c pinout. From 24323Sebastien Lorquet. 24324- STM32L476VG-Disco: Fix an error in defconfig files because a line 24325in the rcS file was longer than the configured NSH command line. 24326From Juha Niskanen. 24327- STM32L4R9AI-Disco: Fix an error in defconfig files because a line 24328in the rcS file was longer than the configured NSH command line. 24329From Juha Niskanen. 24330- OmnibusF4: Correct naming of a configuration variable for ROMFS. 24331From Phil Coval. 24332- Olimex-STM32-E407: Change initialization to match the way it is 24333done with other boards. From Gregory Nutt. 24334- Olimex-STM32-E407 SPI: Add SPI initialization logic. From Juan 24335Flores. 24336- STM32F4-Discovery ROMFS: Missing colon in declaration of local 24337variable. From Phil Coval. 24338- STM32F4-Discovery ROMFS: Correct naming of a configuration variable 24339for ROMFS. From Phil Coval. 24340- STM32F4-Discovery Build: Fix .ARM.exidx section overlap Source: 24341https://stackoverflow.com/questions/30778614/arm-none-eabi-ld-section-arm-exidx-overlaps-section-data. 24342From Alan Carvalho de Assis. 24343- STM32F4-Discovery PROTECTED: Fix a problem with undefined symbol 24344'abort' from GCC library in PROTECTED build. Fix by moving libgcc 24345into recursive archive group between --start-group and --end-group. 24346Other kernel/Makefiles suffer from this same issue From Gregory 24347Nutt. 24348- Nucleo-H743ZI SPI: Correct typos in function naming. From Jonathan 24349Richner. 24350 24351* TI AM335x: 24352 24353- AM335x SYSCLK: Add a function to return a frequency of the system 24354clock. From Gregory Nutt. 24355- AM355x CM: Fix a typo in a macro name. From Gregory Nutt. 24356- AM355x LCD: Fix a few typos. Add things needed by the LCDC driver. 24357From Gregory Nutt. 24358 24359* TI Tiva Drivers: 24360 24361- Tiva Ethernet: Add a workaround for tiva with qemu. With qemu, 24362tiva_ifup() hangs because Ethernet link status can not be set 24363correctly. This change is a workaround to avoid this issue. From 24364Masayuki Ishikawa. 24365 24366* TI Tiva Boards: 24367 24368- TM4C1294-Launchpad: Fix syntax error in oocd.sh script. From 24369Nathan Hartman. 24370 24371* ZiLOG Common: 24372 24373- z80: up_addregion() must be prototyped in nuttx/mm/mm.h, not 24374up_internal.h. Various name changes to better conform to the coding 24375standard, naming conventions, and use by other architectures. From 24376Gregory Nutt. 24377 24378* ZiLOG Z80 Boards: 24379 24380- z80sim: Remove unused function up_earlyserialinit() from serial 24381driver. From Gregory Nutt. 24382 24383* ZiLOG z16f ZNeo: 24384 24385- z16f ZNeo: Replicate build changes make for eZ80 and z8 for ZNeo. 24386From Gregory Nutt. 24387- ZNeo compile fixes: Fix misuse of FAR which makes a difference on 24388this platform. Be consistent in use of WDOG_ID type. ZDS-II doesn't 24389like auto-conversions of struct wdog_s * to WDOG_ID (which is type 24390struct wdog_s *). From Gregory Nutt. 24391 24392* ZiLOG eZ80Acclaim!: 24393 24394- eZ80: Fix eZ80 compile problems due to New ZDS-II toolchain and 24395ongoing bit rot due to non-C89 code creeping into the core OS. From 24396Gregory Nutt. 24397- eZ80: Fix some backward conditional logic in Make.defs. From 24398Gregory Nutt. 24399- eZ80: Fix a logic error in vector initialization. From Gregory Nutt. 24400 24401* C Library/Header Files: 24402 24403- signal.h: Fix a C89 compliance problem that cause the eZ80 build to 24404fail. Empty structure and unions are not accepted by the compiler. 24405From Gregory Nutt. 24406- wqueue.h: Allow definitions even if work queues are not enabled. 24407This solves build failures when work queues are not enabled. From 24408Gregory Nutt. 24409- fixedmath.h: Regarding the single precision float to/from fixed 24410point conversions in fixedmath.h, I believe the floating point 24411literals should be appended with the letter 'f' to avoid (expensive) 24412conversions from single to double precision, and thereby also avoid 24413(expensive if done in SW) double point arithmetic (which is what is 24414happening upon inspection of my disassembly). From rajan gill. 24415 24416- stdio: Fix long long usage in all of the newer printf-related 24417logic: The selection CONFIG_LIBC_LONG_LONG must be ignored if the 24418architecture does not support long long types. From Gregory Nutt. 24419- gm_time_r(): Spurious reorganization of a loop in gm_time_r() to 24420work around and ZDD-II internal compiler error. Might be a little 24421bigger now, but is also probably a more structured use of C. From 24422Gregory Nutt. 24423- Debug: For platforms whose CPP tool does not support a variable 24424number arguments to pre-processor macros, we may still need to build 24425the debug functions even when CONFIG_DEBUG_FEATURES is not selected. 24426For example, __alert() may be needed if CONFIG_ARCH_STACKDUMP is 24427set. From Gregory Nutt. 24428 24429* Tools: 24430 24431- tools/nxstyle.c: Fix error in conditional logic that was preventing 24432detection bad brace alignment. Add logic to handle alignment of 24433braces in data initializers which following slightly different 24434indentation rules. From Gregory Nutt. 24435- tools/mkexport.sh: The mcu sub-directory chip/ was renamed to 24436hardware/ in late May of 2019. The mkexport.sh script that copies 24437these files was not updated, however, until now. Noted by Alin 24438Jerpelea. From Gregory Nutt. 24439 24440* NSH Library: apps/nshlib: 24441 24442- apps/nshlib: Fix all places where cle() and readline() are used. 24443readline() returns EOF on a failure. cle() returns a negated errno 24444value. Checking only for EOF causes failures to be missed (and 24445infinite loops ensuing). From Valmantas Paliksa. 24446- nshlib/nsh_parse.c: Fix a warning about an uninitialized variable 24447from the ZDS-II compiler. From Gregory Nutt. 24448- apps/nshlib/nsh_ddcmd.c: Seemingly nonsense change but somehow 24449works around a compilation error using the ZDS-II toolchain. It 24450was claiming that vtbl was undefined indd_outfopen(). From Gregory 24451Nutt. 24452 24453* Network Utilities: apps/netutils: 24454 24455- apps/netutils/netinit: MAC address configuration was represented 24456by type long long. That is a problem for architectures that do not 24457support type long long. Replaces by two long configuration items. 24458From Gregory Nutt. 24459- apps/netutils/telnetd/telnetd_daemon.c: Fix a C89 violation that 24460caused the eZ80 build to fail. From Gregory Nutt. 24461- apps/netutils/json: Removed. Replaced with apps/netutils/cjson. 24462From Gregory Nutt. 24463 24464* Graphics Utilities: apps/graphics: 24465 24466- apps/graphics/twm4nx: Fix an uninitialized variable that was 24467causing toolbar buttons to randomly come up enabled or disabled. 24468Remove some unused event definitions. From Gregory Nutt. 24469- apps/graphics/twm4nx: Fix a calibration screen startup issue. 24470Make an initial calibration screen optional. From Gregory Nutt. 24471- apps/graphics/twm4nx: Revise logic to detect clicks on the 24472background image. The original implementation had some side 24473effects. From Gregory Nutt. 24474- apps/graphics/twm4nx: Remove some remaining stuff from TWM that 24475was never used. Menus need to close after the 'terminal' selection 24476is made. Otherwise, the menu can become buried under a newly open 24477menu and not easily recovered. From Gregory Nutt. 24478- apps/graphics/twm4ndx: Add a 'critical' bit to the eventID. While 24479resizing, all events will be ignore except those marked critical. 24480From Gregory Nutt 24481- apps/graphics/twm4nx: CBackground now brings up the main menu if 24482the background image is clicked. This makes the behavior the same 24483across all of the background except when an icon is clicked. From 24484Gregory Nutt. 24485- apps/graphics/twm4nx: Fix a bug in placement of icons on the 24486desktop. When many windows are displayed, a bug in the looping logic 24487could cause an infinite loop. From Gregory Nutt. 24488- apps/graphics/twm4nx: Fix some errors found when enabling NX 24489keyboard support. The most important being that the mouse and 24490keyboard drivers need to be opened non-blocking. From Gregory Nutt. 24491 24492NuttX-8.1 Release Notes 24493------------------------ 24494 24495The 132nd release of NuttX, Version 8.1, was made on September 14, 2019, 24496and is available for download from the Bitbucket.org website. Note 24497that release consists of two tarballs: nuttx-8.1.tar.gz and 24498apps-8.1.tar.gz. These are available from: 24499 24500https://bitbucket.org/nuttx/nuttx/downloads 24501https://bitbucket.org/nuttx/apps/downloads 24502 24503Both may be needed (see the top-level nuttx/README.txt file for build 24504information). 24505 24506The major release version number is only incremented when there is a major 24507change to the OS that makes it more-or-less incompatible with preceding 24508versions. This release bumps the major version number from 7 to 8 due 24509primarily to a major reorganization in the what was the configs/ directory 24510in nuttx-7.31. That directory has been renamed boards/ and now has a 24511directory structure that mirrors the organization of the arch/ directory 24512for the most part: 24513 24514board/ - Holds all board-related information 24515board/<arch> - Holds board-related information for all boards that use 24516the same CPU architecture. For example, all ARM-based boards will be 24517found under board/arm 24518board/<arch>/<chip> - Holds board-related information for all boards 24519that use the same MCU chip family. For example, all STM32-based 24520boards will be found under board/arm/stm32 24521board/<arch>/<chip>/<board> - Holds board-related information for a 24522specific board. This is analogous to the configs/<board> directory in 24523nuttx-7.31. So, for example, the STM32F4-Discovery board support that 24524was at configs/stm32f4disovery can now be found under 24525boards/arm/stm32/stm32f4discovery. 24526boards/<arch>/<chip>/<board>/<configs> - All configurations for a 24527specific board can now be found together in this configs/ 24528subdirectory. So, continuing the example, the STM32F4-Discovery NSH 24529configuration can now be found at 24530boards/arm/stm32/stm32f4discovery/configs/nsh. 24531 24532In additional, common MCU logic can be found at board/<arch>/<chip>/common 24533and MCU common drivers can be found at board/<arch>/<chip>/common. Related 24534changes include changes to tools/, comments, and documentation that depend 24535on the board directory structure. 24536 24537This re-organization is the work of Alin Jerpelea. Not only did Alin do 24538this major directory re-organization, but he ran the code standard 24539compliance tool and corrected every .c and .h file under boards/ so that 24540they all correctly follow the NuttX coding style. These changes were very 24541extensive and, hence, will not be addressed individually in the ReleaseNotes. 24542 24543You have to give Alin credit for his effort to take on really big jobs and 24544stick with it until it is finished. Kudos! 24545 24546A more constrained re-organization of the drivers/ directory was also 24547contributed by Augusto Fraga Giachero. Augusto reorganized some driver 24548directories to make better functional associations and also to make space 24549for a new set of RF-related drivers. 24550 24551Additional new features and extended functionality: 24552--------------------------------------------------- 24553 24554* Core OS: 24555 24556- POSIX Message Queues: Add a test to verify that message queue is 24557closed by the same task group that opened it. If not, then list 24558corruption would result. This test is only performed if 24559CONFIG_DEBUG_FEATURES is enabled since it should not normally be an 24560issue: It would be a strange programming practice to open a 24561message queue in open task group, then close it in another. From 24562???. 24563- Signal Notifications: Add configuration option to select either the 24564high-priority or low-priority work queue for SIG_EVTHREA 24565notifications. From ligd. 24566- System Calls: In order to support built-in in function in protected 24567mode, a task_spawn() system call must be supported. task_spawn() 24568and posix_spawn() are NuttX OS interfaces. In PROTECTED and KERNEL 24569build modes, then can be reached from applications only via a system 24570call. Unfortunately this is overly complex because there is a (soft) 24571limit of 6 parameters in a system call; task_spawn has seven 24572parameters. This is a soft limit but still difficult to extend 24573because it involves assembly language changes to numerous 24574architectures. Better to get more creative. Rather than extend the 24575maximum number of parameters across all architectures, I opted 24576instead to marshal the seven parameters into a structure and pass 24577only a single parameter: A pointer to the structure containing the 24578seven marshaled parameters. From Gregory Nutt. 24579- /etc/passwd and /etc/group: Improve the format of the /etc/passwd 24580file as used in the sim:nsh configuration. It is now a little 24581more similar to other systems and includes user and group IDs. Add 24582also an /etc/group file to support future testing. From Gregory 24583Nutt. 24584- User/Group IDs: Implement 'real' setuid, getuid, setgid, and getgid 24585interfaces is so configured (otherwise fall back to stubs that 24586support only the 'root' user ID and group. Once set, these IDs will 24587be inherited by all child task groups. From Gregory Nutt. 24588- Debug Output: Add debug macros for contactless. The various 24589contactless device drivers currently define device specific debug 24590macros within their local header files. This patch adds generic 24591ctls[info|warn|err] macros for the overall contactless subsystem to 24592be used in future drivers. Ported the existing contactless device 24593drivers to use these generic logging macros and fixed some logging 24594bugs along the way. From Michael Jung. 24595- IOB instrumentation. Introduces producer/consumer id to every IOB 24596call. This is so that the calls can be instrumented to monitor the 24597IOB resources and to collect usage statistics. From Anthony 24598Merlino. 24599- IOB ProcFS: Adding ProcFS support at /proc/iobinfo to show the data 24600collected from the IOB instrumentation. From Anthony Merlino. 24601- Versioning: Report GIT information via ProcFS. GIT info reported: 24602branch, version, GIT hash, hostname, user, build date. Integrates 24603into existing .version and ProcFS. From David Alessio. 24604 24605* File System/Block and MTD Drivers: 24606 24607- BinFS: The BinFS file system uses the same built-in library and 24608built-in arrays as does NSH. The built-in arrays are simple name- 24609value pairs that map built-in function names with the user-space 24610entry point. In the FLAT build, the built-in arrays are available 24611everywhere via the backdoor left open by the FLAT address space. 24612In the PROTECTED build, however, the kernel must maintain its own 24613reference to the user-space built-in array. This commit adds those 24614kernel globals and a new boardctl(BOARDIOC_BUILTINS) that can be 24615used by applications to the provide the built-in list reference to 24616the kernel. From Gregory Nutt. 24617- MMC/SD: Added support for MMC (eMMC) bigger than 2 GB (Tested with 24618IMXRT1050EVKB and samsung eMMC 16GB). 24619- AT24CSxx: Register a character driver for UUID of AT24CSxx chips. 24620Allows the UUID to read as a file or displayed from an nsh prompt with: 24621nsh> hexdump /dev/eeprom.uuid From David Alessio. 24622- Macronix FLASH: Add support for 4-byte addressing on >128Mb 24623Macronix flash parts From jjlange. 24624- MX25Rxx: Add support for 512B sectors. From Simon Piriou. 24625- SST26: Accept the 16MBit Flash when reading the JEDEC-ID at 24626initialization time. From Ouss4. 24627 24628* Network/Network Drivers: 24629 24630- IPv4 Options: Now handles reception of IPv4 packets with larger 24631IPv4 headers containing options. From Gregory Nutt. 24632- Sockets: Re-order the content of all address-family socket 24633'connection' structures so that they begin with a common prologue. 24634This permits better use of logic for different address family 24635types. From Gregory Nutt. 24636- TCP: Make RTO and WAIT_TIME configurable. This fix is not really 24637correct: TCP RTO really should be calculated dynamically for each 24638TCP connection: http://sgros.blogspot.com/2012/02/calculating-tcp-rto.html. 24639From zhangyuan7. 24640- IP Forwarding: Check if interface is up early on when forwarding to 24641avoid extra work. As noticed in a previous wireless commit, when 24642forwarding is enabled and a packet comes in, the packet is attempted 24643to be sent on each other netdev without regard for whether it is in 24644the UP state. Of course this is eventually caught, but it can be 24645caught earlier to avoid unnecessary work, especially in the 6LoWPAN 24646case where a useless packet conversion will occur. From Anthony 24647Merlino. 24648- RNDIS: Expose option to change the number of write requests that 24649can be in flight. From Anthony Merlino. 24650- GS2200M: Add UDP support. From Masayuki Ishakawa 24651- GS2200M: Implement GS2200M_IOC_IFREQ IOCTL command. From Masayuki 24652Ishikawa. 24653- GS2200M: Enable NuttX's DHCP client instead of GS2200M's DHCP 24654client. From Masayuki Ishikawa. 24655- GS2200M: GS2200M now supports SIOCGIFHWADDR From Masayuki 24656Ishikawa. 24657 24658* Wireless/Wireless Drivers: 24659 24660- IEEE802.15.4 Network Driver: Allow 64-bit prefix to be configurable 24661when auto-configuring the IPv6 address during bring-up. Previously, 24662only the link-local prefix fe80::/64 was used. Also, put the 24663network in the DOWN state at the end of initialization. From 24664Anthony Merlino. 24665- IEEE 802.15.4 MAC: Adds support for energy detect. Adds support 24666for energy detect by introducing a new radio call/callback, as the 24667PHY layer is required to perform the energy detect. From Anthony 24668Merlino. 24669- IEEE 802.15.4 MAC: Adds support for getting/setting 24670macMaxFrameRetries via IOCTL. Add get support for rxonidle 24671attribute From Anthony Merlino. 24672- IEEE 802.15.4 MAC: Move the global iobuffer into the macnet struct 24673so that more than one macnet device can exist. From Anthony 24674Merlino. 24675- IEEE 802.15.4 MAC: Defer handling of extracting association 24676response to LPWORK queue. From Anthony Merlino. 24677- IEEE 802.15.4 Radios: Support dynamic FCS length. Adds 24678IEEE802154_ATTR_PHY_FCSLEN. This change introduces 24679IEEE802154_ATTR_PHY_FCSLEN which the radio layer can support to 24680set/get the FCS length that's added to the end of the frame. One 24681use case, in promiscuous mode, is to add back in the FCS of the 24682received frame by increasing the iob->io_len by the FCS length. 24683From Anthony Merlino. 24684- Xbee: Support "WR" AT command for writing parameters to non- 24685volatile memory. From Anthony Merlino. 24686- Xbee: Add configuration option for setting the default prefix 24687to use when bringing up the network and setting the IP address. 24688From Anthony Merlino. 24689 24690* Other Common Device Drivers: 24691 24692- RTC: If the RTC time is successfully set, then update the current 24693system time to match. From ligd. 24694- ADT7320: Add support for the ADT7320 temperature sensor. From 24695Augusto Fraga Giachero. 24696- DAC7554: Add support to the DAC7554 digital-to-analog converter. 24697From Augusto Fraga Giachero. 24698- DAT-31R5-SP+: Add support to the DAT-31R5-SP+ digital attenuator. 24699Creates a the new device driver directory drivers/rf/ to support 24700drivers related to RF peripherals. It also adds support for the 24701DAT-31R5-SP+ digital attenuator. From Augusto Fraga Giachero. 24702- ISL29023: Add basic driver of ISL29023 ambient light sensor. The 24703basic driver can set operational mode, range, and resolution. It 24704can also read lux value in continuous mode. Interrupt and the alarm 24705is not implemented. From Matous Pokorny. 24706- SHT3x: Add Sensirion SHT3x driver. From Markus Bernet. 24707 24708* Simulator: 24709 24710- Simulator Build: Even though the simulation has no "chips", it 24711needs to have CONFIG_ARCH_CHIP and chip sub-directories. Otherwise, 24712we would have to treat it as a special case in the build system 24713after the changes to the boards/ directory. From Gregory Nutt. 24714 24715* Microchip PIC32MZ: 24716 24717- PIC32MZ. Make the PLL input clock configurable. From Ouss4. 24718 24719* ARMv7-M 24720 24721- Add ARMv7-M setjmp/longjump functions. From David S. Alessio. 24722 24723* NXP i.MXRT: 24724 24725- i.MXRT Clocking: Enable TRACE clocks if the divider has been 24726defined in the board's board.h file. From Dave Marples. 24727 24728* NXP i.MXRT Drivers: 24729 24730- i.MXRT QEncoder: Adds quadrature encoder driver for IMXRT. From 24731Nicholas Chin. 24732- i.MXRT uSDHC: This change completes SDIO support for IMXRT, and 24733also adds support for WiFi using the AP6212A module based on Simon 24734Piriou's rather excellent work. The patch should also address 24735DavidS's concern about width setting for USDHC1 and 2. Testing of 24736the WiFi is minimal so far but functionality is proven. I'm 24737specifically not happy that the driver doesn't recover elegantly 24738from a DMA data checksum failure, but that is an issue that can be 24739dealt with in due course ... I'm trying to get the rest of the 24740interfaces fleshed out and the hardware proven so it can go for pre- 24741production build. I _think_ there's only Bluetooth and USB-device 24742left to implement now. From Dave Marples. 24743- i.MXRT uSDHC: IMXRT uSDHC driver cmd line reset logic modified. 24744From Ivan Ucherdzhiev. 24745 24746* NXP/Freescale Kinetis Drivers: 24747 24748- Kinetis Serial: Add possibility to specify pull-up instead of 24749open drain for serial single-wire mode. From Beat Küng. 24750 24751* NXP LPC17xx/40xx: 24752 24753- LPC17xx/40xx Build: Cortex-M system reset is applicable to 24754LPC17xx/40xx too. From Pavel Pisa. 24755 24756* NXP LPC17xx/40xx Drivers: 24757 24758- LPC17xx/40xx Ethernet: Follow the procedure listed in the 24759LPC176x/5x User Manual when reading from and writing to the PHY's 24760registers (section 10.11.14). I couldn't see any behavioral change 24761after this commit, but nonetheless is a good practice to follow the 24762manufacturer's recommended procedure. From Augusto Fraga Giachero. 24763 24764* NXP S31K1xx: 24765 24766- Added architecture support for the NXP S32K1xx family. Basic 24767support includes the boot up logic, clock configuration, LPUART 24768console, Systick timer, GPIO controls, and eDMA (unverified). 24769 24770* NXP S31K1xx Drivers: 24771 24772- S32K1xx eDMA Leverage eDMA logic from i.MXRT to S32K1XX. Appears 24773to be the same IP but with fewer channels and features than the 24774i.MXRT implementation. From Gregory Nutt. 24775- S32K1xx LPUART: Bring in the LPUART from i.MXRT. It is the same 24776IP. From Gregory Nutt. 24777- S32K1xx SysTick: Bring in Cortex-M0+ SysTick and interrupt handling 24778from samd2l2; bring in Cortex-M4F Systick and interrupt handling 24779from LPC54xx. From Gregory Nutt. 24780- S32K1xx GPIO: Bring in GPIO logic from Kinetis. Looks like similar 24781IP. From Gregory Nutt. 24782- S32K1xx Ethernet: Unverified port of the i.MXRT Ethernet driver to 24783the S32K1xx. The i.MXRT uses the same IP. From Gregory Nutt. 24784- S32K1xx LPSPI and LPI2C: Brings in the LPSPI and LPI2C peripheral 24785drivers from the i.MXRT which used the identical IP. From Gregory 24786Nutt. 24787 24788* NXP S31K1xx Boards: 24789 24790- S32K118EVB. This commit adds initial board support for the NXP 24791S32K118EVB development board. Currently supports only a minimal 24792NSH configuration. From Gregory Nutt. 24793- S32K118EVB: Implement board support for on-board LEDs and buttons. 24794This is taken from the Freedom-K66f with has the same LED and 24795button configuration as the S32K116EVB and uses the same GPIO IP. 24796LEDs, but not buttons, have have been verified. From Gregory Nutt. 24797- S32K146EVB: Adds initial board support for the S32K146EVB 24798development board. Currently supports a NSH configuration with a 24799richer feature set than the minimal configuration of the S32K118EVB. 24800From Gregory Nutt. 24801- S32K146EVB: Add support for execution out of SRAM. This is helpful 24802for bring-up when you want to avoid putting a lethal image in FLASH. 24803From Gregory Nutt. 24804- S32K148EVB: Add support for the NXP S32K148EVB development board. 24805Very similar to the S32K146EVB but with more on-chip memory and 24806hardware features. 24807 24808* Sony CXD56xx 24809 24810- CXD56xx: Migrate CXD56xx common code to the common/ directory: 24811Boot code, FLASH code, I2C driver, UID. From Alin Jerpelea. 24812- CXD56xx: Add SPH. The SPH is used by the ASMP implementation from 24813the SDK. From Alin Jerpelea. 24814 24815* Sony CXD56xx Drivers: 24816 24817- CXD56xx: Add sensors connected to the SCU on Spresense board: 24818o Avago APDS9930 Proximity and Ambient light Sensor. 24819o Rohm BH1721FVC Ambient Light Sensor. 24820o Rohm BH1745NUC Color Sensor. 24821o Rohm BM1383GLV/BM1383AGLV Pressure Sensor. 24822o Rohm BM1422GMV/BM1422AGMV Magnetic Sensor. 24823o Bosch BMI160 Sensor support. 24824o Bosch BMP280 Barometic Pressure Sensor. 24825o Kionix KX022/KX122 Acceleration Sensor. 24826o Murata LT1PA01 Proximity and Ambient light Sensor. 24827o Rohm RPR0521RS Proximity and Ambient light Sensor. 24828o BMI160: Add optional I2C address. 24829From Alin Jerpelea. 24830- CXD56xx: Add the sensor initialization for CXD56xx boards in the 24831common board folder: 24832o APDS9930: typo fix 24833o cxd56_ak09912 initialization. 24834o cxd56_bmi160 initialization. 24835o cxd56_apds9960 initialization. 24836o cxd56_bh1721fvc initialization. 24837o cxd56_bh1745nuc initialization. 24838o cxd56_bm1383glv initialization. 24839o cxd56_bm1422gmv initialization. 24840o cxd56_bmi160 initialization. 24841o cxd56_bmp280 initialization. 24842o cxd56_kx022 initialization. 24843o cxd56_lt1pa01 initialization. 24844o cxd56_rpr0521rs initialization. 24845o cxd56_sensors initialization. 24846o Backup Log driver. 24847o crashlog driver. 24848o Move gs2200m initialization. 24849o Move ili9340 initialization. 24850o Move lpm013m091a initialization. 24851From Alin Jerpelea. 24852 24853* Sony CXD56xx Spresense Board: 24854 24855- Spresense: Enable SmartFS and UDP support From Masayuki Ishikawa. 24856 24857* STMicro STM32: 24858 24859- STM32F4 PLLI2S: Add support to enable the I2S Phase Locked Loop on 24860STM32F427 and STM32F437 MCUs. From Michael Jung. 24861 24862* STMicro STM32 Drivers: 24863 24864- STM32 ADC: Add ADC calibration procedure for IP_ADC_V1. Tested on 24865STM32F100, and it magically increased result accuracy. STM32F103 24866has the same calibration procedure. I am not sure about others. 24867From Matous Pokorny. 24868- STM32 SPI: TI Synchronous Serial Frame Format. The SPI macros on 24869STM32 MCUs now support the Texas Instruments Synchronous Serial 24870Frame Format protocol (TI protocol). Defined a new SPIDEV_MODETI 24871and add support for it in stm32_spi.c. From Michael Jung. 24872- STM32 UART: Serial add HW HS on UART 4 & 5. From David Sidrane. 24873- STM32 PWM: Configure multi-channel duty only if channel specified. 24874This allows you to update duty cycle for a single channel. From 24875Mateusz Szafoni. 24876- STM32F7 Ethernet: Add a timeout on MAC reset From David Sidrane. 24877- STM32F7 FLASH: Exposes stm32_flash_xxx functions. From Anthony 24878Merlino. 24879- STM32F7 PWM: Configure multi-channel duty only if channel specified. 24880This allows you to update duty cycle for a single channel. From 24881Mateusz Szafoni. 24882- STM32F7 UART: Serial add HW HS on UART 4 & 5. From David Sidrane. 24883- STM32H7 ADC: Fix internal channel numbers. From Markus Bernet. 24884- STM32H7 BBSRAM: Add BBSRAM support. From David Sidrane. 24885- STM32H7 DTCM: Port DTCM from F7 From David Sidrane. 24886- STM32H7 I2C: Select ARCH_HAVE_I2CRESET in configuration. From 24887David Sidrane. 24888- STM32H7 PWM: Configure multi-channel duty only if channel 24889specified. This allows you to update duty cycle for a single 24890channel. From Mateusz Szafoni. 24891- STM32H7 RCC: Fix RCC register definitions and typos for ADC/UART. 24892From Markus Bernet. 24893- STM32H7 RTC: Ported over F7 RTC. From David Sidrane. 24894- STM32H7 SPI: Allow more clock sources. From David Sidrane. 24895- STM32H7 UART: Serial add HW HS on UART 4 & 5. From David Sidrane. 24896- STM32H7 UART: Fix typo in UART8 configuration. From Markus Bernet. 24897- STM32H7 UID: Ported UID from F7 From David Sidrane. 24898- STM32L4 PWM: Configure multi-channel duty only if channel specified. 24899This allows you to update duty cycle for a single channel. From 24900Mateusz Szafoni. 24901- STM32L4 UART: Serial add HW HS on UART 4 & 5. From David Sidrane. 24902 24903* STMicro STM32 Boards: 24904 24905- B-L475E-IOT01A: Add mx25rxx memory chip and smartfs support in NSH 24906configuration. From Simon Piriou. 24907- LX_CPU: Add support for the PIKRON LX_CPU board. From Pavel Pisa. 24908- Nucleo-F303RE: Add basic NSH configuration. From Mateusz Szafoni. 24909- Nucleo-F303RE: Enable console on UART2 and set entry point to 24910nsh_main() in the PWM configuration. From Mateusz Szafoni. 24911- Nucleo-H743ZI: Add RTC support. From David Sidrane. 24912- Nucleo-L432KC: Added GPIO drivers for use with /apps/examples/gpio. 24913From Daniel P. Carvalho. 24914- Nucleo-L432KC: Added Zero Cross sensor to nucleo-l432kc. From 24915Daniel P. Carvalho. 24916 24917* TI Tiva: 24918 24919- Tiva: Add support for Tiva TM4C123AH6PM. From Nathan Hartman. 24920- Tiva Configuration: Modify preprocessor logic to support 24921configurations with no UART. Now similar to logic for other 24922architectures. From Nathan Hartman. 24923- Tiva Interrupts: Add handling for IRQs 128 through 159. From Nathan 24924Hartman. 24925 24926* TI Tiva Drivers: 24927 24928- TM4C QEncoder: Reinstate TM4C qencoder driver and expand its 24929ioctls. Add TIVA_HAVE_QEI0, TIVA_HAVE_QEI1 as applicable to each 24930ARCH_CHIP_TM4C12*. Rewrite tiva_qe_setup(). Replace tiva_qe_ppr() 24931with tiva_qe_resetatppr(). Add tiva_qe_resetatmaxpos() and 24932tiva_qe_resetatindex(). Add missing definitions: 24933SIGMODE_QUADRATURE, SIGMODE_CLK_AND_DIR, SWAP_NO_SWAP, SWAP_PHA_PHB. 24934Rename TIVA QEI ioctl QEIOC_PPR to QEIOC_RESETATPPR; add TIVA QEI 24935ioctl identifiers QEIOC_RESETATMAXPOS, QEIOC_RESETATINDEX. From 24936Nathan Hartman. 24937 24938* TI Tiva Boards: 24939 24940- TM4C1294-Launchpad: Enables /dev/userleds in board bring-up for 24941tm4c1294-launchpad by calling userled_lower_initialize() in 24942tm4c_bringup(). From Nathan Hartman. 24943 24944* TI Tiva Drivers: 24945 24946- Tiva GPTM timers: Implement 16-bit PWM mode. Add 24947tiva_pwm16_sel_event() to choose GPTMCTL.TnEVENT value. Implement 24948tiva_pwm_mode16(). This also involved numerous corrections to the 2494916-bit timer logic. Add tiva_timer16pwm_setperiodduty() to set 24950initial period, duty cycle, and enable interrupts if requested in 24951GPTM peripheral. Interrupts are not enabled in NVIC until 24952tiva_timer16_start() is called. Add tiva_timer16pwm_setduty() to 24953update duty cycle at any time. Add new TIMER_FLAG_* configuration 24954flags to enable configuring the 16-bit PWM feature. Extend type of 24955"flags" in tiva_timer32config_s and tiva_timer16config_s from 8- to 2495632-bits to allow more flags. From Nathan Hartman. 24957 24958* Build System: 24959 24960- Export Build: Export all variables/files to support architecture 24961independent build against NSH. From Pavel Pisa. 24962- Application Export: This change too build tools allows to export 24963built-in applications registry into temporarily created directory 24964where export archive content is prepared. If the Makefile in apps/ 24965directory does not define export: target then error is print but 24966export continues without interruption. It would be more logical to 24967print warning but there is no way instruct apps make to not print 24968error. From Pavel Pisa. 24969- boards/Board.mk: Add support to pass dependency paths. From 24970Gregory Nutt. 24971 24972* Libraries/Header Files: 24973 24974- libs/libc/libc.csv: Add some missing C library functions. From 24975Pavel Pisa. 24976- libs/libc/libc.csv: Add ioctl() to fs_ioctl() wrapper for varidic 24977case. From Pavel Pisa. 24978- libs/libc/builtin/: Moves shared built-in information out of 24979binfmt/libbuiltin and into libs/libc/builtin where it can be shared 24980with applications. This should permit built-in application in the 24981PROTECTED build where binfmt/libbuiltin was not available in user 24982space. From Gregory Nutt. 24983- libs/libc/dirent/: Added alphasort() implementation, scandir() 24984implementation and DT_* definitions to include/dirent.h. Apparently 24985those definitions are not required by POSIX, but are part of 249864.3BSD and available in glibc as well. From Michael Jung. 24987- libs/libc/grp/: Added stubbed implementations of getgrgid, 24988getgrgid_r, getgrnam, getgrnam_r, and initgroups. These functions 24989are essentially stubs pretending that NuttX supported groups and 24990that the only configured group in the system was 'root' with gid 0. 24991The intend is not to provide meaningful new features, but to ease 24992porting of foreign source code to NuttX. From Michael Jung. 24993- libs/libc/machine/arm/armv7-m/: Add Cortex M4F machine optimized 24994fabsf and sqrtf. From David S. Alessio. 24995- libs/libc/pwd/: Added stubbed implementations. Added stubbed 24996implementations of getpwuid, getpwuid_r, getpwnam, and getpwnam_r. 24997These functions are essentially stubs pretending that NuttX 24998supported users and that the only configured user in the system 24999was 'root' with uid 0. The intend is not to provide meaningful 25000new features, but to ease porting of foreign source code to NuttX. 25001From Michael Jung. 25002- libs/libc/pwd and libs/libc/grp/: Modify to get user/group data 25003from /etc/passwd and /etc/group if so configured. From Gregory 25004Nutt. 25005- libs/libc/stdio/: Add support for the size_t integer qualifier 'z' 25006to the printf family. This is kind of tricky due the variety of 25007sizeof(size_t) on different platforms. From David Sidrane. 25008- libs/libc/unistd.h: Added stubbed implementations of setuid() and 25009setgid(). These functions are essentially stubs pretending that 25010NuttX supported users and groups and that the only configured user 25011and group in the system were both 'root' with a uid and a gid of 0, 25012respectively. The intent is not to provide meaningful new features, 25013but to ease porting of foreign source code to NuttX. From Michael 25014Jung. 25015- libs/libc/unistd/: Add getuid() and getgid() stubs to match 25016MichaelJung's setuid() and setgid(). From Gregory Nutt. 25017- libc/libc/unistd/: Add stubs for geteuid(), getegid(), seteuid(), 25018setegid(), setreuid(), and setregid(). NuttX does not currently 25019support effective user/group IDs, but these stubs will support 25020linkage of applications that expect these POSIX standard interfaces. 25021From Gregory Nutt. 25022 25023* Symbol Tables: 25024 25025- NuttX provides lists of available syscalls and library functions and 25026tools to process them. The lists can be used to build symbol table 25027which allows runtime program loading which can reuse functions 25028already compiled into NuttX system image. List processing, 25029compilation and linking to the final system image has been possible 25030only under manual control until now. Provided changes add option 25031(CONFIG_EXECFUNCS_GENERATE_SYSTEM_SYMTAB) to build complete list of 25032available functions and syscalls automatically. The symbolic table 25033is generated in form libsymtab.a which can be reused by application 25034or directly pull in when "g_symtab" and "g_nsymbols" variables are 25035requested by EXECFUNCS configuration. I have tried to follow 25036mechanisms for library compilation in different kernel protection 25037modes but tested only flat no-MMU build. The basic assumption is 25038that this library and libraries providing syscall stubs and C- 25039library functions are available in user-space context and initial 25040application (usually NSH) registers the symbol table through IOCTL. 25041The table can be reused then by another applications in their 25042address space as kernel allows. Simple for flat or protected mode, 25043I am not sure if really support in MMU mode. It is highly probable 25044that I have made some mistake, overlooked something, but the 25045functionality is optional (should not cause troubles in any mode if 25046disabled) and main purpose is to lower memory overhead when more 25047applications are loaded on memory constrained system which usually 25048use direct kernel calling without protection or address space 25049separation. If the table should be provided by kernel to 25050applications then makefiles has to be adjusted. From Pavel Pisa. 25051 25052* Tools: 25053 25054- tools/: Change preferred argument of configurations tools to use 25055':' as the delimiter between <board-name> and <config-name>. This 25056is to emphasize that this is not a path; it is configuration 25057specification. The legacy '/' delimiter is still supported but 25058not recommend and not advertised. Updated configurations 25059instructions in README.txt files to show ':' delimiter vs '/' 25060delimiter. Update all configuration-related tools to accept ':' 25061separator between board and configuration name. From Gregory Nutt. 25062 25063* apps/ General: 25064 25065- Makefile: Added support for application-specific export target. 25066Used by nuttx/tools/mkexport.sh. From Pavel Pisa. 25067- apps/builtins: Move apps/builtins/builtin_forindex.c to 25068nuttx/libs/libc/builtin since it is required by kernel logic as 25069well. Other changes account for movement of builtin.h from 25070nuttx/include/nuttx/binfmt/built.h to nuttx/include/lib/builtin.h. 25071From Gregory Nutt. 25072 25073* Examples/Tests: apps/examples: 25074 25075- apps/examples/uid: Demo used to verify PASSWD and GROUP interfaces. 25076From Gregory Nutt. 25077- apps/examples/webserver/: Initialilze network and run forever only 25078if not built-in app. Infer from CONFIG_NSH_BUILTIN_APPS if we are a 25079NSH built-in app or not. If built-in app (CONFIG_NSH_BUILTIN_APPS 25080defined) then we assume network is initialized prior to webserver 25081starting and we exit on webserver failure. If running standalone 25082(CONFIG_NSH_BUILTIN_APPS is undefined) then behavior is unchanged: 25083webserver initializes network and runs forever. From Nathan Hartman. 25084 25085* Network Utilities: apps/fsutils: 25086 25087- apps/fsutils/passwd: Handle the improved the format of the 25088/etc/passwd file. It is now a little more similar to other systems. 25089From Gregory Nutt. 25090 25091* Network Utilities: apps/netutils: 25092 25093- apps/netutils/dhcpc: Add host name support to DHCP client. From 25094Masayuki Ishikawa. 25095 25096* Network Utilities: apps/wireless 25097 25098- apps/wireless/ieee802154/i8sak: I8sak improvements: (1) Adds 25099support for getting/setting maxretries and promsicuous mode from 25100i8sak, (2) Fixes a build warning and handles a few cases where a 25101fault can occur due to not catching missing arguments. From 25102Anthony Merlino. 25103- apps/wireless/ieee802154/i8sak: Allow setting the endpoint PAN ID. 25104From Anthony Merlino. 25105- apps/wireless/ieee802154/i8sak: Adds support for energy scan result 25106printout. From Anthony Merlino. 25107- apps/wireless/ieee802154/i8shark: Adds support for intentionally 25108suppressing passing the FCS so that Wireshark doesn't try to 25109validate it. From Anthony Merlino. 25110- apps/wireless/ieee802154/libmac: Adds support for getting/setting 25111the FCS length From Anthony Merlino. 25112- apps/wireless/gs2200m: Add UDP support to the GS2200M driver. From 25113Masayuki Ishikawa. 25114- apps/wireless/gs2200m: Add DHCP client handling in ioctl_request(). 25115From Masayuki Ishikawa. 25116- apps/wireless/gs2200m: ioctl_request() supports SIOCGIFHWADDR. 25117From Masayuki Ishikawa. 25118 25119Bugfixes: 25120--------- 25121Only the most critical bugfixes are listed here (see the ChangeLog for a 25122more complete list of bugfixes and for additional, more detailed bugfix 25123information): 25124 25125* Core OS: 25126 25127- Priority Inheritance: Fix a race in telnet with PRIORITY_INHERITANCE 25128and SCHED_HPWORK. Sometimes causes an assertion to fire incorrectly. 25129From David S. Alessio. 25130- Task Groups: Correct some naming. The NuttX task groups have been 25131using the acronym 'gid' and also the type 'gid_t' for the the task 25132group ID. That is incorrect. Than naming is reserved for use with 25133group permissions. So these were all named to grpid and grpid_t so 25134that it is clearer that these refer to NuttX task group IDs, and not 25135to group permissions. From Gregory Nutt. 25136- Task Termination: nxtask_signalparent() in task_exithook.c may 25137invalidate the group's parent task ID (tg_ppid) too soon. The 25138tg_ppid field is use only to remember the parent tasks ID so that it 25139can send the SIGCHLD signal to it. So it must stay valid until 25140SIGCHLD has been sent. In nxtask_signalparent(), it calls 25141nxtask_sigchild() to send SIGCHLD to the parent, then invalidates 25142tg_ppid. That would be okay, except that the SIGCHLD is only sent 25143when the last member of the group terminates. That is incorrect; 25144tg_ppid can be invalidated too soon and, as a consequence, SIGCHLD 25145would never be sent. Noted by Jeongchan Kim in the Google group: 25146https://groups.google.com/forum/#!topic/nuttx/SXd8fVwVKBk From 25147Gregory Nutt. 25148- sched_get_rr_interval(): sched_get_rr_interval() should return 25149{0,0} if round-robin scheduling is not selected for the task. From 25150Gregory Nutt. 25151- SMP Type Collision: The non-standard, non-portable type cpu_set_t 25152was created specifically to support the NuttX internal, SMP 25153implementation. Any resemblance to any other cpu_set_t would be 25154purely coincidental. However it appears that that coincidence has 25155occurred. cpu_set_t has an equivalent, non-standard, non-portable 25156type in the GNU C library. Compilation of libgnat expects this 25157non-standard type to be defined. Who am I to stand in the way of 25158progress? This commit removes the conditioning on CONFIG_SMP so 25159that cpu_set_t is typed (as a uint8_t) even if CONFIG_SMP is not 25160defined. Reference: Bitbucket issue 164. From Gregory Nutt. 25161- Binary Loader: Change some debug macros from berr() to binfo() 25162when dumping module data. The report of problems is important 25163during development but when it enables complete informative output 25164about load binaries then the important information can be easily 25165overlooked. The huge output sent to serial terminal slows loading 25166significantly as well. From Pavel Pisa. 25167- Power Management: Fix g_pmcount 16-bits overflow when 25168CONFIG_PM_XXENTER_COUNT set big value. From ligd. 25169- Timekeeping: Fix cases in time conversion that must be >= 25170NSEC_PER_SEC, not > NSEC_PER_SEC. From Gregory Nutt. 25171 25172* File System/Block and MTD Drivers: 25173 25174- opendir(): opendir() set errno to a negative value in one error 25175case. From Michael Jung. 25176- SmartFS: Update smartfs smart_scan() function. From Simon Piriou. 25177- ProcFS: Add missing LF to cpuload procfs output From David Alessio. 25178- MMC/SD: Copy/paste error fix in the SDIO-based block driver for 25179MMC. From Ivan Ucherdzhiev. 25180- MMC/SD: Correct a misplaced #endif in the SDIO-based driver. From 25181Gregory Nutt. 25182 25183* Networking/Network Drivers: 25184 25185- Ethernet Configuration: Ethernet packet buffer size cannot be 25186permitted to go below 1294 if IPv6 is selected. From Gregory Nutt. 25187- TCP RST: Fix outgoing RST packet with wrong ack number. From 25188biantao. 25189- TCP Close: Fix TCP close flow; free the connection after all TCP 25190close process finished. From zhangyuan7. 25191- UDP Broadcast: Remove net stack dependency from CONFIG_NET_BROADCAST. 25192This change allows us to use CONFIG_NET_BROADCAST without network 25193stack (i.e. usrsock application can use broadcast) From Masayuki 25194Ishikawa. 25195- UDP: Fixes a UDP send copy-paste error in the new SO_LINGER code: 25196CONFIG_TCP_NOTIFIER to CONFIG_UDP_NOTIFIER. From Juha Niskanen. 25197- TCP and UDP: Fix errors in the new implementation of SO_LINGER. 25198The tcp_drain() and udp_drain() functions were casting the working 25199argument to the wrong type, resulting in hangs and abnormal 25200behavior. There is a complexity in the TCP drain logic when the 25201remote peer closes the socket before all Tx data has been flushed. 25202Sometimes we are not notified of this case and wait the entire 25203timeout unnecessarily. There is a workaround in place in 25204tcp_txdrain(), but this really should be revisited. From Gregory 25205Nutt. 25206- 6LoWPAN: Removes unnecessary conversions that were happening due to 25207a misunderstanding of byte ordering with EUI-64. From Anthony 25208Merlino. 25209- RNDIS: Fix issue with DEBUGASSERT when using composite device and 25210endpoint numbers not being the default. From Anthony Merlino. 25211 25212* Wireless/Wireless Drivers: 25213 25214- wireless network devices: Attach radio to d_buf before registering 25215device to handle forwarding case. When CONFIG_NET_IPFORWARD is 25216enabled, and CONFIG_NET_6LOWPAN is being used, a packet that 25217attempts to get forwarded on the 6LoWPAN interface will require 25218that the radio's buffer be attached to d_buf. Otherwise an assertion 25219will fire. The underlying "radio" in this case is the 25220mac802154_netdev. This behavior has probably not been observed 25221because the buffer is normally attached in the periodic txpoll 25222worker. However, in my case, the 6LoWPAN interface was not UP yet, 25223and therefore the worker hadn't run yet. From Anthony Merlino. 25224- IEEE 802.15.4 MAC: Fixes issues with extended address. 1) Extended 25225address should be read-only. 2) Extended address should be placed 25226in frame in "reverse-canonical" order. The extended address is a 25227read-only attribute and thus an attempt to write the extended 25228address should be denied. Instead, the extended address should 25229really be either set by the PHY/radio itself, or provided at board 25230bring-up time to the radio layer. The MAC layer now pulls in the 25231extended address from the radio any time the MAC is reset. The 25232extended address is also supposed to be sent in the frame in 25233reverse-canonical order. This is very confusing in the standard and 25234it wasn't until I realized it was backwards in Wireshark that I 25235researched this further. Searching online I find documents from the 25236committee for suggestions/feedback on the future standard. It isn't 25237in the 2015 standard but a newer version of the standard will 25238presumably clarify this. It says that the extended address should be 25239written in reverse-canonical form, meaning the OUI comes last, not 25240first inside the frame. From Anthony Merlino. 25241- IEEE 802.15.4 MAC: Frame Version should have been 1, but was being 25242set to 3 when payload exceeds version 0 capabilities. Adds warning 25243to build to indicate what is noted in the menu for 25244CONFIG_MAC802154_NTXDESC From Anthony Merlino. 25245- IEEE 802.15.4 MAC: Fixes issue where the txdesc's ackreq flag was 25246not being set, despite the frame containing a Frame Control field 25247with ACKREQ bit set. From Anthony Merlino. 25248- Xbee: Fix logic to prevent deadlock scenario when there are no 25249available IOBs From Anthony Merlino (2018-12-21). 25250- Xbee: Change assumption about destination address mode for incoming 25251frames. If a short address has been assigned to our radio, then 25252assume we were addressed using that. Otherwise we were addressed 25253using our extended address. From Anthony Merlino. 25254- Xbee: Initialize the short address to the unspecified address and 25255query for the extended address on initialization. From Anthony 25256Merlino. 25257- Xbee: Adds CONFIG_XBEE_LOCKUP_WORKAROUND option and corresponding 25258logic to workaround an issue where the XBee locks up and stops 25259responding. This typically happens when there is a lot of data 25260being received over the link. When the XBee stops responding, many 25261times, querying the XBee kicks it out of this state. However, 25262occasionally the XBee is completely locked up and the XBee has to 25263be reset. This change handles these conditions by periodically 25264(if not naturally occurring) querying the XBee. If during any 25265query, the XBee does not respond within a certain number of 25266attempts, the XBee is reset. From Anthony Merlino. 25267- Xbee: Cancel query timeout upon receiving the expected response. 25268Add protection for race condition that can cause association 25269timeout to continue firing repeatedly From Anthony Merlino. 25270- Xbee: Detect lockup and reset XBee in xbee_req_data From Anthony 25271Merlino. 25272- Xbee: Fixes one instance of the use of IOBUSER_WIRELESS_MAC802154 25273which isn't available without the software MAC layer. Instead we 25274use IOBUSER_WIRELESS_RAD802154 throughout the whole driver since it 25275is always available when IEEE 802.15.4 support is enable. From 25276Anthony Merlino. 25277 25278* Common Drivers: 25279 25280- pipes: Use inode reference counter instead of device reference 25281counter to handle dup(). I found that if I dup() a pipe, the 25282reference counter d_refs is not increased. If I close any of the 25283fd, backed by the same pipe, the pipe will be freed. This causes 25284any further usage on the fd referencing a non existent pipe. This 25285change uses the inode reference counter, which is properly 25286maintained during dup(). From Yang ChungFan. 25287- SPI Bitbang: Fix build error when the SPI bitbang variable width 25288support is enabled. From Augusto Fraga Giachero. 25289- GPIO Lower Half: Remove limitation when pintype > 25290GPIO_INTERRUPT_PIN. From ligd. 25291 25292* ARMv4/ARMv5 25293 25294- Classic ARM7/ARM9: When performing stability test, the application 25295would cause kernel crash. When I trace the stack, I find that 25296register R1 has been changed, and its value is the same as register 25297CPSR. In up_fullcontextrestore.S, the restoration of R0 and R1 is 25298not atomic: 'msr cpsr r1 will enable interrupts and the recovery of 25299r0 and r1 may be interrupted and the value or R1 may be changed. 25300Fix is to use a single ldmia to restore R0, R1, and return via R15. 25301From Loyen Wang. 25302 25303* ARMv7-A 25304 25305- ARMv7-A: Fix typo and missing quotation for ARMv7-A. From Oki 25306Minabe. 25307- ARMv7-A: Fix double increment in armv7-a's 25308arm_addrenv_destroy_region(). From Oki Minabe. 25309- ARMv7-A: Fix L2 page table mask for ARMv7-A page allocator. From 25310Oki Minabe. 25311 25312* ARMv7-M 25313 25314- Interrupts. Removes the architecture-common 25315CONFIG_ARCH_INT_DISABLEALL configuration option (but which was 25316supported only by ARMv7-M). In the normal course of things, 25317interrupts must occasionally be disabled using the up_irq_save() 25318inline function to prevent contention in use of resources that may 25319be shared between interrupt level and non-interrupt level logic. 25320Now the question arises, if we are using BASEPRI to disable 25321interrupts and have high priority interrupts enabled 25322(CONFIG_ARCH_HIPRI_INTERRUPT=y), do we disable all interrupts except 25323SVCall (we cannot disable SVCall interrupts). Or do we only disable 25324the "normal" interrupts? If we are using the BASEPRI register to 25325disable interrupts, then the answer is that we must disable ONLY the 25326"normal interrupts". That is because we cannot disable SVCALL 25327interrupts and we cannot permit SVCAll interrupts running at a 25328higher priority than the high priority interrupts (otherwise, they 25329will introduce jitter in the high priority interrupt response time.) 25330Hence, if you need to disable the high priority interrupt, you will 25331have to disable the interrupt either at the peripheral that 25332generates the interrupt or at the NVIC. Disabling global interrupts 25333via the BASEPRI register cannot effect high priority interrupts. 25334From Gregory Nutt. 25335- ARMv7-M Priorities: In the 'normal' case, the priority of the 25336SVCALL interrupt was the same as the priority of the high priority 25337interrupt. This means that SVCALL interrupt processing can defer 25338the high priority interrupt and result in the jitter in that 25339interrupt response. Fix is to raise the priority of the high 25340priority interrupt above the priority of the SVCALL interrupt. 25341Suggested by Nathan Hartman. From Gregory Nutt. 25342 25343* Microchip i.MXRT Drivers: 25344 25345- i.MXRT ENC: Fix some errors in register bit definitions. Noted by 25346Arie de Muijnck. From Gregory Nutt. 25347- i.MXRT LPI2C: Slave addresses are now correctly shifted when 25348sending START. TX/RX FIFOs now discarded on error to prevent FIFO 25349underflow errors. Fixes error checking to use priv structure and 25350removes checking of BBF flag as it is not an error. From Nicholas 25351Chin. 25352 25353* Microchip PIC32MZ Drivers: 25354 25355- PIC32MZ SPI: Fix SPI Mode selection. CKE is the inversion of the 25356CPHA. From Ouss4. 25357 25358* Microchip/Atmel SAMD2x/SAML2x Drivers: 25359 25360- SAMD2/L2 I2C: Correct time calculation. From Bernd Walter. 25361 25362* Microchip/Atmel SAM3/SAM4: 25363 25364- SAM3/4: Add missing DMA configuration Kconfig setting. From Bernd 25365Walter. 25366 25367* NXP LPC17xx/40xx Drivers: 25368 25369- LPC17xx/40xx ADC: Only use PCLKSEL0 for ADC on LPC176x family. 25370From jjlange. 25371- LPC17xx/40xx Ethernet: Set speed back to 10Mbps if 10Mmbps link 25372negotiated. From Augusto Fraga Giachero. 25373- LPC17xx/40xx I2C: Abort I2C transfers if a timeout has occurred. 25374If a timeout has occurred in the middle of a I2C transfer, the next 25375I2C interrupt should abort any transfers and send a stop condition 25376to the corresponding I2C bus. Failure to do so will result in 25377memory corruption / undefined behavior as priv->msgs points to a 25378region of memory it doesn't owns anymore after lpc17_40_i2c_start 25379returns. From Augusto Fraga Giachero. 25380- LPC17xx/40xx I2C: Calculate the appropriate timeout for I2C 25381transfers. Depending on the bus frequency and transfer size, I2C 25382transactions can take quite a bit, so a fixed timeout is not a 25383good solution. Calculating the timeout at run time poses some 25384overhead but still better than aborting long transactions. From 25385Augusto Fraga Giachero. 25386 25387* NXP/Freescale Kinetis Drivers: 25388 25389- Kinetis I2C: i2c transfer ensure correct result returned. 25390kinetis_i2c_transfer released the mutex then fetched the state, 25391this resulted in returning the correct results. From David 25392Sidrane. 25393 25394* NXP LPC17xx/40xx Drivers: 25395 25396- LPC17xx/40xx CAN: If BOARD_CCLKSEL_DIVIDER is not equal to 1 on 25397LPC178x or LPC40xx then base clock rate is calculated incorrectly 25398because CCLK frequency does not correspond to PLL0 clock which is 25399used for PCLK. This is partially workaround solution. It would 25400be probably better to define BOARD_PCLK_FREQUENCY even for LPC176x 25401targets and use that to replace divisor by base_clock in up_dev_s. 25402From Pavel Pisa. 25403 25404* NXP LPC17xx/40xx Boards: 25405 25406- LPC17xx/40xx Ethernet: Add missing LPC17_40_PHY_CEMENT_DISABLE 25407variable to the lpc17xx/40xx Kconfig file. For some reason this 25408setting was not referenced anywhere except in the Ethernet driver. 25409From Augusto Fraga Giachero. 25410- LPC17xx/40xx Ethernet: Fix the initialization for DP83848x PHYs. 25411The DP83848x requires the RMII mode to be manually enabled through 25412the MII_DP83848C_RBR register. Before querying the speed and mode 25413it should wait for the link to be established. From Augusto Fraga 25414Giachero. 25415 25416* NXP i.MXRT Drivers: 25417 25418- i.MXRT LPUART: Fix some errors in the LPUART register definition 25419files. Correct naming of a function: up_earlyserialinit() should 25420be imxrt_earlyserialinit(). Remove prototypes for non-existent 25421serial initialization functions. From Gregory Nutt. 25422- i.MXRT USDHC: uSDHC typo fixes and command transfer error handling 25423modified. From Ivan Ucherdzhiev. 25424 25425* SiLabs EFM32 Drivers: 25426 25427- EFM32 OTG host: Adam Porter's various fixex for STM32 FS/HS 25428probably should be applied to EFM32 host which which has very 25429similar IP. From Gregory Nutt. 25430 25431* STMicro STM32: 25432 25433- STM327F Configuration: Kconfig add depends on BBSRAM. From David 25434Sidrane. 25435- STM32F7 Interrupts: Fix overwritten IRQ enable. System boot order 25436calls clock_initialize() then up_initialize(). clock_initialize() 25437was setting up the alarm IRQ up_initialize is initializing the NVIC. 25438This most likely worked in the past due to a bug in the NVIC 25439initialization code that failed to clear the Interrupt enables. 25440- STM32H7: Rix BBSRAM name in memory map. From David Sidrane. 25441- STM32H7: Removed f7 in file path. From David Sidrane. 25442 25443* STMicro STM32 Drivers: 25444 25445- STM32H7 BBSRAM: Fix issues causing no writes and hardfaults. From 25446David Sidrane. 25447- STM32H7 BBSRAM: Convince compiler to perform 32 bit write. From 25448David Sidrane. 25449- STM32F7 OTGHS: Fixes bad preprocessor logic preventing USB OTG HS 25450to work when used without external ULPI. From Anthony Merlino. 25451- STM32 OTGH[FS|HS] Host STM32 host only initiates transfer if 25452buflenl > 0. From Adam Porter. 25453- STM32F7/H7/L4 OTG host: Adam Porter's fix for STM32 FS/HS probably 25454should be applied to STM32 F7, H7, and L4 OTG host which are very 25455similar. From Gregory Nutt. 25456- STM32/F7/H7/L4: This change was required to get my devices 25457(CDC-MBIM) to enumerate. Initially the system timed out retrieving 25458the USB configuration descriptor. Ctrl IN requests got nothing but 25459NAKs. I found that the initial SETUP packet and corresponding IN 25460transfer were fine; it was the Status OUT phase that was getting the 25461NAK. After receiving a NAK on the Status OUT, the code would loop 25462back and issue another ctrl IN, which will always fail because the 25463data was already transferred before. Thus the entire transfer would 25464'timeout'. The fix I implemented moves the DATANAK timeout loop to 25465only apply to the Status OUT. Both the ctrl IN and the Status OUT 25466need their own retry loops. From Adam Porter. 25467- STM32F7 SDMMC: If there is only one SDMMC it is slot 0 From David 25468Sidrane. 25469- STM32F7 USART1: USART1_RXDMA is dependent on STM32F7_DMA2 not 25470STM32F7_DMA1 From Anthony Merlino. 25471- STM32H7 DBGMCU: Memory Map DBGMCU is @ 0x5c001000 From David 25472Sidrane. 25473- STM32F7 SDMMC: Fix warning when DMA is not enabled. From David 25474Sidrane. 25475- STM32H7 Ethernet: Fix some errors in Ethernet MAC configuration. 25476From Markus Bernet. 25477- STM32H7 Ethernet: Correct stm32h7 mac address filtering. Correct 25478the MAC address 0 register definition and remove the 'receive all' 25479flag. Now the Ethernet driver only receives packets addressed to 25480correct MAC. From Jukka Laitinen. 25481- STM32H7 Ethernet: Correct memory corruption error. The Ethernet 25482driver initialization incorrectly wrote to DMACRXCR instead of 25483DMACSR when trying to clear the stopped flags. This caused 25484invalid buffer length in the DMACRXCR, causing DMA to overflow the 25485RX buffers when large packets are sent to the device. From Jukka 25486Laitinen. 25487- STM32H7 PWR: Ensure data is flushed on backup domain access 25488changes. From David Sidrane. 25489- STM32H7 Serial: Serial fix undefined with TERMIOS From David 25490Sidrane. 25491- STM32H7 UARTs: Fix UART7/8 typos. Fix bug in ETH_MACQTXFCR 25492configuration. From Markus Bernet. 25493 25494* STMicro STM32 Boards: 25495 25496- Multiple STM32 Boards: If CONFIG_SCHED_CRITMONITOR is selected, 25497then make sure that ITM and DWT resources are enabled before 25498accessing ITM and DWT registers. By default, these registers are 25499disabled. Suggested by Juha Niskanen. From Gregory Nutt. 25500- Nucleo-H743ZI: Correct logic that determines if the RTC driver is 25501available. Find in build testing. From Gregory Nutt. 25502- Nucleo-G071RB: Fix linker script to avoid .ARM.exidx section 25503overlap with .data From Daniel Pereira Volpato. 25504- Modify all linker scripts (all boards, all architectures) to use 25505solution from Daniel P. Volpato. From Alan Carvalho de Assis. 25506- Nucleo-L432KC ADC: Change analog pins definitions and correct DMA 25507related issue. From Daniel P. Carvalho. 25508 25509* TI Tiva: 25510 25511- Tiva Configuration: Rename TM4C123GH6PMI identifiers to 25512TM4C123GH6PM. Rationale: In terms of firmware programming, there 25513is no functional difference between these parts: TM4C123GH6PMI7, 25514TM4C123GH6PMI7R, TM4C123GH6PMT7, and TM4C123GH6PMT7R. From a 25515programming standpoint, all of the above parts are TM4C123GH6PM, 25516which means it doesn't make sense to differentiate between PM and 25517PMI. (The PM means 64-LQFP. The I means temperature range -40C to 25518+85C. It could be T meaning -40C to +105C. The R means it ships in 25519Tape and Reel packaging as opposed to Tray.) From Nathan Hartman. 25520- Tiva Configuration: Rename TM4C1294NC identifiers to TM4C1294NCPDT. 25521Rationale: TM4C1294NC is ambiguous: TM4C1294NCPDT is a 128-TQFP, 25522TM4C1294NCZAD is a 212-NFBGA. The TM4C1294NC part currently 25523supported by NuttX is the TM4C1294NCPDT used on the TI EK-TM4C1294XL 25524"Connected LaunchPad" (see configs/tm4c1294-launchpad). To ensure 25525the correct part is fully specified, this commit updates all 25526TM4C1294NC identifiers to TM4C1294NCPDT. From Nathan Hartman. 25527- Tiva Configuration: Fix TM4C129XNCZAD part number in Kconfig and 25528identifiers. Rationale: Fully specify that this is the 212-pin BGA 25529package (ZAD ending) and for consistency with earlier changes to 25530other Tiva TM4C12x part numbers in Kconfig names and identifiers. 25531From Nathan Hartman. 25532 25533* TI Tiva Drivers: 25534 25535- Tiva TM4C 1-Wire: Fix wrong description on define TIVA_1WIRE_BASE: 25536Was "EEPROM and Key Locker" (same as the item above). Now "1-Wire 25537Master Module." Make DMACTL symbols visible for TM4C123: Remove 25538"#ifdef CONFIG_ARCH_CHIP_TM4C129" guard around UART DMA Control 25539(DMACTL) symbols. These bits are valid on TM4C123 devices, as well 25540as on TM4C129. Also, improve the comment on UART_DMACTL_DMAERR. 25541From Nathan Hartman. 25542- Tiva GPIO Interrupts: LM3S, LM4F, TM4C: Fix GPIO IRQ error, ports 25543R, S, T. Preprocessor logic for CONFIG_TIVA_GPIOx_IRQS was setting/ 25544clearing port Q defines when it should act on ports R, S, T. 25545gpioport2irq() was missing handling for port T. From Nathan 25546Hartman. 25547- Tiva Timers: Fix minor errors in tiva_timerlib.c. Fix incorrect 25548preprocessor conditionals related to Kconfig defines: 25549CONFIG_TIVA_TIMER32_EDGECOUNT -> CONFIG_TIVA_TIMER16_EDGECOUNT, 25550CONFIG_TIVA_TIMER32_TIMECAP -> CONFIG_TIVA_TIMER16_TIMECAP, 25551CONFIG_TIVA_TIMER32_PWM -> CONFIG_TIVA_TIMER16_PWM. From Nathan 25552Hartman. 25553- Tiva Timers: Fix errors in low-level timer support. 25554tiva_gptm_configure() and tiva_gptm_release() were calling 25555tiva_emac_periphrdy() instead of tiva_gptm_periphrdy(). Fix 25556error in "abcde" description of bit flag defines. From Nathan 25557Hartman. 25558- Tiva Timers: Fix one code error and some comment errors. 25559tiva_timer16_setinterval(): Was DEBUGASSERTing on mode != 25560TIMER16_MODE. Fixed to DEBUGASSERT on mode == TIMER16_MODE. 25561From Nathan Hartman. 25562 25563* ZiLOG Z80 Boards: 25564 25565- z80sim Serial: Fix uart_dev_t initializer: pollfds[] is a array of 25566pointers and, hence, the NULL initializer must be included in braces. 25567Noted by Paul Osmialowski in Issue #160. From Gregory Nutt. 25568- z80sim Interrupts: Missed a name change up_irqinitialize to 25569z80_irq_initialize. From Gregory Nutt. 25570 25571* C Library/Header Files: 25572 25573- include/netinet/in.h: Rename __pad member to sin_zero in struct 25574sockaddr_in. Libwebsockets initializes the 'sin_zero' member of 25575sockaddr_in objects to zeros. Apparently, judging from mailing list 25576entries, there are platforms on which not doing this causes 25577undefined behavior. On NuttX compiling respective code is broken, 25578as the corresponding member variable is called '__pad'. Neither in 25579the 'nuttx' nor in the 'apps' repository did I find any reference to 25580this identifier. Thus, I believe its a safe bet to just rename it. 25581UNIX Network Programming states in this regard: "The POSIX 25582specification requires only three members in the structure: 25583sin_family, sin_addr, and sin_port. It is acceptable for a POSIX- 25584compliant implementation to define additional structure members, and 25585this is normal for an Internet socket address structure. Almost all 25586implementations add the sin_zero member so that all socket address 25587structures are at least 16 bytes in size." From Michael Jung. 25588 25589- libs/libc/libc.csv: Correct dependency of setlocale on 25590CONFIG_LIBC_LOCALE. From Pavel Pisa. 25591- libs/libc/machine/arm/armv7-m: Fix build error for ELF. From 25592Masayuki Ishikawa. 25593- libs/libc/math.csv: Correct format of some function entries. From 25594Pavel Pisa. 25595 25596* Tools: 25597 25598- tools/: Change all occurrences of /bin/(ba)sh in shell scripts to 25599/usr/bin/env bash which appears more portable From Manuel Stühn. 25600 25601* NSH Library: apps/nshlib: 25602 25603- apps/nshlib/: As noted by David S. Alessio, 'cat' should not output 25604any additional newline at the end of the cat'ed file content. This 25605additional newline was added to assure that the NSH prompt was 25606presented on a new line. However, that is not the correct behavior 25607of 'cat' per the IEEE std: "The standard output shall contain the 25608sequence of bytes read from the input files. Nothing else shall be 25609written to the standard output." Reference: 25610https://pubs.opengroup.org/onlinepubs/009695399/utilities/cat.html. 25611This commit changes the function nsh_catfile() which underlies the 25612'cat' command and well as other NSH commands. Although this is the 25613correct behavior for 'cat' it may not be the correct behavior for 25614other commands implemented via nsh_catfile(). That remains to be 25615determined. From Gregory Nutt. 25616 25617* System Utilities: apps/system: 25618 25619- apps/system/cle/: ASCII DEL should be treated by Delete-Left. From 25620Dave Marples. 25621- apps/system/i2ctool: (1) Friendlier I2C "knock-knock" uses only 25622read request. While many I2C slave devices have multiple indexed 25623registers, some have only one register and it's not indexed. For 25624example, the I2C bus switch TCA9548A has only a Control Register, 25625attempting to index to "Reg[0]" alters its contents to 0x00 25626disabling all subordinate buses. This patch fixes that problem by 25627simply trying to read something/anything from the slave. This also 25628helps coax out slaves with register files that start from a higher 25629index, i.e. the AT24CS0x, FLASH chips with a UUID that appears as a 256302nd I2C slave at (address+8), report their serial number at 25631Reg[80]-Reg[8F] and will NAK a read of Reg[0]. (2) Modify get/set 25632to prevent write of reg index if not specified From David Alessio. 25633 25634* Network Utilities: apps/netutils: 25635 25636- apps/netutils/dhcpd: Fixes bug where hwaddr was being used instead 25637of ipaddr in the ARP update. This bug seems to have been introduced 25638three years ago during a rewrite to remove a direct OS call to arp. 25639I'm not sure how others have not run into issues with this. The 25640behavior I was observing was that the DHCPD would go to offer an IP 25641address, but then send a ARP request for the IP instead because it 25642didn't know where to send the data. From Anthony Merlino. 25643- apps/netutils/netinit/: Remove warnings. Unhook PHY notification 25644signal handler when cleaning up, if an error occurs after the signal 25645handler is put into place. From Nathan Hartman. 25646 25647* Wireless Utilities: apps/wireless: 25648 25649- apps/wireless/ieee802154/i8sak: Fixes conversion from extended 25650address to IPv6 address. From Anthony Merlino. 25651 25652NuttX-8.2 Release Notes 25653------------------------ 25654 25655The 133rd release of NuttX, Version 8.2, was made on November 16, 2019, 25656and is available for download from the Bitbucket.org website. Note 25657that release consists of two tarballs: nuttx-8.2.tar.gz and 25658apps-8.2.tar.gz. These are available from: 25659 25660https://bitbucket.org/nuttx/nuttx/downloads 25661https://bitbucket.org/nuttx/apps/downloads 25662 25663Both may be needed (see the top-level nuttx/README.txt file for build 25664information). 25665 25666Additional new features and extended functionality: 25667--------------------------------------------------- 25668 25669* Core OS: 25670 25671- Signals: Add support for SIGPIPE default action. SIGPIPE uses 25672SIG_SIGPIPE_ACTION which terminates process by default. It also 25673could be ignored. From liuhaitao. 25674- Spinlocks: Remove support for re-entrant spinlocks. They seemed 25675like a good idea, but they are never used. From Xiang Xiao. 25676- Memory Manager: Remove the assumption that one character equals 25677eight bits. From Xiang Xiao. 25678- Power Management: Historically, the NuttX PM subsystem has 25679consisted of two functional components: (1) an "Upper" part that 25680detects state changes based on a random walk driven by activity 25681levels, and (2) and "lower" part that implementst the state changes. 25682This change decouples that upper activity-based logic from the lower 25683random walk logic and allows use of other upper state detection 25684logic (such as a custom, application-specific state machine). From 25685Matias Nitsche. 25686- boardctl(): Expose power manager function through boardctl() 25687interface. From Xiang Xiao. 25688 25689* File System/Block and MTD Drivers: 25690 25691- GD25: Add support for a new FLASH vendor. From zhangbo_a. 25692- GD25: Add support for GD25 device with 256-Mbit capacity. From 25693YanLin Zhu. 25694- GD25: Add 4-byte address operation for capacity larger than 25695128-Mbit. From YanLin Zhu. 25696- GD25: Add gd25_lock/unlock to case: enable 4-bytes address From 25697ligd. 25698- GD5F: Add gigadevice SPI NAND FLASH driver. From YanLin Zhu. 25699 25700* Networking/Network Drivers: 25701 25702- Networking: Use ntoh() when printing IPv6 addresses so that the 25703addresses appear in friendlier host order vs. network order. From 25704Bernd Walter. 25705- Netlink: Implement minimal NETLINK_ROUTE socket functionality that 25706can (for now) be use used to obtain a list of network devices, IPv4 25707ARP and IPv6 Neighbor tables, and IPv4 and IPv6 routing tables. 25708From Gregory Nutt. 25709 25710* Wireless/Wireless Drivers: 25711 25712- BCM43438A1 Bluetooth: Add support for the BCM43438A1 Bluetooth 25713capability. From Dave Marples. 25714- HCIUART Shim: Add a serial 'shim' to allow any regular serial port 25715to support a Bluetooth H4 interface and to be used to drive a 25716Bluetooth device. From Dave Marples. 25717- BCM4343x HCIUART: BCM4343x HCIUART support. From Dave Marples. 25718- BCM43xxx: Move drivers/wireless/ieee80211/ to 25719drivers/wireless/ieee80211/bcm43xxx/ since the directory only 25720contains only BCM43362 and BCM43438 related code. From Xiang Xiao. 25721- GS2200M: Add reset handler to interface. Add reset and un-reset 25722sequence in driver. From Masayuki Ishikawa. 25723 25724* Audio/Audio Drivers: 25725 25726- Audio: Add message type to support audio trigger. From anchao. 25727 25728* Other Common Device Drivers: 25729 25730- Altair: Add support for the altair LTE modem driver. From Alin 25731Jerpelea. 25732- MCP2515: MCP2525 SPI STD-EXT ID fixes. From DisruptiveNL. 25733- OpenAMP: Brings in the drivers needed to support OpenAMP. These 25734changes were ported from https://github.com/FishsemiCode/nuttx. 25735This port was effort of a number of people, I rather arbitrarily 25736gave authorship to Guiding Li because he has the largest number of 25737fundamental quashed commits from the Xiamoi repository. From 25738Guiding Li. 25739 25740* Simulator: 25741 25742- Simulator: Add stack coloration feature. From ligd. 25743- Simulator: Report PM activity on simulated UART. From Matias 25744Nitsche. 25745- Simulator: Add host ftruncate() support. From chao.an. 25746- Simulator: Replace all CONFIG_DEV_CONSOLE with USE_DEVCONSOLE for 25747arch/sim and compile up_devconsole.c conditionally. From Xiang 25748Xiao. 25749- Simulator OpenAMP: Support OpenAMP between two simulator 25750instances. Please read rpserver/rpproxy section in 25751boards/sim/sim/sim/README.txt for more information. From chao.an. 25752 25753* ARMv7-M 25754 25755- ARMv7-M: Add BPIALL register address. From Dave Marples. 25756- ARMv7-M MPU: Add user peripheral helper 25757 25758* Atmel SAMD2/L2 Boards: 25759 25760- Arduino-M0: Add initial board support for the Arduino M0 which is 25761based on the SAMD21 chip. Include nsh and usbnsh configurations. 25762From Alan Carvalho de Assis. 25763 25764* NXP i.MXRT Drivers: 25765 25766- i.MXRT LCD: Add support for LCD. Clean up some LCD-related 25767interfaces. From Fabio Balzano. 25768- i.MXRT Serial: This change improves the performance of UART serial 25769ports on the IMXRT by enabling the RX & TX FIFOS and transmission on 25770the holding register being empty (TDRE) rather than transmission 25771being complete (TC). From Dave Marples. 25772- i.MXRT Pin Mux: This change separates out the pinmux and iomux 25773functions cleanly. For ease of conversion default IOMUX definitions 25774have been added into imxrt_iomux.h. The change effectively does two 25775things: (1) unifies the iomux definitions - previously some pins 25776had them, and some didn't. This effectively made it impossible to 25777use the pinmuxes without editing the header file in the standard 25778distribution tree. And (2) unifies the pin definitions so that every 25779pin now has a suffix. This makes it *much* easier to see when a pin 25780is in use in your code, because it will always have a definition in 25781your board.h file. From Dave Marples. 25782- IMXRT1020-EVK: Add support for the MIMXRT1021-EVK board. It 25783features nsh, netnsh and usdhc sample configurations. From Dave 25784Marples. 25785 25786* NXP i.MXRT Boards: 25787 25788- IMXRT1060-EVK: Add basic LCD support for the board IMXRT1060-EVK. 25789From Fabio Balzano. 25790- IMXRT1060-EVK: Added Littlevgl demo configuration into the 25791IMXRT1060-EVK board directory. From Fabio Balzano. 25792 25793* NXP/Freescale Kinetis Drivers: 25794 25795- Kinetis Ethernet: Add support for TJA1100 PHY. From David Sidrane. 25796 25797* NXP S31K1xx: 25798 25799- S32K1xx: Support configuration and initialization of the flash 25800configuration bytes. From Gregory 25801 25802* NXP S31K1xx Boards: 25803 25804- S32K1**EVB: Create a special FLASH section to hold the FLASH 25805configuration bytes. From Gregory Nutt. 25806- S32K146EVB: Added configuration script and instructions for using 25807Thread-Aware OpenOCD for the S32K146 with Eclipse. From Han 25808Raaijmakers. 25809 25810* Renesas RX65N: 25811 25812- RX65N: Adds a port of to the Renesas RX65N Micro-controller. This 25813port includes Serial (UART) driver (13 ports) and Ethernet 25814driver. From Anjana. 25815 25816* Renesas RX65N Boards: 25817 25818- RSK RX65N-2MB: Add support for the RSK RX65N-2MB board. From 25819Anjana. 25820- GR-Rose: Add support for the GR-Rose board. From Anjana. 25821 25822* Sony CXD56xx 25823 25824- CXD56xx CPU FIFO: Add configurations for CPU FIFO elements. From 25825Alin Jerpelea. 25826- CXD56xx Loader: Update loader and gnssfw ver. 17660. From Alin 25827Jerpelea. 25828- CXD56xx SMP: Add support for SMP. To run cxd56xx in SMP mode, new 25829boot loader which will be released later must be used. From 25830Masayuki Ishikawa. 25831- CXD56xx SMP: Add IRQ routing for SMP in cxd56_irq.c. In CXD56xx, 25832each external interrupt controller can be accessed from a local 25833APP_DSP (Cortex-M4F) only. This change supports IRQ routing for SMP 25834by calling up_send_irqreq() in both up_enable_irq() and 25835up_disable_irq(). From Masayuki Ishikawa. 25836 25837* Sony CXD56xx Drivers: 25838 25839- CXD56xx I2C: Add ability to set the i2c frequency to other than just 25840100 or 400 Hz. From Alin Jerpelea. 25841- CXD56xx SDHCI: Reduce power consumption by stopping SD clock. Re- 25842enable SD clock during access to SD card. Improve GNSS low 25843sensitivity with SD card inserted. From Alin Jerpelea. 25844 25845* Sony CXD56xx Spresense Board: 25846 25847- CXD56xx Board Common: Add the Altair LTE modem support on the 25848Spresense board. From Alin Jerpelea. 25849- CXD56xx Board Common: Add Spresense Image Processor. Enable support 25850for accelerated format converter, rotation and so on. using the CXD5602 25851image processing accelerator. 25852- Spresense: Add board specific pin configurations of CXD5602 pins to 25853fit Spresense board. From Takayoshi Koizumi. 25854- Spresense: Add a configuration option to select if an extension 25855board is attached to the SPresence. If there is no extension board 25856attached, the SPresense may run in a low-power mode by default (as 25857determined by the CONFIG_CXD56_CUSTOM_PINCONFIG option). If an 25858extension board is present, then the SPresense will need to run at a 25859higher power mode, selected by the new CONFIG_SPRESENSE_EXTENSION 25860option. From Gregory Nutt. 25861- Spresense Camera: Add ISX012 camera initialization and 25862configuration. From Alin Jerpelea. 25863- Spresense OS test: Enable ostest in rndis/defconfig and 25864wifi/defconfig. From Masayuki Ishikawa. 25865- Spresense: Add --gc-sections to LDFLAGS and add -ffunction-sections 25866and -fdata-sections to ARCHCFLAGS in scripts/Make.defs. From 25867Masayuki Ishikawa. 25868- Spresense SMP: Add smp configuration. From Masayuki Ishikawa. 25869- Spresense SCU: The SCU has to be initialized at bootup on Spresense 25870board because several functions depend on it. Add audio control 25871definitions. Add configuration for the audio implementation. From 25872Alin Jerpelea. 25873- Spresense: Add audio and board audio control implementation. From 25874Alin Jerpelea. 25875- Spresense: Sdd power_control and audio_tone_generator. Add a simple 25876way to control the audio buzzer with defined frequency for user-space 25877apps. From Alin Jerpelea. 25878- Spresense: Add the optional initialization of GNSS and GEOFENCE at 25879boot if the drivers are enabled From Alin Jerpelea. 25880- Spresense: Add LTE configuration. From Alin Jerpelea. 25881- Spresense: Enable high current mode for the Spresense Extension 25882board on all examples that have SDCARD support. From Alin Jerpelea. 25883- Spresense: Add lcd examples configuration. This is a configuration 25884for the basic nx examples From Alin Jerpelea. 25885 25886* STMicro STM32: 25887 25888- STM32F0/L0/G0: Add support for STM32G070xx family. From Daniel 25889Pereira Volpato. 25890- STM32F0/L0/G0 Power: Scale dynamic voltage and flash wait states 25891properly on STM32G0 chips. Included preliminary implementation of 25892PWR module VOS support. From Daniel Pereira Volpato. 25893- STM32L4R5ZI: Add support for the STM32L4R5ZI chip type. From Jussi 25894Kivilinna. 25895- STM32 L4+ DMA: Add DMA support for STM32L4+ series. From Jussi 25896Kivilinna. 25897- STM32 L4 Clocking: Enable "Range 1 boost" mode if any PLL freq 25898above 80 MHz. From Jussi Kivilinna. 25899- STM32 L4 LPTIM: Add support for LPTIM timers on the STM32L4 as PWM 25900outputs. From Matias N. 25901- STM32 H7 Progmem: Add FLASH progmem support. From David Sidrane. 25902 25903* STMicro STM32 Drivers: 25904 25905- STM32 Serial: Single Wire add pull{up|down|none} via new IOCTL 25906command. From David Sidrane. 25907- STM32 F0/L0/G0 Serial: Single Wire add pull{up|down|none} via 25908new IOCTL command. From David Sidrane. 25909- STM32 F0/L0/G0 PWM: Add PWM support. From Daniel Pereira Volpato. 25910- STM32 G0 TIM: Support timers available on STM32G070. Includes TIM1 25911PIOs, TIM driver lower-half. From Daniel Pereira Volpato. 25912- STM32 F7 Serial: Single Wire add pull{up|down|none} via new IOCTL 25913command. From David Sidrane. 25914- STM32 H7 BBSRAM: Exclude BBSRAM from cacheable when 25915CONFIG_ARMV7M_DCACHE. ST placed the STM32H7 BBSRAM in the SRAM 25916default memory region which is cacheable. This change sets the 25917BBSRAM memory range to non-cacheable. From David Sidrane. 25918- STM32 H7 SDMMC: Add SDMMC support and IDMA as well as interrupt 25919driven transmission. Support pull-ups and SDIO. From David Sidrane. 25920- STM32 H7 Serial: Single Wire add pull{up|down|none} via new IOCTL 25921command. From David Sidrane. 25922- STM32 L4 OTGFS: Enable OTGFS for STM32L4+ series. The OTGFS 25923peripheral on stm32l4x6 and stm32l4rxxx reference manual is exactly 25924the same. From Jussi Kivilinna. 25925- STM32L4 IDLE Loop: (1) Added BEGIN_IDLE()/END_IDLE() to stop call 25926so that we also get notification via LED of the STOP mode, (2) Added 25927the stm32l4_clockenable call as previously discussed, and (3) Added 25928call to pm_changestate() to inform drivers we're back to running 25929after the call to stm32l4_stop() returns. From Matias N. 25930- STM32 L4 Serial: Single Wire add pull{up|down|none} via new IOCTL 25931command. From David Sidrane. 25932 25933* STMicro STM32 Boards: 25934 25935- Nucleo-G070RB: Initial support for board STM32 NUCLEO-G070RB, 25936including NSH config. Enables PWR peripheral and set SYSCLK to 25937maximum frequency. From Daniel Pereira Volpato. 25938- Nucleo-G070RB: Enable basic timers. Add TIMx clock frequencies to 25939board.h. From Daniel Pereira Volpato. 25940- Nucleo-G070RB: Add PWM support and GPIO_TIM3_* mappings. Add a PWM 25941configuration. From Daniel Pereira Volpato. 25942- Nucleo-G070RB: Add button driver support, Add driver support. Add 25943GPIO configuration. From Daniel Pereira Volpato. 25944- Nucleo-L476RG: Add required definitions if libcxx is enabled. From 25945Matias N. 25946- Nucleo-L476RG: Add support for LPTIM timers as PWM outputs. From 25947Matias N. 25948- Nucleo-H743ZI: Added GPIO device driver for user-space apps. From 25949Heiko Demlang. 25950- olimex-stm32-e407: Newer Olimex E407 boards are populated with 25951STM32407ZE chips. From David Alessio. 25952- STM32F4-Discovery: Add support for external DS1307 module. From 25953Alan Carvalho de Assis. 25954- STM32F4-Discovery: Add support for MMCSD_SPI. This change works 25955with STM32F4 Discovery Shield plus microSD click From Masayuki 25956Ishikawa. 25957- STM32F4-Discovery: Add support for gs2200m. Works with mikroe 25958STM32F4 Discovery Shield (slot3) From Masayuki Ishikawa. 25959 25960* TI Tiva: 25961 25962- TM4C129ENCPDT: Add support for Tiva TM4C129ENCPDT. From Nathan 25963Hartman. 25964 25965* TI Tiva Boards: 25966 25967- TM4C123G-Launchpad: SPI CAN functionality on TM4C123GXL. From 25968DisruptiveNL. 25969 25970* Build System: 25971 25972- tools/Config.mk: Eliminate use of the built-in implicit rules. 25973From anchao. 25974- tools/Config.mk and Makefile.unix: Support the incremental build 25975for configuration change. From Xiang Xiao. 25976- tools/Config.mk: Support the ability to change the CFLAGS for 25977the compilation of a single file. Set special compiler options as 25978follows the rule: sourcefile + fixed suffix "_[A|C|CPP|CXX]FLAGS". 25979For example in apps/examples/hello/Makefile: 25980$(SRCDIR)/hello_main.c_CFLAGS = -DTEST. From Xiang Xiao. 25981- Configuration: Auto-select CONFIG_BUILD_LOADABLE when either 25982CONFIG_BUILD_KERNEL or CONFIG_BINFMT_LOADABLE is selected. From 25983Xiang Xiao. 25984 25985* Libraries/Header Files: 25986 25987- libs/libc: Add CONFIG_MODLIB_SYSTEM_SYMTAB to generate the symbol 25988table for dlopen/insmod. From Xiang Xiao. 25989- getdelim() and getline(): Add implementations of the POSIX 25990functions getdelim() and getline(). Because of how the function is 25991defined, getline() cannot be used on platforms that use CR-LF lin 25992terminations. From Gregory Nutt. 25993- alarm(), setitimer(), and getitimer(): Implement alarm(), 25994setitimer() and getitimer() APIs. From liuhaitao. 25995 25996* Tools: 25997 25998- tools/mkexport.sh: Copy the essential build script files too and 25999move Make.defs/gnu-elf.ld into scripts like board folder layout. 26000From Xiang Xiao. 26001- tools/mkexport.sh: Should export full content for FLAT build even 26002with CONFIG_BUILD_LOADABLE. From Xiang Xiao. 26003- tools/testbuild.sh: Add an option to select the number of CPUs to 26004use with 'make' From Gregory Nutt. 26005- tools/indent.sh: Add a command line option to suppress reformatting 26006of comments. This is useful when comments are already correct 26007and/or contain formatted data such as tables or lists. From Gregory 26008Nutt. 26009- tools/nxstyle.c: Add detection of carriage returns. Improve 26010reporting of TABs. From Gregory Nutt. 26011- tools/nxstyle.c: Add logic to detect if there is a blank line 26012following the final right brace. From Gregory Nutt. 26013- tools/nxstyle.c: Eliminate false alarm errors on comments that are 26014to the right of code when the comment terminator is on the same 26015line as the last of the comment. From Gregory Nutt. 26016- tools/nxstyle.c: Eliminate false alarms when checking for 26017alignment of comments to the right of code. Fix check for C++ style 26018comments so that strings like http:// and https:// do not generate 26019false alarms. From Gregory Nutt. 26020- tools/nxstyle.c: Eliminate false positive 'Invalid character after 26021asterisk in comment block'. From Gregory Nutt. 26022 26023* apps/ Build System: 26024 26025- apps/ Build System: Numerous changes for improvements and general 26026clean-up of the apps/ build system. Too many small and individual 26027changes to list here. Includes many improvements related to loadable 26028modules and symbol table generation, removal of duplicated logic, 26029renaming of binary directories, use of cygpath, etc. From Xiang Xiao. 26030- apps/Application.mk: Support the ability to change the CFLAGS for 26031the compilation of a single file. Set special compiler options as 26032follows the rule: sourcefile + fixed suffix "_[A|C|CPP|CXX]FLAGS" 26033As an example in apps/examples/hello/Makefile: 26034$(SRCDIR)/hello_main.c_CFLAGS = -DTEST 26035From Xiang Xiao. 26036- apps/Application.mk and main.c files: Change builtin's entry point 26037from main to xxx_main by macro expansion. This change make the 26038entry point fully compliant with POSIX/ANSI standard. From Xiang 26039Xiao. 26040 26041* Examples/Tests: apps/examples: 26042 26043- apps/examples/audio_rttl: Add a simple RTTL player demo that is 26044able to play tunes according to an RTTL song. From Alin Jerpelea. 26045- apps/examples/bmi160: Add bmi160 example app. This app will read 26046the BM160 data and list it on the NSH console. From Alin Jerpelea. 26047- apps/examples/charger: Simple charger example that will display on 26048the console voltage and current values. From Alin Jerpelea. 26049- apps/examples/netlink_route: Add test/example of NETLINK_ROUTE 26050'get' operations. From Gregory Nutt. 26051 26052* NuttShell: apps/nshlib: 26053 26054- apps/nshlib/: Add rptun cmd for boot remote core. From ligd. 26055- apps.nshlib/: Add a -t option to the arp command which will enable 26056printing the entire ARP table. From Gregory Nutt. 26057- apps/nshlib/: Add new NSH command, 'pmconfig'. From ligd. 26058 26059* System Utilities: apps/system: 26060 26061- apps/system/cle: Add basic color support to the CLE editor. 26062From Dave Marples. 26063- apps/system/i2c: While many I2C slave devices have multiple 26064indexed registers, some have only one register and it's not indexed. 26065For example, the I2C bus switch TCA9548A has only a Control 26066Register, attempting to index to "Reg[0]" alters its contents to 260670x00 disabling all subordinate buses. This change fixes that 26068problem by simply trying to read something/anything from the slave. 26069This also helps coax out slaves with register files that start from 26070a higher index, i.e. the AT24CS0x, FLASH chips with a UUID that 26071appears as a 2nd I2C slave at (address+8), report their serial 26072number at Reg[80]-Reg[8F] and will NAK a read of Reg[0]. Modified 26073get/set to prevent write of reg index if not specified. 26074- apps/system/i2c: Added a 'dump' command to issue a single 26075transaction to retrieve multiple bytes from an I2C slave and 26076register/offset. From David Alessio. 26077- apps/system/spi: Add options to specify devtype, id for chip 26078select. From David S. Alessio. 26079- apps/system/symtab: Remove system/symtab since the same 26080functionality exist in nuttx now. From Gregory Nutt. 26081- apps/system/usrsock_rpmsg: Add rpmsg based usrsock implementation. 26082From Jianli Dong. 26083 26084* Network Utilities: apps/netutils: 26085 26086- apps/netutils/cjson/: Update default version to 1.7.12. Previous 26087releases raise compilation warnings about redefined true/false. 26088From raiden00pl. 26089- apps/netutils/netlib/: Add a function to read the entire ARP table 26090using NETLINK_ROUTE protocol. From Gregory Nutt. 26091- apps/netutils/netlib/: Add support for retrieving a snapshot of the 26092IPv6 neighbor table using Netlink sockets. From Gregory Nutt. 26093- apps/netutils/netlib/: Add a utility function that will return a 26094list of all network devices in the UP state. From Gregory Nutt. 26095- apps/netutils/netlib/: Add function to retrieve routing tables 26096using Netlink. From Gregory Nutt. 26097 26098Bugfixes: 26099--------- 26100Only the most critical bugfixes are listed here (see the ChangeLog for a 26101more complete list of bugfixes and for additional, more detailed bugfix 26102information): 26103 26104* Core OS: 26105 26106- Signals: Fix undefined reference from sig_default.c to 26107sched_suspend() if CONFIG_SIG_SIGSTOP_ACTION is not defined. From 26108raiden00pl. 26109- waitpid(): Fix a NULL pointer dereference on race without 26110DEBUG_ASSERT. From David Alessio. 26111- WD Timers: Back out a kludge-workaround in wd_start for an SDCC 26112compiler problem fix back in Feb 2017. That workaround now appears 26113to conflict with newer GCC versions using (unsupported) warning 26114options and SDCC no longer needs the work-around. From Gregory 26115Nutt. 26116- clock_systimespec(): Fix early timespec overflow if using 32 bit 26117system timer. From Jens Gräf. 26118- Spinlocks: spin_trylock handle memory barrier and instrumentation 26119correctly. From Xiang Xiao. 26120- Power Management: Fix a problem where a timer cannot start when it 26121encounters a very small pmtick. From ligd. 26122- boardctl(BOARDIOC_MKRD): This change corrects a problem with NSH: 26123NSH was calling the OS internal function ramdisk_register() in 26124violation of the portable POSIX interface. This change solves the 26125problem by introducing a new boardctl() function BOARDIOC_MKRD 26126which moves the RAM disk creation into the OS. From Gregory Nutt. 26127- boardctl(BOARDIOC_ROMDISK): Add support for the new 26128BOARDIOC_ROMDISK command. This allows applications to create ROMFS 26129block drivers without illegal direct calls to romdisk_register. 26130 26131* File System/Block and MTD Drivers: 26132 26133- SmartFS: Fix O_CREAT without O_TRUNC truncating existing file. 26134Also nothing in POSIX says that O_APPEND should prevent O_TRUNC. 26135From Juha Niskanen. 26136- SmartFS: Honor O_APPEND on writes. Also document pwrite() bug/ 26137limitation. From Juha Niskanen. 26138- GD25: spi_devid argument was not used in initialization. GD25 26139driver was always using priv->spi_devid initialized to zero by 26140kmm_zalloc(). This change initializes it from the supplied function 26141argument. From Juha Niskanen. 26142- MMC/SD: Set wrbusy after success of all the operations. Any 26143failure could leave wrbusy set when it should not be if the 26144operation failed. From David Sidrane. 26145- MMC/SD: Enter a removed card state On a failure. If we fail to 26146read cardstatus in mmcsd_transferready consider this a hard error 26147and set the card to removed. From David Sidrane. 26148- MMC/SD (SDIO): Align DMA buffer for MBURST size. From David S. 26149Alessio. 26150 26151* Networking/Network Drivers: 26152 26153- Socket close(): Fixed problems noted by Bernd Walter: Eliminate an 26154incomplete test when a disconnection event happens. When a 26155disconnection event occurs, the close logic MUST always terminate 26156the wait. The conditional test was not incorrect, however, it 26157lacked 'else' logic and would simply ignore that disconnection event 26158in some cases. That is bad because there may not be another 26159disconnection event and that can lead to hangs (or at least very, 26160very long delays). From Gregory Nutt. 26161- ICMPv6: Dispatch ICMP_POLL to device's callback list too since 26162icmpv6_neighbor stills append the callback into this list. From 26163Gregory Nutt. 26164- ICMPv6: Decouple autoconfig and ICMPv6 socket to avoid an invalid 26165Kconfig combination. From Xiang Xiao. 26166- ICMPv6: cmpv6_autoconfig() error handling must not overwrite 26167overwrite the error code. From Xiang Xiao. 26168- TCP/UDP: Fix a chicken and egg problem by eliminating the check of 26169the arp/neighbor tables before packet transmission: 261701. For buffered TCP/UDP case, if CONFIG_NET_ARP_SEND / 26171CONFIG_NET_ARP_IPIN / CONFIG_NET_ICMPv6_NEIGHBOR isn't enabled 26172and the table doesn't contain the Ethernet address for the 26173destination IP address yet, then the logic will skip the real 26174transmission and then ARP/neighbor logic can't steal the final 26175buffer to generate the ARP/ICMPV6 packet. 261762. For all other case, the TCP layer or user program should already 26177contain the retransmit logic, the check is redundant and may 26178generate many duplicated packets if ARP/ICMPV6 response is too 26179slow because the cursor stop forward. If user is still concerned 26180about the very first packet lost, he could fix the issue by 26181enabling CONFIG_NET_ARP_SEND / CONFIG_NET_ICMPv6_NEIGHBOR. 26182From Xiang Xiao. 26183- UDP sendto(): Add a check for the device that is polling. In the 26184multiple network device case, this check is necessary to prevent 26185sending the UDP packet to the wrong device. From Gregory Nutt. 26186 26187* Wireless/Wireless Drivers: 26188 26189- MRF24J40: Correct erroneous isolation of address mode field and 26190subsequent bad comparison. From Gregory Nutt. 26191- GS2200M: Add SPI_SELECT() to _read/write_data() in gs2200m.c 26192- BCM43xx Wireless: In the SDIO interface, the behavior of the DMA 26193setup differs, depending on the hardware capability 26194SDIO_CAPS_DMABEFOREWRITE. If this capability is set, then the DMA 26195setup much be done before the transfer setup. Dave Marples 26196modified this file for the i.MXRT USDHC which does have the 26197SDIO_CAPS_DMABEFOREWRITE. Xiao Xiang reports that this change 26198breaks the Wifi on the Photon which does not report the 26199SDIO_CAPS_DMABEFOREWRITE and suggests reverting the change. In 26200reality both changes are correct but must be conditioned on the 26201DMA capability of the underlying SDIO device. From Gregory Nutt. 26202 26203* Common Drivers: 26204 26205- Various drivers (Cloned logic): On error, memory was freed, but 26206the error was not returned. It just continued as though no error 26207happened. From Petro Karashchenko. 26208- Serial: Fix data corruption when outputting data in SMP mode From 26209Masayuki Ishikawa. 26210- Serial: serial_io.c used signal numbers, but did not include 26211signal.h. This has no problems but missing signal definitions have 26212been seen in certain cases. From David Sidrane. 26213- Serial DMA: Avoid uart_xmitchars_done() move the tail bigger then 26214head. If ioctl(TCOFLUSH) occurs between uart_xmitchars_dma() and 26215uart_xmitchars_done(), TCOFLUSH will reset xmit buffer, then 26216uart_xmitchars_done() will move the 'tail' ahead of 'head', then 26217sends lots of wrong data. From ligd. 26218- mkfifo(): mkfifo() should return -1 and set errno on failure From 26219raiden00pl. 26220- RAMLog: Fix ramlog readers never awakened up when using ramlog as 26221syslog or console. We also make an attempt to avoid the thundering 26222herd problem if there are multiple readers/pollers. This change also 26223removes forcing CONFIG_RAMLOG_CRLF in nuttx/syslog/ramlog.h as there 26224is no point of wasting precious RAM for useless characters. From 26225Juha Niskanen. 26226- USB CDC/ACM: Fix memory leak of RX failsafe timer. From Juha 26227Niskanen. 26228- USB HID Keyboard device: Fix keyboard debounce algorithm used when 26229CONFIG_HIDKBD_NODEBOUNCE is undefined. From Jeff Theusch. 26230- USB HID Keyboard: Change default for CONFIG_HIDKBD_POLLUSEC per 26231recommendation of Jeff Theusch. From Gregory Nutt. 26232- VL53L1X IOCTLs: IOCTL commands for the VL53L1X did not follow the 26233sequence. Noted by Daniel Pereira de Carvalho. From Gregory Nutt. 26234- syslog: syslog_force does not set errno so do not test against it. 26235From Juha Niskanen. 26236- syslog: Fix assertion that assumes re-opened syslog file is the 26237same. Logic in syslog_file_channel() is calling syslog_initialize() 26238for the default syslog device as a recovery action after failed 26239syslog_dev_initialize(). From Juha Niskanen. 26240 26241* Simulator: 26242 26243- Simulator HostFS: Skip '.' and '..' in readdir' From Xiang Xiao. 26244- Simulator HostFS: Fix warning: 'mapflags' may be used uninitialized 26245in this function. From Xiang Xiao. 26246- Simulator Tickless: Correct the calculation of the Tickless timer 26247period. Fix some missing initialization of globals and missing 26248return values. From Matias N. 26249- Simulator: Add -m32 to HOSTLDFLAGS if enable CONFIG_SIM_M32. From 26250Xiang Xiao. 26251- Simulator PM: Fixes compilation for sim target when enabling power 26252management. From Matias N. 26253- Simulator Build: Fixes missing recursion into sim board directory 26254for dependency generation. From Matias N. 26255- Simulator SIMUART: Remove CONFIG_SIM_UART_DATAPOST for arch/sim. 26256It's very dangerous to call NuttX API from simuart_thread. From 26257Xiang Xiao. 26258 26259* ARMv7-A 26260 26261- ARMv7-A: Apply Masayuki Ishakawa's change for ARMv7-M to this SMP 26262architecture as well. From Gregory Nutt. 26263 26264* ARMv7-M 26265 26266- ARMv7-M: Fix a deadlock in up_sigdeliver() in SMP mode. In 26267previous implementation, up_disable_irq() was called before 26268recovering local context. However, I noticed a deadlock happens in 26269the following situation. For example, if up_sigdevliver() is in 26270progress on CPU0 and CPU1 has called up_cpu_paused to CPU0, hence 26271g_cpu_irqlock has been locked by CPU1, in this case, we would see a 26272deadlock in later call of enter_critical_section() to restore 26273irqcount. To avoid this situation, we need to call 26274enter_critical_section() to break the deadlock. From Masayuki 26275Ishikawa. 26276 26277* Atmel SAM3/4 Boards: 26278 26279- SAM4CM: Fix cpustart() implementation. In Cortex-M, offset 0 in 26280vector table stores initial stack pointer and offset 4 stores reset 26281vector. From Masayuki Ishikawa. 26282 26283* Atmel SAMA5Dx Boards: 26284 26285- SAMA5D4-EK: Fix bad conditional compilation for 26286board_app_initialize(). Should depend only on CONFIG_BOARDCTL, 26287CONFIG_BUILD_KERNEL is irrelevant. From Gregory Nutt. 26288 26289* Microchip i.MXRT: 26290 26291- i.MXRT WFI: WFI needs to be disabled on i.MXRT. We found the 26292reason: The imxrt1050 is configured to use SYSTICK for the kernel 26293timer, but SYSTICK cannot wake up the MCU from low-power modes. 26294Disable low-power modes on this MCU until we have support for an 26295alternative timer. Earlier versions of the board (EVK, not EVKB), 26296had A0 silicon which by default did not enter low-power mode on a 26297WFI. With this change in place together with the previous one my 26298system is stable, just using more power than it should. From Dave 26299Marples. 26300 26301* Microchip i.MXRT Drivers: 26302 26303- i.MXRT Serial: TC (Transmission complete) and TDRE (TX Buffer 26304Empty) were transposed in imxrt_serial.c. The end result was that 26305for unoptimized code everything worked fine, but optimized code got 26306itself into a real mess and continually fired interrupts. From Dave 26307Marples. 26308 26309* Microchip i.MXRT Boards: 26310 26311- IMXRT1020-EVK: Make naming of the LED consistent. In most places 26312it is referred to as LED1. In board.h it is referred to as 26313USERLED1. The i.MXRT1020-EVK hardware user guide (HUG) uses the 26314name USERLED. This command makes all names internally consistent 26315and consistent with the HUG. Noted by Alin Jerpelea. From Gregory 26316Nutt. 26317 26318* NXP/Freescale Kinetis Boards: 26319 26320- TWR-K60N512: Suppress errors related to card detect GPIO 26321configuration if SDHC support is not enabled. From Gregory Nutt. 26322 26323* NXP LPC17xx/40xx Drivers: 26324 26325- lpc17xx/40xx I2C: Respect the I2C_M_NOSTART flag. Sending a 26326restart condition when not requested will break other drivers that 26327depend on this behavior. From Augusto Fraga Giachero. 26328- LPC17xx/40xx Ethernet: Use usleep() instead of up_delay() for large 26329wait times. From Augusto Fraga Giachero. 26330 26331* NXP LPC54xx: 26332 26333- LPC54 Clocking: Fix PLL settings. For the lpc54628 Rev. E board 26334the PLL was not configured properly and the board would not boot 26335correctly. I checked the startup files from the official IDE and 26336inspected the assembly instructions for the libraries used. From 26337Andrei Stefanescu. 26338 26339* NXP i.MXRT Boards: 26340 26341- IMXRT1060-EVK: Fix FT5X06 CTRSTn pin configuration, increased 26342number of pollwaiters for the FT5X06, tuned resolution during 26343pointer dragging. From Fabio Balzano. 26344 26345* On Semiconductor Boards: 26346 26347- LC823450: Fix cpustart() implementation. In Cortex-M, offset 0 in 26348vector table stores initial stack pointer and offset 4 stores reset 26349vector. From Masayuki Ishikawa. 26350- LC823450-XGEVK: Fix build error for posix_spawn. From Masayuki 26351Ishikawa. 26352 26353* Sony CXD56xx: 26354 26355- CXD56xx Assertions: Replace some assertions with error return 26356values. From Alin Jerpelea. 26357- CXD56xx Interrupts: Fix hang-up when error interrupt occurs. From 26358Alin Jerpelea. 26359- CXD56xx Pin Configuration: PIN_AP_CLK is used as a port selector of 26360SDIO expander on the extension board, and is set output low in 26361initialization. Therefore, this pin cannot be used by the other 26362board. To avoid this restriction, remove this initial operation 26363because this pin is pulled down by default on the extension board. 26364From Alin Jerpelea. 26365- CXD56xx: Remove duplicate NVIC_SYSH redefinitions. The NVIC_SYSH 26366is already defined in nvicpri.h From Alin Jerpelea. 26367 26368* Sony CXD56xx Drivers: 26369 26370- CXD56xx SDHCI: Fix initial value of semaphore in sdhci driver. 26371From Alin Jerpelea. 26372 26373* Sony CXD56xx Boards: 26374 26375- Spresense: The SD Card TXS02612 port expander is hosted on the 26376Extension board and should not be enabled if the extension board is 26377not present. From Alin Jerpelea. 26378 26379* STMicro STM32: 26380 26381- STM32 F4 Pin Multiplex: Ethernet pin ETH_RMII_REF_CLK is an input. 26382From Gregory Nutt. 26383- STM32 H7 ADC: Fix typos in ADC register definitions. From Markus 26384Bernet. 26385- STM32 H7: Heap allocation, SRAM and SRAM1 are not continuous From 26386David Sidrane. 26387- STM32 H7 CRC: Add the CRC option in KConfig. From Eduard Niesner. 26388- STM32 H7 RCC: Add PLL3 Support and only enable PLLs if used. From 26389David Sidrane. 26390- STM32 L4x6xx RCC: This fix is needed if HSI clock is selected. 26391Otherwise when waking up from STOP mode, the MSI clock is selected 26392instead of the HSI clock. From Matias N. 26393 26394* STMicro STM32 Drivers: 26395 26396- STM32 USB Host: There was no relationship between 26397CONFIG_STM32_USBHOST and CONFIG_USBHOST, yet they they were used 26398interchangeably. This means that can (and did) get out of synch 26399causing link time failures. This change adds logic to select 26400CONFIG_USBHOST when CONFIG_STM32_USBHOST is selected, keeping the 26401two settings synchronized. Furthermore, since CONFIG_STM32_USBHOST 26402is the authoritative setting, all occurrences of CONFIG_USBHOST were 26403replaced with CONFIG_STM32_USBHOST. From Gregory Nutt. 26404- STM32 SDIO: SDIO Fix system hang on card eject. From David Sidrane. 26405- STM32 F7 Ethernet: Large Ethernet packet can leads network halt. 26406From Bazooka Joe. 26407- STM32F7 OTGHOST: OTGFS_EPTYPE_INTR should be OTG_EPTYPE_INTR. From 26408Gregory Nutt. 26409- STM32 F7 SDMMC: SDMMC Fix system hang on card eject. From David 26410Sidrane. 26411- STM32 L4 Firewall: Correct a test to determine if an address lies 26412in FLASH or not. Improper mask caused test to always fail. From 26413Gregory Nutt. 26414- STM32 H7 Ethernet: Bazooka Joe's fix to the STM32 F7 Ethernet 26415driver should be applied to the H7 as well. The other STM32 26416Ethernet drivers already have the change. From Gregory Nutt. 26417- STM32 H7 Ethernet: Fix ETH_MACMDIOAR_CR_MASK bit mask. From Markus 26418Bernet. 26419- STM32 H7 SDMMC: SDMMC Fix system hang on card eject. From Gregory 26420Nutt. 26421- STM32 H7 FLASH: Flash driver BUG fixes. From David Sidrane. 26422- STM32 H7 TIM: Correct register bit definitions and alternate 26423functions. Fix other copy-paste definitions. From Daniel Pereira 26424Volpato. 26425- STM32 L4 SDMMC: SDMMC Fix system hang on card eject. From David 26426Sidrane. 26427 26428* STMicro STM32 Boards: 26429 26430- STM32F4-Discovery: Fix build error for posix_spawn. From Masayuki 26431Ishikawa. 26432 26433* TI Tiva: 26434 26435- TIVA IRQs: Fix wrong IRQ vector number. From Nathan Hartman. 26436- Tiva FLASH: Fix several mistakes in tiva_write(). (1) Fix wrong 26437use of && when & was intended. (2) Add compile- time warning 26438directive because according to this function's interface, it is 26439supposed to support unaligned writes and/or writes of arbitrary 26440numbers of bytes to FLASH. However, this function does NOT support 26441that at this time. This needs to be fixed. (3) Fix wrong 26442preprocessor conditional. Was written to use the 32-word write 26443buffer only for TM4C1294NCPDT. This buffer is available on all 26444M4C123 and TM4C129 parts. Now conditioned upon 26445CONFIG_ARCH_CHIP_TM4C123 or CONFIG_ARCH_CHIP_TM4C129. (4) Add 26446comments to document the intent of the above preprocessor logic. 26447From Nathan Hartman. 26448 26449* Xtensa 26450 26451- Xtensa: Apply Masayuki Ishakawa's change for ARMv7-M to this SMP 26452architecture as well. From Gregory Nutt. 26453 26454* Build System: 26455 26456- Makefiles: Change ${shell pwd} to $(CURDIR) since pwd doesn't exist 26457on Windows From Xiang Xiao. 26458- tools/Makefile.unix: Fix build error when issue 'make -B': "mkdir: 26459cannot create directory 'staging': File exists: 26460tools/Makefile.unix:269: recipe for target 'staging' failed". From 26461Xiang Xiao. 26462- All ARM linker scripts: Preface all _ebss definitions with '. = 26463ALIGN(4)'. Otherwise, the following .bss section may not be aligned 26464properly. From Gregory Nutt. 26465- MIPS Linker Scripts: The PIC32M* start-up code initializes .bss by 26466writing 16 bytes at a time in a loop. The start (_sbss) alignment 26467is only required to be 4 bytes since the write is done with 4 store 26468instructions. From Gregory Nutt. 26469- Top-level Kconfig: Add some protection so that you cannot select an 26470architecture-specific header file if the architecture does not 26471provide the header file. From Gregory Nutt. 26472- libc Kconfig: Should select the NuttX float.h file automatically 26473if the NuttX math library is selected. From Gregory Nutt. 26474- tools/Makefile.unix: Make COMMON_DIR work with 26475CONFIG_ARCH_BOARD_CUSTOM. From Xiang Xiao. 26476- tools/ Make fragments: Fix the various minor issue for NUTTXLIBS / 26477USERLIBS: (1) Remove libcxx duplication in FlatLibs.mk and from 26478kernel space, (2) Remove libpass1 from KernelLibs.mk since kernel 26479build doesn't support the two pass mode, and (3) Remove FSDIR 26480related comment since file system cannot be disabled now From Xiang 26481Xiao. 26482 26483* C Library/Header Files: 26484 26485- getcwd(): Remove stray sched_unlock(). Also fixes several typos. 26486From Juha Niskanen. 26487- date(), hostname(): Fix portability issue with date, hostname From 26488David Alessio. 26489- libs/libxx/Kconfig: Automatically select CONFIG_CLOCK_MONOTONIC when 26490CONFIG_LIBCXX is selected. Removed hardcoded -DCLOCK_MONOTONIC from 26491CFLAGS in Make.defs of several configurations. That definition is 26492now automatically adding this define when CONFIG_LIBCXX=y. From 26493Daniel Pereira Volpato. 26494- libs/libxx/Kconfig: CONFIG_LIBC_LOCALE is needed to build libcxx. 26495A math library is also needed, however, there are various ways to 26496provide a math library so CONFIG_LIBM is not now set. From Matias 26497N. 26498- libs/libc/symtab: Move symbol table generation into libc since the 26499address in symbol table should come from userspace binary for 26500PROTECTED build, not kernel binary. From Xiang Xiao. 26501- libs/libc/ Kconfig files: Disable EXECFUNCS_HAVE_SYMTAB for kernel 26502build. The symbol table doesn't have any meaning for kernel build 26503since all executable binary should be self contained. From Xiang 26504Xiao. 26505 26506- include/sys/time.h: According to earlier standards, usage of 26507select(), FD_CLR, FD_ISSET, FD_SET and FD_ZERO just need include 26508headers: sys/time.h, sys/types.h and unistd.h. So include 26509sys/select.h in time.h to compatible with it. Or mbedtls library 26510would build break in calling select() and FD_* related functions. 26511From liuhaitao. 26512 26513* Tools: 26514 26515- tools/configure.sh and configure.c: Do not remove CONFIG_SIM_M32 if 26516host is specified. From anchao. 26517- tools/Directories.mk: Remove FSDIRS/NOFSDIRS related logic/comments 26518since the file system can no longer be disabled now. From Xiang 26519Xiao. 26520- tools/Makefile.host: Add missing binaries from clean target. From 26521Gregory Nutt. 26522- tools/mkromfsimg.sh: Use sed to add const to ROMFS declarations so 26523that they lie in FLASH not RAM. From Bernd Walter. 26524- tools/nxstyle.c: Correct detection of missing blank line following 26525a block comment. From Gregory Nutt. 26526 26527* apps/ Build System: 26528 26529- Makefiles: Change ${shell pwd} to $(CURDIR) since pwd doesn't exist 26530on Windows From Xiang Xiao. 26531- Makefile: Fix warning: jobserver unavailable: using -j1. Add '+' to 26532parent make rule. From Xiang Xiao. 26533- apps/Application.mk: Correct an error in PATH usage. Use of 26534toolchain path causes make errors. From Gregory Nutt. 26535 26536* apps/tools: 26537 26538- tools/mkromfsimg.sh: Use sed to add const to ROMFS declarations so 26539that they like in FLASH not RAM. From Bernd Walter. 26540 26541* Examples: apps/examples: 26542 26543- apps/examples/mount: Replace illegal call to ramdisk_register() 26544with a call to boardctl(BOARDIOC_MKRD). From Gregory Nutt. 26545- apps/examples/nxlines/: Correct nxlines example program name. From 26546Gregory Nutt. 26547- apps/examples/nxterm/: PROGNAME, PRIORITY, STACKSIZE variable 26548names did not match declarations in Kconfig file. From Gregory 26549Nutt. 26550- apps/examples/romfs: Remove romfs_testdir.h. That file is 26551regenerated whenever the example is built and so should not be in 26552the repository. From Gregory Nutt. 26553 26554* Testing: apps/testing: 26555 26556- apps/testing/cxxtest/: Fix typo error in testing/cxxtest. From 26557Xiang Xiao. 26558- apps/testing/unity/: Fix the error when creating Make.dep. From 26559raiden00pl. 26560 26561* NSH Library: apps/nshlib: 26562 26563- apps/nshlib: Remove the inappropriate NSH_BUILTIN_APPS coupling. 26564From Xiang Xiao. 26565- apps/nshlib/: The NSH mkrd command was in violation of the NuttX 26566portable POSIX interface. It was calling the internal OS function 26567ramdisk_register() directly. Not only is this a violation of the 26568interface specification, but also prevents use of mkrd in PROTECTED 26569or KERNEL builds. With this change, the NSH mkrd command now uses 26570the BOARDIOC_MKRD boardctl() command. This command is available in 26571all build modes. The effect of this change is to move the heart of 26572the NSH mkrd command into to OS and provide user-space access via 26573boardctl(). From Gregory Nutt. 26574- apps/nshlib/: Replace direct calls to romdisk_register() with 26575indirect calls via boardioctl(BOARDIOC_ROMDISK). This not only 26576fixes the violation of the portable POSIX OS interface, but also 26577permits use of ROM disks in PROTECTED and KERNEL modes. From 26578Gregory Nutt. 26579- apps/nshlib/: Add missing NSH_DISABLE_DMESG from Kconfig. From 26580Juha Niskanen. 26581 26582* System Utilities: apps/system: 26583 26584- apps/system/cle/: This change modifies the cle to use the streams 26585file interface more consistently and has removed the observed race 26586conditions. It was previously a mix of streams and fileio. It 26587also simplifies the VT100 cursor position handling. From Dave 26588Marples. 26589- apps/system/composite: Remove usb serial loopback test code we can 26590achieve the same effect by cat or dd command. From Xiang Xiao. 26591- apps/system/cu/: (1) Fix early exit. getc(stdin) can return 0 the 26592first time around. (2) Set optind to zero. getopt() was being 26593left in a bad state, causing parsing errors on second use. (3) Fix 26594priority of cu_listen(). (4) Add support for -h. From David 26595Alessio. 26596- apps/system/lzf/: Check the protection by CONFIG_SYSTEM_LZF != 26597CONFIG_m (not elf binary) instead of CONFIG_KERNEL_BUILD. From 26598Xiang Xiao. 26599- apps/system/spi: Correctly parse exch txdata args, if any. Should 26600always call the board's deselect From David Alessio. 26601 26602* File System Utilities: apps/fsutils: 26603 26604- apps/fsutils/passwd/: Use named semaphore by checking 26605CONFIG_FS_NAMED_SEMAPHORES instead of CONFIG_KERNEL_BUILD. From 26606Xiang Xiao. 26607 26608* Network Utilities: apps/netutils: 26609 26610- apps/netutils/cjson/Makefile: Fix the error when creating 26611Make.dep. From raiden00pl. 26612 26613* Graphics: apps/graphics: 26614 26615- apps/graphics/twm4nx/: Fix a recently introduced error that broke 26616all Twm4Nx configurations. From Gregory Nutt. 26617- apps/graphics/traveler/: Replace direct calls to romdisk_register() 26618with indirect calls via boardioctl(BOARDIOC_ROMDISK). This not only 26619fixes the violation of the portable POSIX OS interface, but also 26620permits use of ROM disks in PROTECTED and KERNEL modes. From 26621Gregory Nutt. 26622 26623NuttX-9.0.0 Release Notes 26624------------------------- 26625 26626This is the first release of NuttX as Apache NuttX (Incubating) and represents our first major milestone as a Podling of the Apache Software Foundation's Incubator. This release is the culmination of nearly 6 months of hard work and includes several new architectures and drivers, and numerous improvements and bug fixes to the core RTOS, drivers, and networking subsystems. 26627 26628* Major Changes to Core OS 26629* Bugfixes 26630- nxsem_wait_uninterruptible() now returns if the task is canceled. 26631- Fix a bug in pthread_condwait() that was improperly re-initializing the mutex. 26632- In sched_setpriority(), fix functions called inside a DEBUGASSERT that were eliminated when assertions are disable 26633 26634* Compatibility Concerns 26635 26636- The configuration option CONFIG_CAN_PASS_STRUCT is now removed. Previously, it was used (at the cost of breaking standards support) to support older versions of the SDCC compiler that couldn't pass structs/unions as functions' parameters. A newer version of the compiler has resolved the issue. 26637 26638* Major Changes to Build System 26639- Add a post-build function that allows extending the build with CPU/board-specific logic. 26640- Add build tools to simplify ZDS-II tool usage. 26641- mkexport.sh: Deal with ARCHSCRIPT containing multiple files. 26642- Various nxstyle improvements. 26643 26644* Architectural Support 26645* New architecture support 26646- Add support for RISCV-64 26647- Add support for x86_64 (tested on QEMU) 26648- Add support for ELF64 26649- Add a port to the NUCLEO-F429ZI board 26650- Add support for the STM32H747I-DISCO board 26651- Add Z20X board support and bootloader to upload code from the W25 flash to SRAM 26652- Add initial support for Litex with softcore CPU VexRiscV SoC 26653- Add support for the Digilent ARTY_A7 board to test the Litex port 26654- Added initial support for Sipeed Maix Bit board with Kendryte K210 processor 26655- New architectural support: ez80f92 26656- Flat address x86_64 port of NuttX 26657- Support to run NuttX on ESP32 QEMU 26658- Initial support for Sipeed Maix Bit board with Kendryte K210 processor 26659- Add initial support for Kendryte K210 processor in SMP mode 26660- NXP S32K11x (Cortex-M0+) and S32K14x (Cortext-M4F): Add support for NXP automotive boards. 26661- XMC 4700 (Cortex-M4F) 26662* Architectures with significant improvements 26663- ESP32 loadable modules support 26664- i.MX RT: FLEXIO clock config logic. 26665- Fix the clock configuration for the i.MX RT family 26666- i.MX RT: Add ability to run from OCRAM 26667- SAMA5D27 peripheral support - USB Host working 26668- z20x: Add W25 bootloader 26669- i.MX RT: Add USB Device support 26670- STM32, STM32F7, STM32H7 add SPI DMATHRESHOLD 26671- Improve the simulator timer 26672- 64-bit modules on macOS simulator 26673- z20x: Add XTP2046 SPI support; add timer support 26674- RX65N RTC Driver added 26675- NXP Freedom K28F Board SD-Card support 26676- STM32H7: support SDRAM via FMC peripheral 26677- LM3S6965-ek: Add PROTECTED build support 26678- STM32H7: Added IWDG and WWDG, power management (sleep/stop/standby), WKUP pin configuration 26679- SAMV71: Add read UID implementation and move flash functions to RAM 26680- i.MX RT: Fix interrupts storm (serial & I2C) 26681- Various fixes and cosmetic changes to the CxD56xx architecture 26682- Fix SiFive FE310 related code (comments, improve serial irq handling, initial int status) 26683- Implement QSPI for STM32H7 26684- Improvements for the nRF52 port: I2C, SPI, GPIO support 26685- Updates for LPC17xx/40xx serial 26686- Adds basic support for Microchip SAM E54 Xplained Pro board 26687- Adds an Ethernet driver for the SAME5x family (based on the SAMA5 GMAC driver) 26688- Add CDC ECM Ethernet over USB 2.0 High Speed (tested on SAMA5D36-Xplained board) 26689- Simulator: Reimplement simulator uart on top of serial driver framework 26690- NXP S32K1XX peripheral clock fixes 26691- Fix syscall stack alignment on armv7-m 26692- Fix flash_erase(page) when page >= 256 for STM32L4 family 26693- Add partial support for the NETLINK poll() operation. 26694- Add serial DMA support for STM32F7 26695- Add AM335x Clock Configuration 26696- Add I2C support for AM335x 26697- Add configuration to fine tune LPI2C Timeout for iMXRT 26698- Add CAN support to AM335x 26699- Add I2C support to STM32F0/L0/G0 26700- Kinetis LPC SDCard improvements 26701- Replace the busy polling with work_queue in the ethernet driver of simulator 26702- Fix Xtensa's SMP support to follow same logic from other SMP archs 26703- PIC32MZ: SPI transfers can be configured to use DMA. 26704- PIC32MZ: Implement cache operations. 26705* Driver Support 26706* New drivers 26707- New driver for the ADS7828 I2C analog to digital converter 26708- driver/ioexpander: New driver for PCA9538 I2C I/O expander 26709- New driver type for battery monitor ICs. 26710- Driver for the BQ769x0 battery monitor IC. 26711- Add Support for Quectel EC20 4G LTE Module USB CDC/ACM 26712- Add QSPI-based Winbond NOR FLASH driver 26713* Drivers with significant improvements 26714- Update all the drivers to check return value of nxsem_wait_uninterruptible(). 26715- MCP9844 shutdown mode support 26716- fcntl: add O_CLOEXEC flag, add O_CLOEXEC/FD_CLOEXEC support 26717- CDC-ECM Ethernet over USB 2.0 HS 26718- smartfs improvements: Handling of duplicate sectors, support fsck to check and repair the smartfs file system, and recover SPI Flash from initial error state. 26719- Various fixes for USBDEV driver: Remove unnecessary reset logic, fix descriptor type mismatch when dual speed is enabled, fix invalid/unsupported command processing, and fix string ID calculation. 26720- Handle size zero in umm_malloc.c and umm_realloc.c, which causes a system freeze in kernel mode. 26721- Fixed compilation issue with poll fds notification. 26722- Report POLLHUP and POLLERR in 'revents' regardless the requested 'events' set. 26723* Networking 26724- Telnet: Fix/Refine CTRL+C to work on telnet 26725- TCP: Fix of faulty TCP sequence increments 26726- netdb: Fix netdb to query IPv4 and IPv6 addresses regardless the server address type 26727- Netlink sockets may be set to non-blocking 26728- Improve TUN and SLIP, refine Control+C Handling in Telnet 26729- Sockets: Add socket MSG_DONTWAIT support 26730- Network Loopback Driver: Add a configuration option to control packet size 26731- Network IOCTLs: Add FIONBIO network IOCTL support 26732- NFS: Support IPv4 and TCP 26733- Sockets: Add IP and TCP socket options needed by iperf3 26734- Netlink: Add support for asynchronous Netlink responses 26735- TCP: Monitor TCP_POLL/TCP_NEWDATA/TCP_BACKLOG per the request like UDP counterpart 26736- TCP: Minor design improvement to TCP delayed ACKs 26737- DNS IPv4/IPv6 Dual Host Support: When IPv4/IPv6 Dual Stack is enabled, queries both types of addresses regardless of whether the DNS server is accessed via IPv4 or IPv6. As a result, getaddrinfo() may return a mixed (IPv4/IPv6) address list. 26738 26739* Applications 26740* Improvements 26741- Extend netutils and netinit to work with only Netlink sockets enabled 26742- Add getprime program to check multi-thread performance 26743- Improve zmodem send performance 26744- Add simple HTS221, LSM303 and LSM6DSL examples 26745- Improve to gs2200m wiki performance 26746- Improve telnet server and enable it to listen on both IPv4 and IPv6 26747- Improve ntpclient logic 26748- Improve wapi to save configuration to file system 26749- Improve wapi to skip associate if ssid is invalid 26750- Improve cmd_nfsmount to use IPv4 and IPv6 26751- Improve ostest for SMP and non-SMP configurations 26752- Improve UDP to avoid using standard symbols 26753- Improve dhcpd to include configurable timeout and retry count 26754* Bugfixes 26755- Correct format when printing ARP tablet entries 26756- Ensure /bin/ping and ping work at the same time 26757- Correct backward conditional logic in dhcpd_leaseexpired() 26758- Fix several problems on ftpd 26759- Fix dhcpd issue reported on Issue #17 26760- Fix sendmail example to run on a local SMTP server 26761- Fix buffer overflow on netlib 26762- Fix compile errors in loopback mode of the tcpblaster 26763- Fix stack corruption in ELF task test 26764- Fix errors in NoBlockRecv and BlockRecv tests of usrsocktest 26765- Fix ipforward IP Header issue for IPv4 26766- Fix wrongly swapped parity options of CU program 26767- Fix slcd to avoid using priv->fd before initializing it 26768- Fix (tcp, udp)blaster to build on macOS 26769- Correct the buffer type of base64 program 26770 26771NuttX-9.1.0 Release Notes ------------------------- 26772 26773* Major Changes to Core OS: 26774* New Features: 26775- PR-977 PR-987 PR-998 PR-995 PR-997 PR-1007 Thread Local Storage (TLS) 26776is now a required feature and used by all architectures 26777There is detailed information on the implementation and how this 26778impacts errno specifically in the Wiki article: Userspace errno and 26779TLS 26780- PR-957 PR-947 PR-963 PR-969 Provide nx_ versions of many functions 26781that are used internally to avoid disrupting errno in userspace 26782- PR-965 PR-980 PR-984 ioctl is now always in the variadic form. 26783Syscalls in KERNEL builds are also more efficient with this as well now. 26784Previously the ioctl prototype was normally defined as: 26785 26786int ioctl(int fd, int cmd, unsigned long arg); 26787 26788unless the CONFIG_LIBC_IOCTL_VARIADIC was enabled in which case it was 26789 26790int ioctl(int fd, int cmd, ...); This form is now the form defined by 26791opengroup and is also inline with Linux. Prior to this change there 26792were issues with making ioctl calls on 64-bit arch since the 26793implementation assumed that (void *) would be of size long. There is 26794more discussion of this issue in the GitHub issue ticket here: 26795 26796https://github.com/apache/nuttx/issues/959 26797 26798- PR-962 PR-964 Add new interface sched_get_stackinfo that simplifies 26799interfaces for things like TLS 26800There are some security imposed rules for using this interface 26801Any thread may query its own stack, A kernel thread may query the 26802stack of any other thread Application threads, however, may query 26803only the stacks of threads within the same task group, i.e., the 26804main thread and any of the child pthreads created with the main 26805thread as a parent or grandparent or great-grandparent. 26806 26807- PR-1104 Internal function fs_fsopen() no longer affects errno - 26808- PR-1123 Move task_init() and task_activate() to be internal functions - 26809- PR-1140 Add nxtask_uninit() interface 26810This function will undo all operations on a TCB performed by 26811task_init() and release the TCB by calling kmm_free(). This is 26812intended primarily to support error recovery operations after a 26813successful call to task_init() such was when a subsequent call to 26814task_activate fails. 26815- PR-1134 Add typedef for max_align_t 26816- PR-1141 Handle custom stack allocations 26817sched_releasetcb() will normally free the stack allocated for a task. 26818However, a task with a custom, user-managed stack may be created using 26819nxtask_init() followed by nxtask_activate(). If such a custom stack is 26820used then it must not be freed in this manner or a crash will most 26821likely result. 26822 26823This change adds a flag call TCB_FLAG_CUSTOM_STACK that may be passed 26824in the the pre-allocated TCB to nxtask_init(). This flag is not used 26825internally anywhere in the OS except that if set, it will prevent 26826sched_releasetcb() from attempting to free that custom stack. 26827 26828* Bug Fixes: 26829- Many private architecture interfaces were using 'up_' instead of the 26830arch name 'arm_' 26831This fix is carried over many PRs such as PR-924. Many files also 26832carried this same error in naming convention and were converted as 26833well. 26834 26835- PR-1018 PR-1017 PR-1021 PR-1022 PR-1057 PR-1060 PR-1194 Clean up 26836internal APIs that were not using the properly naming conventions - 26837- PR-857 Wrong value for it_interval field in timespec returned by 26838timer_gettime - PR-902 SMP: On task creation do not clone 26839uninitialized descriptors 26840In SMP mode, there is a possibility that a pthread executing one CPU 26841may create a new task while a pthread on another CPU has allocated 26842the socket but not yet initialized it. This commit updates the 26843socket clone test to assure that the socket is both allocated and 26844initialized before it is cloned. 26845- PR-911 Use OS signal functions internally to not reset errno that 26846applications are using 26847- PR-925 sys/stat.h Change the xtime fields to align with POSIX 26848standard. Starting from Issue 7 of the POSIX standard the fields 26849st_atime, st_mtime and st_ctime have a type of strcut timespec instead 26850of time_t. 26851- PR-939 openamp: Update to 2020.04.0 - PR-953 lib_vsprintf: Fix issue 26852where stack would become corrupt on x86_64 26853This function requires traversing the VA_LIST twice. For some 26854architectures like x86 and x86_64 this needs to be cloned first. 26855 26856* Major Changes to the Build System: 26857Parts of the build system have been refactored to reduce duplication and 26858simplify Makefile and Make.defs files across many directories. These changes 26859are particularly beneficial for boards. 26860 26861Please note that if you develop your own custom boards, you may need to make 26862some modifications to keep your board's build scripts up-to-date with the 26863rest of NuttX and avoid a broken or defective build. For details, see 26864Compatibility Concerns, Changes to Build System, in these release notes. 26865 26866* New Features: 26867- PR-894 openamp and libmetal can now be downloaded and configured by 26868build system - PR-941 Remove 'u' prefix from userspace library in FLAT 26869Build so it is the same for all build types - PR-1044 ARM: Remove 26870support for old redundant gcc toolchains 26871 26872This removes support for the Codesourcery, Atollic, DevKitArm, 26873Raisonance, and CodeRed toolchains. Not only are these tools old and 26874no longer used but they are all equivalent to the standard ARM EABI 26875toolchains. Retaining specific support was not meaningful (and they 26876are still supported, but now just as generic EABI toolchains). 26877- PR-1148 PR-1149 Improve build time especially on non-Linux platforms 26878by providing a C version of incdir.sh 26879 26880* Bug Fixes: 26881Many small changes to resolve dependency resolution issues that would 26882sometimes appear during parallel builds. Parallel builds should be much 26883more reliable now and bugs filed against any issues found. 26884 26885- PR-1000 Fix broken support of ZDS-II Toolchain with MSYS 26886 26887* Architectural Support: 26888* New Architecture Support: 26889- PR-879 ARMv8-M support - PR-1051 STM32G474 support 26890 26891- Initial architectural support for the STM32G474 family of 26892microcontrollers. In terms of peripherals, currently there is basic 26893support for the RCC and UART, allowing NuttX to boot to a functional 26894NSH prompt on this family. Other peripherals on the SoC are not yet 26895supported and/or not tested yet. Contributions to enable other 26896peripherals are welcome. This adds support for these variants: 26897 26898STM32G474C STM32G474M STM32G474R STM32G474Q STM32G474V 26899 26900* Architectures With Significant Improvements: 26901- PR-745 The full line of STM32H7 chips are now defined 26902This adds support for these variants: 26903 26904STM32H743AG STM32H743AI STM32H743BG STM32H743BI STM32H743IG 26905STM32H743II STM32H743VG STM32H743VI STM32H743XG STM32H743XI 26906STM32H743ZG STM32H753AI STM32H753BI STM32H753VI STM32H753XI 26907STM32H753ZI 26908 26909- PR-811 i486: Fix corruption of esp register on full context restore 26910This resolves a long standing issue with running the x86 port under 26911QEMU where it would crash shortly after boot. 26912 26913- PR-837 rx65n: Add crashdump support using standby RAM - PR-862 26914STM32L4: Expose LPTIM timers - PR-868 STM32L4: Extend clock options and 26915power regulation for based on clock settings 26916Interface to select the core regulator voltage according to clock 26917frequency range Usage of this interface during clock configuration 26918according to chosen clock frequency Option to choose a different 26919system clock than the main PLL (there is HSI, MSI, HSE and LSE 26920available to use) Option to not enable the main PLL which allows for 26921reduced power usage when setting one of the above options as system 26922clock, to do this you should define STM32L4_BOARD_NOPLL on your 26923board header. 26924- PR-960 STM32: Add support for ADC features EXTSEL and JEXTSEL 26925- PR-1041 STM32H7: Improve IDMA transfer and cache handling 26926This resolves an issue where the sdmmc driver crashes at boot when 26927using writeback cache. 26928 26929This also simplifies the sdmmc driver when the IDMA is in use. There 26930is no need to mix IDMA and interrupt based transfers; instead, when 26931making unaligned data tranfers, just make IDMA into an internal 26932aligned buffer and then copy the data. This method also enables 26933multiblock transfers, and transfers from/to data buffers which are not 26934aligned on cache boundary. 26935- PR-1042 STM32H7: Resolve multiple limitations and bugs with progmem 26936especailly for partial memory writes 26937- PR-1045 STM32H7: This gives possibility to send arbitrary number of 26938bytes from memory to peripheral using DMA also when using write-back 26939cache 26940It was not possible to DMA to/from AXI sram if 26941CONFIG_STM32H7_DMACAPABLE=y When doing TX DMA (e.g. in SPI driver in 26942simplex-tx mode), it should not be necessary to align the data 26943buffers to the cache line. 26944- PR-1103 STM32H7: Resolve clocking and pin configurations bugs that 26945could cause SDMMC and ETH to fail in some configurations 26946- PR-1104 STM32H7: Use UUID for Ethernet MAC. This is inline with the 26947behaviour of STM32F7 26948- PR-1110 STM32H7: Use FDCANSEL to determin FDCAN clock source if 26949possible - PR-1165 STM32H7: SPI transaction appears to be completed 26950before the data has actually been flushed 26951TX DMA completes before the data has been actually sent out from the 26952SPI fifo. This is expected, but the exchange should actually wait for 26953spi tx to finish instead of dma to the fifo to finish. This replaces 26954the dma completion event with the SPI TXC event for detecting end of 26955transmission. 26956 26957- PR-1203 PR-1204 STM32H7: Enable support for BDMA and enable it for 26958SPI6 26959- PR-905 x86_64: Resolve linking issue when building with gcc 7 and 9. 26960- PR-904 x86_64: Resolve compiler aliasing warnings and RNG 26961pointer cast bug - PR-944 x86_64: Change entrypoint to standard 26962location 1M 26963- PR-971 x86_64: Fix bug in rng implementation using intrinsics 26964- PR-973 x86_64: Fix crash on boot when XSAVE and SSE/AVX is enabled 26965- PR-974 x86_64: Add support booting NuttX as a Jailhouse Cell 26966- PR-919 sim: Add host mmap and perror to allow use of LIBC_MODLIB 26967and BINFMT_LOADABLE 26968- PR-1198 sim: Use correct errno sign with hostfs interface 26969- PR-932 z16: Updated toolchain to ZDS-II 5.2.2 26970- PR-970 K210: Add PLL support 26971- PR-988 K210: Resolve occasional lock in early boot caused by waiting 26972forserial driver to initialize 26973- PR-1205 K210: Add basic GPIOHS support - PR-1112 tiva: Add up_idle 26974support - PR-1116 NRF52832: Work around chip eratta for SPI Master 1 26975Byte transfer anomaly - PR-1130 imxrt: Resolve WFI issue by setting 26976the low power mode to remain in run mode 26977- PR-1197 cxd56: Fix locking issue in Spresense audio driver causes by 26978using semaphore in DMA buffer handling code 26979- PR-1221 Add INTx_C macro defintion 26980 26981* Driver Support: 26982* Bug Fixes: 26983- PR-1206 PR-1207 PR-1210 ioctl function should retun ENOTTY when the 26984command is not recognized. 26985 26986* New Driver Support: 26987- PR-795 PR-1001 Initial NuttX audio driver supporting the Spresense 26988CXD56 26989- PR-975 Support for HDC1008 temperature and humidity sensor 26990- PR-1201 Support for the CS4344 stereo audio DAC 26991- PR-1145 Support for the FTDI FT232R USB to Serial converter 26992- PR-1052 gs2200m: Add max payload size to prevent crashing when 26993sending large packets 26994- PR-1090 gs2200m: Fix possible packet queue count overflow seen during 26995streaming - PR-1127 gs2200m: Resolve possible buffer overrun in packet 26996parsing - PR-1167 pty: Return correct number of bytes when 26997CONFIG_SERIAL_TERMIOS and OPOST|ONLCR are enabled 26998 26999* Drivers With Significant Improvements: 27000- PR-887 PR-888 rptun: Add control for independent control of rx and tx 27001buffer size 27002- PR-917 gs2200m: Receive performance improvement for TCP/UDP 27003- PR-1032 gs2200m: Add SPI-DMA support to spresense 27004- PR-1046 gs2200m: Add getsockname() support 27005- PR-1094 PR-1163 gs2200m: Add flow control support to prevent memory 27006starvation in changing network environments 27007- PR-1101 gs2200m: Add WPA2-PSK AP mode support, this is now the default 27008instead of WEP 27009- PR-1115 SPI slave: Improve interface 27010Enable enqueue and receive full buffers of data with single call, to 27011avoid call overhead when sending / receiving large amounts of data. 27012Enable the slave device to leave received data in the controller 27013receive buffers and retrieve it from there by polling 27014- PR-1196 Audio: Add support for using ap_buffer_info without 27015CONFIG_AUDIO_DRIVER_SPECIFIC_BUFFERS and return ENOTTY if provided ioctl 27016is not supported 27017- PR-1222 audio/cxd56: Add audio buffering feature. 27018 27019* Board Support: 27020* Significant Improvements: 27021 27022- PR-1200 The boards_button_initialize and boards_userled_initialize 27023functions now return the number of buttons and leds, thus their 27024prototypes have changed from: 27025void board_button_initialize(void) 27026void board_userled_initialize(void) 27027 27028to 27029 27030uint32_t board_button_initialize(void) 27031uint32_t board_userled_initialize(void). 27032 27033* New Board Support: 27034- PR-1051 ST Micro B-G474E-DPOW1 Discovery Kit 27035Initial support for the ST Micro B-G474E-DPOW1 Discovery Kit with 27036STM32G474RE MCU. Currently there is basic support for booting NuttX to 27037a functional NSH prompt. Other peripherals on the board are not yet 27038supported or not tested yet. Contributions to enable other peripherals 27039are welcome. The NSH prompt can be accessed from a host computer via a 27040Virtual COM Port over the same Micro-USB Type B connection used for 27041programming/debugging. 27042- PR-1211 STM32F411-Minimum board (a.k.a. BlackPill) 27043Initial support for the BlackPill board which is a low cost STM32F411 27044board. The current support boots NuttX to a functional NSH prompt. 27045 27046* Boards With Significant Improvements: 27047- PR-949 qemu-intel64: Add nsh configuration for testing QEMU 27048virtualization 27049- PR-966 qemu-i486: Fix issue where console would not accept input 27050because of wrong IRQ number 27051- PR-993 stm32h747i-disco: Add support for FMC SDRAM - PR-1029 maix-bit: 27052Add knsh configuration for testing Kernel mode under QEMU virtualization 27053- PR-1056 stm32h747i-disco: Add support for FAT and SD Card via SDMMC 27054- PR-1070 PR-1086 spresense: Add ftpd/ftpc and nxplayer to wifi and rndis 27055configurations 27056- PR-1084 imxrt1060-evk: Add dns client and renew command to netnsh 27057configuration 27058- PR-1113 lm3s6965ek: Use proper sysclock for QEMU 27059configuration 27060- PR-1229 Add support for the inboard joystick 27061- PR-1232 Architectural re-organization to the initialization of the 27062video stream driver to comply with other NuttX drivers 27063 27064* File System: 27065* Bug Fixes: 27066- PR-918 tmpfs: Calling statfs could cause files to be removed 27067recursively - PR-1142 NFS: Use of uint64_t causes issues with gaps in 27068data since it must be on a 8 byte boundary 27069- PR-1143 Report correct stats for proxied block and MTD drivers 27070 27071* Significant Improvements: 27072- PR-793 Allow use of genromfs to geneate ROMFS 27073- PR-851 Upgrade littlefs to v2.2.1 27074- PR-1154 FATFS: Do not rewrite the root directory if it has not been 27075changed. 27076- PR-1120 PR-1118 Fill in file size for mtd and block inode 27077 27078* Networking: 27079- PR-807 Netlink: Broadcast link status changes to userspace via 27080RTNLGRP_LINK 27081- PR-892 Netdb: Multiple DNS Servers 27082Adds capability to add multiple nameservers on run-time even when not 27083using resolv.conf and reset the list of nameservers back to default 27084setting (no nameserver at all or single predefined nameserver in Kconfig). 27085This is useful for applications that change their cellular network 27086frequently. 27087- PR-1015 tcp/conn: Request ARP before 3-way handshake 27088 27089* Applications: 27090* Improvements: 27091- PR-185 PR-828 nshlib 27092Add the source command. Avoid use of sh where it is not needed since 27093it pollutes the parent environment including the working directory and 27094variables. 27095 27096- PR-236 littlevgl: Add additional config mappings to the library 27097- PR-264 nxplayer: Add max host and filename for http url 27098- PR-260 nshlib: Add wget buffer size control with 27099CONFIG_NSH_WGET_BUFF_SIZE 27100- PR-243 dhcpd: Add ability for daemon to be cancelled 27101- PR-238 Remove use the set_errno this is now properly handled by the 27102libc and OS 27103- PR-233 hdc1008: Add example application for this driver 27104 27105* Bug Fixes: 27106- PR-282 netlib: Fix pathlen computation for netlib_parseurl and 27107netlib_parsehttpurl 27108- PR-281 webclient: Check return value of netlib_parseurl correctly 27109- PR-278 webclient: Handle http/https redirection correctly 27110- PR-277 webclient: Limit the number of http redirects 27111- PR-198 webclient: Use getaddrinfo() to get IPv4 address on 27112dual stack systems 27113- PR-268 ftpd: Fix EPSV mode for IPv4 27114- PR-258 nsh: Always try FILE_APPS even if the command is builtin, 27115this is a regression introduced in 9.0.0 27116- PR-257 gs2200m: Handle packets over 1500 Bytes, previously would 27117overflow buffer 27118- PR-221 gs2200m: Server sockets were not properly being released by 27119the daemon when close was called 27120- PR-248 dhcpd: Correct option header check length 27121- PR-176 cu: Handle NULL character correctly 27122- PR-287 PR-290 examples: Update nxflat and thttpd Makefile's to fix 27123a build breakage. 27124 27125* Compatibility Concerns -- Changes to Build System: 27126 27127If you are building NuttX for a custom board, you may need to make 27128some of the following changes in build-related files for your board: 27129 27130* Rename EXTRADEFINES to EXTRAFLAGS 27131 27132In your custom board's scripts/Make.defs file, rename EXTRADEFINES to 27133EXTRAFLAGS. 27134 27135For example, these lines: 27136 27137``` 27138CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe 27139... 27140CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe 27141... 27142CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) 27143``` 27144 27145would change as follows: 27146 27147``` 27148CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe 27149... 27150CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe 27151... 27152CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) 27153``` 27154 27155See git commit # 459ad9937377a42785692098ff0d73baaa9551e6 in the main 27156NuttX repository. 27157 27158If you forget to do this, memory allocations on the heap probably won't 27159work and your user tasks won't start. 27160 27161To see why, tools/Config.mk assigns a value to KDEFINE such that the 27162preprocessor symbol __KERNEL__ will be defined when certain source 27163files are compiled. KDEFINE is passed to nested invocations of 'make' 27164as EXTRAFLAGS. If your board's scripts/Make.defs still attempts to use 27165EXTRADEFINES, the preprocessor symbol __KERNEL__ will not be defined in 27166some of the places that it should be. Suppose you're building a FLAT 27167build. In this case, include/nuttx/mm/mm.h will not define 27168MM_KERNEL_USRHEAP_INIT like it should, which will cause nx_start.c not 27169to call up_allocate_heap() at startup. Therefore, any attempt to 27170allocate memory on the heap will fail. 27171 27172* Rename src/Makefile to src/Make.defs and Modify 27173 27174This item pertains only to custom boards that are developed in- tree, 27175meaning under the NuttX boards/ subdirectory. Out-of-tree boards are 27176not affected. 27177 27178If your custom board directory is in-tree and in a board family that 27179uses a 'boards/ARCH/FAMILY/common' directory (such as 27180boards/arm/stm32/common, boards/arm/cxd56xx/common, etc), then you'll 27181need to make two minor changes to your custom board's src/Makefile: 27182 27183(1) Rename it from src/Makefile to src/Make.defs, and 27184 27185(2) Near the end of that file, replace this line, which usually 27186appears at the end: 27187 27188``` 27189include $(TOPDIR)/boards/Board.mk 27190``` 27191 27192with these three lines: 27193 27194``` 27195DEPPATH += --dep-path board 27196VPATH += :board 27197CFLAGS += $(shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board$(DELIM)board) 27198``` 27199 27200See git commit # 6ca46520df38854bf660f9be54957cceede39ded in the main 27201NuttX repository. 27202 27203If you forget to do this, 'make' will report an error, "no rule to make 27204libboard.a," and the build will fail. 27205 27206* Rename WINTOOL to CONFIG_CYGWIN_WINTOOL 27207 27208In your custom board's scripts/Make.defs file, rename any instances of 27209WINTOOL to CONFIG_CYGWIN_WINTOOL. 27210 27211For example, change this line: 27212 27213``` 27214ifeq ($(WINTOOL),y) 27215``` 27216 27217to this: 27218 27219``` 27220ifeq ($(CONFIG_CYGWIN_WINTOOL),y) 27221``` 27222 27223See git commit # bd656888f26c92e8832f0e76b395a5ece7704530 in the main 27224NuttX repository. 27225 27226* Remove INCDIROPT 27227 27228In your custom board's src/Make.defs file, remove INCDIROPT from CFLAGS. 27229 27230For example, change this line: 27231 27232``` 27233CFLAGS += $(shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board$(DELIM)board) 27234``` 27235 27236to this: 27237 27238``` 27239CFLAGS += $(shell $(INCDIR) "$(CC)" $(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board$(DELIM)board) 27240``` 27241 27242This option, which resolves to -w when CONFIG_CYGWIN_WINTOOL is 27243configured, is now appended to INCDIR in tools/Config.mk. 27244 27245See git commit # 5eae32577e5d5226e5d3027c169eeb369f83f77d in the main 27246NuttX repository. 27247 27248* Remove Unnecessary Variables 27249 27250In your custom board's scripts/Make.defs file, It is no longer 27251necessary to define the following variables unless your build requires 27252that you assign special values to them: 27253 27254- DIRLINK 27255- DIRUNLINK 27256- MKDEP 27257- ASMEXT 27258- OBJEXT 27259- LIBEXT 27260- EXEEXT 27261 27262These variables have been refactored into tools/Config.mk. 27263 27264See these git commits in the main NuttX repository: 272659ec9431706fd0eb7c4c4410d84dafff68ff31366 (DIRLINK and DIRUNLINK), 272668b42ee421a41214093c0238e479d73a1099b0e82 (MKDEP), and 27267567962bd6263bf8809fb63c739f6ec668c69c416 (ASMEXT, OBJEXT, LIBEXT, EXEEXT) 27268 27269* Change ${TOPDIR} to $(TOPDIR) 27270 27271In your custom board's scripts/Make.defs file, it is recommended to 27272change ${TOPDIR} to $(TOPDIR) for consistency (change curly braces to 27273parenthesis). 27274 27275See git commit # faf3c0254bb63af89f9eb59beefacb4cba26dd9 in the main 27276NuttX repository. 27277 27278* Remove Workaround For Missing $(TOPDIR)/Make.defs 27279 27280In src/Make.defs or src/Makefile for your custom board or custom apps, 27281the workaround for missing $(TOPDIR)/.config and/or 27282$(TOPDIR)/Make.defs is no longer needed. To remove the workaround, 27283delete the minus sign in front of include .config. This is now handled 27284in the main Makefile and, if those files are missing, will print an 27285error message with hint to run tools/configure.sh <target>. 27286 27287Change this line, located near the top of the file: 27288 27289``` 27290-include $(TOPDIR)/Make.defs 27291``` 27292 27293to this: 27294 27295``` 27296include $(TOPDIR)/Make.defs 27297``` 27298 27299See git commit # 1a95cce1a3c3ed8b04d1d86b7bd744352cca45a2 in the main 27300NuttX repository, and git commit 27301# ead498a7883a654b1d542da94a5fab3ce163361e in the apps repository. 27302 27303* Simplify ARCHINCLUDES and ARCHXXINCLUDES 27304 27305In your custom board's scripts/Make.defs, ARCHINCLUDES and 27306ARCHXXINCLUDES can be defined without maintaining two different 27307versions conditioned upon CONFIG_CYGWIN_WINTOOL (renamed from WINTOOL). 27308Replace syntax similar to the following: 27309 27310``` 27311ifeq ($(CONFIG_CYGWIN_WINTOOL),y) 27312# Windows-native toolchains 27313ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)$(DELIM)include}" 27314ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)$(DELIM)include}" -isystem "${shell cygpath -w $(TOPDIR)$(DELIM)include$(DELIM)cxx}" 27315else 27316# Linux/Cygwin-native toolchain 27317ARCHINCLUDES = -I. -isystem $(TOPDIR)$(DELIM)include 27318ARCHXXINCLUDES = -I. -isystem $(TOPDIR)$(DELIM)include -isystem $(TOPDIR)$(DELIM)include$(DELIM)cxx 27319endif 27320``` 27321 27322with syntax similar to: 27323 27324``` 27325ARCHINCLUDES += ${shell $(INCDIR) -s "$(CC)" $(TOPDIR)$(DELIM)include} 27326ARCHXXINCLUDES += ${shell $(INCDIR) -s "$(CC)" $(TOPDIR)$(DELIM)include} 27327ARCHXXINCLUDES += ${shell $(INCDIR) -s "$(CC)" $(TOPDIR)$(DELIM)include$(DELIM)cxx} 27328INCDIR is defined in tools/Config.mk and resolves to a shell script or batch file that constructs the appropriate command line argument string to specify include directories for your compiler. 27329``` 27330 27331See git commit # 7e5b0f81e93c7e879ce8434d57e8bf4e2319c1c0 in the main 27332NuttX repository. 27333 27334* Simplify Board Directory Handling With BOARD_DIR 27335 27336In your custom board's Make.defs or Makefile, when setting up build 27337variables containing paths inside your board directory, a new variable 27338BOARD_DIR has been introduced that simplifies the syntax: 27339 27340Replace syntax like this: 27341 27342``` 27343$(TOPDIR)$(DELIM)boards$(DELIM)$(CONFIG_ARCH)$(DELIM)$(CONFIG_ARCH_CHIP)$(DELIM)$(CONFIG_ARCH_BOARD) 27344``` 27345 27346with this variable: 27347 27348``` 27349$(BOARD_DIR) 27350``` 27351 27352For example, change this: 27353 27354``` 27355ARCHSCRIPT = -T$(TOPDIR)$(DELIM)boards$(DELIM)$(CONFIG_ARCH)$(DELIM)$(CONFIG_ARCH_CHIP)$(DELIM)$(CONFIG_ARCH_BOARD)$(DELIM)scripts$(DELIM)$(LDSCRIPT) 27356``` 27357 27358to this much simpler syntax: 27359 27360``` 27361ARCHSCRIPT = -T$(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT) 27362``` 27363 27364You may find the old syntax being used for variables like ARCHSCRIPT, 27365LDELFFLAGS, LINKCMDTEMPLATE, SCRIPTDIR, USER_LDSCRIPT, or others. 27366 27367BOARD_DIR is defined in tools/Config.mk. 27368 27369See git commit # e83c1400b65c65cbdf59c5abcf2ae368f540faef in the main 27370NuttX repository. 27371 27372NuttX-10.0.0 Release Notes 27373------------------------ 27374 27375## Major Changes to Core OS 27376 27377### New Features 27378 27379Major changes to the internal, OS timer (wdog) interfaces. The change includes: 27380 27381* The wdog timer call backs used to support a variable number of arguments. 27382Now they support only a single argument ([PR 27383#1565](https://github.com/apache/nuttx/pull/1565)). This eliminates 27384(1) the configuration option `CONFIG_MAX_WDOGPARMS` and the OS interfaces 27385`wd_create()` and `wd_delete()` * wdog timer data structures are no longer 27386pre-allocated. Now they are allocated by the caller of `wd_start()`. This (1) 27387eliminates the configuration options `CONFIG_PREALLOC_WDOGS` and 27388`CONFIG_WDOG_INTRESERVE`, (2) eliminates the type `WDOG_ID` which was a pointer 27389type to `struct wdog_s`, and (3) change the type of the first argument of all 27390remaining wdog interfaces functions from `WDOG_ID` to `FAR struct wdog_s *`. 27391 27392Because of these changes, all proprietary drivers maintained by all NuttX users 27393will require modification. The following summaries the required modifications: 27394 27395* Most drivers have a field in structure like `WDOG_ID wdog`; That must be 27396changed to `struct wdog_s wdog`; That changes the field from a pointer to a 27397`struct wdog_s` to the `struct wdog_s` storage itself. * Eliminate all calls 27398to `wd_create()`. The `WDOG_ID` is not longer managed by the timing subsystem 27399and the `wd_create()` interface has been removed. * The `wd_delete()` 27400interface has also been removed, but more care will need to be exercised: 27401`wd_delete()` also cancels any running timer so, in many case, calls to 27402`wd_delete()` should be replaced with calls to `wd_cancel()`. If you are certain 27403that the timer has never been started, then you must remove the call to 27404`wd_delete()` altogether. Calling `wd_cancel()` with an un-initialized s`truct 27405wdog_s` instance may well cause a fatal crash. * Replace the first parameter 27406of all remaining wdog function calls from. For example, replace a call like `ret 27407= wd_cancel(priv->wdog)` where `priv->wdog` was type `WDOG_ID` with the call 27408`ret = wd_cancel(&priv->wdog)`where `priv->wdog` is now type `struct wdog_s`. 27409 27410* [PR-1877](https://github.com/apache/nuttx/pull/1877) libc: 27411Implement "j" modifier for scanf 27412 27413* [PR-1864](https://github.com/apache/nuttx/pull/1864) libc: fs: Add 27414relative path support 27415 27416* [PR-1863](https://github.com/apache/nuttx/pull/1863) libc: 27417Implement `access()` 27418 27419* [PR-1866](https://github.com/apache/nuttx/pull/1866) libc: uio: 27420enable `writev()` for sockets 27421 27422* [PR-1853](https://github.com/apache/nuttx/pull/1853) libc: 27423Implement `popcount/popcountl/popcountll` 27424 27425* [PR-1850](https://github.com/apache/nuttx/pull/1850) Add tool for 27426parsing the callstack for Trace32 27427 27428* [PR-1840](https://github.com/apache/nuttx/pull/1840) Add POLLPRI 27429for exception condition on the file descriptor 27430 27431* [PR-1828](https://github.com/apache/nuttx/pull/1828) Implement 27432mkdtemp syscall 27433 27434* [PR-1826](https://github.com/apache/nuttx/pull/1826) libc: Add 27435"tm\_zone" member to tm 27436 27437* [PR-1824](https://github.com/apache/nuttx/pull/1824) Implement 27438etpriority syscall 27439 27440* [PR-1821](https://github.com/apache/nuttx/pull/1821) Implement 27441gettid syscall 27442 27443* [PR-1818](https://github.com/apache/nuttx/pull/1818) Implement 27444pipe2 syscall 27445 27446* [PR-1779](https://github.com/apache/nuttx/pull/1779) libc: Minimal 27447umask implementation 27448 27449* [PR-1758](https://github.com/apache/nuttx/pull/1758) mm: Add lock 27450to protect call to mm\_addregion 27451 27452* [PR-1756](https://github.com/apache/nuttx/pull/1756) libc: 27453Implement gethrtime, getrlimit, setrlimit 27454 27455* [PR-1658](https://github.com/apache/nuttx/pull/1658) libc: Add 27456stubs for utimes 27457 27458* [PR-1615](https://github.com/apache/nuttx/pull/1615) libc: 27459Implement tm::tm\_gmtoff field 27460 27461* [PR-1611](https://github.com/apache/nuttx/pull/1611) libc: Allocate 27462file\_struct dynamically 27463 27464* [PR-1684](https://github.com/apache/nuttx/pull/1684) Add gdb script 27465for NuttX thread debugging 27466 27467* [PR-1607](https://github.com/apache/nuttx/pull/1607) mm: Implement 27468malloc\_usable\_size 27469 27470* [PR-1606](https://github.com/apache/nuttx/pull/1606) sched/pthread: 27471Implement pthread\_attr\_detachstate 27472 27473* [PR-1600](https://github.com/apache/nuttx/pull/1600) Implement 27474epol\_pwait and EPOLLONESHOT flag 27475 27476* [PR-1597](https://github.com/apache/nuttx/pull/1597) sched: Support 27477passing non empty argument to init task 27478 27479* [PR-1596](https://github.com/apache/nuttx/pull/1596) libc: Replace 27480all sem\_xxx with \_SEM\_XXX. This insures the correct semaphore interface is 27481used by userspace and the kernel. 27482 27483* [PR-1517](https://github.com/apache/nuttx/pull/1517) sched/wdog: 27484Change the default value of MAX\_WDOGPARMS from 4 to 2 as wd\_start is two every 27485where in the code base. Also bump CONFIG\_MAX\_WDOGPARAMS from 1 to 2 in 27486defconfigs to support pthread\_condclockwait() 27487 27488* [PR-1486](https://github.com/apache/nuttx/pull/1486) libc: 27489Implement ftw and nftw functions 27490 27491* [PR-1567](https://github.com/apache/nuttx/pull/1567) libc: 27492Implement proposed POSIX \_clockwait variants of \_timedwait functions 27493 27494* [PR-1411](https://github.com/apache/nuttx/pull/1411) libxx: 27495Integrate latest uclibcxx 0.2.5 27496 27497* [PR-1586](https://github.com/apache/nuttx/pull/1586) libc: Add open 27498for text (translated) access support 27499 27500* [PR-1584](https://github.com/apache/nuttx/pull/1584) libc: 27501Implement strlcpy function 27502 27503* [PR-1580](https://github.com/apache/nuttx/pull/1580) libc: 27504Implement pthread\_conattr\_etclock 27505 27506* [PR-1545](https://github.com/apache/nuttx/pull/1545) sched/wdog: Do 27507not dynamically allocate wdog\_s. Reduces overhead and brings it inline with 27508work\_s 27509 27510* [PR-1534](https://github.com/apache/nuttx/pull/1534) sched/wdog: 27511Replace all callback arguments from uint32\_t to wdparm\_t 27512 27513* [PR-1420](https://github.com/apache/nuttx/pull/1420) libc: Do not 27514define localtime\[\_r\] to macro with CONFIG\_LIBC\_LOCALTIME is not defined. 27515 27516* [PR-1375](https://github.com/apache/nuttx/pull/1375) libc: Always 27517declare getenv, link/symlink and atexist/on\_exit. Many C++ libraries reference 27518these but dont use them 27519 27520* [PR-1371](https://github.com/apache/nuttx/pull/1371) libc: Improve 27521stat/readdir to be more POSIX compliant with S\_xxx macro definition as with 27522Linux 27523 27524* [PR-1369](https://github.com/apache/nuttx/pull/1369) Initialize the 27525idle stack at the arch layer to better support stack coloring and also make it 27526compatible with new TLS implementation 27527 27528* [PR-1292](https://github.com/apache/nuttx/pull/1292) pthread/mutex: 27529Add PTHREAD\_RECURSIVE\_MUTEX\_INITIALIZER\_NP support 27530 27531* [PR-1280](https://github.com/apache/nuttx/pull/1280) libc: 27532Implement fseeko and ftello 27533 27534* [PR-1279](https://github.com/apache/nuttx/pull/1279) libc: 27535Implement lstat and realpath 27536 27537* [PR-1278](https://github.com/apache/nuttx/pull/1278) libc: 27538Implement pathconf and fpathconf 27539 27540* [PR-1269](https://github.com/apache/nuttx/pull/1269) cstdlib: Add 27541missing atox to std namespace 27542 27543* [PR-1264](https://github.com/apache/nuttx/pull/1264) sched/pthread: 27544Prohibit the use of pthread\_cleanup API's by kernel threads 27545 27546* [PR-1440](https://github.com/apache/nuttx/pull/1440) libc: Add the 27547UUID libc functions 27548 27549* [PR-1308](https://github.com/apache/nuttx/pull/1308) libc: Add 27550support for \_SC\_NPROCESSORS\_CONF/\_SC\_NPROCESSORS\_ONLN to sysconf 27551 27552* [PR-1305](https://github.com/apache/nuttx/pull/1305) libc: 27553Implement WNOHANG for waitpid and waitid 27554 27555* [PR-1237](https://github.com/apache/nuttx/pull/1237) libc: Add 27556minimal support for locale\_t operation: suplocale, freelocale, newlocale, 27557userlocale 27558 27559* [PR-1317](https://github.com/apache/nuttx/pull/1317) sched/task: 27560Unify task initialization 27561 27562* [PR-1187](https://github.com/apache/nuttx/pull/1187) sched: Unify 27563main thread and pthread behavior 27564 27565* [PR-2263](https://github.com/apache/nuttx/pull/2263) libc/stdio: 27566Preallocate stdin, stdout, stderr 27567 27568* [PR-2053](https://github.com/apache/nuttx/pull/2053) * 27569[PR-2040](https://github.com/apache/nuttx/pull/2040) serial/termios: 27570Support custom baudrate setting 27571 27572### Bug Fixes 27573 27574* [PR-1911](https://github.com/apache/nuttx/pull/1911) init\_section 27575was not being emitted resulting in C++ static constructors not being called. 27576 27577* [PR-1889](https://github.com/apache/nuttx/pull/1889) Fix build 27578error for ::setbuf if CONFIG\_STDIO\_DISABLE\_BUFFERING is set 27579 27580* [PR-1619](https://github.com/apache/nuttx/pull/1619) Fix inverted 27581errno in mq\_open 27582 27583* [PR-1595](https://github.com/apache/nuttx/pull/1595) epoll\_wait() 27584must loop until "maxevents" to fille output evs array 27585 27586* [PR-1519](https://github.com/apache/nuttx/pull/1519) libc: Replace 27587index/rindex from macro to function to protect against side effects with 27588conflicting local variables 27589 27590* [PR-1514](https://github.com/apache/nuttx/pull/1514) Remove usage 27591for user-space memalign() from kernel/driver code. Instead use the proper 27592kernel memory interface. 27593 27594* [PR-1512](https://github.com/apache/nuttx/pull/1512) / * 27595[PR-1510](https://github.com/apache/nuttx/pull/1510) / * 27596[PR-1507](https://github.com/apache/nuttx/pull/1507) Remove usage for 27597user-space malloc()/zalloc()/free() from kernel/driver code. Instead use the 27598proper kernel memory interface. 27599 27600* [PR-1496](https://github.com/apache/nuttx/pull/1496) libc: Change 27601ctype macro to normal function to resolve macro evaluation side effects 27602 27603* [PR-1463](https://github.com/apache/nuttx/pull/146) libc: Replace 27604all malloc/free with lib\_malloc/lib\_free inside libc 27605 27606* [PR-1365](https://github.com/apache/nuttx/pull/1365) up\_assert 27607should not call exit() directly because it is only callable from userspace 27608 27609* [PR-1336](https://github.com/apache/nuttx/pull/1336) syscall: Fix 27610prctl PR\_SET\_NAME failure if called without pid argument 27611 27612* [PR-1289](https://github.com/apache/nuttx/pull/1289) Clear the 27613error indicator with rewind() 27614 27615* [PR-1254](https://github.com/apache/nuttx/pull/1254) libc: mkstemp 27616only look at the trailing X's instead of the first X 27617 27618* [PR-1311](https://github.com/apache/nuttx/pull/1311) libc: Move 27619double\_t typedef from sys/types.h to math.h 27620 27621* [PR-1328](https://github.com/apache/nuttx/pull/1328) Make sure that 27622pthread\_cleanup functions are only called from userspace 27623 27624* [PR-1318](https://github.com/apache/nuttx/pull/1318) 27625nxsched\_release\_tcb should release stack in kernel build, fixes memory leak 27626 27627* [PR-2951](https://github.com/apache/nuttx/pull/2951) sched: Fix 27628deadlock in nxtask\_exit() for SMP 27629 27630* [PR-2229](https://github.com/apache/nuttx/pulls/2229) * 27631[PR-2298](https://github.com/apache/nuttx/pulls/2298) * 27632[PR-2279](https://github.com/apache/nuttx/pulls/2279) * 27633[PR-2272](https://github.com/apache/nuttx/pulls/2272) * 27634[PR-2264](https://github.com/apache/nuttx/pulls/2264) * 27635[PR-1992](https://github.com/apache/nuttx/pulls/1992) * 27636[PR-2022](https://github.com/apache/nuttx/pulls/2022) sched: SMP 27637fixups that caused locking and removal of some no longer required workarounds 27638 27639* [PR-1993](https://github.com/apache/nuttx/pull/1993) libc: Skip 27640close stdin/stdout/stderr in fclose 27641 27642* [PR-1997](https://github.com/apache/nuttx/pull/1997) libc: Remove 27643all calls to fclose with stdin/stdout/stderr with fclose 27644 27645## Major Changes to Documentation 27646 27647* [PR-1763](https://github.com/apache/nuttx/pulls/1763) Add 27648quickstart documentation 27649 27650* [PR-1677](https://github.com/apache/nuttx/pull/1677) Add simulator, 27651drivers, and contributing instructions for new users 27652 27653* [PR-1675](https://github.com/apache/nuttx/pull/1675) Add quickstart 27654documentation from NuttX Companion 27655 27656* [PR-1673](https://github.com/apache/nuttx/pull/1673) Update all the 27657links in the documentation to point to nuttx.apache.org or the Apache NuttX 27658wiki instead of old nuttx.org resources 27659 27660* [PR-1501](https://github.com/apache/nuttx/pull/1501) Port all the 27661existing documentation from HTML files to Sphinx based documentation along with 27662a bunch of updates and improvments 27663 27664* [PR-1433](https://github.com/apache/nuttx/pull/1433) Convert README 27665documentation to Markdown 27666 27667## Major Changes to the Build System 27668 27669### New Features 27670 27671* [PR-1786](https://github.com/apache/nuttx/pull/1786) Support 27672building external code into the OS 27673 27674* [PR-1396](https://github.com/apache/nuttx/pull/1396) Make C/C++ 27675search path common so all boards support uClibc++/libc++ automatically 27676 27677* [PR-1682](https://github.com/apache/nuttx/pull/1682) configure.sh 27678can now list configurations with "-L" option 27679 27680* [PR-2023](https://github.com/apache/nuttx/pull/2023) tools: Remove 27681WSL configuration. This is just Linux now. 27682 27683### Bug Fixes 27684 27685* [PR-1713](https://github.com/apache/nuttx/pull/1713) Fix export 27686target: libboard was missing KERNEL flag. 27687 27688* [PR-1470](https://github.com/apache/nuttx/pull/1470) Fix Make.dep 27689not updated by .config changes 27690 27691* [PR-1345](https://github.com/apache/nuttx/pull/1786) Enhance export 27692target: make BIN directory configurable, export post build script, use LDNAME 27693instead of LDSCRIPT 27694 27695* [PR-1332](https://github.com/apache/nuttx/pull/1332) Include 27696incdir.c in the export target 27697 27698* [PR-1995](https://github.com/apache/nuttx/pull/1995) Fix issue 27699where wrong extension was generated for mkconfig in WSL builds 27700 27701* [PR-1949](https://github.com/apache/nuttx/pull/1949) Fix issue in 27702make export where nuttx-names.dat was not being generated 27703 27704* [PR-1682](https://github.com/apache/nuttx/pull/1682): Fix issue 27705where windows style paths might not be handled correctly breaking Cygwin builds 27706 27707## Architectural Support 27708 27709### New Architecture Support 27710 27711* [PR-1847](https://github.com/apache/nuttx/pull/1847) ARM: Initial 27712support for ARMV6M to support CortexM0+ 27713 27714* [PR-1397](https://github.com/apache/nuttx/pull/1379): EOSS3: 27715Initial support for the QuickLogic EOS S3 SoC 27716 27717### Architectures With Significant Improvements 27718 27719#### cxd56xx 27720 27721* [PR-1753](https://github.com/apache/nuttx/pull/1753) cxd56xx: Use 27722spinlock in gpioint to improve SMP performance 27723 27724* [PR-1650](https://github.com/apache/nuttx/pull/1650) cxd56xx: Use 27725spinlock in rtc to improve SMP performance 27726 27727* [PR-1621](https://github.com/apache/nuttx/pull/1621) cxd56xx: Use 27728spinlock in serial to improve SMP performance 27729 27730* [PR-1569](https://github.com/apache/nuttx/pull/1569) cxd56xx: Add 27731SMP support to cxd56\_farapi.c 27732 27733* [PR-1689](https://github.com/apache/nuttx/pull/1689) cxd56xx: Use 27734spinlock in uart to improve SMP performance 27735 27736#### ESP32 27737 27738* [PR-1422](https://github.com/apache/nuttx/pull/1422) ESP32: Add SPI 27739driver (Master & Slave) 27740 27741* [PR-1435](https://github.com/apache/nuttx/pull/1435) ESP32: Add I2C 27742driver 27743 27744* [PR-1491](https://github.com/apache/nuttx/pull/1491) ESP32: Add SPI 27745Flash driver 27746 27747* [PR-1525](https://github.com/apache/nuttx/pull/1525) ESP32: Add 27748Ethernet driver 27749 27750* [PR-1610](https://github.com/apache/nuttx/pull/1610) ESP32: Improve 27751SPI transmision (DMA, IOMUX, software CS) 27752 27753* [PR-1630](https://github.com/apache/nuttx/pull/1630) ESP32: Add 27754support for HW RNG 27755 27756* [PR-1830](https://github.com/apache/nuttx/pull/1830) ESP32: Add 27757Power Management of Force-Sleep 27758 27759* [PR-1754](https://github.com/apache/nuttx/pull/1754) ESP32: Add 27760support for external SPIFLASH 27761 27762* [PR-1613](https://github.com/apache/nuttx/pull/1613) ESP32: Add 27763function for switching CPU from 80MHz to 240MHz 27764 27765PR-1712 ESP32: Add support for external MMCSD card over SPI 27766 27767#### IMXRT 27768 27769* [PR-1868](https://github.com/apache/nuttx/pull/1868) IMXRT: Add ADC 27770driver 27771 27772#### Kinetis 27773 27774* [PR-1624](https://github.com/apache/nuttx/pull/1624) Kinetis: 27775USBHOST improvements to avoid race condition durring freeing for queue head 27776structure by using Async Advance Doorbell. 27777 27778PR-1516 Kinetis K28: Add support for USB High Speed Host 27779 27780PR-1531 Kinetis K28: Add USB state change notifiers in notifier work queue 27781 27782PR-1456 Kinetis K28: Reworked USB driver for setup out data phase 27783 27784#### NRF52 27785 27786* [PR-1418](https://github.com/apache/nuttx/pull/1418) NRF52: Add 27787Timer and RTC drivers 27788 27789* [PR-1432](https://github.com/apache/nuttx/pull/1422) NRF52: Add 27790timer lowerhalf 27791 27792* [PR-1635](https://github.com/apache/nuttx/pull/1635) NRF52: Add 27793support for RTC event handling 27794 27795* [PR-1636](https://github.com/apache/nuttx/pull/1636) NRF52: Add 27796support for PPI peripheral 27797 27798* [PR-1681](https://github.com/apache/nuttx/pull/1681) NRF52: Add 27799support for GPIOTE task mode 27800 27801* [PR-1726](https://github.com/apache/nuttx/pull/1726) NRF52: Extend 27802systimer support 27803 27804* [PR-1773](https://github.com/apache/nuttx/pull/1773) NRF52: Add ADC 27805and PWM support 27806 27807* [PR-1915](https://github.com/apache/nuttx/pull/1915) NRF52: Add 27808serial termios support (no flow control) 27809 27810* [PR-1907](https://github.com/apache/nuttx/pull/1907) NRF52: Add 27811basic error handing for i2c in polling mode to support i2ctool. Still not 27812handled in DMA mode. 27813 27814* [PR-1839](https://github.com/apache/nuttx/pull/1839) NRF52: Add 27815missing SPI callback register hooks to support drivers like mmcsd 27816 27817* [PR-1646](https://github.com/apache/nuttx/pull/1646) NRF52: Better 27818differentiation between NRF52840 and NRF52832 27819 27820PR-1685 NRF52: Add ARM system reset support. Add UID support. 27821 27822PR-1674 NRF52: Add LFCLK/HFCLK support for selecting oscillator sources. 27823 27824#### RISCV 27825 27826* [PR-1858](https://github.com/apache/nuttx/pull/1858) RISCV: Add 27827missing CSR macros listed in RISC-V spec V1.10. 27828 27829PR-1314 rv32im: Add schedulesigaction.c, SYS\_save\_context handling, skip ECALL 27830instruction when calling up\_swint() 27831 27832#### RX65N 27833 27834* [PR-1622](https://github.com/apache/nuttx/pull/1622) RX65N: Add 27835I2C(RIIC) support 27836 27837* [PR-1894](https://github.com/apache/nuttx/pull/1894) RX65N: Add USB 27838device support 27839 27840* [PR-1899](https://github.com/apache/nuttx/pull/1899) RX65N: Add DTC 27841driver 27842 27843PR-1910 RX65N: Add SPI driver support 27844 27845#### SAMD5E5 27846 27847* [PR-1515](https://github.com/apache/nuttx/pull/1515) SAMD5E5: Add 27848Watchdog timer support 27849 27850* [PR-1574](https://github.com/apache/nuttx/pull/1574) SAMD5E5: Add 27851USB host support 27852 27853* [PR-1594](https://github.com/apache/nuttx/pull/1594) SAMD5E5: 27854Freerun timer, oneshot timer and tickless support 27855 27856* [PR-1816](https://github.com/apache/nuttx/pull/1816) SAMD5E5: Add 27857MTD progmem support and NVM USER PAGE IOTCLs 27858 27859#### SAMA5D2 27860 27861PR-1412 SAMA5D27: Implement system reset to support nsh reboot command 27862 27863PR-1393 SAMA5D2x: Implement SDMMC peripheral support 27864 27865#### S32K 27866 27867PR-1339 S32K: Extend FlexTimer support and add support for PWM 27868 27869PR-1337 S32K: Allow FlexCAN to use to NETDEV\_LATEINIT to handle the case where 27870both FlexCAN and ENET are used 27871 27872#### SIM 27873* [PR-1914](https://github.com/apache/nuttx/pull/1914) SIM: SIGUSR1 27874handling now uses NuttX interrupt logic 27875 27876* [PR-1859](https://github.com/apache/nuttx/pull/1859) ESIM: Add 27877host timer and improve the oneshot timer logic 27878 27879* [PR-1767](https://github.com/apache/nuttx/pull/1767) SIM: Allow 27880access to tty interfaces for better termios support 27881 27882* [PR-1655](https://github.com/apache/nuttx/pull/1655) SIM: Add 27883support for Linux HCI Socket as a NuttX BLE adapter. Full NuttX BLE stack can 27884be run against any Linux Bluetooth adapter in sim. 27885 27886* [PR-1558](https://github.com/apache/nuttx/pull/1558) SIM: Add 27887support for Stack Smashing Protector. 27888 27889* [PR-1392](https://github.com/apache/nuttx/pull/1392) SIM: Make 27890uClibc++ and libcxx work on sim platform 27891 27892* [PR-1460](https://github.com/apache/nuttx/pull/1460) SIM: Call 27893sched\_note\_cpu\_\* when scheduler instrumentation is enabled 27894 27895#### STM32 27896 27897* [PR-1865](https://github.com/apache/nuttx/pull/1865) STM32F4: Add 27898support for STM32F412CE fixing I2C2/I2C3 and USART1 alt 27899 27900* [PR-1506](https://github.com/apache/nuttx/pull/1506) STM32: Add 27901support for single wire UART push/pull mode 27902 27903* [PR-1572](https://github.com/apache/nuttx/pull/1572) STM32F2/F4: 27904Add options for I-Cache and D-Cache to be enabled/disable. Previously they were 27905always enabled. 27906 27907* [PR-1287](https://github.com/apache/nuttx/pull/1286) STM32F7: 27908Refactor the FMC driver to support STM32F7 family and add support to the 27909STM32F46G-DISCO board 27910 27911* [PR-1275](https://github.com/apache/nuttx/pull/1275) STM32: Allow 27912SysTick to be a tickless clock source option 27913 27914* [PR-1268](https://github.com/apache/nuttx/pull/1268) STM32: Add 27915support for STM32F412 with UART / SPI / CAN / I2C / DMA 27916 27917* [PR-1250](https://github.com/apache/nuttx/pull/1250) STM32L4: Add 27918support for booting into DFU mode 27919 27920### Bug Fixes 27921 27922#### ARM 27923 27924* [PR-1562](https://github.com/apache/nuttx/pull/1562) ARM: Save 27925tcb-adj\_stack\_size should be saved without tls overhead 27926 27927* [PR-1900](https://github.com/apache/nuttx/pull/1900) ARM: Fix false 27928reporting for stack usage for unaligned stacks 27929 27930#### AVR 27931 27932* [PR-1410](https://github.com/apache/nuttx/pull/1410) avr: Implement 27933missing double\_t type, CONFIG\_STACK\_ALIGNMENT, linker emulation flags 27934 27935#### CXD56xx 27936 27937* [PR-1930](https://github.com/apache/nuttx/pull/1930) cxd56xx: Fix 27938handle\_irqreq() in cxd56\_cpupause.c 27939 27940* [PR-1789](https://github.com/apache/nuttx/pull/1789) cxd56xx: Fix 27941deadlock issue in up\_txinit() in SMP mode. 27942 27943* [PR-1620](https://github.com/apache/nuttx/pull/1620) cxd56xx: Fix 27944IRQ control in cxd56\_dmac.c 27945 27946* [PR-1253](https://github.com/apache/nuttx/pull/1253) cxd56xx: Fix 27947audio cxd56\_stop where a deadlock could be hit if the worker thread took too 27948long to turn on AMP 27949 27950* [PR-1950](https://github.com/apache/nuttx/pull/1950) cxd56xx: Fix 27951deadlock and tcb corruption in SMP mode 27952 27953#### ESP32 27954 27955* [PR-1908](https://github.com/apache/nuttx/pull/1908) ESP32: Fix 27956task signal process preemption 27957 27958* [PR-1941](https://github.com/apache/nuttx/pull/1941) ESP32: Fix 27959interrupt clearing of edge interrupt due to issuing in masking interrupt state 27960 27961#### IMXRT 27962 27963* [PR-1527](https://github.com/apache/nuttx/pull/1527) IMXRT: Fix 27964kconfig so that IMXRT\_ENET\_NRXBUFFERS can be set 27965 27966* [PR-1455](https://github.com/apache/nuttx/pull/1455) IMXRT: Fix 27967auto-negotiation for KSZ8081 PHY 27968 27969#### Kinetis 27970 27971* [PR-1273](https://github.com/apache/nuttx/pull/1273) Kinetis: Fix 27972issue in ethernet driver where buffers were blindly initialized and could cause 27973the TX of the MAC to be in a bad state. Also resolves an issue with interrupts 27974being throttled in the NVIC. 27975 27976#### NRF52 27977 27978* [PR-1928](https://github.com/apache/nuttx/pull/1928) NRF52: Fix PPI 27979group disable and add group clear 27980 27981* [PR-1885](https://github.com/apache/nuttx/pull/1885) NRF52: Fix SPI 27982driver structures when SPI\_EXCHANGE is not set 27983 27984* [PR-1799](https://github.com/apache/nuttx/pull/1799) NRF52: Fix 27985SPI\_MASTER entry in kconfig 27986 27987* [PR-1787](https://github.com/apache/nuttx/pull/1787) NRF52: Fix 27988base address for SPIM{1,2,3} 27989 27990* [PR-1777](https://github.com/apache/nuttx/pull/1777) NRF52: Handle 27991case where rx or tx buffer could be 0 but data would still be transferred. Also 27992error if more than max data is requested. 27993 27994* [PR-1770](https://github.com/apache/nuttx/pull/1770) NRF52: Fix bug 27995where SPI cmddata was not properly mapped for SPIM 0,2,3 27996 27997#### RISC-V 27998 27999* [PR-1909](https://github.com/apache/nuttx/pull/1909) RISC-V: MIE 28000instead of MPIE register was being used in up\_schedule\_sigaction for storing 28001interrupt state 28002 28003#### SIM 28004 28005* [PR-1903](https://github.com/apache/nuttx/pull/1903) SIM: Fix 28006complication issue for WPCAP in Cygwin build 28007 28008* [PR-1888](https://github.com/apache/nuttx/pull/1888) SIM: Fix 28009EOVERFLOW returned when CONFIG\_SIM\_M32 is set 28010 28011* [PR-1709](https://github.com/apache/nuttx/pull/1709) SIM: Fix 28012up\_cpu\_start initialization for macOS with SMP enabled 28013 28014#### STM32 28015 28016* [PR-1898](https://github.com/apache/nuttx/pull/1898) STM32F7: Fixes 28017data loss bug in UART5 with TX DMA 28018 28019* [PR-1841](https://github.com/apache/nuttx/pull/1841) STM32: Remove 28020broken overdriver support 28021 28022* [PR-1719](https://github.com/apache/nuttx/pull/1719) STM32: 28023Lowputc: Ensure USART is disabled before attempting to configuring it 28024 28025* [PR-1714](https://github.com/apache/nuttx/pull/1714) STM32H7: Fix 28026I2C driver interrupt storm 28027 28028* [PR-1556](https://github.com/apache/nuttx/pull/1556) STM32: Fix IO 28029compentation support in STM32F7 and remove incorrect reference in STM32F0/L0/G0 28030 28031* [PR-1529](https://github.com/apache/nuttx/pull/1529) STM32: Fix 28032initialization bug in ADC that prevented adc\_reset() from working correctly 28033 28034* [PR-1561](https://github.com/apache/nuttx/pull/1561) STM32: Make 28035sure that core over-drive is enabled for all chips that support it and operating 28036at 180MHz. Some were enabled at 180MHz but may have not been stable without 28037over-drive not configured. 28038 28039* [PR-1553](https://github.com/apache/nuttx/pull/1553) STM32F7: Fix 28040possible interrupt blocking in serial TXDMA ISR 28041 28042* [PR-1544](https://github.com/apache/nuttx/pull/1544) STM32: Make 28043sure IO compensation cell is configured prior to call to 28044rcc\_enableperipherals() causing syscfg is accessed before it is enabled 28045 28046* [PR-1380](https://github.com/apache/nuttx/pull/1380) STM32F7: Fix 28047tickless driver where th compare register could be set to a value that has 28048just passed preventing expiration 28049 28050* [PR-1252](https://github.com/apache/nuttx/pull/1252) STM32L4: Fix 2805148MHz MSI clock selection that could cause boot to hang 28052 28053* [PR-1310](https://github.com/apache/nuttx/pull/1310) STM32L4: 28054Configure flash wait states earlier to prevent corruption of execution state 28055 28056* [PR-1248](https://github.com/apache/nuttx/pull/1248) STM32L4: Fix 28057oneshot timer so that a minimum period is set otherwise it will never be 28058triggered. 28059 28060* [PR-1247](https://github.com/apache/nuttx/pull/1247) STM32L47x/8x: 28061Set additional registers required to place a pin in analog mode 28062 28063* [PR-1246](https://github.com/apache/nuttx/pull/1246) STM32L4: Fix 28064issue where clock divider for serial baud rate was not set correctly 28065 28066#### Miscellaneous 28067 28068* [PR-1912](https://github.com/apache/nuttx/pull/1912) Fix 28069up\_interrupt\_contex() in case of SMP - Make sure the operation is atomic in 28070case of SMP 28071 28072## Driver Support 28073 28074### Bug Fixes 28075 28076* [PR-1896](https://github.com/apache/nuttx/pull/1896) spi\_xx25xx 28077EEPROM: return the number of bytes written instead of 0 or error 28078 28079* [PR-1891](https://github.com/apache/nuttx/pull/1891) serial: Don't 28080mangle PID when ISIG is changed 28081 28082* [PR-1856](https://github.com/apache/nuttx/pull/1856) pipe: In case 28083of empty pipe with no writers, return EOF instead of EAGAIN 28084 28085* [PR-1836](https://github.com/apache/nuttx/pull/1836) stmpe811: Fix 28086incorrect GPIO interrupt register logic 28087 28088* [PR-1741](https://github.com/apache/nuttx/pull/1741) mmcsd\_sdio: 28089Properly arm the write completion detection 28090 28091* [PR-1370](https://github.com/apache/nuttx/pull/1370) can: Fix 28092incorrect usage of nxsem\_getvalue which caused fifo->rx\_sem to increase with 28093teach received msg 28094 28095* [PR-1452](https://github.com/apache/nuttx/pull/1452) lcd: Fix 28096memory leak when board\_graphics\_setup fail 28097 28098### New Driver Support 28099 28100* [PR-1797](https://github.com/apache/nuttx/pull/1797) leds: WS2812 28101LED controller (aka Adafruit NeoPixel) 28102 28103* [PR-1851](https://github.com/apache/nuttx/pull/1851) kbd: Add 28104support for SolderParty BlackBerry Q10 Keyboard 28105 28106* [PR-1618](https://github.com/apache/nuttx/pull/1618) BQ27426 fuel 28107gauge 28108 28109* [PR-1276](https://github.com/apache/nuttx/pull/1276) Add support 28110for the ST7735 TFT Controller 28111 28112* [PR-1233](https://github.com/apache/nuttx/pull/1233) usbhost: Add 28113support for CDC-MBIM USB host driver 28114 28115### Drivers With Significant Improvements 28116 28117* [PR-1816](https://github.com/apache/nuttx/pull/1816) stmpe811: Add 28118SPI support for touch screen controller 28119 28120* [PR-1800](https://github.com/apache/nuttx/pull/1800) vfs: Add 28121`FIOCLEX/FIONCLEX` ioctl support 28122 28123* [PR-1798](https://github.com/apache/nuttx/pull/1798) mmcsd: Allow 28124setting `IDMODE_CLOCK` via kconfig 28125 28126* [PR-1587](https://github.com/apache/nuttx/pull/1587) BCH: Delay the 28127sector flush to avoid multiple erase/write operations in sequence write 28128 28129* [PR-1577](https://github.com/apache/nuttx/pull/1577) rwbuffer: 28130Avoid allocating memory for the temporary erase buffer by the FTL driver 28131 28132* [PR-1466](https://github.com/apache/nuttx/pull/1466) Altair Modem: 28133Add board specific logic, Fix issue that SPI4 RX frequency violated AC Spec, 28134Fix priority of SPI transfer task is too low, Modify timeout value for RX ready 28135 28136* [PR-1471](https://github.com/apache/nuttx/pull/1471) ramlog: Add 28137option to overwrite buffer 28138 28139* [PR-1547](https://github.com/apache/nuttx/pull/1547) usbhub: Make 28140sure to enumerate hubs that report protocol = 1 (High Speed Hub) 28141 28142* [PR-1374](https://github.com/apache/nuttx/pull/1374) gpio: Extend 28143gpio\_pintype\_e for pulldown/up and opendrain 28144 28145* [PR-1249](https://github.com/apache/nuttx/pull/1249) bmp280: Add 28146support for reading temperature 28147 28148* [PR-1299](https://github.com/apache/nuttx/pull/1299) mpu60x0: Add 28149I2C support for the MPU60x0 sensor driver 28150 28151* [PR-1325](https://github.com/apache/nuttx/pull/1325) can: expose 28152NART/ABOM and RTR settings via ioctls 28153 28154* [PR-1520](https://github.com/apache/nuttx/pull/1520) note: Move 28155note driver from syslog to drivers/note 28156 28157* [PR-1288](https://github.com/apache/nuttx/pull/1288) / PR-1449 28158note: Add sched\_note\_syscall\_enter/leave hooks for syscall instrumentation 28159 28160* [PR-1259](https://github.com/apache/nuttx/pull/1259) note: Add 28161buffering support for syscall instrumentation 28162 28163* [PR-1256](https://github.com/apache/nuttx/pull/1256) note: Add 28164hooks for note driver for interrupt instrumentation 28165 28166Board Support ------------- 28167 28168### **Significant Improvements** 28169 28170* [PR-1618](https://github.com/apache/nuttx/pull/1618) metro-m4: Add 28171support for: SmartFS initialization, AT24 EEPROM, GPIO dev, BQ27426 gauge 28172initialization 28173 28174* [PR-1727](https://github.com/apache/nuttx/pull/1729) b-g474e-dpow1: 28175Add support for FLASH bootloader 28176 28177* [PR-1683](https://github.com/apache/nuttx/pull/1683) cxd56xx: Add 28178wifi\_smp configuration 28179 28180* [PR-1668](https://github.com/apache/nuttx/pull/1668) sim: Add new 28181configuration for SMP 28182 28183* [PR-1644](https://github.com/apache/nuttx/pull/1644) 28184stm32f746g-disco: Move serial console from USART6 to USART1 which is attached 28185to the USB virtual COM port. 28186 28187* [PR-1464](https://github.com/apache/nuttx/pull/1464) cxd56xx: Add 28188new GNSS functions, support for lower PWM frequency, 28189CONFIG\_CPUFREQ\_RELEASE\_LOCK, high speed ADC, HPADC input gain configuration, 28190eMMC device, frame buffer support 28191 28192* [PR-1405](https://github.com/apache/nuttx/pull/1405) 28193stm32f4discovery: Add ELF support to wifi configuration 28194 28195* [PR-1402](https://github.com/apache/nuttx/pull/1402) imxrt1060: Add 28196buttons support to iMXRT1060 28197 28198* [PR-1590](https://github.com/apache/nuttx/pull/1590) sim: Add 28199duktape configuration 28200 28201* [PR-1532](https://github.com/apache/nuttx/pull/1532) sim: Add 28202cromfs configuration 28203 28204* [PR-1335](https://github.com/apache/nuttx/pull/1335) cxd56xx: 28205Enable basic snapshop camera example 28206 28207### New Board Support 28208 28209* [PR-1664](https://github.com/apache/nuttx/pull/1664) NRF52: Add 28210support for NRF52832 MakerDiary MDK board 28211 28212* [PR-1633](https://github.com/apache/nuttx/pull/1633) NRF52: Add 28213support for Sparkfun NRF52832 Breakout Board 28214 28215* [PR-1728](https://github.com/apache/nuttx/pull/1728) SAMA5D27: Add 28216support for Giant Board 28217 28218* [PR-1397](https://github.com/apache/nuttx/pull/1397) EOSS3: Initial 28219support for the QuickLogic EOS S3 SoC QuickFeather board 28220 28221* [PR-1268](https://github.com/apache/nuttx/pull/1268) STM32: Add 28222support for nucleo-f412zg board 28223 28224File System ----------- 28225 28226### **Bug Fixes** 28227 28228* [PR-1796](https://github.com/apache/nuttx/pull/1796) vfs: Fix 28229memory leak calling `pseudorename` 28230 28231* [PR-1794](https://github.com/apache/nuttx/pull/1794) vfs: Fix issue 28232where opendir would remove the trailing whitespace or / 28233 28234* [PR-1793](https://github.com/apache/nuttx/pull/1793) vfs: Make sure 28235that rename of mount point uses pseudorename. Previously mv on a mountpoint 28236would return err 88. 28237 28238* [PR-1737](https://github.com/apache/nuttx/pull/1737) vfs: reuse 28239file\_dup2 direction in file\_dup to prevent segfault issue 28240 28241* [PR-1490](https://github.com/apache/nuttx/pull/1490) Ensure that 28242filesystems can all support paths that end with '/' 28243 28244* [PR-1546](https://github.com/apache/nuttx/pull/1546) ROMFS: Fix 28245issue with how hard links are followed for ROMFS 28246 28247* [PR-1442](https://github.com/apache/nuttx/pull/1442) SmartFS: Fix 28248file size corruption when opening with overwriting mode 28249 28250* [PR-1431](https://github.com/apache/nuttx/pull/1431) nxffs: Fix 28251scan good block slowly and scan an invalid block 28252 28253PR-1295 fs: for setfd correct the return value 28254 28255### **Significant Improvements** 28256 28257* [PR-1554](https://github.com/apache/nuttx/pull/1554) CROMFS: Add 28258support for hard links 28259 28260* [PR-1499](https://github.com/apache/nuttx/pull/1499) FAT: Add 28261support for UTF8 long filename 28262 28263* [PR-1479](https://github.com/apache/nuttx/pull/1479) vfs: Add file 28264descriptor based events support eventfd() 28265 28266* [PR-1582](https://github.com/apache/nuttx/pull/1482) vfs: Add 28267epoll\_create1() support 28268 28269* [PR-1579](https://github.com/apache/nuttx/pull/1579) vfs: Do not 28270check CONFIG\_NFILE\_STREAMS for mkdir/rename/rmdir/fs\_unlink 28271 28272* [PR-1355](https://github.com/apache/nuttx/pull/1355) vfs: Implement 28273statvfs and fstatvfs 28274 28275* [PR-1323](https://github.com/apache/nuttx/pull/1323) vfs: Add 28276chmod/fchmod/utimes function prototypes 28277 28278Networking ---------- 28279 28280### **Bug Fixes** 28281 28282* [PR-1267](https://github.com/apache/nuttx/pull/1267) SocketCAN: 28283When timestamped frame was received while in CAN2.0B mode the frame got dropped. 28284 28285* [PR-1446](https://github.com/apache/nuttx/pull/1446) usrsock: Fix 28286recv() cannot peek data 28287 28288### **Significant Improvements** 28289 28290* [PR-1666](https://github.com/apache/nuttx/pull/1666) Bluetooth: 28291Bluetooth sockets now use Linux sockaddr types of sockaddr\_l2 sockaddr\_hci 28292sockaddr\_rc. There are slight breaking changes here that may require 28293applications to be updated, but this brings the interface inline with Linux. 28294 28295* [PR-1581](https://github.com/apache/nuttx/pull/1581) Socket: Add 28296SOCK\_CLOEXEC/SOCK\_NONBLOCK support 28297 28298* [PR-1443](https://github.com/apache/nuttx/pull/1443) usrsock: Add 28299flag argument to sendto/recvfrom interface in usrsock 28300 28301* [PR-1238](https://github.com/apache/nuttx/pull/1238) SocketCAN: Add 28302support for SocketCAN interface API 28303 28304Applications ------------ 28305 28306### **Significant Improvements** 28307 28308* [PR-409](https://github.com/apache/nuttx-apps/pull/409) wamr: 28309Update version to 09-29-2020 that supports NuttX directly and remove patches 28310 28311* [PR-407](https://github.com/apache/nuttx-apps/pull/407) ipcfg: Add 28312IPv4 configuration file access helper 28313 28314* [PR-406](https://github.com/apache/nuttx-apps/pull/406) wamr: Add 28315configs for heap pool and custom name sections 28316 28317* [PR-404](https://github.com/apache/nuttx-apps/pull/404) timer: Add 28318supplying timer dev path to example 28319 28320* [PR-403](https://github.com/apache/nuttx-apps/pull/402) 28321nxplayer/nxrecorder: Add channel map support 28322 28323* [PR-396](https://github.com/apache/nuttx-apps/pull/396) wamr: Add 28324missing options to kconfig 28325 28326* [PR-395](https://github.com/apache/nuttx-apps/pull/395) dhcpc: Try 28327to get hostname via syscall first 28328 28329* [PR-391](https://github.com/apache/nuttx-apps/pull/391) wapi: Add 28330option to assocated directly via bssid 28331 28332* [PR-390](https://github.com/apache/nuttx-apps/pull/390) wapi: App 28333option to scan partial channel 28334 28335* [PR-387](https://github.com/apache/nuttx-apps/pull/387) wamr: Add 28336support for WAMR web assembly interpreter 28337 28338* [PR-337](https://github.com/apache/nuttx-apps/pull/337) docs: 28339Convert all README files to markdown 28340 28341* [PR-333](https://github.com/apache/nuttx-apps/pull/333) webclient: 28342Add hooks for TLS, extra request headers, PUT method, report status code, 28343improved error handling 28344 28345* [PR-329](https://github.com/apache/nuttx-apps/pull/329) gpio: Add 28346support for new GPIO pin types 28347 28348* [PR-317](https://github.com/apache/nuttx-apps/pull/317) nshlib: 28349Call symlink if user pass -s for ln command 28350 28351* [PR-315](https://github.com/apache/nuttx-apps/pull/315) c++: 28352Support uClibc++ and libcxx in examples/testing 28353 28354* [PR-314](https://github.com/apache/nuttx-apps/pull/314) camera: Add 28355a simple camera snapshot example 28356 28357* [PR-378](https://github.com/apache/nuttx-apps/pull/378) wasm3: 28358Initial WebAssembly runtime support 28359 28360* [PR-374](https://github.com/apache/nuttx-apps/pull/374) bluetooth: 28361Use the new l2cap socket address type 28362 28363* [PR-373](https://github.com/apache/nuttx-apps/pull/373) duktape: 28364Add duktape to global search path so it can be used as a library 28365 28366* [PR-372](https://github.com/apache/nuttx-apps/pull/372) quickjs: 28367Add support for QuickJS interpreter 28368 28369* [PR-367](https://github.com/apache/nuttx-apps/pull/367) nsh: Accept 28370the command line arguments like sh 28371 28372* [PR-365](https://github.com/apache/nuttx-apps/pull/365) duktape: 28373Add console, print, alert support 28374 28375* [PR-364](https://github.com/apache/nuttx-apps/pull/364) cu: 28376Refactor cu and add support for "-c" to disable \\n to \\r\\n conversion 28377 28378* [PR-362](https://github.com/apache/nuttx-apps/pull/362) libuv: Add 28379support for libuv library 28380 28381* [PR-352](https://github.com/apache/nuttx-apps/pull/352) duktape: 28382Add initial support for duktape 28383 28384* [PR-346](https://github.com/apache/nuttx-apps/pull/364) wget: 28385Enable URL from command line, can be used with ifup, hooks for HTTPS 28386 28387* [PR-302](https://github.com/apache/nuttx-apps/pull/302) lvgl: Use 28388the latest version 7.0.2 28389 28390* [PR-300](https://github.com/apache/nuttx-apps/pull/300) note: Add 28391support for decoding interrupt and syscall instrumentation 28392 28393* [PR-299](https://github.com/apache/nuttx-apps/pull/299) nxrecorder: 28394Add O\_TRUNC when creating a file 28395 28396* [PR-296](https://github.com/apache/nuttx-apps/pull/296) bmp280: Add 28397support for BMP180 to BMP280 application 28398 28399* [PR-294](https://github.com/apache/nuttx-apps/pull/294) can: Add 28400cansend and candump utilities for interacting with SocketCAN 28401 28402### Bug Fixes 28403 28404* [PR-411](https://github.com/apache/nuttx-apps/pull/411) wgetjson: 28405Fix build breakage 28406 28407* [PR-405](https://github.com/apache/nuttx-apps/pull/405) nxplayer: 28408Fix missing "%d" in a sscanf call 28409 28410* [PR-400](https://github.com/apache/nuttx-apps/pull/400) dhcpc: 28411Handle case where gethostname() might be empty 28412 28413* [PR-399](https://github.com/apache/nuttx-apps/pull/399) build: Fix 28414build system issue where compiler would only compile first assembly file 28415 28416* [PR-393](https://github.com/apache/nuttx-apps/pull/393) build: Fix 28417build system issue where ARCHCPUFLAGS in cxx command was lost 28418 28419* [PR-392](https://github.com/apache/nuttx-apps/pull/392) wapi: Make 28420wapi more robust in failure cases 28421 28422* [PR-383](https://github.com/apache/nuttx-apps/pull/383) ntpclient: 28423Fix NTP daemon state in case of DNS failure 28424 28425* [PR-344](https://github.com/apache/nuttx-apps/pull/344) gs2200m: 28426Fix freeing of uninitialized memory 28427 28428* [PR-335](https://github.com/apache/nuttx-apps/pull/335) ntp: Fix 28429malformated authentication headers in NTP packet 28430 28431* [PR-331](https://github.com/apache/nuttx-apps/pull/331) telnetd: 28432Fix buffer overflow issue clearing socket address 28433 28434* [PR-312](https://github.com/apache/nuttx-apps/pull/312) build: Make 28435sure to include incdir when running make export 28436 28437* [PR-377](https://github.com/apache/nuttx-apps/pull/377) readline: 28438Fix stack overflow when application name is too long 28439 28440* [PR-359](https://github.com/apache/nuttx-apps/pull/259) nshlib: Fix 28441memory corrupt in nsh\_parse if pthread\_create() failed 28442 28443* [PR-354](https://github.com/apache/nuttx-apps/pull/354) dhcpd: Fix 28444member name for "ds\_pid" 28445 28446## Security Issues Fixed In This Release 28447 28448## Compatibility Concerns 28449 28450## Changes to Build System 28451 28452### In Apps, Change `$(TOPDIR)` to `$(APPDIR)` 28453 28454In the 'apps' repo, Makefiles are now using `$(APPDIR)` instead of `$(TOPDIR)`. 28455 28456In your custom app's Makefile, it is recommended to change `$(TOPDIR)` to 28457`$(APPDIR)`. 28458 28459Replace this line: 28460 28461include $(TOPDIR)/Make.defs 28462 28463With this: 28464 28465include $(APPDIR)/Make.defs 28466 28467See * [PR-326](https://github.com/apache/nuttx-apps/pull/326), git 28468commit # 28469`[deaa6c5b7bf8445b4a300691525f60aa506be0d7](https://github.com/apache/nuttx-apps/commit/deaa6c5b7bf8445b4a300691525f60aa506be0d7)` 28470in the NuttX 'apps' repository. 28471 28472### Custom Boards Don't Need `ARCHINCLUDES` and `ARCHXXINCLUDES` Definitions 28473 28474As part of an effort to unify support for uClibc++ and libc++, the C/C++ include 28475search path definitions `ARCHINCLUDES` and `ARCHXXINCLUDES` are now defined in 28476one central place in `tools/Config.mk`. It is no longer necessary to define 28477these in every board's `scripts/Make.defs`. Boards included in the NuttX 28478repository have been updated, but if you are building NuttX for a custom board 28479and are using C++, you may want to make the following changes: 28480 28481In your board's configuration, ensure that you have enabled either 28482`CONFIG_UCLIBCXX` or `CONFIG_LIBCXX` as appropriate. 28483 28484In your custom board's `scripts/Make.defs` file, remove lines like these: 28485 28486CINCPATH := ${shell $(INCDIR) -s "$(CC)" $(TOPDIR)$(DELIM)include} CXXINCPATH := 28487${shell $(INCDIR) -s "$(CC)" $(TOPDIR)$(DELIM)include$(DELIM)cxx} ARCHINCLUDES 28488+= $(CINCPATH) ARCHXXINCLUDES += $(CINCPATH) $(CXXINCPATH) 28489 28490In case your `scripts/Make.defs` uses different names, such as `ARCHINCLUDESXX` 28491instead of `ARCHXXINCLUDES`, you'll need to find all uses of that variable and 28492update them to use `ARCHXXINCLUDES`. 28493 28494See * [PR-1396](https://github.com/apache/nuttx/pull/1396), git 28495commit 28496#[d32e9c38dfb0659a7f3c0cf586ba1584cd7eb3d6](https://github.com/apache/nuttx/commit/d32e9c38dfb0659a7f3c0cf586ba1584cd7eb3d6) 28497in the main NuttX repository. 28498 28499See also * [PR-1399](https://github.com/apache/nuttx/pull/1399), git 28500commit 28501#[6abd03d53ff9164fb17ea4aca701a49fbbf751c0](https://github.com/apache/nuttx/commit/6abd03d53ff9164fb17ea4aca701a49fbbf751c0). 28502 28503### Custom Boards Don't Need `HOSTCC` and `HOSTCFLAGS` Definitions 28504 28505The NuttX build system uses several binary utilities that it compiles and runs 28506on the host computer. To build these binaries, it needs to know the host C 28507compiler and C flags. Previously, every board's `scripts/Make.defs` file had to 28508provide this information via `HOSTCC` and `HOSTCFLAGS` Definitions. As part of 28509an effort to simplify the build system, these definitions are now automatically 28510provided by logic in `tools/Config.mk`. Boards included in the NuttX repository 28511have been updated, but if you are building NuttX for a custom board, you may 28512want to make the following changes: 28513 28514In your custom board's `scripts/Make.defs` file, remove lines like these: 28515 28516HOSTCC = gcc HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -g -pipe 28517 28518Sometimes they may look like this: 28519 28520ifeq ($(CONFIG\_WINDOWS\_NATIVE),y) 28521 HOSTCC = mingw32-gcc.exe 28522else 28523 HOSTCC = gcc 28524endif 28525 28526Note: These changes are OPTIONAL. 28527 28528You may still set these definitions in your board's scripts/Make.defs, and your 28529definitions will override the ones in tools/Config.mk. 28530 28531Also, you may override these definitions for a single run by providing them on 28532the make command line. This is useful if, for example, you wish to build debug 28533versions of these host binaries: define HOSTCFLAGS with -g on the command line. 28534 28535See * [PR-1398](https://github.com/apache/nuttx/pull/1398), git 28536commit 28537#[ee875b2a260cb4cc532b8ca303c2515e24c39b4e](https://github.com/apache/nuttx/commit/ee875b2a260cb4cc532b8ca303c2515e24c39b4e) 28538in the main NuttX repository. 28539 28540### Removal of Unused `ARCHCCVERSION` and `ARCHCCMAJOR` 28541 28542The ARCHCCVERSION and ARCHCCMAJOR variables are unused. Historically they were 28543defined in many boards' scripts/Make.defs. These were removed from all boards in 28544the NuttX repository, but if you are building NuttX for a custom board, you may 28545want to remove this unnecessary boilerplate. 28546 28547In your custom board's `scripts/Make.defs` file, remove lines like these: 28548 28549ARCHCCVERSION = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e 28550's/^gcc version \\(\[0-9\\.\]\\)/\\1/g' -e 's/\[-\\ \].\*//g' -e '1q'} 28551ARCHCCMAJOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1} 28552 28553See * [PR-1344](https://github.com/apache/nuttx/pull/1344), git 28554commit 28555#[f5311de6b42466ab5c6ef299dab0ecc417131bbe](https://github.com/apache/nuttx/commit/f5311de6b42466ab5c6ef299dab0ecc417131bbe) 28556in the main NuttX repository. 28557 28558### Custom Boards May Not Need `EXTRA_LIBS` and `EXTRA_LIBPATHS` Definitions 28559 28560The `EXTRA_LIBS` and `EXTRA_LIBPATHS` make variables were previously defined in 28561many boards' `scripts/Make.defs` files. These are now defined in a more central 28562location: `arch/*/src/*/Toolchain.defs`. Your board's `scripts/Make.defs` 28563usually includes this file. Boards included in NuttX have been updated, but if 28564you are building NuttX for a custom board, you may need to update your board's 28565`scripts/Make.defs` file to ensure you build with the correct definitions. 28566 28567If you have lines like these: 28568 28569EXTRA\_LIBPATHS = -L "${shell dirname "$(LIBSUPXX)"}" EXTRA\_LIBS = -lsupc++ 28570 28571You may want to do one of the following: 28572 28573* If they are redundant to the definitions provided in the included 28574`arch/*/src/*/Toolchain.defs`, remove these lines, or * If they contain 28575additional needed libraries and paths not present in 28576`arch/*/src/*/Toolchain.defs`, remove any redundant definitions and change the 28577assignment '`=`' to '`+=`'. 28578 28579See * [PR-1404](https://github.com/apache/nuttx/pull/1404), git 28580commit 28581#[4910d43ab0fc360dbddb1f8a31db2a3ee383b46d](https://github.com/apache/nuttx/commit/4910d43ab0fc360dbddb1f8a31db2a3ee383b46d) 28582in the main NuttX repository. 28583 28584### Custom Boards May Not Need CC, CXX, CPP, LD, STRIP, AR, NM, OBJCOPY, and 28585OBJDUMP Definitions 28586 28587These `make` variables were previously defined in many boards' scripts/Make.defs 28588files with copy-paste duplication spanning many hundreds of files. These are now 28589defined in a more central location: `arch/*/src/*/Toolchain.defs`. Your board's 28590`scripts/Make.defs` usually includes this file. Boards included in NuttX have 28591been updated, but if you are building NuttX for a custom board, you may need to 28592update your board's `scripts/Make.defs` file to ensure you build with the 28593correct definitions. 28594 28595If you have lines that define `CC`, `CXX`, `CPP`, `LD`, `STRIP`, `AR`, `NM`, 28596`OBJCOPY`, and `OBJDUMP`, such as these: 28597 28598CC = $(CROSSDEV)gcc CXX = $(CROSSDEV)g++ CPP = $(CROSSDEV)gcc -E -P -x c LD = 28599$(CROSSDEV)ld STRIP = $(CROSSDEV)strip --strip-unneeded AR = $(ARCROSSDEV)ar rcs 28600NM = $(ARCROSSDEV)nm OBJCOPY = $(CROSSDEV)objcopy OBJDUMP = $(CROSSDEV)objdump 28601 28602You may want to do one of the following: 28603 28604* If they are redundant to the definitions provided in the included 28605`arch/*/src/*/Toolchain.defs`, remove these lines, or * If they are different 28606from the definitions in `arch/*/src/*/Toolchain.defs`, leave them as-is and they 28607will take precedence. 28608 28609See * [PR-1426](https://github.com/apache/nuttx/pull/1426), git 28610commit 28611#[b329e2377dd8816f37ad0408279926829efdf85d](https://github.com/apache/nuttx/commit/b329e2377dd8816f37ad0408279926829efdf85d) 28612in the main NuttX repository. 28613 28614### Consolidated ARCROSSDEV and CROSSDEV 28615 28616The `ARCROSSDEV` and `CROSSDEV` variables always had identical values. Therefore 28617`ARCROSSDEV` has been removed and `CROSSDEV` is used instead. Boards included in 28618NuttX have been updated, but if you are building NuttX for a custom board, you 28619may need to update your board's build scripts to use the `CROSSDEV` variable. 28620 28621See * [PR-1439](https://github.com/apache/nuttx/pull/1439), git 28622commit 28623#[5efa93ec26fd8a3fd85b24a2008bb743f96027fb](https://github.com/apache/nuttx/commit/5efa93ec26fd8a3fd85b24a2008bb743f96027fb) 28624in the main NuttX repository. 28625 28626NuttX-10.1.0 Release Notes 28627------------------------ 28628 28629# What's New In This Release 28630 28631## Highlights 28632 28633* Better separation between kernel and userspace. 28634* Heap and stack management improvements. 28635* More closely follow POSIX and Linux interfaces. 28636* Symmetric Multi-Processing (SMP) performance improvements and bug fixes. 28637* Networking improvements and bug fixes. 28638* Added support for many microcontrollers and boards, and improved support for many existing ones. 28639* Many added and improved drivers. 28640* Build system improvements to deliver faster builds. 28641* Thousands of NuttX files converted to Apache 2.0 License with permission of their authors. 28642* Improved listing of 3rd party licenses used in NuttX (see LICENSE, NOTICE, and DISCLAIMER-WIP files). 28643 28644## Major Changes to Core OS 28645 28646### New Features 28647* [#2324](https://github.com/apache/nuttx/pull/2324) audio: libsamplerate: add initial audio Sample Rate Converter 28648* [#2820](https://github.com/apache/nuttx/pull/2820) arch, boards, drivers, include, sched, wireless: Change spinlock APIs. 28649* [#2885](https://github.com/apache/nuttx/pull/2885) Ensure the kernel component don't call userspace API 28650 28651### Bug Fixes 28652* [#1852](https://github.com/apache/nuttx/pull/1852) sysconf: add _SC_PAGESIZE sysconf support 28653* [#1922](https://github.com/apache/nuttx/pull/1922) sched: nxtask_start should call entry point directly for kernel thread 28654* [#1994](https://github.com/apache/nuttx/pull/1994) libc: Don't fclose and fopen file in freopen 28655* [#2005](https://github.com/apache/nuttx/pull/2005) Fix note_syscall_leave_s to avoid unaligned access 28656* [#2043](https://github.com/apache/nuttx/pull/2043) sched: Add SCHED_INSTRUMENTATION_HIRES support 28657* [#2044](https://github.com/apache/nuttx/pull/2044) sched: Add note_syscall args support 28658* [#2071](https://github.com/apache/nuttx/pull/2071) pollnotify: we should send poll events before semaphore incrementes. 28659* [#2076](https://github.com/apache/nuttx/pull/2076) libc: math: Make this friendly with libcxx 28660* [#2111](https://github.com/apache/nuttx/pull/2111) LIBCXX related fixes 28661* [#2147](https://github.com/apache/nuttx/pull/2147) sched: Use nx_close() inside OS 28662* [#2176](https://github.com/apache/nuttx/pull/2176) syscall/syscall.csv: Increase number of arguments for prctl() 28663* [#2204](https://github.com/apache/nuttx/pull/2204) sched: irq: Fix enter_critical_section() in an irq handler for SMP 28664* [#2218](https://github.com/apache/nuttx/pull/2218) sched: signal.h: fix compile failed when open TTY_SIGINT 28665* [#2229](https://github.com/apache/nuttx/pull/2229) sched/sched/sched_waitid.c: Allow WNOHANG 28666* [#2236](https://github.com/apache/nuttx/pull/2236) sched/task/task_exithook.c: Remove a redundant assignment 28667* [#2243](https://github.com/apache/nuttx/pull/2243) libcxx: Update [0001-libcxx-Port-to-NuttX-https-nuttx.apache.org](http://0001-libcxx-Port-to-NuttX-https-nuttx.apache.org)-RTOS.patch 28668* [#2255](https://github.com/apache/nuttx/pull/2255) sys/epoll: sync the epoll define with linux 28669* [#2256](https://github.com/apache/nuttx/pull/2256) unistd/sched_sporadic: correct the disable value 28670* [#2261](https://github.com/apache/nuttx/pull/2261) sched/timer: add support of CLOCK_MONOTONIC 28671* [#2262](https://github.com/apache/nuttx/pull/2262) sched/init: init the default home directory to environment 28672* [#2285](https://github.com/apache/nuttx/pull/2285) libc/stdlib: Fix range check in strtoul(l) 28673* [#2326](https://github.com/apache/nuttx/pull/2326) libc: Enhance getopt function 28674* [#2407](https://github.com/apache/nuttx/pull/2407) libc: machine: arch: Support armv8-m relocation 28675* [#2418](https://github.com/apache/nuttx/pull/3447) libc: Change OK/ERROR from macro to enum 28676* [#2420](https://github.com/apache/nuttx/pull/2420) sched/signal: Remove redundant checks 28677* [#2437](https://github.com/apache/nuttx/pull/2765) sched/sched/sched_waitpid.c: Fix return value 28678* [#2449](https://github.com/apache/nuttx/pull/2449) mm/circbuf: fix the problem of dividing by zero 28679* [#2450](https://github.com/apache/nuttx/pull/2450) unistd/getopt: remove number of arguments limit 28680* [#2451](https://github.com/apache/nuttx/pull/2451) libc: pthread_mutexattr_getprotocol: modify prototype 28681* [#2455](https://github.com/apache/nuttx/pull/2455) sched/sched/sched_waitpid.c: Discard the correct child entry 28682* [#2475](https://github.com/apache/nuttx/pull/2475) sched/sched_waitid.c: Fix two bugs when CONFIG_SCHED_CHILD_STATUS is enabled 28683* [#2487](https://github.com/apache/nuttx/pull/2487) sched: clock/time: add CLOCK_BOOTTIME definition 28684* [#2492](https://github.com/apache/nuttx/pull/2492) procfs: make array const to reduce memory use 28685* [#2494](https://github.com/apache/nuttx/pull/2494) sched: Fix SMP 28686* [#2509](https://github.com/apache/nuttx/pull/2509) libc: net: implement ether_aton/ether_aton_r 28687* [#2517](https://github.com/apache/nuttx/pull/2517) sched: spinlock: Introduce SP_WFE() and SP_SEV() 28688* [#2518](https://github.com/apache/nuttx/pull/2518) sched: Don't forward gettid to getpid directly 28689* [#2530](https://github.com/apache/nuttx/pull/2530) libc: Implement posix_fallocate 28690* [#2533](https://github.com/apache/nuttx/pull/2533) sched: Make the number of queue/signal used by irq handler configurable 28691* [#2534](https://github.com/apache/nuttx/pull/2534) libc: Implement getppid 28692* [#2538](https://github.com/apache/nuttx/pull/2538) sched: pthread: Fix potential bugs in pthread_condclockwait.c 28693* [#2574](https://github.com/apache/nuttx/pull/2574) libc: dumpbuffer: dump buffer enhancement 28694* [#2580](https://github.com/apache/nuttx/pull/2580) sched: arch & sched: task: Fix up_exit() and nxtask_exit() for SMP 28695* [#2585](https://github.com/apache/nuttx/pull/2585) libc: netdb: Move hostbuffer out of the stack 28696* [#2602](https://github.com/apache/nuttx/pull/2740) sched: Add include/sys/poll.h 28697* [#2604](https://github.com/apache/nuttx/pull/2604) libc: Add b64_ntop and b64_pton implementation 28698* [#2616](https://github.com/apache/nuttx/pull/2616) libc/dumpvbuffer: update the vector ptr correctly 28699* [#2624](https://github.com/apache/nuttx/pull/2624) sched: implement the default test-and-set semantics 28700* [#2627](https://github.com/apache/nuttx/pull/2627) OS internal function should indicate the error by return negative value 28701* [#2630](https://github.com/apache/nuttx/pull/2630) libc: net: implement socketpair 28702* [#2631](https://github.com/apache/nuttx/pull/2631) sched: mqueue: simplify the mqueue reailize 28703* [#2650](https://github.com/apache/nuttx/pull/2650) libc: ctype/iscntrl: correct the control character function 28704* [#2653](https://github.com/apache/nuttx/pull/2653) sched: Don't call sched_lock()/unlock() in nx_waitid()/waitpid() for SMP 28705* [#2668](https://github.com/apache/nuttx/pull/2668) Kernel module should prefer functions with nx/kmm prefix 28706* [#2675](https://github.com/apache/nuttx/pull/2675) libc: Add placement new and new[] function 28707* [#2693](https://github.com/apache/nuttx/pull/2693) libxx: use built-in __aeabi_atexit() if LIBSUPCXX is enabled 28708* [#2694](https://github.com/apache/nuttx/pull/2694) libc/machine/arch: fix build break if enable armv8 ELF 28709* [#2719](https://github.com/apache/nuttx/pull/2719) sched/task: setup the scheduling policy to task 28710* [#2726](https://github.com/apache/nuttx/pull/2726) sched: sched: Remove sched_lock/unlock from nxsched_set_affinity() 28711* [#2737](https://github.com/apache/nuttx/pull/2737) sched: task: Fix a potential bug in nxtask_assign_pid() 28712* [#2740](https://github.com/apache/nuttx/pull/2740) sched/timer: get the previous reload value correctly 28713* [#2741](https://github.com/apache/nuttx/pull/2741) libc: unistd/fpathconf: enhance fpathconf 28714* [#2742](https://github.com/apache/nuttx/pull/2742) libc: pthread/cond: enhance pthread_cond_destroy 28715* [#2744](https://github.com/apache/nuttx/pull/2744) sched: task: Fix comments and label in nxtask_assign_pid() 28716* [#2765](https://github.com/apache/nuttx/pull/2765) sched: pthread: Return get_errno instead the hardcode value 28717* [#2767](https://github.com/apache/nuttx/pull/2767) sched/wqueue/notifier: protect the work notifier with critical section 28718* [#2797](https://github.com/apache/nuttx/pull/2797) sched: group: Fix group_kill_children() for SMP 28719* [#2849](https://github.com/apache/nuttx/pull/2849) mqueue: Add _MQ_OPEN, _MQ_CLOSE and _MQ_UNLINK macro 28720* [#2855](https://github.com/apache/nuttx/pull/2855) libs: Remove the duplicated _NX_ and _MQ_ macro 28721* [#2865](https://github.com/apache/nuttx/pull/2865) libc: :machine:risc-v:unifying elf relocation code 28722* [#2872](https://github.com/apache/nuttx/pull/2872) sched: pthread: Fix pthread cmdline issue 28723* [#2881](https://github.com/apache/nuttx/pull/2881) libc: Move stack check stuff from libc/stdlib/ to libc/assert/ 28724* [#2904](https://github.com/apache/nuttx/pull/2904) libc: unistd/getcwd: enhance getcwd when buf is NULL 28725* [#2906](https://github.com/apache/nuttx/pull/2906) mm: umm_heap: valloc: support valloc (LEGACY) 28726* [#2910](https://github.com/apache/nuttx/pull/2910) libc/hex2bin: fix handling of segment offsets 28727* [#2919](https://github.com/apache/nuttx/pull/2919) sched: fix fd leak in dlopen 28728* [#2938](https://github.com/apache/nuttx/pull/2938) libs: misc: Remove critical section in lib_filesem.c for SMP 28729* [#2942](https://github.com/apache/nuttx/pull/2492) mtd: progmem: Add up_progmem_read callback guarded by ARCH_HAVE_PROGMEM_READ 28730* [#2946](https://github.com/apache/nuttx/pull/2946) sched: task: Call nxtask_flushstreams() without critical section 28731* [#2960](https://github.com/apache/nuttx/pull/2960) sched: signal: sigdeliver: fix system block when kill signal to idle in SMP 28732* [#2980](https://github.com/apache/nuttx/pull/2980) include: Add iso646.h for alternative spellings 28733* [#2981](https://github.com/apache/nuttx/pull/2981) sched: Remove all group id related stuff 28734* [#3033](https://github.com/apache/nuttx/pull/3033) unistd: Fix getpriority not handling invalid input value 28735* [#3080](https://github.com/apache/nuttx/pull/3080) sched: semaphore: Remove a redundant critical section in nxsem 28736* [#3083](https://github.com/apache/nuttx/pull/3083) libc: stdio/lib_clearerr: Did not clear stream buffer flags in clearerr 28737* [#3086](https://github.com/apache/nuttx/pull/3086) mm: improve the memory manager modularity and reduce the information explosion 28738* [#3111](https://github.com/apache/nuttx/pull/3111) sched: Sporadic scheduler: Fix time calculation and compile errors when assertions are enabled: 28739* [#3115](https://github.com/apache/nuttx/pull/3115) libc: time: localtime: fix race condition 28740* [#3121](https://github.com/apache/nuttx/pull/3121) mm/heap: Move semaphore related declaration to private header 28741* [#3123](https://github.com/apache/nuttx/pull/3123) sched: pthread: Remove a redundant critical section in pthread_condclockwait.c 28742* [#3131](https://github.com/apache/nuttx/pull/3131) mm: Minor fix for heap manager 28743* [#3159](https://github.com/apache/nuttx/pull/3159) mm: mm_heap: Remove critical section in mm_sem.c 28744* [#3170](https://github.com/apache/nuttx/pull/3170) libc: Move getopt() variables into TLS 28745* [#3196](https://github.com/apache/nuttx/pull/3196) sched/signal: Implement SA_NODEFER 28746* [#3228](https://github.com/apache/nuttx/pull/3228) mm/mm_heap: fix compile failed when open DEBUG_MM 28747* [#3244](https://github.com/apache/nuttx/pull/3244) libdsp: Improvements for libdsp and support for fixed16 libdsp implementation 28748* [#3247](https://github.com/apache/nuttx/pull/3247) sched: Move the default Task Stack size to Stack menu 28749* [#3251](https://github.com/apache/nuttx/pull/3251) libc: update pthread_once according to the specification 28750* [#3253](https://github.com/apache/nuttx/pull/3253) libc pthread: Fix pthread_rwlock_init return error 28751* [#3268](https://github.com/apache/nuttx/pull/3268) libdsp/fixed16: add open-loop handler 28752* [#3272](https://github.com/apache/nuttx/pull/3272) libc: Implement getopt_long() and getopt_long_only() 28753* [#3280](https://github.com/apache/nuttx/pull/3280) libc: Correct some getopt() logic 28754* [#3289](https://github.com/apache/nuttx/pull/3289) sched: task: Fix to initialize the task-specific data 28755* [#3294](https://github.com/apache/nuttx/pull/2418) libc: getopt(): Fix Use of Pointer before NULL check 28756* [#3299](https://github.com/apache/nuttx/pull/3299) libc: getopt_common(): Correct handling of unsupported long options. 28757* [#3308](https://github.com/apache/nuttx/pull/3308) libc: getopt_long(): Add support for required argument format 28758* [#3445](https://github.com/apache/nuttx/pull/3445) libc: update stream getoffset to handle write case 28759* [#3447](https://github.com/apache/nuttx/pull/2450) libc: correct zoneinfo genromfs source directory 28760 28761## Major Changes to the Build System 28762 28763### New Features 28764* [#1834](https://github.com/apache/nuttx/pull/1834) License/authorship handling scripts 28765* [#2107](https://github.com/apache/nuttx/pull/2107) build: Makefile should reference CONFIG_HOST_xxx 28766* [#2392](https://github.com/apache/nuttx/pull/2392) configure.sh: support custom board build config with absolute path 28767* [#2824](https://github.com/apache/nuttx/pull/2824) build/esp32: Create Flash size configuration and a new DOWNLOAD make target 28768* [#3317](https://github.com/apache/nuttx/pull/3317) tols: Update python scripts to py3 and lint all of them againt Black 28769 28770### Bug Fixes 28771* [#1890](https://github.com/apache/nuttx/pull/1890) make/expression: improving up asm/C/C++ compile times(make with multi-jobs only) 28772* [#1940](https://github.com/apache/nuttx/pull/1940) cygwin build - path issue fix for Renesas arch 28773* [#2032](https://github.com/apache/nuttx/pull/2032) build: Change .external_dummy to dummy 28774* [#2101](https://github.com/apache/nuttx/pull/2101) build: Add $(OBJS) and $(BIN) to CLEAN macro to clean objects also in subdirectories 28775* [#2192](https://github.com/apache/nuttx/pull/2192) build: Move __NuttX__ definition to tools/[Config.mk](http://Config.mk) 28776* [#2221](https://github.com/apache/nuttx/pull/2221) tools: Avoid messing the final binary nuttx.(bin,hex,...) compilation msg 28777* [#2335](https://github.com/apache/nuttx/pull/2335) build: Parallelize depend file generation 28778* [#2380](https://github.com/apache/nuttx/pull/2380) tools: Fix nuttx-gdbinit for armv7-m with FPU 28779* [#2404](https://github.com/apache/nuttx/pull/2404) Update checkrelease script to check [readme.md](http://readme.md) instead of .txt 28780* [#2411](https://github.com/apache/nuttx/pull/2411) tools: Add 'handle SIGUSR1' to nuttx-gdbinit for the NuttX sim SMP 28781* [#2432](https://github.com/apache/nuttx/pull/2432) build system: add missing --obj-path to MKDEP 28782* [#2557](https://github.com/apache/nuttx/pull/2557) tools/version.sh: Fix the version retrieved from GIT 28783* [#2561](https://github.com/apache/nuttx/pull/2561) tools: Fix version.sh 28784* [#2642](https://github.com/apache/nuttx/pull/2642) tools/version.sh: Fix the version retrieved from git-tag 28785* [#2673](https://github.com/apache/nuttx/pull/2673) tools: esp32: add a gdb script to show backtrace 28786* [#2679](https://github.com/apache/nuttx/pull/2679) tools: esp32: btdecode.sh: Script to decode the Xtensa backtrace. 28787* [#2701](https://github.com/apache/nuttx/pull/2701) tools: gdbinit: add support for reporting total and used stack size 28788* [#2729](https://github.com/apache/nuttx/pull/2729) tools: esp32: backtrace.gdbscript: Add comments 28789* [#2803](https://github.com/apache/nuttx/pull/2803) tools: esp32: Remove some duplicated output 28790* [#2882](https://github.com/apache/nuttx/pull/2882) tools: esp32: refine the QEMU image generation. 28791* [#2895](https://github.com/apache/nuttx/pull/2895) tools: esp32: fix warnings from ShellCheck 28792* [#2930](https://github.com/apache/nuttx/pull/2930) tools: version.sh: If the version is not available, use 0.0.0 28793* [#2982](https://github.com/apache/nuttx/pull/2982) tools: nxstyle: Verify relative path in the file header 28794* [#3004](https://github.com/apache/nuttx/pull/3004) tools: esp32XX: Delete the Makefile that downloads IDF. 28795* [#3012](https://github.com/apache/nuttx/pull/3012) tools: esp32xx: Few fixes/improvements to the post build scripts 28796* [#3017](https://github.com/apache/nuttx/pull/3017) tools: esp32: [Config.mk](http://Config.mk): Revert part of "Don't abort make when QEMU script fails" 28797* [#3094](https://github.com/apache/nuttx/pull/3094) tools: version.sh: Fix PATCH including extra version 28798 28799## Architectural Support 28800 28801### New Architectures 28802* [#1995](https://github.com/apache/nuttx/pull/1995) arch: Add custom arch chip build support 28803* [#2161](https://github.com/apache/nuttx/pull/2161) Added Support for more TI Tiva Microcontrollers: TM4C123GH6PZ, TM4C123GH6PGE, TM4C129ENCPDT, and TM4C129ENCZAD. 28804* [#2566](https://github.com/apache/nuttx/pull/2566) arch/risc-v: Add BL602 support 28805* [#2974](https://github.com/apache/nuttx/pull/2974) STM32L5 Architecture Support 28806* [#3001](https://github.com/apache/nuttx/pull/3001) arch:riscv64:basic porting for C906 28807* [#3023](https://github.com/apache/nuttx/pull/3023) Remove nr5m100 and gap8 support 28808 28809### Architectures with significant improvements 28810 28811#### ARM 28812* [#2042](https://github.com/apache/nuttx/pull/2042) Fix interrupt stack handlings for ARM SMP 28813* [#2061](https://github.com/apache/nuttx/pull/2061) Refactor arm interrupt stack related code 28814* [#2309](https://github.com/apache/nuttx/pull/2309) Fix armv7-a L2CC and apply the code to the sabre-6quad board 28815* [#2876](https://github.com/apache/nuttx/pull/2876) arm: ARMv6-M vector table offset register support 28816* [#2932](https://github.com/apache/nuttx/pull/2932) arch: armv6-m: Apply armv7-m signal handling logic 28817* [#2944](https://github.com/apache/nuttx/pull/2944) armv8-m: Fix EXC_RETURN for non-secure usage 28818* [#2990](https://github.com/apache/nuttx/pull/2990) arch/armv7-m: Adds dwt helper functions for controlling watchpoints i… 28819 28820#### BL602 28821* [#2614](https://github.com/apache/nuttx/pull/2614) bl602: Update register maps and lower half drivers 28822* [#2633](https://github.com/apache/nuttx/pull/2633) BL602: Add support for system reset modes 28823* [#2655](https://github.com/apache/nuttx/pull/2655) arch/risc-v/bl602 : add pwm onshot watchdog driver 28824* [#2659](https://github.com/apache/nuttx/pull/2659) arch/risc-v/bl602 : add spiflash(hardware sf controller) 28825* [#2669](https://github.com/apache/nuttx/pull/2669) risc-v/bl602 : add gpioirq、 i2c(master) driver. 28826* [#2804](https://github.com/apache/nuttx/pull/2804) arch/risc-v/bl602: spi_master support. 28827* [#2809](https://github.com/apache/nuttx/pull/2809) arch:risc-v:bl602: enable FPU for this target. 28828* [#2836](https://github.com/apache/nuttx/pull/2836) :risc-v:bl602:add support for elf file apps 28829* [#2991](https://github.com/apache/nuttx/pull/2991) risc-v/bl602: Add wifi and ble support 28830 28831#### CXD56XX 28832* [#2750](https://github.com/apache/nuttx/pull/2750) arch: cxd56xx: Add i2c bitbang lower driver 28833* [#2830](https://github.com/apache/nuttx/pull/2830) Driver-specific spinlock for cxd56_serial.c 28834 28835#### ESP32 28836* [#1893](https://github.com/apache/nuttx/pull/1893) Add ESP32 WiFi adapter and driver 28837* [#1942](https://github.com/apache/nuttx/pull/1942) Implement BASIC reset logic 28838* [#1945](https://github.com/apache/nuttx/pull/1945) Added Timer Support 28839* [#1958](https://github.com/apache/nuttx/pull/1958) When PSRAM is enabled allow drivers and tasks to allocate memory from a separate internal memory 28840* [#1978](https://github.com/apache/nuttx/pull/1978) Add power management of deep-sleep 28841* [#2074](https://github.com/apache/nuttx/pull/2074) Add real-time timer support for WiFi 28842* [#2138](https://github.com/apache/nuttx/pull/2138) Add Partition and OTA device 28843* [#2199](https://github.com/apache/nuttx/pull/2199) SPI Flash driver uses global sem for all MTD 28844* [#2224](https://github.com/apache/nuttx/pull/2224) Add SPI Flash hardware encryption I/O support 28845* [#2234](https://github.com/apache/nuttx/pull/2234) Include cache workaround to PSRAM 28846* [#2242](https://github.com/apache/nuttx/pull/2242) Watchdog support (MWDTs) 28847* [#2269](https://github.com/apache/nuttx/pull/2269) Add high memory support to work with PSRAM 28848* [#2294](https://github.com/apache/nuttx/pull/2294) Refactor ESP32 Wi-Fi driver 28849* [#2296](https://github.com/apache/nuttx/pull/2296) added support to automonitor by capture 28850* [#2474](https://github.com/apache/nuttx/pull/2474) Optimize IRAM usage based on esp-idf 28851* [#2514](https://github.com/apache/nuttx/pull/2514) allows the rtc wdt to be configured in bootloader and used later 28852* [#2515](https://github.com/apache/nuttx/pull/2515) Added support for RTC WDT 28853* [#2550](https://github.com/apache/nuttx/pull/2550) enables started flag if the wdt was turned on in bootloader 28854* [#2613](https://github.com/apache/nuttx/pull/2613) Added driver api to reload counter instantly 28855* [#2716](https://github.com/apache/nuttx/pull/2716) Add AES hardware accelerator driver 28856* [#2721](https://github.com/apache/nuttx/pull/2613) Add efuse driver 28857* [#2831](https://github.com/apache/nuttx/pull/2831) Writeback PSRAM data when mapping SPI Flash address to ESP32's address bus 28858* [#2840](https://github.com/apache/nuttx/pull/2840) Add esp32_gpio_matrix_in/out to replace ROM functions 28859* [#2858](https://github.com/apache/nuttx/pull/2858) Fix a memory leak when discarding a large packet. 28860* [#2939](https://github.com/apache/nuttx/pull/2939) Refactor ESP32 WiFi driver to support station and softAP coexistence 28861* [#2947](https://github.com/apache/nuttx/pull/2947) esp32_ummap: write back spiram cache before calling Cache_Flush 28862* [#2965](https://github.com/apache/nuttx/pull/2965) Add more flash options to esptool 28863* [#2979](https://github.com/apache/nuttx/pull/2979) Add support for I2C tracing 28864* [#2983](https://github.com/apache/nuttx/pull/2983) Extract memory layout definitions to a separate header 28865* [#2999](https://github.com/apache/nuttx/pull/2999) Add WPA2 Enterprise and WPA3 support 28866* [#3003](https://github.com/apache/nuttx/pull/3003) Re-organise the different heap regions 28867* [#3048](https://github.com/apache/nuttx/pull/3048) timer driver refactor 28868* [#3233](https://github.com/apache/nuttx/pull/3233) Bugfixes and Improvements for SPI DMA Exchange function 28869 28870#### ESP32C3 28871* [#2870](https://github.com/apache/nuttx/pull/2870) Support for ESP32-C3 GPIO Driver 28872* [#2875](https://github.com/apache/nuttx/pull/2875) risc-v/esp32c3: Add support for Main System Watchdog Timer 28873* [#2901](https://github.com/apache/nuttx/pull/2901) esp32c3: Add system reset. 28874* [#2965](https://github.com/apache/nuttx/pull/2965) ESP32XX: Add more flash options to esptool 28875* [#3006](https://github.com/apache/nuttx/pull/3006) esp32-c3: Adds timer driver 28876* [#3007](https://github.com/apache/nuttx/pull/3007) risc-v/esp32-c3: complements serial driver 28877* [#3028](https://github.com/apache/nuttx/pull/3028) ESP32-C3: Add I2C drive 28878* [#3029](https://github.com/apache/nuttx/pull/3029) esp32-c3: Adds termios support 28879* [#3040](https://github.com/apache/nuttx/pull/3040) riscv/esp32c3: Add ESP32-C3 WLAN netcard driver 28880* [#3126](https://github.com/apache/nuttx/pull/3126) risc-v/esp32-c3: Add support to SPI Flash 28881* [#3160](https://github.com/apache/nuttx/pull/3160) riscv/esp32c3: Add standard C atomic function 28882 28883#### IMX6 28884* [#2595](https://github.com/apache/nuttx/pull/2595) Add imx_enet driver 28885 28886#### IMXRT 28887* [#2212](https://github.com/apache/nuttx/pull/2212) imxrt: adds support for WDOG1 28888* [#2354](https://github.com/apache/nuttx/pull/2354) imxrt: Added support for DP83825I PHY 28889* [#2461](https://github.com/apache/nuttx/pull/2461) imxrt: Added NETDEV_LATEINIT option for Ethernet 28890* [#2471](https://github.com/apache/nuttx/pull/2471) imxrt: Support serial single-wire mode and fix parity settings 28891* [#2929](https://github.com/apache/nuttx/pull/2929) imxrt: changes to FlexCAN driver support 28892 28893#### NRF52 28894* [#2148](https://github.com/apache/nuttx/pull/2148) nrf52_wdt: split into low-level API and watchdog driver lower-half 28895* [#2149](https://github.com/apache/nuttx/pull/2149) nrf52832: add errata mitigation code for various RADIO issues 28896* [#2182](https://github.com/apache/nuttx/pull/2182) nrf52: support configuring no console/serial 28897* [#2189](https://github.com/apache/nuttx/pull/2189) nrf52_spi: support unconnected MISO/MOSI pins 28898* [#2207](https://github.com/apache/nuttx/pull/2207) nrf52: add POWER register definitions; support enabling DC/DC regulator 28899* [#2270](https://github.com/apache/nuttx/pull/2270) nRF52 SPI improvements 28900* [#2440](https://github.com/apache/nuttx/pull/2440) nrf52 ADC: minor fixes 28901* [#2674](https://github.com/apache/nuttx/pull/2674) nrf52_i2c: add support for I2C_M_NOSTOP and I2C_M_NOSTART flags 28902* [#2705](https://github.com/apache/nuttx/pull/2705) nrf52: Add a static copy buffer for i2c NOSTART transfers 28903* [#2712](https://github.com/apache/nuttx/pull/2712) nRF52: support stack coloration 28904* [#2717](https://github.com/apache/nuttx/pull/2717) I2C bitbang driver (and nRF52 implementation) 28905* [#2735](https://github.com/apache/nuttx/pull/2735) nRF52: add support for building SoftDevice BLE controller 28906* [#2756](https://github.com/apache/nuttx/pull/2756) nrf52: add stackcheck support 28907 28908#### RP2040 28909* [#2916](https://github.com/apache/nuttx/pull/2916) rp2040: Raspberry Pi Pico SMP support 28910* [#2927](https://github.com/apache/nuttx/pull/2927) rp2040: Fix LDFLAGS for boot stage2 28911* [#2952](https://github.com/apache/nuttx/pull/2952) rp2040: Add I2C driver support 28912* [#2986](https://github.com/apache/nuttx/pull/2986) rp2040: Add SPI driver support 28913* [#3002](https://github.com/apache/nuttx/pull/3002) rp2040: SPI driver DMA transfer support 28914* [#3057](https://github.com/apache/nuttx/pull/3057) rp2040: Fix SPI halfword DMA transfer 28915 28916#### S32K1XX 28917* [#2900](https://github.com/apache/nuttx/pull/2900) s32k1xx: Support ramfunc 28918 28919#### STM32 28920* [#2010](https://github.com/apache/nuttx/pull/2010) arch/arm/src/stm32h7/stm32_spi.c: fixed build issue when SPI is configured 28921* [#2095](https://github.com/apache/nuttx/pull/2095) arch: stm32: fix otghs logic to support interface requests 28922* [#2177](https://github.com/apache/nuttx/pull/2177) FLASH waiting cycles are configured based on HCLK. 28923* [#2180](https://github.com/apache/nuttx/pull/2180) stm32 - Add register mappings for STM32G474 VREFBUF 28924* [#2194](https://github.com/apache/nuttx/pull/2194) stm32 - Add register mappings for STM32Gxxxxx-family DAC 28925* [#2273](https://github.com/apache/nuttx/pull/2273) stm32/stm32_spi: Add SPI register definitions for STM32G47xxx 28926* [#2288](https://github.com/apache/nuttx/pull/2288) stm32: Add DMAMUX register mappings and request IDs 28927* [#2325](https://github.com/apache/nuttx/pull/2325) arch/arm/src/stm32/stm32_serial.c: for flowcontrol use common idiom for enabling/disabling RX interrupts 28928* [#2473](https://github.com/apache/nuttx/pull/2473) STM32 - Add ADC register definitions for STM32G4 family 28929* [#2477](https://github.com/apache/nuttx/pull/2477) STM32 FLASH latency is calculated based on Vin 28930* [#2985](https://github.com/apache/nuttx/pull/2985) stm32 Ethernet hardening 28931 28932#### STM32F7 28933* [#2209](https://github.com/apache/nuttx/pull/2209) stm32f7/stm32_serial.c: fix console re-initialisation if DMA enabled 28934* [#3489](https://github.com/apache/nuttx/pull/3489) stm32f7: Freeze tickless timer during debug halt. 28935 28936#### STM32H7 28937* [#2880](https://github.com/apache/nuttx/pull/2880) stm32h7: add definitions for DAC 28938* [#2955](https://github.com/apache/nuttx/pull/2955) stm32h7:Add DBGMCU missing from master 28939* [#2994](https://github.com/apache/nuttx/pull/2994) stm32h7: Allow custom clock configuration to use stdclockconfig 28940* [#3143](https://github.com/apache/nuttx/pull/3143) stm32h7: DMA BDMA does not auto disabled on completion 28941* [#3207](https://github.com/apache/nuttx/pull/3207) usbhost: Add usb host tracing strings to stm32h7 28942* [#3458](https://github.com/apache/nuttx/pull/3458) stm32h7: Adds stm32_dbgmcu.h to match stm32f7 port 28943* [#3461](https://github.com/apache/nuttx/pull/3461) stm32h7: Expose flash lock, unlock, and write protect functions to boards 28944 28945#### STM32L4 28946* [#2068](https://github.com/apache/nuttx/pull/2068) STM32L4: Improvements on ADC driver 28947* [#2178](https://github.com/apache/nuttx/pull/2178) STM32L4 ADC driver: extenal event configuration 28948* [#2220](https://github.com/apache/nuttx/pull/2220) STM32L4 TIMER: Add some helper functions 28949* [#2232](https://github.com/apache/nuttx/pull/2232) STM32L4 ADC: Add injected channel support. 28950 28951#### STM32L5 28952* [#3090](https://github.com/apache/nuttx/pull/3090) stm32l5: Optional LSE xtal drive strength ramp-up 28953 28954#### Renesas RX65N 28955* [#2469](https://github.com/apache/nuttx/pull/2469) USB Host Driver Support 28956 28957#### Risc-V 28958* [#2470](https://github.com/apache/nuttx/pull/2470) risc-v: Introduce basic setjmp support 28959* [#2918](https://github.com/apache/nuttx/pull/2918) risc-v: up_sigdeliver missing fpu contexts. 28960 28961#### RV64 28962* [#2928](https://github.com/apache/nuttx/pull/2928) rv64:add API up_copyfullstate for later FPU support 28963* [#3018](https://github.com/apache/nuttx/pull/3018) rv64:c906:enable DP FPU support 28964* [#3073](https://github.com/apache/nuttx/pull/3073) rv64:c906:demo protect build without the PMP 28965* [#3087](https://github.com/apache/nuttx/pull/3087) rv64: keep the stack to be 16bytes aligned 28966* [#3098](https://github.com/apache/nuttx/pull/3098) rv64:fix 64bit data type and instruction for FPU handlers 28967* [#3203](https://github.com/apache/nuttx/pull/3203) rv64:c906:add risc-v PMP and change mem map for protect build. 28968 28969#### Xtensa 28970* [#1933](https://github.com/apache/nuttx/pull/1933) Add support to PSRAM using SPIRAM interface 28971* [#2014](https://github.com/apache/nuttx/pull/2014) Add the optional interrupt stack to the Xtensa architecture 28972* [#2352](https://github.com/apache/nuttx/pull/2352) Print the bakctrace on assertions 28973* [#2504](https://github.com/apache/nuttx/pull/2504) Get full backtrace from interrupts. 28974* [#3015](https://github.com/apache/nuttx/pull/3015) hostfs: Make host_stat populate st_size 28975 28976### Minor changes 28977 28978* [#1904](https://github.com/apache/nuttx/pull/1904) xtensa: ESP32: Fixed the type of cpuint variables in esp32_emac.c 28979* [#1943](https://github.com/apache/nuttx/pull/1943) xtensa: ESP32: Fix and clean some corners of GPIOs configuration. 28980* [#1947](https://github.com/apache/nuttx/pull/1947) xtensa: esp32: Fix crash on startup 28981* [#1948](https://github.com/apache/nuttx/pull/1948) xtensa: ESP32: Fixes the GPIO's function mask test 28982* [#1960](https://github.com/apache/nuttx/pull/1960) xtensa: xtensa.h: Include sys/types.h needed if STACK_COLORATON is enabled 28983* [#1968](https://github.com/apache/nuttx/pull/1968) arm: kinetis: freedom-k64f: Declare missing NUM_BUTTONS 28984* [#1990](https://github.com/apache/nuttx/pull/1990) arm: kinetis: flexcan fixed compile error 28985* [#2120](https://github.com/apache/nuttx/pull/2120) arm: stm32h7: Fix missing 'ret' reported by Frank-Christian Kruegel 28986* [#2159](https://github.com/apache/nuttx/pull/2159) xtensa: esp32: Fix SPI master DMA RX buffer memcpy size erro 28987* [#2160](https://github.com/apache/nuttx/pull/2160) arm: stm32l4/stm32l4_adc.c: fix copy-paste mistake with CONFI 28988* [#2210](https://github.com/apache/nuttx/pull/2210) arm: stm32/stm32_adc.c: do not allow negative ref count 28989* [#2214](https://github.com/apache/nuttx/pull/2214) xtensa: esp32: Fix rt-timer issues 28990* [#2233](https://github.com/apache/nuttx/pull/2233) xtensa: esp32: Fix the memory regions with regards to the range used by the ROM 28991* [#2240](https://github.com/apache/nuttx/pull/2240) arm: nrf52 GPIO/GPIOTE: better expose pin interrupt capability 28992* [#2284](https://github.com/apache/nuttx/pull/2284) arm: stm32h7/stm32_dmamux.h: Fix errors in bitfield definitions 28993* [#2286](https://github.com/apache/nuttx/pull/2286) arm: stm32f0l0g0/stm32_dmamux.h: Fix errors in bitfield definitions 28994* [#2287](https://github.com/apache/nuttx/pull/2287) arm: stm32h7/stm32_dmamux.h: Add missing CCR SPOL defines 28995* [#2300](https://github.com/apache/nuttx/pull/2300) arm: sam34: compile error on SAM34 TWI 28996* [#2316](https://github.com/apache/nuttx/pull/2844) risc-v: minor fix 28997* [#2330](https://github.com/apache/nuttx/pull/2330) xtensa: esp32/esp32_tim.c: Fix build when debug is enabled. 28998* [#2336](https://github.com/apache/nuttx/pull/2336) arm: stm32l4: correct macros STM32L4_CAN_MCR_OFFSET, etc... to match defines 28999* [#2344](https://github.com/apache/nuttx/pull/2344) xtensa: esp32/esp32_gpio.c: Fix GPIO IRQ assert condition 29000* [#2351](https://github.com/apache/nuttx/pull/2351) xtensa: esp32: Fix issues of force-sleep 29001* [#2355](https://github.com/apache/nuttx/pull/2355) xtensa: esp32_himem: Fix issue that was preventing to map all free memory 29002* [#2361](https://github.com/apache/nuttx/pull/2361) arm: nrf52 GPIO: minor fixes 29003* [#2364](https://github.com/apache/nuttx/pull/2364) arm: stm32h7: Fix bug where more than CONFIG_MM_REGIONS would be allocated 29004* [#2372](https://github.com/apache/nuttx/pull/2372) rv64: Fix SCN/PRI.PTR definitions 29005* [#2373](https://github.com/apache/nuttx/pull/2373) risc-v: Don't use non existent "saved_status" 29006* [#2423](https://github.com/apache/nuttx/pull/2423) xetnsa: Couple of Xtensa fixes 29007* [#2448](https://github.com/apache/nuttx/pull/2448) arm: stm32/stm32h7: fix the configuration of PWM outputs when subsequent channels are not enabled 29008* [#2454](https://github.com/apache/nuttx/pull/2454) xtensa: esp32/esp32-core: Fix #ifdef warning and update MM_SECTIONS 29009* [#2483](https://github.com/apache/nuttx/pull/2483) arm: stm32: convert all STM32G47X specific code to generic STM32G4 series code 29010* [#2519](https://github.com/apache/nuttx/pull/2519) arm: imxrt: replace clock_systimespec with clock_systime_timespec 29011* [#2536](https://github.com/apache/nuttx/pull/2536) xtensa: esp32: fixes enable int function and gets apb clk frequency through function 29012* [#2546](https://github.com/apache/nuttx/pull/2546) arm: imxrt: imxrt_usdhc.c: fixed no DMA build error 29013* [#2551](https://github.com/apache/nuttx/pull/2551) arm: stm32h7x3xx_memorymap.h invalid address map for fdcan 29014* [#2554](https://github.com/apache/nuttx/pull/2554) xtensa: Esp32 wifi fixes 29015* [#2555](https://github.com/apache/nuttx/pull/2555) xtensa: esp32/esp32_spiflash.c: Writeback PSRAM data before invalidating the cache 29016* [#2559](https://github.com/apache/nuttx/pull/2559) risc-v: Remove duplicated declaration for up_irq_save and up_irq_restore 29017* [#2560](https://github.com/apache/nuttx/pull/2560) risc-v: Move csr.h to common place 29018* [#2568](https://github.com/apache/nuttx/pull/2568) risc-v: Move CSR register bit definition to csr.h 29019* [#2569](https://github.com/apache/nuttx/pull/2569) risc-v: Reuse the common up_schedule_sigaction implementation 29020* [#2570](https://github.com/apache/nuttx/pull/2570) arm: stm32g4: Fix incorrect FLASH wait states 29021* [#2573](https://github.com/apache/nuttx/pull/2573) xtensa: esp32: Bump NAME_MAX where CONFIG_ESP32_WIFI_SAVE_PARAM=y 29022* [#2584](https://github.com/apache/nuttx/pull/2584) xtensa: esp32_wifi_adapter.c: file mode for open doesn't make sense for O_RDONLY 29023* [#2589](https://github.com/apache/nuttx/pull/2589) risc-v: fix redefined CSR_INSTRET 29024* [#2612](https://github.com/apache/nuttx/pull/2612) arm: kinetis: S32K/Kinetis: Fix RTC settime prescaler 29025* [#2612](https://github.com/apache/nuttx/pull/2612) arm: S32K/Kinetis: Fix RTC settime prescaler 29026* [#2647](https://github.com/apache/nuttx/pull/2647) xtensa: esp32: Fix ESP32 serial UART tx ready check error 29027* [#2666](https://github.com/apache/nuttx/pull/2666) xtensa: esp32: Fix ESP32 SPI3 slave ops data error 29028* [#2676](https://github.com/apache/nuttx/pull/2676) arm: stm32412: Fixes pinmap CAN1 29029* [#2689](https://github.com/apache/nuttx/pull/2689) arm: tiva: Fix lm3s_ethernet.c with DEBUGASSERT 29030* [#2700](https://github.com/apache/nuttx/pull/2700) arm: nRF52 various minor fixes 29031* [#2708](https://github.com/apache/nuttx/pull/2708) xtensa: esp32: Fix ESP32 I2C driver issues 29032* [#2709](https://github.com/apache/nuttx/pull/2709) xtensa: esp32: Fix ESP32 SPI driver issues 29033* [#2722](https://github.com/apache/nuttx/pull/2722) arm: stm32f412:Replaced Kludged pinmap with one for SoC. 29034* [#2725](https://github.com/apache/nuttx/pull/2725) arm: nRF52: FIX wrong bitmask for DRIVE setting 29035* [#2727](https://github.com/apache/nuttx/pull/2727) xtensa: esp32_free_cpuint: Fix an assertion 29036* [#2728](https://github.com/apache/nuttx/pull/2728) xtensa: esp32_dma_init: Fix a dubious assertion 29037* [#2731](https://github.com/apache/nuttx/pull/2731) xtensa: esp_allocateheap.c: Correct ROM memory boundaries in SMP case 29038* [#2752](https://github.com/apache/nuttx/pull/2752) xtensa: esp32/esp32_spiflash.c: Fix the value of the page start address when invalidating the cache 29039* [#2755](https://github.com/apache/nuttx/pull/2755) xtensa: esp32: Fix compile errors with CONFIG_SMP=y 29040* [#2757](https://github.com/apache/nuttx/pull/2757) xtensa: esp32/esp32_wifi_adapter.c: Print debug output only when DEBUG_WIRLESS* are enabled 29041* [#2758](https://github.com/apache/nuttx/pull/2758) xtensa: Kconfig: Reduce the default value of the internal memory 29042* [#2759](https://github.com/apache/nuttx/pull/2759) xtensa: esp32/psram: Fix missing configs 29043* [#2761](https://github.com/apache/nuttx/pull/2761) risc-v: Remove unused and undefined file section "Public Variables" 29044* [#2763](https://github.com/apache/nuttx/pull/2763) arm: imx6: Apply the latest imxrt/imxrt_enet.c to imx6/imx_enet.c 29045* [#2771](https://github.com/apache/nuttx/pull/2771) arm: imx6: Update imx6 enet 29046* [#2772](https://github.com/apache/nuttx/pull/2771) arm: imx6 enet with TCP_WRITE_BUFFERS 29047* [#2777](https://github.com/apache/nuttx/pull/2777) arm: imx6: Fix a compile error with CONFIG_DEBUG_ASSERTIONS=y 29048* [#2779](https://github.com/apache/nuttx/pull/2779) arm: samv7/sam_mcan.c: fix some mismatches caused by renaming 29049* [#2782](https://github.com/apache/nuttx/pull/2782) arm: nRF52 fixes 29050* [#2788](https://github.com/apache/nuttx/pull/2788) risc-v: Don't declare riscv_addregion if CONFIG_MM_REGIONS is < 1. 29051* [#2791](https://github.com/apache/nuttx/pull/2791) arm: stm32f7/stm32_qspi.c: Fix warning of format strings 29052* [#2792](https://github.com/apache/nuttx/pull/2792) arm: [imxrt] Fix FlexCAN tx dropping frames 29053* [#2793](https://github.com/apache/nuttx/pull/2316) risc-v: Remove nx_start prototype from riscv_internal.h 29054* [#2795](https://github.com/apache/nuttx/pull/2795) arm: stm32f412:Corrected Pin count 29055* [#2796](https://github.com/apache/nuttx/pull/2796) xtensa: esp32: Fix cache issue detected by DEBUG_ASSERTION 29056* [#2799](https://github.com/apache/nuttx/pull/2799) RV64: handle relocation type R_RISCV_CALL_PLT in PIC build. 29057* [#2805](https://github.com/apache/nuttx/pull/2805) arm: imxrt1060 iperf 29058* [#2812](https://github.com/apache/nuttx/pull/2812) xtensa: esp32_spiflash.c: Fix preprocessor condition 29059* [#2813](https://github.com/apache/nuttx/pull/2813) xtensa: esp32: Add extern modifier to ROM function declaration 29060* [#2815](https://github.com/apache/nuttx/pull/2815) riscv: Fix files names in headers that were still using the old 'up_' prefix 29061* [#2832](https://github.com/apache/nuttx/pull/2832) xtensa: esp32: Fix the issue of WiFi internal malloc from PSRAM 29062* [#2844](https://github.com/apache/nuttx/pull/2844) risc-v: LiteX: Make Arty-A7 example work 29063* [#2867](https://github.com/apache/nuttx/pull/2867) arm: lpc17xx_40xx/lpc17_40_i2c.c: Propagate I2C I/O errors 29064* [#2886](https://github.com/apache/nuttx/pull/2886) arm: pic32mz: Chip does not have ANSEL register on port K 29065* [#2889](https://github.com/apache/nuttx/pull/2889) arm: pic32mx7 cannot perform context switch 29066* [#2892](https://github.com/apache/nuttx/pull/2892) risc-v: esp32-c3: Don't reserve any vectors for any special use. 29067* [#2893](https://github.com/apache/nuttx/pull/2893) risc-v: esp32-c3: Build serial driver only when selected 29068* [#2903](https://github.com/apache/nuttx/pull/2903) xtensa: esp32: xtensa_user: Implement a few more instructions 29069* [#2912](https://github.com/apache/nuttx/pull/2912) risc-v: esp32-c3: Fix CPU interrupts freeing on WDT driver 29070* [#2917](https://github.com/apache/nuttx/pull/2917) arm: Add 'select ARM_HAVE_WFE_SEV' to ARCH_CHIP_RP2040 29071* [#2920](https://github.com/apache/nuttx/pull/2920) risc-v: esp32-c3: Configure clock and call board initialize at startup 29072* [#2923](https://github.com/apache/nuttx/pull/2923) ez80: fix several bugs in emac driver 29073* [#2931](https://github.com/apache/nuttx/pull/2931) arm: kinetis: [FlexCAN] Fix TX drop #2792 and correctly set CAN timings to non-zero 29074* [#2931](https://github.com/apache/nuttx/pull/2931) arm: s32k1xx: [FlexCAN] Fix TX drop #2792 and correctly set CAN timings to non-zero 29075* [#2943](https://github.com/apache/nuttx/pull/2943) arm: stm32x7:lse ensure it is started 29076* [#2951](https://github.com/apache/nuttx/pull/2951) arm: stm32_wwdg debug log formatting 29077* [#2967](https://github.com/apache/nuttx/pull/2967) arm: STM32F7 lse static values directly from Kconfig 29078* [#2968](https://github.com/apache/nuttx/pull/2968) xtensa: esp32: Change I2C SCL default pin to a valid one 29079* [#2972](https://github.com/apache/nuttx/pull/2972) risc-v: esp32-c3: Fix GPIO pin function configuration 29080* [#2976](https://github.com/apache/nuttx/pull/2976) xtensa: ESP32: Fix I2C Kconfig bringing the character driver as a dependency 29081* [#2977](https://github.com/apache/nuttx/pull/2977) xtensa: ESP32: Fix GPIO pin function configuration 29082* [#2996](https://github.com/apache/nuttx/pull/2996) arm: stm32h747xi: Fix missing IO_CONFIG setting 29083* [#3008](https://github.com/apache/nuttx/pull/3008) risc-v: esp32-c3: free cpu in case it was preallocated in wdt driver 29084* [#3013](https://github.com/apache/nuttx/pull/3013) risc-v: bl602:fix bl602_flash_erase to erase the wrong block 29085* [#3034](https://github.com/apache/nuttx/pull/3034) arm: imx6: Fix an error message in imx_enet.c 29086* [#3051](https://github.com/apache/nuttx/pull/3051) risc-v: Internal functions should be prefixed with riscv_ not up 29087* [#3075](https://github.com/apache/nuttx/pull/3075) arm: Fix syscall number out of swi range in thumb mode 29088* [#3079](https://github.com/apache/nuttx/pull/3079) arm: kinetis: [FlexCAN] Correct reset state for CTRL1 register 29089* [#3079](https://github.com/apache/nuttx/pull/3079) arm: s32k1xx: [FlexCAN] Correct reset state for CTRL1 register 29090* [#3088](https://github.com/apache/nuttx/pull/3088) arm: samv7: Fix sam_putreg() parameter type 29091* [#3092](https://github.com/apache/nuttx/pull/3092) xtensa: xtensa: esp32_allocateheap.c: Don't allocate ROM regions when running in QEMU. 29092* [#3116](https://github.com/apache/nuttx/pull/3116) arm: stm32l5: Enable SPI support and license clearing 29093* [#3119](https://github.com/apache/nuttx/pull/2976) xtensa: sp32: Fix buffer size word-alignment for DMA transfers 29094* [#3125](https://github.com/apache/nuttx/pull/3125) risc-v: Internal functions should be prefixed with "riscv_" 29095* [#3130](https://github.com/apache/nuttx/pull/3145) xtensa: esp32: Fix SPI polling mode when DMA is also enabled. 29096* [#3135](https://github.com/apache/nuttx/pull/3135) rv64:c906:colorize the idle stack area;minor fixes. 29097* [#3145](https://github.com/apache/nuttx/pull/3145) xtensa: esp32_part_ioctl: Return -ENOTTY for unknown commands 29098* [#3162](https://github.com/apache/nuttx/pull/3162) arm: STM32 USB OTGFSDEV: Fix handling of SETUP OUT longer than 64 bytes 29099* [#3167](https://github.com/apache/nuttx/pull/3167) arm: stm32h7:SPI Fix 16 bit SPI mode 29100* [#3174](https://github.com/apache/nuttx/pull/3174) arm: Use macro defined swi range in dispatch_syscall 29101* [#3178](https://github.com/apache/nuttx/pull/3178) arm: tiva:cc13x0_adi3_refsys fix typo 29102* [#3198](https://github.com/apache/nuttx/pull/3198) arm: Stm32h7 fix heap clobber 29103* [#3199](https://github.com/apache/nuttx/pull/3199) xtensa: ESP32: Fix math for DMA buffer length rounding 29104* [#3200](https://github.com/apache/nuttx/pull/3200) xtensa: esp32: Fix DMA burst mode being unintendedly disabled 29105* [#3219](https://github.com/apache/nuttx/pull/3219) risc-v: bl602: fix _heap_start not word aligned 29106* [#3220](https://github.com/apache/nuttx/pull/3220) arm: Fix indexing for stm32h7 usbhost tracing 29107* [#3248](https://github.com/apache/nuttx/pull/3248) xtensa: esp32: remove extra initial newline on syslog call 29108* [#3283](https://github.com/apache/nuttx/pull/3283) rv64:add memory clobber to inline asm for syscall. 29109* [#3285](https://github.com/apache/nuttx/pull/3285) arm: Remove .cpu directive from assemble file 29110* [#3293](https://github.com/apache/nuttx/pull/3293) arm: armv6-m: Remove cpsid and cpsie from exception_common 29111* [#3307](https://github.com/apache/nuttx/pull/3307) arm: Replace the hardcode syscall number with macro 29112* [#3310](https://github.com/apache/nuttx/pull/3310) arm: armv8-m: Merge ite instruction to the previous one 29113* [#3311](https://github.com/apache/nuttx/pull/3311) arm: fix the potential corruption in initialization 29114* [#3313](https://github.com/apache/nuttx/pull/3313) arm: Replace "b lr" or "mov pc, lr" with "bx lr" 29115* [#3315](https://github.com/apache/nuttx/pull/3315) arm: Move setjmp/longjmp to libc/machine 29116* [#3326](https://github.com/apache/nuttx/pull/3326) arm: Update the old arm architecture with the recent fix 29117* [#3440](https://github.com/apache/nuttx/pull/3440) arm: Change all spsr_cxsf to spsr 29118* [#3448](https://github.com/apache/nuttx/pull/3448) arm: armv7-a: Remove the special process of the nest level 29119* [#3451](https://github.com/apache/nuttx/pull/3451) arm: Remove g_irqtmp, g_undeftmp and g_aborttmp 29120* [#3452](https://github.com/apache/nuttx/pull/3452) risc-v: esp32-c3: Refactors and fixes issues on serial driver. 29121* [#3457](https://github.com/apache/nuttx/pull/3457) arm: stm32h7: Actually use the AXI SRAM as the main heap as the documentation describes in PROTECTED mode. 29122* [#3459](https://github.com/apache/nuttx/pull/3459) arm: stm32h7: Fixes build error in stm32_sdmmc.c without DCACHE 29123* [#3473](https://github.com/apache/nuttx/pull/3473) xtensa: esp32: move common XTAL and RUN_IRAM configs to ESP32 KConfig 29124* [#3486](https://github.com/apache/nuttx/pull/3486) xtensa: esp32: Improve SPI polling to use the entire HW buffer 29125* [#3492](https://github.com/apache/nuttx/pull/3492) risc-v: riscv_initialize.c: Add telnet_initialize to riscv's up_initialize 29126* [#2868](https://github.com/apache/nuttx/pull/2868) xtensa: Fix xtensa stack coloring 29127 29128## Simulator 29129 29130### New Features 29131* [#2129](https://github.com/apache/nuttx/pull/2129) add "nimble" config, to test nimBLE on top of bthcisock 29132* [#2130](https://github.com/apache/nuttx/pull/2130) rpproxy/rpserver: force use 'CONFIG_SIM_M32' for 64bit system. 29133* [#2158](https://github.com/apache/nuttx/pull/2158) linux I2C bus support in sim 29134* [#2164](https://github.com/apache/nuttx/pull/2164) add LVGL configuration which uses the X11 framebuffer and mouse 29135* [#2198](https://github.com/apache/nuttx/pull/2198) support LCD emulation over X11; correctly decouple LCD/FB from X11/NX 29136* [#2579](https://github.com/apache/nuttx/pull/2579) make it conditional with FS_FAT 29137* [#2599](https://github.com/apache/nuttx/pull/2599) names: add writev/readv into name list 29138* [#2619](https://github.com/apache/nuttx/pull/2619) hci: reuse the reserved fields of hci buffer 29139* [#2690](https://github.com/apache/nuttx/pull/2690) support sim vfork 29140* [#2696](https://github.com/apache/nuttx/pull/2696) hcitty: add hcitty adapter 29141* [#2720](https://github.com/apache/nuttx/pull/2720) board/sim: Support NuttX BLE stack through uart shim driver 29142* [#3093](https://github.com/apache/nuttx/pull/3093) add heap policy and asan logic to support mm debug on sim platform 29143* [#3152](https://github.com/apache/nuttx/pull/3152) add dlsym to [nuttx-names.in](http://nuttx-names.in) 29144* [#3224](https://github.com/apache/nuttx/pull/3224) boards/sim: remove dsptest configuration 29145* [#3231](https://github.com/apache/nuttx/pull/3231) add the simulated lower-half FOC device 29146* [#3478](https://github.com/apache/nuttx/pull/3478) refactor signal handling 29147 29148### Bug Fixes 29149* [#2109](https://github.com/apache/nuttx/pull/2109) Revert "arch/sim: Make the SIGUSR1 host signal use the NuttX irq logic" 29150* [#2246](https://github.com/apache/nuttx/pull/2246) boards/sim/sim/sim/src/sim_touchscreen.c: add missing nx_disconnect 29151* [#2259](https://github.com/apache/nuttx/pull/2259) boards/sim: add atexit(2) into naming list 29152* [#2441](https://github.com/apache/nuttx/pull/2441) sim: fix input handling and add simulated buttons support from mouse 29153* [#2597](https://github.com/apache/nuttx/pull/2597) Revert "board/sim: Remove the too strict warning" 29154* [#3176](https://github.com/apache/nuttx/pull/3176) sim: fix signal deliver calling error on sim platform 29155* [#3205](https://github.com/apache/nuttx/pull/3205) sim: do not exit simulator on up_assert (just let the task exit) 29156 29157## Documentation 29158 29159### New Features 29160* [#1955](https://github.com/apache/nuttx/pull/1955) Add documentation for note filters and task trace guides 29161* [#1959](https://github.com/apache/nuttx/pull/1959) Documentation for the Timer Driver 29162* [#2268](https://github.com/apache/nuttx/pull/2268) Documentation for Watchdog Timer Driver 29163* [#2334](https://github.com/apache/nuttx/pull/2334) [CONTRIBUTING.md](http://CONTRIBUTING.md): talk about preferred commit message format 29164* [#2408](https://github.com/apache/nuttx/pull/2408) Documentation: support versioned docs 29165* [#2543](https://github.com/apache/nuttx/pull/2543) Documentation: how to use auto monitor feature to keep the chip alive 29166* [#2818](https://github.com/apache/nuttx/pull/2818) Documentation: introduce hardware platforms documentation 29167* [#2819](https://github.com/apache/nuttx/pull/2819) Documentation: document nRF52832 Sparkfun board (improve MDK board a bit) 29168* [#3022](https://github.com/apache/nuttx/pull/3022) hostfs: Document the backends and restrictions 29169* [#3127](https://github.com/apache/nuttx/pull/3127) Documentation: add ESP32 and DevKitC docs 29170* [#3138](https://github.com/apache/nuttx/pull/3138) Addind CMake based C++ project example in documentation 29171* [#3490](https://github.com/apache/nuttx/pull/3490) Documentation/esp32: Add supported peripherals 29172 29173### Improvements 29174* [#2021](https://github.com/apache/nuttx/pull/2021) Correct the links in Documentation folder 29175* [#2024](https://github.com/apache/nuttx/pull/2024) Fix broken documentation links 29176* [#2026](https://github.com/apache/nuttx/pull/2026) Documentation: Remove all tail spaces from *.rst and *.html 29177* [#2027](https://github.com/apache/nuttx/pull/2027) Documentation: Reorganize some section 29178* [#2031](https://github.com/apache/nuttx/pull/2031) Documentation/quickstart/debugging.rst: rewrite JTAG/OpenOCD section 29179* [#2045](https://github.com/apache/nuttx/pull/2045) Documentation: Misc fixups for broken links, errors, warnings 29180* [#2051](https://github.com/apache/nuttx/pull/2051) Documentation/quickstart/debugging: rewrite SWD sentence 29181* [#2106](https://github.com/apache/nuttx/pull/2106) documentation: change non-working URL 29182* [#2329](https://github.com/apache/nuttx/pull/2329) Documentation/components/drivers/character/pwm: fix pwm.c location 29183* [#2362](https://github.com/apache/nuttx/pull/2362) Documentation improvements 29184* [#2390](https://github.com/apache/nuttx/pull/2390) Documentation: improve debugging section 29185* [#2485](https://github.com/apache/nuttx/pull/2485) Documentaiton: merge quickstart to getting started 29186* [#2563](https://github.com/apache/nuttx/pull/2563) update Documentation/components/drivers/character/watchdog.rst 29187* [#3144](https://github.com/apache/nuttx/pull/3144) CI: remove linkcheck when building docs 29188* [#3180](https://github.com/apache/nuttx/pull/3180) documentation: improve boardctl() docs 29189* [#3194](https://github.com/apache/nuttx/pull/3194) Documentation: add syslog user API and other minor improvements 29190* [#3271](https://github.com/apache/nuttx/pull/3271) docs and comments: Update stale references to COPYING 29191* [#3470](https://github.com/apache/nuttx/pull/3470) Documentation: migrate ESP32 README to docs 29192 29193## Driver Support 29194 29195### New Driver Support 29196* [#1936](https://github.com/apache/nuttx/pull/1936) note: Add task trace support 29197* [#1989](https://github.com/apache/nuttx/pull/1989) sensors: Support fxos8700cq motion I2C sensor 29198* [#2091](https://github.com/apache/nuttx/pull/2091) usbdev: add Android Debug Bridge driver 29199* [#2166](https://github.com/apache/nuttx/pull/2166) lcd: Add LCD character driver: allows interacting with LCD directly from userspace 29200* [#2216](https://github.com/apache/nuttx/pull/2216) rc: support infrared remote control 29201* [#2282](https://github.com/apache/nuttx/pull/2282) audio: cxd56: add initial audio SRC implementation 29202* [#2301](https://github.com/apache/nuttx/pull/2301) analog: support for MAX1161X family of I2C 12 bit ADC chips 29203* [#2429](https://github.com/apache/nuttx/pull/2429) audio: add simple wm8994 codec driver 29204* [#2628](https://github.com/apache/nuttx/pull/2628) efuse: Add generic efuse driver for NuttX 29205* [#2736](https://github.com/apache/nuttx/pull/2736) console: Add generic support to LWL Console 29206* [#2829](https://github.com/apache/nuttx/pull/2829) sensor: add fakesensor driver 29207* [#3230](https://github.com/apache/nuttx/pull/3230) motor: add generic upper-half driver for Field Oriented Control (FOC) 29208* [#3474](https://github.com/apache/nuttx/pull/3474) sensors: Adds driver for hyt271 sensore module 29209 29210### Bug Fixes 29211* [#2036](https://github.com/apache/nuttx/pull/2036) serial: break from read after closing 29212* [#2039](https://github.com/apache/nuttx/pull/2039) sensors: add unified management for sensor 29213* [#2070](https://github.com/apache/nuttx/pull/2070) bluetooth: support HCI/L2CAP sockets, support HCI RAW channel 29214* [#2139](https://github.com/apache/nuttx/pull/2139) lcd: Ssd1306 cleanup 29215* [#2142](https://github.com/apache/nuttx/pull/2776) note: Add task name record for task trace 29216* [#2146](https://github.com/apache/nuttx/pull/2146) pipes: nx_pipe syscall takes three params, also use nx_close 29217* [#2175](https://github.com/apache/nuttx/pull/2175) wireless: gs2200m: Check disassociation from AP and enable rejoin 29218* [#2188](https://github.com/apache/nuttx/pull/2200) lcd_dev: put header in correct location; fix missing const 29219* [#2200](https://github.com/apache/nuttx/pull/2200) lcd: Minor fixes to ssd1306 i2c driver 29220* [#2201](https://github.com/apache/nuttx/pull/2512) wireless: gs2200m: Add function to get IWNWID / IWFREQ / IWSENS information 29221* [#2208](https://github.com/apache/nuttx/pull/2208) lcd: add optional putarea()/getarea() operations 29222* [#2215](https://github.com/apache/nuttx/pull/2215) sensors: add new feature about sensor driver model 29223* [#2223](https://github.com/apache/nuttx/pull/2223) audio: cxd56: cleanup for the spresense audio implementation 29224* [#2315](https://github.com/apache/nuttx/pull/2370) sensors: add common circular buffer management 29225* [#2318](https://github.com/apache/nuttx/pull/2318) sensors: update l3gd20 sensor driver with new sensor driver model 29226* [#2343](https://github.com/apache/nuttx/pull/2343) serial: Prevent RX stall 29227* [#2345](https://github.com/apache/nuttx/pull/2345) mtd/mtd_progmem.c: fix progmem_log2 parameter type to match prototype 29228* [#2369](https://github.com/apache/nuttx/pull/2369) sensors: support custom types of sensor 29229* [#2370](https://github.com/apache/nuttx/pull/2370) rc: fix bug about lirc_read 29230* [#2383](https://github.com/apache/nuttx/pull/2383) USB: Do not try to print NULL format strings for verbose trace messages when disabled 29231* [#2398](https://github.com/apache/nuttx/pull/2398) rptun: fix rptun rpmsg_unregister_callback fault 29232* [#2445](https://github.com/apache/nuttx/pull/2445) audio: Make audio_null play at real speed 29233* [#2488](https://github.com/apache/nuttx/pull/2488) crypto/arc4random: rename getrandom to arc4random_buf 29234* [#2490](https://github.com/apache/nuttx/pull/3482) leds: ws2812: make frequency selection more flexible 29235* [#2497](https://github.com/apache/nuttx/pull/2497) crypto/random_pool.c: fix getrandom() when thread calling it gets can… 29236* [#2508](https://github.com/apache/nuttx/pull/2508) leds/ws2812: optimize reset bytes 29237* [#2512](https://github.com/apache/nuttx/pull/2488) wireless/bluetooth: change the tx thread stack size to DEFAULT_TASK_STACKSIZE 29238* [#2564](https://github.com/apache/nuttx/pull/2564) audio: uninitialize usermq to NULL when the device has not 29239* [#2571](https://github.com/apache/nuttx/pull/2571) bluetooth: Fix bt_buff lifecycle 29240* [#2607](https://github.com/apache/nuttx/pull/2607) wireless: bluetooth: minor fix to bluetooth stack 29241* [#2609](https://github.com/apache/nuttx/pull/2609) wireless: bluetooth: fix minor issue in bt uart driver 29242* [#2611](https://github.com/apache/nuttx/pull/2611) wireless/bluetooth: Fix vairous issues found in bt uart shim driver 29243* [#2617](https://github.com/apache/nuttx/pull/2617) serial: should include <signal.h> explicitly 29244* [#2621](https://github.com/apache/nuttx/pull/2621) syslog: Added formatted timestamps in syslog. 29245* [#2636](https://github.com/apache/nuttx/pull/2636) pipes: pty shouldn't call nx_pipe and then file_detach in kernel space 29246* [#2664](https://github.com/apache/nuttx/pull/2664) can: fix RTR ioctl and support timeout 29247* [#2691](https://github.com/apache/nuttx/pull/2383) wireless: bluetooth: add more hci event definitions 29248* [#2692](https://github.com/apache/nuttx/pull/2692) syslog: Prepend Process ID to syslog message 29249* [#2697](https://github.com/apache/nuttx/pull/2697) syslog: Added printing of log priority in syslog 29250* [#2698](https://github.com/apache/nuttx/pull/2698) syslog: Added color output to syslog. 29251* [#2704](https://github.com/apache/nuttx/pull/2704) wireless: bluetooth: minor fix for bluetooth driver 29252* [#2707](https://github.com/apache/nuttx/pull/2707) drivers: wireless: Fix ASSERT() in _read_data_len() in gs2200m.c 29253* [#2710](https://github.com/apache/nuttx/pull/2710) syslog: Re-arranged syslog fields. 29254* [#2711](https://github.com/apache/nuttx/pull/2711) sensors: bmp280: minor fixes 29255* [#2715](https://github.com/apache/nuttx/pull/2715) sensors: bmp280: convert to sensor interface (and minor sensor change) 29256* [#2738](https://github.com/apache/nuttx/pull/2738) wireless: gs2200m: Print error massages with wlerr() 29257* [#2747](https://github.com/apache/nuttx/pull/2747) wireless: gs2200m: Fix _read_data() 29258* [#2775](https://github.com/apache/nuttx/pull/2775) mtd: w25qxxxjv.c : W25Q256's sector count is 8192 29259* [#2776](https://github.com/apache/nuttx/pull/2776) net/encx24j600.c: Correct setting of ifstate 29260* [#2798](https://github.com/apache/nuttx/pull/2798) wireless: gs2200m: Change retry condition in gs2200m_hal_write() 29261* [#2801](https://github.com/apache/nuttx/pull/2801) mtd:w25qxxxjv.c: use different protect bits and address lengts 29262* [#2850](https://github.com/apache/nuttx/pull/2850) audio: Introduce a driver-specific spinlock to cxd56.c 29263* [#2907](https://github.com/apache/nuttx/pull/2711) sensors: driver model update 29264* [#2950](https://github.com/apache/nuttx/pull/2950) audio: pcm_decode: add RAW format support 29265* [#2961](https://github.com/apache/nuttx/pull/2961) syslog_rpmsg: fix system crash when open CONFIG_SCHED_HAVE_PARENT 29266* [#2989](https://github.com/apache/nuttx/pull/2989) mmcsd: Fixes race condition in event wait logic of SDMMC driver 29267* [#3000](https://github.com/apache/nuttx/pull/3000) sensors: fakesensor support batch 29268* [#3020](https://github.com/apache/nuttx/pull/3020) syslog: add option to prefix process name 29269* [#3047](https://github.com/apache/nuttx/pull/3047) mmcsd: Stuck in 1-bit mode, Removed CONFIG_ARCH_HAVE_SDIO_DELAYED_INVLDT 29270* [#3050](https://github.com/apache/nuttx/pull/3050) syslog: Added support for multiple syslog channels. 29271* [#3110](https://github.com/apache/nuttx/pull/3110) can: Add CAN FD flags to CAN header 29272* [#3118](https://github.com/apache/nuttx/pull/3118) sensors: qencoder.c - Remove bad sninfo() format string 29273* [#3163](https://github.com/apache/nuttx/pull/3163) USBDEV: RNDIS: Fix occasional disconnections due to race condition 29274* [#3185](https://github.com/apache/nuttx/pull/3185) USBDEV RNDIS: Fix unaligned access caused by 4f66624 29275* [#3195](https://github.com/apache/nuttx/pull/3195) serial: Don't comment out ws_[x|y]pixel field from winsize struct 29276* [#3201](https://github.com/apache/nuttx/pull/3201) timers: rtc/rpmsg: support server and client to set time each other 29277* [#3214](https://github.com/apache/nuttx/pull/3214) can: Fix TX ID bits 18-20 of mcp2515 can driver 29278* [#3215](https://github.com/apache/nuttx/pull/3215) syslog: Drop extra carriage return from syslog calls 29279* [#3226](https://github.com/apache/nuttx/pull/3226) syslog: Added multi device support in syslog_device. 29280* [#3269](https://github.com/apache/nuttx/pull/3269) motor: Add support for motor debug messages 29281* [#3453](https://github.com/apache/nuttx/pull/3453) syslog: Fix in syslog_intbuffer flushing 29282* [#3454](https://github.com/apache/nuttx/pull/3454) syslog: Proper uninit of syslog_device. 29283* [#3475](https://github.com/apache/nuttx/pull/3214) input: Add INPUT_TOUCHSCREEN config 29284* [#3482](https://github.com/apache/nuttx/pull/3482) input: Rename config from INPUT classes 29285 29286## Board Support 29287 29288### New Board Support 29289* [#2054](https://github.com/apache/nuttx/pull/2054) configure.sh: update custom board config build support 29290* [#2463](https://github.com/apache/nuttx/pull/2463) boards: Added Teensy-4.x BSP 29291* [#2503](https://github.com/apache/nuttx/pull/2503) Re-organise ESP32 boards and introduce two more(ESP-WROVER-KIT and the ESP32-Ethernet-Kit) 29292* [#2506](https://github.com/apache/nuttx/pull/2506) stm32: add stm32g43x support and nucleo-g431rb board 29293* [#2838](https://github.com/apache/nuttx/pull/2838) Add initial support for ESP32-C3 and ESP32-C3 DevKit board 29294* [#2877](https://github.com/apache/nuttx/pull/2877) Support for Raspberry Pi Pico 29295* [#3129](https://github.com/apache/nuttx/pull/3129) boards/stm32: add initial support for b-g431b-esc1 board 29296* [#3217](https://github.com/apache/nuttx/pull/3217) board: Add support for nucleo-h743i2 29297* [#3234](https://github.com/apache/nuttx/pull/3234) boards/stm32/common: add support for IHM07M1 and IHM08M1 boards 29298 29299### Boards With Significant Improvements 29300 29301#### ARM 29302 29303#### BL602 29304* [#2764](https://github.com/apache/nuttx/pull/2764) boards: bl602evb flash and debug notes 29305 29306#### C906 29307* [#3027](https://github.com/apache/nuttx/pull/3027) board:rv64:c906:support the ELF apps 29308 29309#### CXD56 29310* [#1939](https://github.com/apache/nuttx/pull/1939) Add cxd56xx intstack for SMP 29311* [#3016](https://github.com/apache/nuttx/pull/3016) spresense:rndis_smp 29312* [#3024](https://github.com/apache/nuttx/pull/3024) Spesense CPU activity LED support 29313* [#3084](https://github.com/apache/nuttx/pull/3084) cxd56_gnss: Add missing include header for cxd56_gnss.c 29314* [#3085](https://github.com/apache/nuttx/pull/3085) cxd56_cpu1signal: Fix an issue that gnss does not work 29315 29316#### ESP32 29317* [#2507](https://github.com/apache/nuttx/pull/2507) boards/arm/stm32: add common and stm32f103-minimum support for WS2812 29318* [#2753](https://github.com/apache/nuttx/pull/2753) esp32: Enable renew for "wapi" configs 29319* [#2864](https://github.com/apache/nuttx/pull/2864) Add wapi_smp to test Wi-Fi in SMP mode 29320* [#2883](https://github.com/apache/nuttx/pull/2883) This commit implements I2C support for ESP32 (wrover kit) 29321* [#2888](https://github.com/apache/nuttx/pull/2888) This commit enables BMP180 suport for ESP32 29322* [#2971](https://github.com/apache/nuttx/pull/2971) esp32: Add board config to support MCP2515 29323* [#3071](https://github.com/apache/nuttx/pull/3071) ESP32: Mount TMPFS on board bring up 29324* [#3095](https://github.com/apache/nuttx/pull/3095) ESP32: Allow a BSS section to reside in external memory 29325* [#3117](https://github.com/apache/nuttx/pull/3117) xtensa/esp32: Use Polling instead of DMA for transfers below threshold 29326* [#3139](https://github.com/apache/nuttx/pull/3139) xtensa/esp32: Support esp32 wireless ioctl cmd 29327* [#3154](https://github.com/apache/nuttx/pull/3154) ESP32: Add Button support via BOOT button on GPIO0 29328* [#3164](https://github.com/apache/nuttx/pull/3164) xtensa/esp32: Adds oneshot timer driver. 29329* [#3190](https://github.com/apache/nuttx/pull/3190) risc-v/esp32c3: Support ESP32-C3 wireless ioctl cmd 29330* [#3192](https://github.com/apache/nuttx/pull/3192) esp32-devkitc: Make nsh the entry-point of the ostest config 29331* [#3211](https://github.com/apache/nuttx/pull/3211) esp32-devkitc: Add GPIO board support 29332* [#3270](https://github.com/apache/nuttx/pull/3270) xtensa/esp32: Refactor register access functions on SPI driver 29333* [#3303](https://github.com/apache/nuttx/pull/3303) esp32-devkitc: Add BMP180 sensor support 29334 29335#### ESP32C3 29336* [#2879](https://github.com/apache/nuttx/pull/2879) risc-v/esp32c3: Enable stdio buffering for esp32c3-devkit NSH config 29337* [#2897](https://github.com/apache/nuttx/pull/2897) boards/esp32c3: Add tmpfs mounting when bringing up 29338* [#3074](https://github.com/apache/nuttx/pull/3074) esp32c3-devkit: Use nx_mount to avoid overriding errno 29339* [#3261](https://github.com/apache/nuttx/pull/3261) esp32-c3: Add support to RNG peripheral 29340 29341#### IMX6 29342* [#2997](https://github.com/apache/nuttx/pull/2997) boards: sabre-6quad: Add netnsh_smp configuration 29343 29344#### IMXRT 29345* [#2004](https://github.com/apache/nuttx/pull/2004) FlexCAN driver for i.MX RT1060 MCU 29346* [#2526](https://github.com/apache/nuttx/pull/2526) boards/arm/imxrt/teensy-4.x: CDC-ACM console support 29347* [#2588](https://github.com/apache/nuttx/pull/2588) teensy-4.x Support for ST7789 controller 29348 29349#### KINETIS 29350* [#1969](https://github.com/apache/nuttx/pull/1969) freedom-k64f: Init PWM only if enabled 29351* [#1977](https://github.com/apache/nuttx/pull/1977) freedom-k64f: Support raw binary firmware format 29352* [#1980](https://github.com/apache/nuttx/pull/1980) freedom-k64f: Add renew DHCP client for netnsh 29353* [#1982](https://github.com/apache/nuttx/pull/1982) freedom-k64f: Add I2C initial support 29354* [#1999](https://github.com/apache/nuttx/pull/1999) freedom-k64f: Register on board sensor driver 29355* [#2020](https://github.com/apache/nuttx/pull/2020) freedom-k64f: Declare k64_i2cdev_initialize function 29356* [#2030](https://github.com/apache/nuttx/pull/2030) freedom-k64f: Fix k64_buttons.c 29357* [#2037](https://github.com/apache/nuttx/pull/2037) freedom-k64f: Add demo configuration 29358* [#2047](https://github.com/apache/nuttx/pull/2047) freedom-k64f: Add I2C to demo image 29359* [#2847](https://github.com/apache/nuttx/pull/2847) board/freedom-k64f: Add usbdev support with cdcacm example 29360 29361#### LPC17XX_40XX 29362* [#3239](https://github.com/apache/nuttx/pull/3239) board/arm/lpc17xx_40xx/mbed: Add userleds driver support 29363 29364#### NRF52 29365* [#2706](https://github.com/apache/nuttx/pull/2706) board/nrf52-feather: Add simple i2c test configuration 29366 29367#### RP2040 29368* [#2884](https://github.com/apache/nuttx/pull/2884) Update raspi-pico 29369* [#2894](https://github.com/apache/nuttx/pull/2894) boards: raspberrypi-pico: Add nshsram defconfig for SRAM build 29370* [#3014](https://github.com/apache/nuttx/pull/3014) BMP180 sensor support to RP2040 29371* [#3021](https://github.com/apache/nuttx/pull/3021) add INA219 support 29372* [#3030](https://github.com/apache/nuttx/pull/3030) boards/raspberrypi-pico: Support ENC28J60 SPI ethernet board 29373* [#3067](https://github.com/apache/nuttx/pull/3067) boards/raspberrypi-pico: Pico Display Pack (ST7789 LCD) support 29374 29375#### SAM34 29376* [#2464](https://github.com/apache/nuttx/pull/2464) Added: MT29F2G Nand Flash block driver for sam4s-xplained-pro 29377 29378#### STM32 29379* [#2433](https://github.com/apache/nuttx/pull/2433) Add 2.4 Inch TFT LCD Shield ILI9341 for nucleo-l152re, 8080 MCU 8-bit 29380* [#2505](https://github.com/apache/nuttx/pull/2505) boards/arm/stm32/stm32f103-minimum: cleanup 29381* [#3053](https://github.com/apache/nuttx/pull/3053) Nucleo-F446RE: added support for CAN driver 29382* [#3064](https://github.com/apache/nuttx/pull/3064) boards: refactor for nucleo-f446re and nucleo-f302r8 boards 29383* [#3097](https://github.com/apache/nuttx/pull/3097) Add configuration for testing the Sporadic Scheduler. 29384* [#3222](https://github.com/apache/nuttx/pull/3222) stm32/stm32_serial: add support for TX DMA and some improvements 29385* [#3223](https://github.com/apache/nuttx/pull/3223) stm32/stm32_pwm: add interfaces to access RCR register and TRGO 29386* [#3225](https://github.com/apache/nuttx/pull/3225) stm32/stm32_adc: various improvements for ADC 29387* [#3232](https://github.com/apache/nuttx/pull/3232) stm32/stm32_foc.c: add the lower-half FOC device support 29388 29389#### STM32F4 29390* [#2553](https://github.com/apache/nuttx/pull/2553) boards: stm32f4discovery: Add adb configuration 29391* [#2699](https://github.com/apache/nuttx/pull/2699) boards/stm32f4discovery: Add a LWL board profile and improve the README.txt 29392* [#3052](https://github.com/apache/nuttx/pull/3052) Add support to LCD ST7789 on STM32F4Discovery 29393* [#3056](https://github.com/apache/nuttx/pull/3056) Add LCD1602 Backpack to common board 29394 29395#### STM32F7 29396* [#3218](https://github.com/apache/nuttx/pull/3218) Integration of pysimCoder with NUTTX 29397 29398#### STM32H7 29399* [#2353](https://github.com/apache/nuttx/pull/2353) Fix of the OTG FS HOST for nucleo-h743zi 29400 29401#### STM32L4 29402* [#2009](https://github.com/apache/nuttx/pull/2842) Added STM32L432KC DAC support 29403* [#2837](https://github.com/apache/nuttx/pull/2837) Add missing I2C3 support on nucleo-l432kc board 29404* [#2842](https://github.com/apache/nuttx/pull/2842) board: nucleo-l432kc: Add missing i2c_master_s definition 29405 29406#### TIVA 29407* [#2684](https://github.com/apache/nuttx/pull/2684) boards: lm3s6965-ek: Add iperf to discover/defconfig 29408 29409#### XTENSA 29410 29411### **Minor Board Changes** 29412* [#2558](https://github.com/apache/nuttx/pull/2558) boards: Remove CINCPATH and CXXINCPATH 29413 29414#### ARM 29415* [#2079](https://github.com/apache/nuttx/pull/2079) Stm32 oled fixes pr 29416* [#2360](https://github.com/apache/nuttx/pull/2360) stm32/stm32ldiscovery: modernize board init little bit 29417* [#2500](https://github.com/apache/nuttx/pull/2500) stm32/common: devpath not long enough for apa102 and veml6070 29418 29419#### CXD56 29420* [#2193](https://github.com/apache/nuttx/pull/2193) cxd56xx: Remove HOSTCC and HOSTCFLAGS from Make.defs 29421 29422#### Xtensa 29423* [#2127](https://github.com/apache/nuttx/pull/2127) esp32: Added Userled support 29424* [#2802](https://github.com/apache/nuttx/pull/2802) ESP32: Refactor of POSTBUILD action 29425* [#3263](https://github.com/apache/nuttx/pull/3263) esp32: Move the WLAN initialisation to the common directory. 29426* [#3288](https://github.com/apache/nuttx/pull/3288) esp32-wrover-kit: Don't use User GPIO Subsystem to control LED 29427* [#3442](https://github.com/apache/nuttx/pull/3442) esp32 boards: BUTTON_BOOT should use PULLUP instead PULLDOWN 29428 29429## File System 29430 29431### Significant Improvements 29432* [#2598](https://github.com/apache/nuttx/pull/2598) fs/epoll: add asynchronous epoll control support 29433* [#2841](https://github.com/apache/nuttx/pull/2841) fs: procfs meminfo improvements 29434* [#2957](https://github.com/apache/nuttx/pull/2957) fs: mqueue: add poll support 29435* [#3045](https://github.com/apache/nuttx/pull/3045) fs: Allocate file/socket dynamically 29436* [#3212](https://github.com/apache/nuttx/pull/3212) fs/lfs: Update version to 2.4.0 29437 29438### Bug Fixes 29439* [#2073](https://github.com/apache/nuttx/pull/2073) fs: epoll_create: modify return value for epoll_create1 29440* [#2260](https://github.com/apache/nuttx/pull/2260) fs: eventfd: remove the unique minor limit 29441* [#2317](https://github.com/apache/nuttx/pull/2317) fs: flashback to release all file descriptors in group to increase debugging time. 29442* [#2339](https://github.com/apache/nuttx/pull/2339) Revert "fs/nxffs: Fix scan good block slowly and scan an invalid block" 29443* [#2532](https://github.com/apache/nuttx/pull/2532) fs/unionfs: remove excessive protection to avoid deadlock 29444* [#2540](https://github.com/apache/nuttx/pull/2540) fs: Skip call fs_checkfd if fd < 3 in fs_fdopen 29445* [#2572](https://github.com/apache/nuttx/pull/2572) fs: spiffs fixes 29446* [#2606](https://github.com/apache/nuttx/pull/2606) fs: Fix inode lock at umount2 29447* [#2618](https://github.com/apache/nuttx/pull/2618) fs: remove INODE_IS_SPECIAL() use INODE_IS_PSEUDODIR instead 29448* [#2638](https://github.com/apache/nuttx/pull/2618) fs: fs_dupfd2 should return OK if fd1 equals fd2 29449* [#2639](https://github.com/apache/nuttx/pull/2639) fs: Let files_allocate return -EMFILE instead ERROR 29450* [#2640](https://github.com/apache/nuttx/pull/2640) fs: Remove _files_close and reuse file_close 29451* [#2643](https://github.com/apache/nuttx/pull/2643) fs: Fix the race condition in file_dup 29452* [#2648](https://github.com/apache/nuttx/pull/2648) fs: Remove the special hack for pty in nx_vopen 29453* [#2660](https://github.com/apache/nuttx/pull/2660) fs: Reimplement file_open to not depend on nx_open 29454* [#2661](https://github.com/apache/nuttx/pull/2661) fs: file_dup2 shouldn't hold the file list lock 29455* [#2662](https://github.com/apache/nuttx/pull/2662) fs/inode/fs_files.c: fix DEBUGASSERT in romfs 29456* [#2667](https://github.com/apache/nuttx/pull/2667) fs: Make nx_vxxx and file_vxxx as internal functions 29457* [#2724](https://github.com/apache/nuttx/pull/2724) fs/tmpfs: Iterate the entry reversely in readdir 29458* [#2739](https://github.com/apache/nuttx/pull/2739) fs/readdir: Must reserve a byte for the NUL terminator 29459* [#2810](https://github.com/apache/nuttx/pull/2810) fs: eventfd: Convert the indent under EVENT_FD_VFS_PATH option to tab 29460* [#2852](https://github.com/apache/nuttx/pull/2852) fs: Merge fs_poll into poll_fdsetup 29461* [#2854](https://github.com/apache/nuttx/pull/2854) fs: Don't call _NX_SETERRNO in fopen and fdopen 29462* [#2861](https://github.com/apache/nuttx/pull/2861) fs: change geometry sizes from size_t to uint32_t 29463* [#2913](https://github.com/apache/nuttx/pull/2913) fs/lfs: lfs_file_sync() when littlefs_open 29464* [#2956](https://github.com/apache/nuttx/pull/2956) fs/mount: fix mount cmd break out when meet stat error 29465* [#3042](https://github.com/apache/nuttx/pull/3042) fs: vfs : Do some adjustments for epoll 29466* [#3060](https://github.com/apache/nuttx/pull/3060) fs: find_blockdriver: Don't ferr() on MTDs 29467* [#3069](https://github.com/apache/nuttx/pull/3069) fs/mmap: Clarify MAP_PRIVATE dependency on CONFIG_FS_RAMMAP 29468* [#3070](https://github.com/apache/nuttx/pull/3070) fs/mmap: Return EACCES for incompatible file descriptors 29469* [#3105](https://github.com/apache/nuttx/pull/3105) fs/epoll: correct the return value of epoll_ctl(2) 29470* [#3137](https://github.com/apache/nuttx/pull/3137) fs/littlefs: Suppport the duplication function 29471* [#3444](https://github.com/apache/nuttx/pull/3444) fs/romfs: fix open zero-byte file fail issue 29472* [#3491](https://github.com/apache/nuttx/pull/3491) fs: vfs: adjust the error code of write to be consistent with read 29473 29474## Networking 29475 29476### Significant Improvements 29477* [#2414](https://github.com/apache/nuttx/pull/2414) net: tcp: implement the fast retransmit 29478* [#2415](https://github.com/apache/nuttx/pull/2415) net: gmp: add MULTICAST_TTL support 29479* [#2417](https://github.com/apache/nuttx/pull/2417) net: wireless: add country code control support 29480* [#2548](https://github.com/apache/nuttx/pull/2548) net: tcp: optimize TCP handshake performance 29481* [#2695](https://github.com/apache/nuttx/pull/2695) netpacket: if_addr: add interface address header 29482* [#2899](https://github.com/apache/nuttx/pull/2899) net: socket: Unify socket into file system to avoid the code duplication 29483* [#2964](https://github.com/apache/nuttx/pull/2964) net: socket_rpmsg: add socket rpmsg support 29484* [#3025](https://github.com/apache/nuttx/pull/3025) net: Add sendmsg and recvmsg to syscall list 29485* [#3081](https://github.com/apache/nuttx/pull/3081) tcp_send_buffered.c: improve tcp write buffering 29486* [#3113](https://github.com/apache/nuttx/pull/3113) net: usrsock: add send multi-elements support 29487* [#3257](https://github.com/apache/nuttx/pull/3257) net: tcp: support bind the same port with different domain 29488 29489### Bug Fixes 29490* [#1589](https://github.com/apache/nuttx/pull/1589) net: tcp: fix tcp socket close timeout if loss wireless connection 29491* [#2075](https://github.com/apache/nuttx/pull/2075) net: TCP-stack fix for stalled tcp sockets due to broken keepalive 29492* [#2121](https://github.com/apache/nuttx/pull/2121) net: devif: devif_callback.c: remove harmful debug check 29493* [#2257](https://github.com/apache/nuttx/pull/2257) net: callback: remove the assert check of conn instance 29494* [#2332](https://github.com/apache/nuttx/pull/2332) net/tcp: Rectified keepalive fix 29495* [#2412](https://github.com/apache/nuttx/pull/2413) net/icmp: add sanity check to avoid wild data length 29496* [#2413](https://github.com/apache/nuttx/pull/2413) net/tcp: correct the available iobs count if throttle is enabled 29497* [#2416](https://github.com/apache/nuttx/pull/2416) net/tcp: fallback to unthrottle pool to avoid deadlock 29498* [#2421](https://github.com/apache/nuttx/pull/2421) net/neighbor/neighbor_ethernet_out.c: fix build error without ICMPv6 29499* [#2465](https://github.com/apache/nuttx/pull/2465) net/procfs: handle opendir("/proc/net/") correctly 29500* [#2466](https://github.com/apache/nuttx/pull/2466) net/igmp: add sanity check to handle allocate fail 29501* [#2467](https://github.com/apache/nuttx/pull/2467) net/sockopt: Try usrsock further if the protocol not available 29502* [#2489](https://github.com/apache/nuttx/pull/2489) net: tcp: send the ACK in time after obtain ahead buffer from iobs 29503* [#2688](https://github.com/apache/nuttx/pull/2688) net: Remove duplicate forward references 29504* [#2774](https://github.com/apache/nuttx/pull/2774) net/ip: do not drop the udp packet from IP layer 29505* [#2811](https://github.com/apache/nuttx/pull/2811) net/local: Add an option to specify the prefix of named pipe 29506* [#2869](https://github.com/apache/nuttx/pull/2869) netdb.h: Add NI_MAXHOST and NI_MAXSERV 29507* [#2911](https://github.com/apache/nuttx/pull/2911) net: fix a few DP83848C and DP83825I constants 29508* [#2959](https://github.com/apache/nuttx/pull/2959) net: socket: move si_send/recv into sendmsg/recvmsg 29509* [#2978](https://github.com/apache/nuttx/pull/2978) telnet: fix crash about telnet client connect 29510* [#3037](https://github.com/apache/nuttx/pull/3037) Revert "net: tcp: Add DEBUGASSERT() in psock_tcp_send()" 29511* [#3043](https://github.com/apache/nuttx/pull/3043) net: local: Remove local_send.c since nobody use it now 29512* [#3044](https://github.com/apache/nuttx/pull/3044) net: fix local_sendmsg return length 29513* [#3062](https://github.com/apache/nuttx/pull/3062) net: tcp_sendfile.c: Remove an unused copy of CONFIG_NET_TCP_SPLIT_SIZE 29514* [#3099](https://github.com/apache/nuttx/pull/3099) net: tcp: dup: do not start the tcp monitor if unestablished 29515* [#3100](https://github.com/apache/nuttx/pull/3100) net: tcp: correct the port byte order 29516* [#3101](https://github.com/apache/nuttx/pull/3101) net: arp: add timeout to avoid infinite send wait 29517* [#3103](https://github.com/apache/nuttx/pull/3103) net: tcp: reset the connection ref count before tcp_free() 29518* [#3104](https://github.com/apache/nuttx/pull/3104) net: dev: check the available address further 29519* [#3106](https://github.com/apache/nuttx/pull/3106) net: if: remove the macro expansion of the public structure 29520* [#3221](https://github.com/apache/nuttx/pull/3221) net: tcp: tcp_send_buffered.c: Fix non-blocking I/O 29521* [#3254](https://github.com/apache/nuttx/pull/3254) net: arp: Fix arp 29522* [#3319](https://github.com/apache/nuttx/pull/3319) tcp_netpoll.c: Fix a performance issue with CONFIG_NET_TCP_WRITE_BUFFERS 29523 29524# Security Issues Fixed In This Release 29525 29526# Compatibility Concerns 29527 29528## Changes to Build System 29529 29530### Change CFLAGS, CPPFLAGS, CXXFLAGS, and AFLAGS from Recursive to Simple Assignment 29531 29532[PR-1890](https://github.com/apache/nuttx/pull/1890) 29533(commit [2caf3a69e3d60ec550980f7ba897c732e7a39df7](https://github.com/apache/nuttx/pull/1890/commits/2caf3a69e3d60ec550980f7ba897c732e7a39df7)) 29534attempts to speed up compilation time for concurrent builds by changing 29535assignment to makefile variables `*CFLAGS*`, `*CPPFLAGS*`, `*CXXFLAGS*`, and 29536`*AFLAGS*` from recursive `=` to simple `:=`. This causes these compile 29537options to be expanded only once during the build. 29538 29539If you are using NuttX on a custom board not in the NuttX repository, you may 29540want to make a similar change to your `Make.defs` files. Change these 29541recursive assignments: 29542 29543``` 29544CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe 29545CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe 29546CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) 29547AFLAGS = $(CFLAGS) -D__ASSEMBLY__ 29548``` 29549 29550to simple assignments: 29551 29552``` 29553CFLAGS := $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe 29554CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe 29555CPPFLAGS := $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) 29556AFLAGS := $(CFLAGS) -D__ASSEMBLY__ 29557``` 29558 29559### Not Necessary to Define `__NuttX__` in Make.defs 29560 29561[PR-2192](https://github.com/apache/nuttx/pull/2192) 29562(commit [9208176f600d0d04446531909bf05710716a5ee4](https://github.com/apache/nuttx/commit/9208176f600d0d04446531909bf05710716a5ee4)) 29563refactors definition of the `__NuttX__` preprocessor symbol to 29564`tools/Config.mk`, so it is no longer necessary to define it in each board's 29565`Make.defs` file. 29566 29567If you are using NuttX on a custom board not in the NuttX repository, you may 29568want to make a similar change to your Make.defs files. 29569 29570Remove lines like this: 29571 29572``` 29573ARCHDEFINES = -D__NuttX__ 29574``` 29575 29576Or remove -D__NuttX__ from lines like this: 29577 29578``` 29579CXXFLAGS += $(ARCHDEFINES) $(EXTRAFLAGS) -pipe -std=c++11 -D__NuttX__ 29580``` 29581 29582NuttX-10.2.0 Release Notes 29583 29584# What's new in this release 29585 29586## Major Changes to Core OS 29587 29588### New Features 29589* [#3708](https://github.com/apache/nuttx/pull/3708) openamp: Update to 2020.10.0 official release 29590* [#3709](https://github.com/apache/nuttx/pull/3709) Update libcxx to 12.0.0 release 29591* [#3674](https://github.com/apache/nuttx/pull/3674) libc/termios: Implement TCSADRAIN and TCSAFLUSH for tcsetattr 29592* [#4595](https://github.com/apache/nuttx/pull/4595) libc/misc: add lib_glob 29593* [#4594](https://github.com/apache/nuttx/pull/4594) libc/string: add lib_strchrnul 29594* [#3672](https://github.com/apache/nuttx/pull/3672) include/spawn.h: Add POSIX_SPAWN_SETSID definition 29595* [#4265](https://github.com/apache/nuttx/pull/4265) libc: Support message catalog function 29596* [#3102](https://github.com/apache/nuttx/pull/3102) mm/iob: add iob_free_queue() interface 29597* [#3893](https://github.com/apache/nuttx/pull/3893) libs/libc/netdb: add dns clear interface 29598* [#3959](https://github.com/apache/nuttx/pull/3959) libc/time: Implement timegm function 29599* [#3963](https://github.com/apache/nuttx/pull/3963) libc/sched: Implement nice API 29600* [#3977](https://github.com/apache/nuttx/pull/3977) sched: Add kthread_create_with_stack 29601* [#4016](https://github.com/apache/nuttx/pull/4016) Add heap & stack check to idle thread 29602* [#4114](https://github.com/apache/nuttx/pull/4114) libc/math: Add fmax and fmin functions 29603* [#4130](https://github.com/apache/nuttx/pull/4130) sys/poll: add POLLRDHUP definition 29604* [#4262](https://github.com/apache/nuttx/pull/4262) libc: Add the empty nl_langinfo implementation 29605* [#4272](https://github.com/apache/nuttx/pull/4272) libc: Implement gettext function 29606* [#4432](https://github.com/apache/nuttx/pull/4432) libc:machine: add atomic_load/store/exchange API 29607* [#4438](https://github.com/apache/nuttx/pull/4438) uClibcxx: add weak attribute for new/del ops 29608* [#3681](https://github.com/apache/nuttx/pull/3681) libc: Implement openpty function 29609* [#4363](https://github.com/apache/nuttx/pull/4363) sched/backtrace: add sched_backtrace support 29610* [#4374](https://github.com/apache/nuttx/pull/4374) libxx: add new low level c++ standard library support 29611* [#4425](https://github.com/apache/nuttx/pull/4425) libc: add common machine atomic operation 29612* [#3687](https://github.com/apache/nuttx/pull/3687) libc/pwd: Add NSS_BUFLEN_PASSWD macro 29613* [#3970](https://github.com/apache/nuttx/pull/3970) libc: Implement fesetround & fegetround for arm 29614* [#4104](https://github.com/apache/nuttx/pull/4104) sched/clock: add nsec range check in clock_settime 29615* [#4518](https://github.com/apache/nuttx/pull/4518) getaddrinfo: support AF_LOCAL and AF_RPMSG 29616* [#4595](https://github.com/apache/nuttx/pull/4595) libc/misc: add lib_glob 29617* [#3985](https://github.com/apache/nuttx/pull/3985) mmap: Implement the minial but reasonable mlock/munlock/mprotect 29618* [#4065](https://github.com/apache/nuttx/pull/4065) mm: Add kmm_malloc_size and mm_malloc_size 29619* [#4096](https://github.com/apache/nuttx/pull/4096) mm: Simplify the semaphore handling 29620* [#4100](https://github.com/apache/nuttx/pull/4100) Implement utime and futimes 29621 29622### Bug Fixes 29623* [#4615](https://github.com/apache/nuttx/pull/4615) sched/signal: Correct kill with cancellation 29624* [#4619](https://github.com/apache/nuttx/pull/4619) sched: Fix CPU affinity issues in SMP 29625* [#3626](https://github.com/apache/nuttx/pull/3626) libc: Move pthread stuff to userspace 29626* [#3673](https://github.com/apache/nuttx/pull/3673) libc/pty: Make ptsname[_r] support PSEUDOTERM_BSD config too 29627* [#4599](https://github.com/apache/nuttx/pull/4599) sched:tcb_s:rearrange sched_priority/int_priority to word align 29628* [#3747](https://github.com/apache/nuttx/pull/3747) mm:initialize ensure alignment. 29629* [#3962](https://github.com/apache/nuttx/pull/3962) sched/task/task_spawn.c: initialize variables explicitly 29630* [#3916](https://github.com/apache/nuttx/pull/3916) sched/posix_spawn: Don't insert name at the begin of argv 29631* [#3858](https://github.com/apache/nuttx/pull/3858) tls: Move pthread key destructor to libc 29632* [#3719](https://github.com/apache/nuttx/pull/3719) group/group_signal: cancel dispatch signal when child process doesn't exist 29633* [#4453](https://github.com/apache/nuttx/pull/4453) libs/libxx: Enforce RTTI for building libcxxabi 29634* [#4450](https://github.com/apache/nuttx/pull/4450) libxx:uClibc++: disable new_handler.cpp when use libsupc++ 29635* [#4456](https://github.com/apache/nuttx/pull/4456) libc/gettext: Initialize path field when creating mofile struct. 29636* [#4466](https://github.com/apache/nuttx/pull/4466) sched/wdog/wd_start.c: prevent accessing watch-dog lag if head is NULL 29637* [#4499](https://github.com/apache/nuttx/pull/4499) uClibc++:remove typeinfo.cpp that confict with libsupc++ 29638* [#3698](https://github.com/apache/nuttx/pull/3698) sched/task: Simplify the syscall handling of task_spawn 29639* [#3813](https://github.com/apache/nuttx/pull/3813) syscall/syscall.csv: Correct ordering of entries 29640* [#4020](https://github.com/apache/nuttx/pull/4020) SMP should depends on ARCH_INTERRUPTSTACK 29641* [#3957](https://github.com/apache/nuttx/pull/3957) sched/wdog: Remove flags field from wdog_s to save memory 29642* [#3967](https://github.com/apache/nuttx/pull/3967) libc/dirname: Handle the consecutive '/' correctly 29643* [#4018](https://github.com/apache/nuttx/pull/4018) libs/libc/spawn: fix posix_spawn_file_actions_adddup2 alloc size error 29644* [#4009](https://github.com/apache/nuttx/pull/4009) Move aligned_alloc, posix_memalign and valloc from mm/umm to libs/libc/stdlib 29645* [#4021](https://github.com/apache/nuttx/pull/4021) sched/waitpid: handle waitpid waitting tcb->group is NULL 29646* [#4026](https://github.com/apache/nuttx/pull/4026) sched/idle: disable sched when idle call nx_bringup 29647* [#4035](https://github.com/apache/nuttx/pull/4035) work_queue: schedule the work queue using the timer mechanism 29648* [#4048](https://github.com/apache/nuttx/pull/4048) libc: Move pthread_key_destructor to task_info_s 29649* [#4057](https://github.com/apache/nuttx/pull/4057) libs: libnx: nxfonts: Fix prefix of generated fonts data 29650* [#4109](https://github.com/apache/nuttx/pull/4109) libc: Implement ttyname and ttyname_r 29651* [#4115](https://github.com/apache/nuttx/pull/4115) libc/math: Fix calculation error of log function 29652* [#4124](https://github.com/apache/nuttx/pull/4124) add #undef for some libc function 29653* [#4125](https://github.com/apache/nuttx/pull/4125) libc/sysconf: Add MONOTONIC_CLOCK for consistency 29654* [#4127](https://github.com/apache/nuttx/pull/4127) libc: Increase the function of crc8 to use custom polynomials 29655* [#4160](https://github.com/apache/nuttx/pull/4160) group/child_status: Dynamically expand group child_status 29656* [#4183](https://github.com/apache/nuttx/pull/4183) sched/task: Fix wrong return value from nxspawn_open() 29657* [#4226](https://github.com/apache/nuttx/pull/4226) syslog: reslove crash because vmov.i32 instruction is not ready 29658* [#4246](https://github.com/apache/nuttx/pull/4246) libc/pthread_barrierattr_destory.c: Destroy shouldn't reinitialize the attributes 29659* [#4270](https://github.com/apache/nuttx/pull/4270) tzset: avoid taking semaphore in interrupt for non-kernel mode 29660* [#4413](https://github.com/apache/nuttx/pull/4413) sched/wdog: fix switch_context caused error in wd_start() 29661* [#3703](https://github.com/apache/nuttx/pull/3703) sched/spawn: Support the stack address argument 29662* [#4287](https://github.com/apache/nuttx/pull/4287) signal: Allow SIG_EVTHREAD selectable in protected mode 29663* [#4296](https://github.com/apache/nuttx/pull/4296) sched: Fix crash on early syslog message with prepended process name 29664* [#4368](https://github.com/apache/nuttx/pull/4368) libs/libxx/uClibc++.defs: Download the correct file type. 29665* [#4369](https://github.com/apache/nuttx/pull/4369) libs/libxx: Download C++ libraries during context. 29666* [#4382](https://github.com/apache/nuttx/pull/4382) sched/backtrace: simplify the assign of tcb in case of negative pid 29667* [#4377](https://github.com/apache/nuttx/pull/4377) task_spawn: release g_spawn_parmsem and sched_unlock at the ending 29668* [#4068](https://github.com/apache/nuttx/pull/4068) mm: Remove mm_heap_impl_s struct 29669* [#4247](https://github.com/apache/nuttx/pull/4247) Redirect _l function to non-locale version 29670* [#4380](https://github.com/apache/nuttx/pull/4380) som byteorder modification 29671* [#4283](https://github.com/apache/nuttx/pull/4283) libc/gettext: Change g_domain to array 29672* [#4512](https://github.com/apache/nuttx/pull/4512) lib_vsprintf: Add %pV format support 29673* [#4513](https://github.com/apache/nuttx/pull/4513) libc/rexec/rexec_af: support remote command execution 29674* [#4516](https://github.com/apache/nuttx/pull/4516) lib_fread: return the number of bytes actually read when error occurs. 29675* [#4520](https://github.com/apache/nuttx/pull/4520) debug: allow customize EXTRA_FMT 29676* [#3978](https://github.com/apache/nuttx/pull/3978) Decouple the initialization of the separate heaps from the TEXT_HEAP option. 29677* [#4029](https://github.com/apache/nuttx/pull/4029) mm: fix memory corruption when loop create/exit thread in SMP mode 29678* [#4055](https://github.com/apache/nuttx/pull/4055) mm: Move the real implementation of mm_sbrk to sbrk 29679* [#4030](https://github.com/apache/nuttx/pull/4030) Fix procfs memory corruption when meet long string, add thread run time to procfs 29680* [#4043](https://github.com/apache/nuttx/pull/4043) select: fix asan report error 29681* [#4519](https://github.com/apache/nuttx/pull/4519) errno: use staic errno to replace tl_errno before tls initialization 29682* [#3992](https://github.com/apache/nuttx/pull/3992) Refine tls_info_s and task_info_s 29683* [#4019](https://github.com/apache/nuttx/pull/4019) Fix asan report error 29684* [#4053](https://github.com/apache/nuttx/pull/4053) mm: Move procfs_register_meminfo into common place 29685* [#4054](https://github.com/apache/nuttx/pull/4054) mm: Call memalign in malloc if ARCH_ADDRENV and BUILD_KERNEL are defined 29686* [#4454](https://github.com/apache/nuttx/pull/4454) user/trap: Set MQ_MAXMSGSIZE to 64 to get NX working 29687* [#3725](https://github.com/apache/nuttx/pull/3725) cmd/free: add nused/nfree field in command free 29688* [#3753](https://github.com/apache/nuttx/pull/3753) libelf: fix "nsh: nsh_session: readline failed: 13" error 29689* [#3767](https://github.com/apache/nuttx/pull/3767) binfmt: Move argv copy into exec_module 29690* [#3764](https://github.com/apache/nuttx/pull/3764) binfmt: Rename dump_module to binfmt_dumpmodule 29691* [#4064](https://github.com/apache/nuttx/pull/4064) binfmt: Replace all nx_ API with file_ API 29692* [#3928](https://github.com/apache/nuttx/pull/3928) binfmt: Handle argv/argv[0] == NULL correctly in exec_module 29693* [#3867](https://github.com/apache/nuttx/pull/3867) TLS: Correct handling of returned error values. 29694* [#4185](https://github.com/apache/nuttx/pull/4185) iob_trimhead: fix an integer truncation 29695* [#4117](https://github.com/apache/nuttx/pull/4117) Dynamically extend Pidhash table 29696* [#4186](https://github.com/apache/nuttx/pull/4186) libc: Implement times function 29697* [#3908](https://github.com/apache/nuttx/pull/3908) crypto/random_pool.c: Correct indexing on void pointer 29698* [#3817](https://github.com/apache/nuttx/pull/3817) audio: various fixes 29699 29700## Major Changes to the Build System 29701 29702### New Features 29703* [#4525](https://github.com/apache/nuttx/pull/4525) mkromfsimg: Add optional rcS file path 29704* [#4491](https://github.com/apache/nuttx/pull/4491) checkpatch.sh: add check gerrit Change-Id support 29705* [#3716](https://github.com/apache/nuttx/pull/3716) tools: Add a bash completion script for the configure tool 29706* [#3819](https://github.com/apache/nuttx/pull/3819) docker/linux: Add ESP32-S2 toolchain and binaries. 29707* [#4203](https://github.com/apache/nuttx/pull/4203) tools: Add armv7-a support to nuttx-gdbinit 29708* [#3705](https://github.com/apache/nuttx/pull/3705) docker: add ninja-build 29709 29710### Bug Fixes 29711* [#4418](https://github.com/apache/nuttx/pull/4418) compiler.h: add __builtin_offsetof instead of offsetof 29712* [#3815](https://github.com/apache/nuttx/pull/3815) tools/mksyscall: Fix build break of syscall instrumentation wrapper 29713* [#4461](https://github.com/apache/nuttx/pull/4461) tools/ci: Minor improvements to CI build script 29714* [#4492](https://github.com/apache/nuttx/pull/4492) tools/nxstyle: Fix the check tool incorrectly reported no alignment. 29715* [#3710](https://github.com/apache/nuttx/pull/3710) tools/ci: Rename sim0x.dat to sim-0x.dat to align with arm-xx.dat 29716* [#4455](https://github.com/apache/nuttx/pull/4455) makefile: let clean_context in distclean command 29717* [#4423](https://github.com/apache/nuttx/pull/4423) board: Enable CONFIG_LIBCXXABI when CONFIG_LIBCXX is enabled 29718* [#4196](https://github.com/apache/nuttx/pull/4196) tools: Fix nuttx-gdbinit 29719 29720## Architectural Support 29721 29722### New Architecture 29723 29724#### MIPS 29725 29726##### PIC32 29727* [#4252](https://github.com/apache/nuttx/pull/4252) pic32mz: added support for PIC32MZ2048EFG MCU 29728 29729### Architectures with significant improvements 29730 29731#### ARM 29732* [#4522](https://github.com/apache/nuttx/pull/4522) arch/arm: Add ARCH_CORTEXM55 Kconfig for cortex-m55 29733* [#3759](https://github.com/apache/nuttx/pull/3759) arm/v7-a/fpu: add VFP-v3 D32 support 29734* [#4536](https://github.com/apache/nuttx/pull/4536) arch/arm: correct the function name from arm_getsp() to up_getsp() 29735* [#4410](https://github.com/apache/nuttx/pull/4410) arch/arm/assert: enhance the assert dump 29736* [#4409](https://github.com/apache/nuttx/pull/4409) arch/arm/cortex-m: add up_backtrace support 29737* [#4405](https://github.com/apache/nuttx/pull/4405) arch/armv7: add up_backtrace support based on frame pointer 29738* [#4385](https://github.com/apache/nuttx/pull/4385) arch/armv8-m: Update per the latest architecture reference manual 29739* [#4354](https://github.com/apache/nuttx/pull/4354) arch/arm: correct the frame pointer register declare 29740* [#4205](https://github.com/apache/nuttx/pull/4205) arm: add up_secure_irq support 29741* [#4176](https://github.com/apache/nuttx/pull/4176) ARM: fix CPSR corruption after exception handling 29742* [#4094](https://github.com/apache/nuttx/pull/4094) arch/armv7-a: Remove the special SMP SGI process 29743* [#4451](https://github.com/apache/nuttx/pull/4451) arch: Replace ar, nm and ld with gcc-ar, gcc-nm and gcc 29744* [#4343](https://github.com/apache/nuttx/pull/4343) arch/armv8-m: Add SAU support 29745* [#4341](https://github.com/apache/nuttx/pull/4341) arch/arm: Add NVIC_FPCCR_XXX macro to avoid the hard code value 29746* [#4279](https://github.com/apache/nuttx/pull/4279) arch/cortex-m: replace arm_switchcontext to c-style 29747* [#4106](https://github.com/apache/nuttx/pull/4106) arm/setjmp.h:add c++ support 29748* [#4013](https://github.com/apache/nuttx/pull/4013) arm: fix enable interrupt too earlier caused system crash 29749* [#4483](https://github.com/apache/nuttx/pull/4483) Fix compilation of arm protected build 29750* [#3879](https://github.com/apache/nuttx/pull/3879) arch: Rename xxx_getsp to up_getsp 29751* [#4227](https://github.com/apache/nuttx/pull/4227) pwm: add option to break the loops when using multiple PWM channels 29752* [#4261](https://github.com/apache/nuttx/pull/4261) EXC_SECURE and SECURE_STACK just can clear at TRUSTZONE_NONSECURE 29753 29754#### CXD56XX 29755* [#4557](https://github.com/apache/nuttx/pull/4557) arch: cxd56xx: Replace the critical section with spinlock in cxd56_serial.c 29756* [#3743](https://github.com/apache/nuttx/pull/3743) arch: arm: cxd56xx: Update cxd56xx drivers 29757* [#3845](https://github.com/apache/nuttx/pull/3845) Fix spresense with elf 29758 29759#### LPC17XX_40XX 29760* [#4072](https://github.com/apache/nuttx/pull/4072) lpc17xx: Added WDT driver. 29761* [#4316](https://github.com/apache/nuttx/pull/4316) lpc17_40: Fixed I2C port sanity check. 29762* [#4148](https://github.com/apache/nuttx/pull/4148) lpc17_40: style fix in WDT definitions. 29763* [#4107](https://github.com/apache/nuttx/pull/4107) lpc17_40: Fixed progmem driver. 29764 29765#### STM32 29766* [#3761](https://github.com/apache/nuttx/pull/3761) ET-STM32 Stamp: An STM32F103RET6 target for NuttX 29767* [#4350](https://github.com/apache/nuttx/pull/4350) arch/arm/src/stm32l4/Kconfig: add new STM32L4+ chip types 29768* [#4310](https://github.com/apache/nuttx/pull/4310) arch/stm32: improvements for qencoder 29769* [#3752](https://github.com/apache/nuttx/pull/3752) Use inttypes stm32fx i2c 29770* [#4090](https://github.com/apache/nuttx/pull/4090) STM32G43XX Analog Comparator 29771* [#3942](https://github.com/apache/nuttx/pull/3942) Changed the STM32 Analog Comparator driver. 29772* [#3729](https://github.com/apache/nuttx/pull/3729) stm32 timers: Prefer GTIM macros and make this use more uniform. 29773* [#4163](https://github.com/apache/nuttx/pull/4163) Files for pysimCoder 29774* [#4151](https://github.com/apache/nuttx/pull/4151) Change DAC driver to support STM32G4 DAC 29775 29776#### STM32L4 29777* [#3668](https://github.com/apache/nuttx/pull/3668) arch/arm/src/stm32l4/hardware/stm32l4xrxx: pinmap alternative function for SPI2 29778* [#4468](https://github.com/apache/nuttx/pull/4468) arch/arm/src/stm32l4: fix STM32L4+ option bytes memory address 29779* [#4501](https://github.com/apache/nuttx/pull/4501) arch/arm/src/stm32l4: add control for Vddio2 independent I/Os supply valid 29780* [#4469](https://github.com/apache/nuttx/pull/4469) arch/arm/src/stm32l4/stm32l4_flash.c: fix FLASH_CONFIG_I to use dual-bank access 29781 29782#### STM32L5 29783 29784#### S32K1XX 29785* [#3850](https://github.com/apache/nuttx/pull/3850) UCANS32K146 add support for B revision 29786* [#4493](https://github.com/apache/nuttx/pull/4493) Fix error in s32k118_pinmux.h 29787* [#3795](https://github.com/apache/nuttx/pull/3795) S32K1XX LSPI Double word up to 64 bits support 29788 29789#### IMX6 29790* [#3777](https://github.com/apache/nuttx/pull/3777) arch: imx6: Add termios support to imx6 29791 29792#### IMXRT 29793* [#3988](https://github.com/apache/nuttx/pull/3988) arch/arm/src/imxrt/imxrt_flexpwm.c: fix mistake in submodules address offset 29794* [#4431](https://github.com/apache/nuttx/pull/4431) i.MX RT: Changes to FlexCAN driver and Teensy 4.x CAN configuration 29795* [#4285](https://github.com/apache/nuttx/pull/4285) arch/arm/src/imxrt/imxrt_flexpwm.c: Set LDOK bits after all channels are set 29796* [#4138](https://github.com/apache/nuttx/pull/4138) i.MX RT: added support for Tickless OS 29797 29798#### RP2040 29799* [#4049](https://github.com/apache/nuttx/pull/4049) Raspipico smp 29800* [#4251](https://github.com/apache/nuttx/pull/4251) raspberrypi-pico: add support for lcd_dev 29801* [#4002](https://github.com/apache/nuttx/pull/4002) Kinetis Replace DMA with a proper eDMA driver and use it on SPI and Serial 29802 29803#### RTL8720C 29804* [#4076](https://github.com/apache/nuttx/pull/4076) AmebaZ2: Add soc src code 29805 29806#### NRF52 29807 29808#### STM32H7/STM32F7 29809* [#4331](https://github.com/apache/nuttx/pull/4331) arch/arm/stm32h7: dma and serial: add TRBUFF flag. 29810* [#4441](https://github.com/apache/nuttx/pull/4441) arch/arm/stm32f7/stm32_irq: Fix format strings 29811* [#4098](https://github.com/apache/nuttx/pull/4098) stm32h7 Ethernet add yield and timeout to not hog CPU 29812* [#3730](https://github.com/apache/nuttx/pull/3730) stm32h7 rcc: Sync h7x7xx and h7x3xx. Changes are relevant to both 29813* [#3892](https://github.com/apache/nuttx/pull/3892) arch/arm/src/stm32h7: qspi use indirect write instead of indirect read 29814* [#3728](https://github.com/apache/nuttx/pull/3728) stm32f7: Remove references to BOARD_ENABLE_USBOTG_HSULPI. 29815* [#3731](https://github.com/apache/nuttx/pull/3731) stm32/stm32f7 tickless: Fix up_timer_getmask to be correct for the width of the timer. 29816* [#3976](https://github.com/apache/nuttx/pull/3976) STM32F7 SDMMC fixes 29817* [#3924](https://github.com/apache/nuttx/pull/3924) stm32h7 fix for adc to handle overrun and the DR's fifo 29818 29819#### Renesas 29820* [#4230](https://github.com/apache/nuttx/pull/4230) renesas/rx65n: add long type for all PRI*PTR 29821* [#3989](https://github.com/apache/nuttx/pull/3989) Renesas/RX added setjmp and placeholder ioctl 29822 29823#### Risc-V 29824* [#3770](https://github.com/apache/nuttx/pull/3770) Add support for PolarFire SoC and icicle board 29825* [#3997](https://github.com/apache/nuttx/pull/3997) risc-v/bl602: update wifi firmware version 29826* [#4381](https://github.com/apache/nuttx/pull/4381) arch/riscv/assert: enhance the assert dump 29827* [#4367](https://github.com/apache/nuttx/pull/4367) riscv/backtrace: add up_backtrace support 29828* [#4365](https://github.com/apache/nuttx/pull/4365) riscv/common: add CURRENT_REGS declare in RV32 29829* [#4342](https://github.com/apache/nuttx/pull/4342) riscv/bl602: Fix that AP cannot be start when STA have been started. 29830* [#4335](https://github.com/apache/nuttx/pull/4335) arch/bl602:Add bl602 os adapter layer 29831* [#4145](https://github.com/apache/nuttx/pull/4145) risc-v/bl602: update wifi firmware and some fixup. 29832* [#3849](https://github.com/apache/nuttx/pull/3849) risc-v/mpfs: irq fixes, more register defines and up_systemreset() 29833* [#3984](https://github.com/apache/nuttx/pull/3984) risc-v/bl602: Support AP and STA as independent network interface device 29834* [#3913](https://github.com/apache/nuttx/pull/3913) arch: k210: Fix stack coloring for the idle thread stack 29835* [#3757](https://github.com/apache/nuttx/pull/3757) riscv: Add inline IRQ process functions 29836* [#4041](https://github.com/apache/nuttx/pull/4041) risc-v/bl602: add efuse driver 29837* [#4384](https://github.com/apache/nuttx/pull/4384) Mpfs core pwm 29838* [#4507](https://github.com/apache/nuttx/pull/4507) various MPFS fixes 29839 29840#### ESP32-C3 29841* [#3853](https://github.com/apache/nuttx/pull/3853) arch/risc-v/esp32c3: add esp32c3_modtext to allow ELF loading 29842 29843#### BL602 29844* [#3784](https://github.com/apache/nuttx/pull/3784) risc-v/bl602: Add RTC driver 29845* [#4607](https://github.com/apache/nuttx/pull/4607) Open ble controller adaptation code 29846 29847#### Xtensa 29848* [#4280](https://github.com/apache/nuttx/pull/4280) arch:xtensa: add new GNU toolchain for xtensa. 29849* [#4478](https://github.com/apache/nuttx/pull/4478) arch: xtensa: add xtensa cache support 29850* [#4547](https://github.com/apache/nuttx/pull/4547) arch:xtensa: add full bactrace support 29851* [#4407](https://github.com/apache/nuttx/pull/4407) arch/xtensa/src/common: Use irq_spin APIs in modifyregXX 29852* [#4403](https://github.com/apache/nuttx/pull/4403) Use driver-specific spinlock for ESP32 serial driver. 29853* [#4458](https://github.com/apache/nuttx/pull/4458) arch:xtensa: add xtensa mpu support 29854* [#3762](https://github.com/apache/nuttx/pull/3762) xtensa: #ifdef SYMBOL is always true if SYMBOL defined as 0 29855 29856#### ESP32 29857* [#4638](https://github.com/apache/nuttx/pull/4638) esp32xx_rom.ld: Strongly declare some of the libgcc.a functions that are ROM resident 29858* [#4417](https://github.com/apache/nuttx/pull/4417) arch/esp32: Properly handle GPIO interrupt in SMP. 29859* [#4234](https://github.com/apache/nuttx/pull/4234) espressif/esp32/esp32s2/esp32c3: Disable wdt on initialization. 29860 29861#### X86_64 29862* [#4447](https://github.com/apache/nuttx/pull/4447) Fix x86_64 29863 29864### General changes 29865* [#4233](https://github.com/apache/nuttx/pull/4233) board/ctrl: Add BOARDIOC_BOOT_IMAGE for booting a new application image 29866* [#4191](https://github.com/apache/nuttx/pull/4191) Add BOARDCTL_SWITCH_BOOT to support switch boot system 29867* [#4089](https://github.com/apache/nuttx/pull/4089) board/ctrl: add BOARDCTL_UNIQUEKEY support 29868 29869## Simulator 29870* [#3921](https://github.com/apache/nuttx/pull/3921) sim: Use cc as linker, which usually aliases to either GCC or Clang 29871* [#4108](https://github.com/apache/nuttx/pull/4108) boards/sim: enable nxlooper for alsa config 29872* [#4222](https://github.com/apache/nuttx/pull/4222) sim/cmdline: save boot cmdline 29873* [#4209](https://github.com/apache/nuttx/pull/4209) Fix sim smp 29874* [#4207](https://github.com/apache/nuttx/pull/4207) arch: sim: Workaround to make the IPI work on macOS 29875* [#4167](https://github.com/apache/nuttx/pull/4167) arch/sim: The second CPU shouldn't call up_irqinitialize 29876* [#3904](https://github.com/apache/nuttx/pull/3904) boards/sim/sim/sim: correct LDLINKFLAGS after migrating from ld to gcc 29877* [#4056](https://github.com/apache/nuttx/pull/4056) arch/sim: Fix bt and audio simulation stop work in SMP mode 29878* [#4045](https://github.com/apache/nuttx/pull/4045) sim/smp: fix smp can't start, caused by signal too busy 29879* [#4015](https://github.com/apache/nuttx/pull/4015) modify sim clock to PC abs time 29880* [#3983](https://github.com/apache/nuttx/pull/3983) arch/sim: Implement mm_mallinfo and malloc_size for the custom heap 29881* [#4459](https://github.com/apache/nuttx/pull/4459) sim: Inhibit stack protector on stack coloration function 29882* [#3721](https://github.com/apache/nuttx/pull/3721) sim/rptun: support multi(>2) core interactive by share memory 29883* [#4306](https://github.com/apache/nuttx/pull/4306) boards/sim: Add smartfs profile example 29884* [#4258](https://github.com/apache/nuttx/pull/4258) Use exit func iml host_abort. 29885* [#3689](https://github.com/apache/nuttx/pull/3689) Apps Issue #246: Replace romdisk_register() with boardctl(BOARDIOC_ROMDISK) 29886* [#4465](https://github.com/apache/nuttx/pull/4465) feature: driver: Add a Linux SPI into simulator. 29887 29888## Documentation 29889 29890### New Features 29891* [#3634](https://github.com/apache/nuttx/pull/3634) Documentation/platforms: added documentation for imxrt10xx boards 29892* [#4470](https://github.com/apache/nuttx/pull/4470) Doc: Add initial documentation to the simulator 29893* [#4419](https://github.com/apache/nuttx/pull/4419) doc/esp32: Add instructions to use softap 29894 29895### Improvements 29896* [#3782](https://github.com/apache/nuttx/pull/3782) spi: Improve SPI Slave interface documentation 29897* [#4390](https://github.com/apache/nuttx/pull/4390) Documentation: Update ESP32-C3 supported peripheral list. 29898* [#3702](https://github.com/apache/nuttx/pull/3702) Documentation/esp32c3: Fix a couple of issues from #3700 29899* [#4242](https://github.com/apache/nuttx/pull/4242) Documentation/bl602: Update some imformation 29900* [#3662](https://github.com/apache/nuttx/pull/3662) Fix some issues on SPI documentation 29901* [#4375](https://github.com/apache/nuttx/pull/4375) Documentation/esp32-wrover-kit: update the name of the GPIO interrupt device. 29902* [#4298](https://github.com/apache/nuttx/pull/4298) Doc/FAQ: Add more entries about board initialization 29903* [#3899](https://github.com/apache/nuttx/pull/3899) Documentation: Update kconfig-frontends install instructions 29904* [#4235](https://github.com/apache/nuttx/pull/4235) Documentation/: Update ESP32 doc. 29905* [#3802](https://github.com/apache/nuttx/pull/3802) Doc: Improve documentation to make clear about the priorities 29906* [#4564](https://github.com/apache/nuttx/pull/4564) Doc: Update download version to 10.1 and fix tar command 29907* [#3700](https://github.com/apache/nuttx/pull/3700) Convert ESP32-C3 README to the new Documentation 29908* [#4298](https://github.com/apache/nuttx/pull/4298) Doc/FAQ: Add more entries about board initialization 29909* [#4297](https://github.com/apache/nuttx/pull/4297) Documentation/FAQ: Why /dev/ttySx is not created 29910 29911### Driver Support 29912 29913### Bug Fixes 29914* [#3842](https://github.com/apache/nuttx/pull/3842) Added automatic log rotation, when log file is opened. 29915* [#3837](https://github.com/apache/nuttx/pull/3837) SYSLOG channel add functions return handle to the channel. 29916* [#3848](https://github.com/apache/nuttx/pull/3848) Syslog file rotations number is configurable. 29917* [#3808](https://github.com/apache/nuttx/pull/3808) Ramlog: recover last crash log from ram buffer. 29918* [#4614](https://github.com/apache/nuttx/pull/4614) input/touch: add io command for touch firmware version 29919* [#4632](https://github.com/apache/nuttx/pull/4632) feat: driver: support double buffer for display 29920* [#4650](https://github.com/apache/nuttx/pull/4650) driver/power: using upper-half structure directly in the lower-half structure. 29921* [#4370](https://github.com/apache/nuttx/pull/4370) drivers/sensors/bmp280.c: Correct bmp280 driver 29922* [#4243](https://github.com/apache/nuttx/pull/4243) drivers/mmcsd:Send cmd0 just once for Increased compatibility 29923* [#4231](https://github.com/apache/nuttx/pull/4231) adc: add ioctl command to get the number of configured channels 29924* [#4007](https://github.com/apache/nuttx/pull/4007) driver/fakesensor: fix bugs. 29925* [#4177](https://github.com/apache/nuttx/pull/4177) serial: use Ctrl+? composite key to force panic" 29926* [#3851](https://github.com/apache/nuttx/pull/3851) spi: Refactor SPI Slave interface prefix to sync with I2C Slave 29927* [#4095](https://github.com/apache/nuttx/pull/4095) drivers/syslog: Avoid prepending process name when no TCB is available 29928* [#3990](https://github.com/apache/nuttx/pull/3990) drivers: wireless: Fix error handling in gs2200m_ioctl_send() 29929* [#3860](https://github.com/apache/nuttx/pull/3860) drivers: serial: Remove an unnecessary critical section (cs) for SMP 29930* [#3910](https://github.com/apache/nuttx/pull/3910) serial/pty: Initialize the terminal setting as a console 29931* [#4110](https://github.com/apache/nuttx/pull/4110) bcm43xxx: supported IW_AUTH_CIPHER_NONE mode 29932* [#4131](https://github.com/apache/nuttx/pull/4131) drivers/rptun: replace the notification mech from signal to semaphore 29933* [#4132](https://github.com/apache/nuttx/pull/4132) serial: add ctrl+@ to force crash system for debugging 29934* [#4156](https://github.com/apache/nuttx/pull/4156) Fakesensor: support gps by read nema csv and delete fakesensor init. 29935* [#4225](https://github.com/apache/nuttx/pull/4225) sensor: directly return -ENOTSUP without the set_interval or batch 29936* [#4228](https://github.com/apache/nuttx/pull/4228) drivers: wireless: Fix to set the address family for recvfrom() in gs2200m 29937* [#4288](https://github.com/apache/nuttx/pull/4288) adc: add IOCTL commands ANIOC_RESET_FIFO and ANIOC_SAMPLES_ON_READ 29938* [#4312](https://github.com/apache/nuttx/pull/4312) drivers/qencoder: add command to set the maximum encoder position 29939* [#4652](https://github.com/apache/nuttx/pull/4652) driver/sensor: support sensor_ops: selftest 29940* [#3633](https://github.com/apache/nuttx/pull/3633) drivers/serial: fix Rx interrupt enable for cdcacm 29941* [#4504](https://github.com/apache/nuttx/pull/4504) add new interface for fb driver and lcd dev driver 29942* [#4554](https://github.com/apache/nuttx/pull/4554) drivers/lcd: Add GC9A01 driver and refine ST7735 29943* [#3658](https://github.com/apache/nuttx/pull/3658) drivers: move the generic upper-half motor driver 29944* [#4397](https://github.com/apache/nuttx/pull/4397) Update lm3s6965 29945* [#4489](https://github.com/apache/nuttx/pull/4489) drivers/mmcsd: Pass the right buffer size to SDIO_DMAPREFLIGHT 29946* [#4479](https://github.com/apache/nuttx/pull/4479) drivers/sdmmc: Remove rwbuffer to avoid panic 29947* [#4476](https://github.com/apache/nuttx/pull/4476) drivers/mmcsd: Change up_udelay to nxsig_usleep if delay >= 1ms 29948* [#4474](https://github.com/apache/nuttx/pull/4474) drivers/mmcsd: Handle the failure correctly in mmcsd_slotinitialize 29949* [#4473](https://github.com/apache/nuttx/pull/4473) drivers/mmcsd: Fix the wrong format argument in mmcsd_dmpcsd 29950* [#3720](https://github.com/apache/nuttx/pull/3720) driver/syslog: add CONFIG_SYSLOG_RPMSG_SERVER_NAME 29951* [#3864](https://github.com/apache/nuttx/pull/3864) Fix ht16k33 driver to support multi-modules 29952* [#3828](https://github.com/apache/nuttx/pull/3828) syslog/emerg: fix bug about printing LOG_EMERG log from iob buffer 29953* [#3806](https://github.com/apache/nuttx/pull/3806) syslog: fix bug about syslog_default_write 29954* [#3936](https://github.com/apache/nuttx/pull/3936) syslog/ramlog: Remove the duplication of \n->\r\n conversion 29955* [#3907](https://github.com/apache/nuttx/pull/3907) serial/pty: Don't return -NOSYS if pollfd::events equals 0 29956* [#3742](https://github.com/apache/nuttx/pull/3742) drivers/modem/altair: Fix behavior when a reset packet conflicts with a send packet 29957* [#3741](https://github.com/apache/nuttx/pull/3741) drivers/mtd/smart.c: Recover the missing link of directory entry 29958* [#3736](https://github.com/apache/nuttx/pull/3736) drivers/syslog: Remove emergstream implementation and caller 29959* [#3726](https://github.com/apache/nuttx/pull/3726) rtc: add config RTC_RPMSG_SERVER, RTC_RPMSG_SERVER_NAME 29960* [#4113](https://github.com/apache/nuttx/pull/4113) syslog/ramlog: optimize code and fix init issue 29961* [#4111](https://github.com/apache/nuttx/pull/4111) syslog/intbuf: force output log when syslog interrupt buffer is full 29962* [#4042](https://github.com/apache/nuttx/pull/4042) serial: add ioctl TIOCNOTTY 29963* [#4034](https://github.com/apache/nuttx/pull/4034) syslog: add CPU id to system when open CONFIG_SMP 29964* [#4032](https://github.com/apache/nuttx/pull/4032) syslog: fix crash when print localtime by syslog 29965* [#3979](https://github.com/apache/nuttx/pull/3979) note: Move up_schednote.c to drivers/note folder 29966* [#4475](https://github.com/apache/nuttx/pull/4475) drivers/mmcsd: Change mmsd_ prefix to mmcsd_ prefix 29967* [#4415](https://github.com/apache/nuttx/pull/4415) Adds driver for msa301 sensore module 29968* [#4420](https://github.com/apache/nuttx/pull/4420) sensor: fix the bug that lsm6dsl selftest is invalid in nuttx. 29969* [#3787](https://github.com/apache/nuttx/pull/3787) drivers/spi: Add SPI Slave character device driver 29970* [#4566](https://github.com/apache/nuttx/pull/4566) drivers/syslog: Call up_puts in syslog_default_write instad up_putc 29971* [#4580](https://github.com/apache/nuttx/pull/4580) drivers/syslog: Ensure the buffer zero terminate 29972* [#4302](https://github.com/apache/nuttx/pull/4302) Compile fixes in MCP23X17 driver. 29973* [#4299](https://github.com/apache/nuttx/pull/4299) bchlib: Improve error handling 29974* [#4345](https://github.com/apache/nuttx/pull/4345) mtd: Implement BIOC_PARTINFO for all drivers 29975* [#4248](https://github.com/apache/nuttx/pull/4248) mtd: Return MTD Partition Information 29976* [#4166](https://github.com/apache/nuttx/pull/4166) mtd: Add MTDIOC_ERASESTATE command for retrieving erase state value 29977* [#3885](https://github.com/apache/nuttx/pull/3885) mtd: Add MTDIOC_FLUSH IOCTL like MTDIOC_XIPBASE 29978* [#3722](https://github.com/apache/nuttx/pull/3722) lirc: fix bug about lirc_raw_event 29979* [#4515](https://github.com/apache/nuttx/pull/4515) rptun: add CONFIG_RPTUN_LOADER to optimize code size 29980* [#4223](https://github.com/apache/nuttx/pull/4223) rptun: optimize multi-core startup 29981* [#4552](https://github.com/apache/nuttx/pull/4552) bcm43xxx: abrupt stall of receiving new credits from sdpcm header 29982* [#4565](https://github.com/apache/nuttx/pull/4565) bcm43xxx: added SDPCM frame pool size parameter 29983* [#4236](https://github.com/apache/nuttx/pull/4236) bcm43xxx: fixed issues with unaligned buffers for DMA transfers. 29984* [#4567](https://github.com/apache/nuttx/pull/4567) lcd/st77xx: change 16 bit cmd send to 8 bit 29985* [#4137](https://github.com/apache/nuttx/pull/4137) bluetooth: add more OGF definition 29986* [#4039](https://github.com/apache/nuttx/pull/4039) Add putarea() method for st7789 29987* [#3754](https://github.com/apache/nuttx/pull/3754) wireless/bluetooth: decoupling bt_driver_s and bt_buf_s 29988 29989### New Driver Support 29990* [#3727](https://github.com/apache/nuttx/pull/3727) Add basic support for MCP23017 I/O Expander 29991* [#3859](https://github.com/apache/nuttx/pull/3859) Add Holtek HT16K33 14-segment display driver 29992* [#4641](https://github.com/apache/nuttx/pull/4641) drivers/mtd/m25px.c: add support for MT25Q256 SPI NOR 29993* [#4606](https://github.com/apache/nuttx/pull/4606) Add support for MT25Q1G SPI NOR 29994* [#4373](https://github.com/apache/nuttx/pull/4373) Add support for 3-phase Hall effect sensor driver 29995* [#4490](https://github.com/apache/nuttx/pull/4490) add support for power management ic axp202 29996 29997## Board Support 29998 29999### New Board Support 30000 30001### Boards With Significant Improvements 30002 30003#### ARM 30004 30005#### CXD56 30006* [#3833](https://github.com/apache/nuttx/pull/3833) Spresense new memorymap 30007* [#4526](https://github.com/apache/nuttx/pull/4526) Rearch video 30008* [#3973](https://github.com/apache/nuttx/pull/3973) boards: spresense: Update rndis and rndis_smp for workaround 30009* [#3744](https://github.com/apache/nuttx/pull/3744) boards: cxd56xx: Update drivers on spresense board 30010 30011#### IMX6 30012* [#3733](https://github.com/apache/nuttx/pull/3733) imx6 elf support 30013 30014#### IMXRT 30015* [#3982](https://github.com/apache/nuttx/pull/3982) boards/arm/imxrt/teensy-4.x: added board level support for GPIO driver 30016* [#3929](https://github.com/apache/nuttx/pull/3929) Added encoder support for Teensy 4.x 30017* [#3980](https://github.com/apache/nuttx/pull/3980) FlexPWM support for iMXRT MCU 30018* [#4581](https://github.com/apache/nuttx/pull/4581) Fixed imxrt flexcan driver compilation error (incorrect variable scope) 30019 30020#### LPC17XX_40XX 30021 30022#### NRF52 30023 30024#### RP2040 30025* [#3917](https://github.com/apache/nuttx/pull/3917) arm/rp2040:USB device controller support 30026* [#3857](https://github.com/apache/nuttx/pull/3857) boards: rp2040: Add user gpio driver 30027* [#3996](https://github.com/apache/nuttx/pull/3996) Support for Waveshare Pico-LCD-1.x module 30028* [#4086](https://github.com/apache/nuttx/pull/4086) Added PCF8574 backpack support to Raspberry Pi Pico 30029* [#4204](https://github.com/apache/nuttx/pull/4204) added st7735 LCD based support 30030* [#4289](https://github.com/apache/nuttx/pull/4289) Fixing BMP180 and INA219 in RP2040 30031 30032#### S32K1XX 30033* [#4643](https://github.com/apache/nuttx/pull/4643) S32K1xx arch: Add (optional) support for SPI native/hardware chip select 30034* [#4634](https://github.com/apache/nuttx/pull/4634) S32K1XX arch: gpioread may also be used for output pins 30035* [#4592](https://github.com/apache/nuttx/pull/4592) S32K1XX: Add LPI2C slave support 30036* [#4541](https://github.com/apache/nuttx/pull/4541) S32K1XX EVB boards cleanup & update 30037* [#4578](https://github.com/apache/nuttx/pull/4578) S32K1XXEVB boards: Fix RGB LED output and add comments 30038* [#4533](https://github.com/apache/nuttx/pull/4533) S32k1xx: added PM support 30039* [#4596](https://github.com/apache/nuttx/pull/4596) S32K1XX: Add FlexIO registers 30040* [#4508](https://github.com/apache/nuttx/pull/4508) s32k1xx: added way to get the reset cause in a proc fs 30041* [#4560](https://github.com/apache/nuttx/pull/4560) RDDRONE-UAVCAN / UCANS32K146 boards cleanup & update 30042 30043#### SAM34 30044* [#3732](https://github.com/apache/nuttx/pull/3732) board: Add support for Adafruit Circuit Express 30045* [#3840](https://github.com/apache/nuttx/pull/3840) Add ST7789 LCD controller support for SAMV71 XPlained Ultra board 30046 30047#### STM32 30048* [#3944](https://github.com/apache/nuttx/pull/3944) boards/arm/stm32/nucleo-f446re: added support for DAC driver 30049* [#3880](https://github.com/apache/nuttx/pull/3880) boards/arm/stm32/nucleo-f446re: added support for GPIO driver 30050* [#3909](https://github.com/apache/nuttx/pull/3909) Added basic support for nucleo-g431kb board. 30051* [#3922](https://github.com/apache/nuttx/pull/3922) Adds PWM example to nucleo-g431kb board. 30052* [#3914](https://github.com/apache/nuttx/pull/3914) boards: added support for EMW3162 Wi-Fi board 30053* [#3878](https://github.com/apache/nuttx/pull/3878) Add FOC support for B-G431-ESC1 board 30054* [#3637](https://github.com/apache/nuttx/pull/3637) boards/arm/stm32/nucleo-f446re: added support for PWM 30055* [#3660](https://github.com/apache/nuttx/pull/3660) stm32_pwm: improvements for PULSECOUNT support 30056* [#4505](https://github.com/apache/nuttx/pull/4505) STM32 F4, F7, H7 USB OTG Device Ensure EP initialized to proper state on usb reset and configure 30057* [#4589](https://github.com/apache/nuttx/pull/4589) Fix stm32xx GPIO glitches from configuration bad order of operations 30058* [#4085](https://github.com/apache/nuttx/pull/4085) stm32,stm32f7,stm32h7: supported ETH MAC promiscuous mode 30059* [#4255](https://github.com/apache/nuttx/pull/4255) STM32 DAC Driver - Add support to DAC3 30060* [#3796](https://github.com/apache/nuttx/pull/3796) boards/arm/stm32/nucleo-f412zg/scripts/Make.defs: Replace EXTRADEFINES by EXTRAFLAGS 30061* [#4284](https://github.com/apache/nuttx/pull/4284) stm32_pmw: fix pwm_stop() function to enable multiple PWM start and stop 30062* [#4353](https://github.com/apache/nuttx/pull/4353) stm32/stm32_serial.c fix issue 30063* [#4244](https://github.com/apache/nuttx/pull/4244) STM32G4: add support for CORDIC math accelerator 30064* [#4437](https://github.com/apache/nuttx/pull/4437) stm32_serial.c: Don't fake a TX interrupt when interrupts are not suppressed 30065* [#3863](https://github.com/apache/nuttx/pull/3863) boards/arm/stm32/nucleo-f446re: fixed wrong qetimer config name 30066* [#3952](https://github.com/apache/nuttx/pull/3952) SDIO IO_RW_EXTENDED command (CMD53) related fixes 30067* [#4597](https://github.com/apache/nuttx/pull/4597) Add LCD backpack support for ESP32 (devkit-c). 30068 30069#### STM32L4 30070* [#4534](https://github.com/apache/nuttx/pull/4534) STM32L4 LPUART support 30071 30072#### STM32F4 30073 30074#### STM32F7 / STM32H7 30075 * [#3646](https://github.com/apache/nuttx/pull/3646) boards/stm32f7: Add i2c and mpu60x0 support to nucleo-144 and fix bitmask bug in mpu60x0 30076* [#3650](https://github.com/apache/nuttx/pull/3650) stm32{H7|F7} Disables/Enabled the use of GPIO_OTG_ID pin 30077* [#3669](https://github.com/apache/nuttx/pull/3669) STM32 {F7|H7} Use 250 Ms Data path timeout, regardless of Card Clock frequency 30078* [#3651](https://github.com/apache/nuttx/pull/3651) Use inttypes in stm32{f7|h7}, Kinetis, s32k drivers. 30079* [#4524](https://github.com/apache/nuttx/pull/4524) stm32*7/stm32_serial.c: Don't fake a TX interrupt when interrupts are not suppressed 30080* [#4598](https://github.com/apache/nuttx/pull/4598) stm32h7:DMA_TRBUFF is DMA_SCR_TRBUFF 30081 30082#### KINETIS 30083* [#4190](https://github.com/apache/nuttx/pull/4190) kinetis lpserial add RX DMA 30084 30085#### ARM 30086#### AVR32 30087* [#3684](https://github.com/apache/nuttx/pull/) avr32dev1: USART1 RX: Reassign pin 30088 30089#### MIPS 30090#### PIC32 30091* [#4264](https://github.com/apache/nuttx/pull/) boards: added a basic support for chipKIT Wi-FIRE board 30092 30093#### RISC-V 30094* [#3846](https://github.com/apache/nuttx/pull/3846) risc-v/rv32m1: Basic port to rv32m1 ri5cy 30095* [#4146](https://github.com/apache/nuttx/pull/4146) risc-v/bl602: add boardctl support 30096* [#3911](https://github.com/apache/nuttx/pull/3911) Add i2c driver to PolarFire SoC and Icicle board 30097* [#3905](https://github.com/apache/nuttx/pull/3905) Add SPI driver to PolarFire SoC and Icicle board 30098* [#3933](https://github.com/apache/nuttx/pull/3933) riscv/mpfs: add i2c reset handler 30099* [#3920](https://github.com/apache/nuttx/pull/3920) add dma support for PolarFire SoC 30100* [#4569](https://github.com/apache/nuttx/pull/4569) MPFS emmcsd 30101 30102#### BL602 30103* [#4010](https://github.com/apache/nuttx/pull/4010) boards/bl602: Fix uart_nx.c:419: undefined reference to `uart_bth4_register 30104 30105#### C906 30106 30107#### ESP32-C3 30108* [#3794](https://github.com/apache/nuttx/pull/3794) risc-v/esp32c3: Support ESP32-C3 RTC driver 30109* [#3883](https://github.com/apache/nuttx/pull/3883) risc-v/esp32c3: Support ESP32-C3 RSA accelerator 30110* [#3881](https://github.com/apache/nuttx/pull/3881) risc-v/esp32c3: Support ESP32-C3 efuse 30111* [#3935](https://github.com/apache/nuttx/pull/3935) risc-v/esp32c3: Support ESP32-C3 SHA accelerator 30112* [#3882](https://github.com/apache/nuttx/pull/3882) riscv/esp32c3: Use the RTC memory as another heap. 30113* [#3945](https://github.com/apache/nuttx/pull/3945) boards/esp32c3: Add romfs configuration 30114* [#3925](https://github.com/apache/nuttx/pull/3925) risc-v/esp32-c3: Adds I2C polled support 30115* [#3823](https://github.com/apache/nuttx/pull/3823) risc-v/esp32-c3: Add support for HW flow control. 30116* [#3822](https://github.com/apache/nuttx/pull/3822) ESP32-C3: Add DMA support for SPI Slave 30117* [#3543](https://github.com/apache/nuttx/pull/3543) feat(esp32c3): Support esp32c3 ble function 30118* [#3667](https://github.com/apache/nuttx/pull/3667) risc-v/esp32c3: Add ESP32-C3 (G)DMA driver and testing 30119* [#4605](https://github.com/apache/nuttx/pull/4605) risc-v/esp32-c3: improvements and fix to esp32c3_rt_timer.c 30120* [#4611](https://github.com/apache/nuttx/pull/4611) ESP32-C3: Add support for booting NuttX from MCUboot 30121* [#3656](https://github.com/apache/nuttx/pull/3656) risc-v/esp32-c3: Adds freerun wrapper 30122* [#4574](https://github.com/apache/nuttx/pull/4574) esp32c3-devkit: Add board profile to use LVGL on GC9A01 display 30123* [#3810](https://github.com/apache/nuttx/pull/3810) risc-v/esp32c3: Fix overwriting of registered-but-disabled interrupts 30124* [#3797](https://github.com/apache/nuttx/pull/3797) ESP32-C3: Add SPI Slave peripheral driver 30125* [#4568](https://github.com/apache/nuttx/pull/4568) boards/esp32c3: add ESP32C3 LCD drivers 30126* [#4553](https://github.com/apache/nuttx/pull/4553) risc-v/esp32c3: fix pwm driver bug 30127* [#4500](https://github.com/apache/nuttx/pull/4500) risc-v/esp32-c3: refactor the Wi-Fi board logic. 30128* [#3679](https://github.com/apache/nuttx/pull/3679) risc-v/esp32c3: Support ESP32-C3 PM standby and sleep 30129* [#3766](https://github.com/apache/nuttx/pull/3766) riscv/esp32c3: Add ESP32-C3 AES driver 30130* [#3750](https://github.com/apache/nuttx/pull/3750) riscv/esp32c3: Support SPI Flash encryption read/write 30131* [#3735](https://github.com/apache/nuttx/pull/3735) riscv/esp32c3: Add ESP32-C3 ADC driver 30132* [#3715](https://github.com/apache/nuttx/pull/3715) risc-v/esp32c3: Support ESP32-C3 auto-sleep 30133* [#4239](https://github.com/apache/nuttx/pull/4239) risc-v/esp32-c3: Adds systimer support and make rt_timer rely on it 30134* [#3694](https://github.com/apache/nuttx/pull/3694) risc-v/esp32c3: Add support for DMA transfers on SPI driver 30135* [#3697](https://github.com/apache/nuttx/pull/3697) riscv/esp32c3: Fix RT timer issues 30136* [#3906](https://github.com/apache/nuttx/pull/3906) risc-v/esp32c3_wifi_adapter.c: Remove a config that's only used in Xtensa chips. 30137* [#3701](https://github.com/apache/nuttx/pull/3701) riscv/esp32c3: Add ESP32C3 LEDC(PWM) driver 30138* [#3854](https://github.com/apache/nuttx/pull/3854) ESP32-C3: Small clean up on IRQ functions 30139* [#4006](https://github.com/apache/nuttx/pull/4006) risc-v/esp32c3: Notifies networking layer whether the carrier is available 30140* [#3788](https://github.com/apache/nuttx/pull/3788) ESP32-C3: Fix configuration of TX Burst support for GDMA 30141* [#4040](https://github.com/apache/nuttx/pull/4040) risc-v/esp32c3: Fix some ESP32-C3 BLE driver issues 30142* [#4082](https://github.com/apache/nuttx/pull/4082) boards/esp32c3-devkit: Support mounting SPI Flash MTD to littleFS 30143* [#4075](https://github.com/apache/nuttx/pull/4075) risc-v/esp32c3: Add board_ioctl and board_uniqueid 30144* [#4092](https://github.com/apache/nuttx/pull/4092) risc-v/esp32c3: Use onexit to free thread private semaphore 30145* [#3971](https://github.com/apache/nuttx/pull/3971) boards/riscv/esp32c3: Rename the iram_0_2 segment to irom_0_0 to avoid confusions. 30146* [#4141](https://github.com/apache/nuttx/pull/4141) risc-v/esp32-c3: Use systimer 0 to RTOS TICK 30147* [#3793](https://github.com/apache/nuttx/pull/3793) esp32&esp32c3/wifi: Support specific channel and bssid scan 30148* [#4162](https://github.com/apache/nuttx/pull/4162) risc-v/esp32c3: Fix some ESP32-C3 Wi-Fi driver issues 30149* [#4169](https://github.com/apache/nuttx/pull/4169) risc-v/esp32-c3: Makes output readable and rmv unnecessary var. 30150* [#4314](https://github.com/apache/nuttx/pull/4314) risc-v/esp32-c3: Complete the support for RWDT 30151 30152#### XTENSA 30153* [#4590](https://github.com/apache/nuttx/pull/4590) [Xtensa/RISC-V] Remove FAR and CODE qualifiers from arch-specific files 30154* [#4187](https://github.com/apache/nuttx/pull/4187) Fix xtensa_btdump() to look at the exception frame 30155* [#4556](https://github.com/apache/nuttx/pull/4556) xtensa:backtrace: flush to stack when in interrupt 30156* [#3939](https://github.com/apache/nuttx/pull/3939) Fix xtensa 30157* [#4531](https://github.com/apache/nuttx/pull/4531) xtensa/irq.h: Fixes the routine that clears the processor interrupt 30158* [#4278](https://github.com/apache/nuttx/pull/4278) xtensa/common: save sp before overwriting in level2/3/4 handler and typo fix 30159* [#4311](https://github.com/apache/nuttx/pull/4311) xtensa:coproc: fix XTENSA_CP_ALLSET error in some case 30160* [#3768](https://github.com/apache/nuttx/pull/3768) xtensa: Fixes names of architecture serial functions 30161 30162#### ESP32 30163* [#3940](https://github.com/apache/nuttx/pull/3940) xtensa/esp32: Support ESP32 RTC driver 30164* [#4003](https://github.com/apache/nuttx/pull/4003) xtensa/esp32: Adds support for SERIAL_TXDMA. 30165* [#3912](https://github.com/apache/nuttx/pull/3912) xtensa/esp32: Adds I2C polled support. 30166* [#3803](https://github.com/apache/nuttx/pull/3803) Add support to ESP32-S2 and ESP32S2-SAOLA-1 Board 30167* [#3824](https://github.com/apache/nuttx/pull/3824) xtensa/esp32-s2: Add support for serial HW flow control. 30168* [#4604](https://github.com/apache/nuttx/pull/4604) xtensa/esp32: Enable build system to download or build binaries from source 30169* [#3642](https://github.com/apache/nuttx/pull/3642) xtensa/esp32: several uart fixes 30170* [#3648](https://github.com/apache/nuttx/pull/3648) tools/esp32/mk_qemu_img.sh: Refactor the dd commands. 30171* [#4625](https://github.com/apache/nuttx/pull/4625) esp32-c3/esp32-s2: Fix the sequence of commands to set the alarm value on rt timer. 30172* [#4610](https://github.com/apache/nuttx/pull/4610) ESP32-S2: Add support for booting NuttX from MCUboot 30173* [#3678](https://github.com/apache/nuttx/pull/3678) xtensa/esp32: Support auto-sleep 30174* [#4532](https://github.com/apache/nuttx/pull/4532) boards/esp32s2-saola-1: Add implementation for BOARDIOC_RESET interface 30175* [#4275](https://github.com/apache/nuttx/pull/4275) xtensa/esp32: Keep track of the CPU where the interrupt was attached. 30176* [#4295](https://github.com/apache/nuttx/pull/4295) xtensa/esp32: Enable boot from Espressif's port of MCUboot 30177* [#4315](https://github.com/apache/nuttx/pull/4315) xtensa/esp32: Fix issues on RWDT 30178* [#4366](https://github.com/apache/nuttx/pull/4366) xtensa/esp32: Use IRQ to enable/disable interrupts 30179* [#4427](https://github.com/apache/nuttx/pull/4427) esp32/ttgo_lora_esp32: Add support to SSD1306 OLED display 30180* [#4388](https://github.com/apache/nuttx/pull/4388) esp32: Re-organize the interrupt handling process to correctly handle the SMP case 30181* [#4401](https://github.com/apache/nuttx/pull/4401) xtensa/esp32-s2: Adds support to the timer driver 30182* [#4545](https://github.com/apache/nuttx/pull/4545) esp32-wrover: Add support to LCD1602 with I2C Backpack 30183* [#4587](https://github.com/apache/nuttx/pull/4587) xtensa/esp32-s2: Adds freerun timer wrapper 30184* [#4139](https://github.com/apache/nuttx/pull/4139) xtensa/esp32: Fixes termios issue. 30185* [#4586](https://github.com/apache/nuttx/pull/4586) xtensa/esp32-s2: Adds oneshot device driver support 30186* [#4570](https://github.com/apache/nuttx/pull/4570) esp32_spiflash.c: Correctly disable APP's CPU cache. 30187* [#4509](https://github.com/apache/nuttx/pull/4509) esp32: Add initial support to Bluetooth Low Energy 30188* [#4411](https://github.com/apache/nuttx/pull/4411) esp32/softap: Enable the WPA2 by default to ask user password 30189* [#4412](https://github.com/apache/nuttx/pull/4412) boards/esp32: Add basic support to TTGO-LoRa-SX1276-ESP32 30190* [#4585](https://github.com/apache/nuttx/pull/4585) xtensa/esp32-s2: Adds support to rt_timer and systimer to ESP32-S2. 30191* [#4170](https://github.com/apache/nuttx/pull/4170) xtensa/esp32: Make output readable and rmv unnecessary var. 30192* [#4195](https://github.com/apache/nuttx/pull/4195) esp32_allocateheap.c: Remove the amount reserved to himem from the heap. 30193* [#4232](https://github.com/apache/nuttx/pull/4232) xtensa/esp32: Enable configuration of GPIO pad's drive strength 30194* [#4240](https://github.com/apache/nuttx/pull/4240) xtensa/esp32: expose SPI2 as a char driver 30195* [#4253](https://github.com/apache/nuttx/pull/4253) xtensa/esp32: Enable the allocation of multiple SPI Flash partitions 30196* [#4338](https://github.com/apache/nuttx/pull/4338) tools/esp32/Config.mk: Allow ESPTOOL_BINDIR to be omitted when flashing the board 30197* [#3938](https://github.com/apache/nuttx/pull/3938) esp32&esp32c3/wifi: Fix the issues of Wi-Fi configuration being overwritten 30198* [#3969](https://github.com/apache/nuttx/pull/3969) boards/esp32: Refactor the different linker scripts and delete old OpenOCD config files. 30199* [#3975](https://github.com/apache/nuttx/pull/3975) xtensa/esp32: Fix RTC WDT deinitialization on start routine 30200* [#3987](https://github.com/apache/nuttx/pull/3987) tools/esp32/backtrace.gdbscript: don't modify registers 30201* [#4001](https://github.com/apache/nuttx/pull/4001) xtensa/esp32: Support to select different clock source for RTC controller and close TODOs. 30202* [#4073](https://github.com/apache/nuttx/pull/4073) xtensa/esp32: Fix uart 2 issue. 30203* [#3800](https://github.com/apache/nuttx/pull/3800) arch/xtensa/esp32_emac.c: Call phy_enable_interrupt correctly. 30204* [#4157](https://github.com/apache/nuttx/pull/4157) boards/esp32: Refactor the linker scripts into the common directory. 30205* [#4249](https://github.com/apache/nuttx/pull/4249) xtensa/esp32-s2: Adds GPIO board logic to esp32s2-saola-1. 30206* [#4471](https://github.com/apache/nuttx/pull/4471) xtensa/esp32: Wi-Fi board logic refactoring. 30207* [#4497](https://github.com/apache/nuttx/pull/4497) esp32_serial.c: Don't fake an interrupt when interrupts are not suppressed. 30208* [#3829](https://github.com/apache/nuttx/pull/3829) xtensa/esp32: Fixes support for UART HW flow control 30209* [#3943](https://github.com/apache/nuttx/pull/3943) xtensa/esp32: Adds I2C Bit banging reset 30210* [#3960](https://github.com/apache/nuttx/pull/3960) xtensa/esp32: Refactor the text heap and add RTC memory to it 30211* [#4646](https://github.com/apache/nuttx/pull/4646) Add example to use BLE and WiFi at same time 30212 30213## File System 30214 30215### Bug Fixes 30216* [#3653](https://github.com/apache/nuttx/pull/3653) fs:cromf Use inttypes in printing macros 30217* [#4573](https://github.com/apache/nuttx/pull/4573) fs:procfs: add waiting_paging_fill state names 30218* [#3745](https://github.com/apache/nuttx/pull/3745) fs/vfs/fs_select.c: Fix select() to return EINVAL when nfds is negative 30219* [#3740](https://github.com/apache/nuttx/pull/3740) fs/fat/fat32util.c: Fix calculation of current sector with invalid cl… 30220* [#3724](https://github.com/apache/nuttx/pull/3724) fs/hostfs: fix bug about getting error file size by fstat 30221* [#3785](https://github.com/apache/nuttx/pull/3785) FAT32 fix skipping sectors at computing the number of free clusters 30222* [#4171](https://github.com/apache/nuttx/pull/4171) fs/tmpfs: Handle the tail '/' correctly 30223* [#4539](https://github.com/apache/nuttx/pull/4539) vfs/poll: correct the return event if inode has closed 30224* [#3760](https://github.com/apache/nuttx/pull/3760) Fix calculation of free clusters at mounting a fat partition 30225* [#4012](https://github.com/apache/nuttx/pull/4012) fs: move out nx_close from filelock 30226* [#3974](https://github.com/apache/nuttx/pull/3974) fs/tmpfs: Fix the memory corruption when reallocate tmpfs_directory_s 30227* [#3986](https://github.com/apache/nuttx/pull/3986) fs: nfs: Reconnect to the NFS server in TCP mode 30228* [#4031](https://github.com/apache/nuttx/pull/4031) fs/fs_dup2: (sanity check )correct check before calling dup 30229* [#4033](https://github.com/apache/nuttx/pull/4033) fs/procfs: add StackAlloc field for task stack info 30230* [#4061](https://github.com/apache/nuttx/pull/4061) FAT32 kconfig entry to enforce computation of free clusters at mount 30231* [#4079](https://github.com/apache/nuttx/pull/4079) fs/procfs: layout the output of meminfo correctly 30232* [#4093](https://github.com/apache/nuttx/pull/4093) fs: Move the default ioctl handle from nx_vioctl to file_vioctl 30233* [#4097](https://github.com/apache/nuttx/pull/4097) fs: Remove the inernal st_count field from struct stat 30234* [#4101](https://github.com/apache/nuttx/pull/4101) fs: pseudorename should call inode_release in the error path 30235* [#4118](https://github.com/apache/nuttx/pull/4118) fs: Support the root file system attributes(mode, uid, gid and time) 30236* [#4119](https://github.com/apache/nuttx/pull/4119) fs: fstat shouldn't follow the symbol link 30237* [#4121](https://github.com/apache/nuttx/pull/4121) vfs: stat_recursive should return -ENOSYS if stat callback is NULL 30238* [#4123](https://github.com/apache/nuttx/pull/4123) nuttx: littlefs_close should return value bugfix 30239* [#4153](https://github.com/apache/nuttx/pull/4153) fs: Add fchstat and chstat callback into mountpt_operations 30240* [#4165](https://github.com/apache/nuttx/pull/4165) fs: should only apply umask to the userspace caller 30241* [#4174](https://github.com/apache/nuttx/pull/4174) Fix nfs and statfs 30242* [#4193](https://github.com/apache/nuttx/pull/4193) fs: Change off_t and related types to int64_t if long long is supported 30243* [#4224](https://github.com/apache/nuttx/pull/4224) fs/inode: add sanity check for inode to avoid nullpointer 30244* [#4263](https://github.com/apache/nuttx/pull/4263) fs: Save umask to tls_task_s for non kernel mode only 30245* [#4300](https://github.com/apache/nuttx/pull/4300) fs: Add utimens and lutimens 30246* [#4307](https://github.com/apache/nuttx/pull/4307) fs/userfs: Support fchstat and chstat callback 30247* [#4308](https://github.com/apache/nuttx/pull/4308) fs/unionfs: Support fchstat and chstat callback 30248* [#4309](https://github.com/apache/nuttx/pull/4309) fs/nfs: Support fchstat and chstat callback 30249* [#4330](https://github.com/apache/nuttx/pull/4330) fs/littlefs: improve littlefs flash block erase balance performance 30250* [#4332](https://github.com/apache/nuttx/pull/4332) fs: Support 64bit in register_[block|mtd]partition 30251* [#4333](https://github.com/apache/nuttx/pull/4333) fs/partition: Support BIOC_PARTINFO 30252* [#4321](https://github.com/apache/nuttx/pull/4321) fs: Remove endsector from partition_info_s 30253* [#3680](https://github.com/apache/nuttx/pull/3680) fs/eventfd: add EVENT_FD_POLL as a Kconfig dependency for EVENT_FD_NPOLLWAITERS 30254* [#4514](https://github.com/apache/nuttx/pull/4514) fs/ioctl: using FIOC_FILEPATH instead of FIOC_FILENAME 30255* [#4511](https://github.com/apache/nuttx/pull/4511) inode_getpath: correct get path whether path buffer is clean or not. 30256* [#4276](https://github.com/apache/nuttx/pull/4276) Fix status register reading in ramtron_read() 30257* [#4290](https://github.com/apache/nuttx/pull/4290) cmd/df: Fix the abnormal output after off_t change 30258* [#4133](https://github.com/apache/nuttx/pull/4133) profs: Print StackAlloc by procfs_snprintf 30259 30260### Significant Improvements 30261 30262## Networking 30263 30264### Improvements 30265* [#4538](https://github.com/apache/nuttx/pull/4538) sys/socket/scm: add more socket message control helper 30266* [#4080](https://github.com/apache/nuttx/pull/4080) net/socket: add SO_SNDBUF support 30267* [#4116](https://github.com/apache/nuttx/pull/4116) net: Add file_socket function 30268* [#4135](https://github.com/apache/nuttx/pull/4135) net/rpmsg: add multi-iov support 30269* [#4179](https://github.com/apache/nuttx/pull/4179) Update socket rpmsg 30270* [#4355](https://github.com/apache/nuttx/pull/4355) net/rpmsg: add nonblock connect(2) support 30271* [#4356](https://github.com/apache/nuttx/pull/4356) net/local: add nonblock connect(2) support 30272* [#4357](https://github.com/apache/nuttx/pull/4357) net/tcp: add nonblock connect(2) support 30273* [#4070](https://github.com/apache/nuttx/pull/4070) net/tcp: add window scale support 30274* [#3926](https://github.com/apache/nuttx/pull/3926) net/inet: add support of FIONREAD 30275* [#3896](https://github.com/apache/nuttx/pull/3896) net/local: add local_nextconn() helper 30276* [#3961](https://github.com/apache/nuttx/pull/3961) net: Add if_nameindex and if_freenameindex API 30277* [#4069](https://github.com/apache/nuttx/pull/4069) net/socket: add SO_RCVBUF support 30278* [#4071](https://github.com/apache/nuttx/pull/4071) net/local: add AF_[UNIX|LOCAL] socketpair support 30279* [#4540](https://github.com/apache/nuttx/pull/4540) net/local: add FIONSPACE support 30280* [#4593](https://github.com/apache/nuttx/pull/4593) net/local: add socket message control support 30281 30282### Bug Fixes 30283* [#4602](https://github.com/apache/nuttx/pull/4602) net/dup: only start tcp monitor on INET domain 30284* [#4649](https://github.com/apache/nuttx/pull/4649) net: always compile listen.c and accept.c when enable CONFIG_NET 30285* [#4603](https://github.com/apache/nuttx/pull/4603) [SECURITY]net/tcp: sanity check for the listen address 30286* [#4579](https://github.com/apache/nuttx/pull/4579) net/devif/devif_callback.c: made the connection event list doubly linked 30287* [#4433](https://github.com/apache/nuttx/pull/4433) net/devif/devif_callback.c: corrected the connection event list to work as FIFO instead of LIFO 30288* [#3776](https://github.com/apache/nuttx/pull/3776) net/dev: link the net device as order of registration 30289* [#3758](https://github.com/apache/nuttx/pull/3758) net/tcp/retransmit: recounter the ack counter during obtain newdata 30290* [#3723](https://github.com/apache/nuttx/pull/3723) net: Forward socket option only when the socket type is usrsock 30291* [#4480](https://github.com/apache/nuttx/pull/4480) net: utils: Remove critical section for SMP in net_lock.c 30292* [#3707](https://github.com/apache/nuttx/pull/3707) Fix NFS over TCP 30293* [#3818](https://github.com/apache/nuttx/pull/3818) tcp: recv window update improvement 30294* [#3655](https://github.com/apache/nuttx/pull/3655) Attempt to fix race condition reported in issue #3647 30295* [#3865](https://github.com/apache/nuttx/pull/3865) Fix tcp seq wrap around issues 30296* [#3889](https://github.com/apache/nuttx/pull/3889) net/dns:fix unaligned access in dns query 30297* [#3894](https://github.com/apache/nuttx/pull/3894) net/telnet: fix a potential busyloop if rxbuffer writes faster than read 30298* [#3934](https://github.com/apache/nuttx/pull/3934) net/local: Remove all HAVE_LOCAL_POLL reference 30299* [#3755](https://github.com/apache/nuttx/pull/3755) net/icmp: icmp bug fix and enhancement 30300* [#3993](https://github.com/apache/nuttx/pull/3993) tcp_reset: Don't copy the peer window 30301* [#3994](https://github.com/apache/nuttx/pull/3994) tcp: always responds to keep-alive segments 30302* [#3995](https://github.com/apache/nuttx/pull/3995) fix active close for CONFIG_NET_TCP_WRITE_BUFFERS 30303* [#3999](https://github.com/apache/nuttx/pull/3999) some follow-up patches for the recent tcp readahead 30304* [#4017](https://github.com/apache/nuttx/pull/4017) rpmsg_socket: fix rpmsg_socket_device_destroy() multi-access 30305* [#4022](https://github.com/apache/nuttx/pull/4022) tcp_close: Fix a race with passive close 30306* [#3966](https://github.com/apache/nuttx/pull/3966) net: Fix: left shift of 1 by 31 places cannot be represented in type long int 30307* [#3948](https://github.com/apache/nuttx/pull/3948) TCP: simplify readahead 30308* [#3114](https://github.com/apache/nuttx/pull/3114) usrsock/recv: guarantee all data is received before close 30309* [#3756](https://github.com/apache/nuttx/pull/3756) net/tcp: set/get TCP_KEEPINTVL/IDLE value as BSD style 30310* [#3895](https://github.com/apache/nuttx/pull/3895) net/accept: alloc the accept fd after accept success 30311* [#3937](https://github.com/apache/nuttx/pull/3937) dns_recv_response: Fix IPv6 address in an ninfo() 30312* [#4408](https://github.com/apache/nuttx/pull/4408) Fix up that local socket will be endless loop when write data size more than the fifo size. 30313* [#4517](https://github.com/apache/nuttx/pull/4517) rpmsg_socket: add prefix "rpmsg-socket" for the name of rpmsg endpoint 30314* [#4537](https://github.com/apache/nuttx/pull/4537) net/udp: fix buffer release handling on failed buffer alloc 30315* [#4120](https://github.com/apache/nuttx/pull/4120) net/tcp: tcp_sendfile need restore the file location at the end 30316* [#4134](https://github.com/apache/nuttx/pull/4134) net/tcp: only print the error when disable the TCP_NODELAY 30317* [#4142](https://github.com/apache/nuttx/pull/4142) tcp_send_buffered: throttle IOB allocations for send 30318* [#4159](https://github.com/apache/nuttx/pull/4159) tcp_send_buffered.c: Fix broken retransmit 30319* [#4126](https://github.com/apache/nuttx/pull/4126) include/netinet: Add missing IP_TTL definition 30320* [#4197](https://github.com/apache/nuttx/pull/4197) local/stream: remove preamble header in stream mode 30321* [#4273](https://github.com/apache/nuttx/pull/4273) tcp: some fixes in snd_wnd processing 30322* [#4293](https://github.com/apache/nuttx/pull/4293) tcp: make our sequence number a bit more monotonic 30323* [#4257](https://github.com/apache/nuttx/pull/4257) Fix a few deadlock in tcp/iob 30324* [#4480](https://github.com/apache/nuttx/pull/4480) net: utils: Remove critical section for SMP in net_lock.c 30325* [#3919](https://github.com/apache/nuttx/pull/3919) tcp iob throttling related fixes 30326 30327# Security Issues Fixed In This Release 30328 30329# Compatibility Concerns 30330 30331## Changes to Kconfig 30332 30333The names of some Kconfig settings have been changed to improve the naming consistency. Here is the list: 30334 30335| Old| New | 30336|:------------------:| -----------------:| 30337|LIB_BOARDCTL|BOARDCTL | 30338|LIB_CRC64_FAST|LIBC_CRC64_FAST| 30339|LIB_ENVPATH |LIBC_ENVPATH | 30340|LIB_HEX2BIN |LIBC_HEX2BIN | 30341|LIB_HOMEDIR |LIBC_HOMEDIR | 30342|LIB_HOSTNAME|LIBC_HOSTNAME| 30343|LIB_KBDCODEC|LIBC_KBDCODEC| 30344|LIB_RAND_ORDER|LIBC_RAND_ORDER| 30345|LIB_SLCDCODEC |LIBC_SLCDCODEC | 30346|LIB_USRWORK |LIBC_USRWORK | 30347|LIB_USRWORKPRIORITY |LIBC_USRWORKPRIORITY | 30348|LIB_USRWORKSTACKSIZE|LIBC_USRWORKSTACKSIZE| 30349|LIB_ZONEINFO|LIBC_ZONEINFO| 30350|LIB_ZONEINFO_ROMFS|LIBC_ZONEINFO_ROMFS| 30351 30352When they appear in code, these identifiers begin with a `CONFIG_*` prefix (e.g., `CONFIG_LIB_BOARDCTL` is renamed to `CONFIG_BOARDCTL`). 30353 30354All in-tree boards have been updated, but users who maintain their own out-of-tree boards will have to update all instances of these identifiers. 30355 30356See PR-4266 https://github.com/apache/nuttx/pull/4266 and PR-4267 https://github.com/apache/nuttx/pull/4267 in the main NuttX repository. 30357 30358See also PR-820 https://github.com/apache/nuttx-apps/pull/820 and PR-821 https://github.com/apache/nuttx-apps/pull/821 in the NuttX apps repository. 30359 30360## Changes to MTD subsystem 30361 30362MTDIOC_XIPBASE, MTDIOC_FLUSH and MTDIOC_PARTINFO is removed and replace with BIOC_XIPBASE, BIOC_FLUSH and BIOC_PARTINFO: 30363 30364* Simplify the general driver(e.g. partition, flt) implementation 30365* Reduce the confusion with the same IOCTL in the different layer 30366 30367See PR-4325 https://github.com/apache/nuttx/pull/4325 30368 30369## Changes to Build System 30370 30371### LD Now Called Through GCC 30372 30373When building NuttX with GCC toolchains, the linker is now called through $(CROSSDEV)gcc rather than $(CROSSDEV)ld. This requires all linker options to be prefixed with `-Wl,` (dash, capital W, lower-case L, comma). All boards in the NuttX tree have been updated, but any custom out-of-tree boards will need to apply this change in the relevant parts of their build scripts. 30374 30375The reason for this change is that GNU Binutils 2.36.x has added new error checking on command line arguments. This has had the effect that the NuttX build suddenly broke on host OS distributions that updated to the 2.36.x release line. Reports included Arch, Manjaro, and Ubuntu. Other host OSes are likely to be affected as well. 30376 30377#### Symptoms 30378 30379Your toolchain and board are affected if you see errors from LD like: 30380 30381``` 30382arm-none-eabi-ld: Error: unable to disambiguate: -nostartfiles (did you mean --nostartfiles ?) 30383``` 30384 30385or (following this change in NuttX) errors from GCC like: 30386 30387``` 30388arm-none-eabi-gcc: error: unrecognized command line option '--gc-sections'; did you mean '--data-sections'? 30389``` 30390 30391#### What to change 30392 30393The most common change expected to affect most boards: 30394 30395Change: 30396 30397``` 30398NXFLATLDFLAGS1 = -r -d -warn-common 30399NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections 30400``` 30401 30402to: 30403 30404``` 30405NXFLATLDFLAGS1 = -r -Wl,-d -Wl,-warn-common 30406NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -Wl,-no-check-sections 30407``` 30408 30409If doing a kernel build, you may need changes in your board's `kernel/Makefile` like: 30410 30411Change: 30412 30413``` 30414USER_LDFLAGS = --undefined=$(ENTRYPT) --entry=$(ENTRYPT) $(USER_LDSCRIPT) 30415``` 30416 30417to: 30418 30419``` 30420USER_LDFLAGS = -Wl,--undefined=$(ENTRYPT) -Wl,--entry=$(ENTRYPT) $(USER_LDSCRIPT) -nostartfiles -nodefaultlibs 30421``` 30422 30423Change: 30424 30425``` 30426$(Q) $(LD) -o $@ $(USER_LDFLAGS) $(USER_LIBPATHS) $(OBJS) --start-group $(USER_LDLIBS) --end-group $(USER_LIBGCC) 30427``` 30428 30429to: 30430 30431``` 30432$(Q) $(LD) -o $@ $(USER_LDFLAGS) $(USER_LIBPATHS) $(OBJS) -Wl,--start-group $(USER_LDLIBS) -Wl,--end-group $(USER_LIBGCC) 30433``` 30434 30435Depending on your board's customized build scripts, you may need to look out for other `make` variables in your board's `Makefile` or `Make.defs`. 30436 30437Some variables to look for: 30438 30439- `ARCHSCRIPT` 30440- `ARCH_LIBS` 30441- `CCLINKFLAGS` 30442- `EXTRALINKCMDS` 30443- `LDELFFLAGS` 30444- `LDENDGROUP` 30445- `LDFLAGS` 30446- `LDLINKFLAGS` 30447- `LDMODULEFLAGS` 30448- `LDSTARTGROUP` 30449- `NXFLATLDFLAGS1` 30450- `NXFLATLDFLAGS2` 30451- `USER_LDFLAGS` 30452 30453Anything that executes LD, such as: 30454 30455``` 30456$(Q) $(LD) --entry=__start $(LDFLAGS) $(LIBPATHS) $(EXTRA_LIBPATHS) \ 30457``` 30458 30459Anything that processes LD flags, such as: 30460 30461``` 30462$(LIBPATHS) "-(" $(LDLIBS) "-)" $(LDFLAGS) -Map="$(TOPDIR)$(DELIM)nuttx.map" 30463``` 30464 30465In general, any command line options destined for LD must be prefixed with `-Wl,` (dash, capital W, lower-case L, comma) since they are now being passed through GCC. 30466 30467#### Examples 30468 30469Change: 30470 30471``` 30472EXTRALINKCMDS += @$(TOPDIR)/syscall/syscall_wraps.ldcmd 30473``` 30474 30475to: 30476 30477``` 30478EXTRALINKCMDS += -Wl,@$(TOPDIR)/syscall/syscall_wraps.ldcmd 30479``` 30480 30481Change: 30482 30483``` 30484LDFLAGS += -gc-sections 30485``` 30486 30487to: 30488 30489``` 30490LDFLAGS += -Wl,-gc-sections 30491``` 30492 30493Change: 30494 30495``` 30496$(LIBPATHS) "-(" $(LDLIBS) "-)" $(LDFLAGS) -Map="$(TOPDIR)$(DELIM)nuttx.map" 30497``` 30498 30499to: 30500 30501``` 30502$(LIBPATHS) "-(" $(LDLIBS) "-)" $(LDFLAGS) -Wl,-Map="$(TOPDIR)$(DELIM)nuttx.map" 30503``` 30504 30505Change: 30506 30507``` 30508NXFLATLDFLAGS1 = -r -d -warn-common 30509``` 30510 30511to: 30512 30513``` 30514NXFLATLDFLAGS1 = -r -Wl,-d -Wl,-warn-common 30515``` 30516 30517Change: 30518 30519``` 30520ifeq ($(CONFIG_CYGWIN_WINTOOL),y) 30521LDFLAGS += -Map="${shell cygpath -w $(TOPDIR)/nuttx.map}" --cref 30522else 30523LDFLAGS += -Map=$(TOPDIR)/nuttx.map --cref 30524endif 30525``` 30526 30527to: 30528 30529``` 30530ifeq ($(CONFIG_CYGWIN_WINTOOL),y) 30531LDFLAGS += -Wl,-Map="${shell cygpath -w $(TOPDIR)/nuttx.map}" -Wl,--cref 30532else 30533LDFLAGS += -Wl,-Map=$(TOPDIR)/nuttx.map -Wl,--cref 30534endif 30535``` 30536 30537Also, if you have assigned the LD variable, it would need to change as well: 30538 30539Change: 30540 30541``` 30542LD = $(CROSSDEV)ld 30543``` 30544 30545to: 30546 30547``` 30548LD = $(CROSSDEV)gcc 30549``` 30550 30551#### References 30552 30553* Git commit # 45672c269db13f59bdaa417e564837e8bbb6c8c1 in the NuttX main repository: 30554- https://github.com/apache/nuttx/commit/45672c269db13f59bdaa417e564837e8bbb6c8c1 30555* PR-3836 in the NuttX main repository: 30556- https://github.com/apache/nuttx/pull/3836 30557* Issues 3209 and 3826 in the NuttX issue tracker: 30558- https://github.com/apache/nuttx/issues/3209 30559- https://github.com/apache/nuttx/issues/3826 30560* Description of the change on Binutils mailing list: 30561- https://sourceware.org/pipermail/binutils/2021-June/116826.html 30562* Description of -Wl,option in the GCC manual: 30563- https://gcc.gnu.org/onlinedocs/gcc/Link-Options.html 30564 30565NuttX-10.3.0 Release Notes 30566 30567# What's New In This Release 30568 30569## Major Changes to Core OS 30570 30571### New Features 30572 30573* [#5524](https://github.com/apache/nuttx/pull/5524) mm: iob: add support of alloc with timeout iob_timedalloc() 30574* [#4743](https://github.com/apache/nuttx/pull/4743) mm: Support the kernel address sanitizer 30575* [#5498](https://github.com/apache/nuttx/pull/5498) sched: Implement task local storage 30576* [#5418](https://github.com/apache/nuttx/pull/5418) sched: Implement sysinfo function 30577* [#5590](https://github.com/apache/nuttx/pull/5590) sched: os init_state: add new state OSINIT_IDLELOOP 30578* [#4698](https://github.com/apache/nuttx/pull/4698) sched: mq_open: add long file name check and parameter check 30579* [#5445](https://github.com/apache/nuttx/pull/5445) task: Always implement posix_spawnp as macro 30580* [#4963](https://github.com/apache/nuttx/pull/4963) trace: and sched note dump 30581* [#5366](https://github.com/apache/nuttx/pull/5366) binfmt: libelf: Implement sh_addralign handling 30582* [#4871](https://github.com/apache/nuttx/pull/4871) binfmt: elf: add bare metal coredump support 30583 30584### Bug Fixes 30585 30586* [#5503](https://github.com/apache/nuttx/pull/5503) Replece clock_gettime with clock_systime_timespec if suitable 30587* [#5721](https://github.com/apache/nuttx/pull/5721) Remove the unnecessary code from nx_start 30588* [#5681](https://github.com/apache/nuttx/pull/5681) Simplify and unify fcntl with FIOCLEX and FIONCLEX 30589* [#5082](https://github.com/apache/nuttx/pull/5082) compile/flags: add FRAME_POINTER into Toolchain.defs 30590* [#5199](https://github.com/apache/nuttx/pull/5199) file_operations: get back C89 compatible initializer 30591* [#5065](https://github.com/apache/nuttx/pull/5065) reanme CONFIG_USER_ENTRYPOINT to CONFIG_INIT_ENTRYPOINT 30592* [#5399](https://github.com/apache/nuttx/pull/5399) Add CONFIG_NDEBUG Kconfig to control NDEBUG definition 30593* [#5347](https://github.com/apache/nuttx/pull/5347) register_driver: fix driver modes accross the code 30594* [#5509](https://github.com/apache/nuttx/pull/5509) libc.csv: Add pthread_setname_np and pthread_getname_np 30595* [#5364](https://github.com/apache/nuttx/pull/5364) libc.csv: Add more symbols 30596 30597* [#4971](https://github.com/apache/nuttx/pull/4971) audio: audio_comp.c: capbility should use collections 30598* [#5072](https://github.com/apache/nuttx/pull/5072) graphics: vncserver: Implement vsync 30599* [#5058](https://github.com/apache/nuttx/pull/5058) graphics: vncserver: Fix buffer overflow 30600* [#5132](https://github.com/apache/nuttx/pull/5132) graphics: vnc: Decouple VNC server from NX graphic stack 30601* [#4998](https://github.com/apache/nuttx/pull/4998) system: note dump: add CONFIG_SCHED_INSTRUMENTATION_SWITCH 30602* [#5435](https://github.com/apache/nuttx/pull/5435) wireless: bluetooth: fix build break if NET_6LOWPAN enabled 30603 30604* [#5487](https://github.com/apache/nuttx/pull/5487) binfmt: Decouple builtin from binfs file system 30605* [#4667](https://github.com/apache/nuttx/pull/4667) binfmt: Remove umm_initialize from elf_load 30606* [#5351](https://github.com/apache/nuttx/pull/5351) binfmt: elf.c: Fix syslog formats for ELF64 30607* [#5522](https://github.com/apache/nuttx/pull/5522) binfmt: Fix binfmt for BUILD_KERNEL & ADDRENV 30608* [#4689](https://github.com/apache/nuttx/pull/4689) binfmt: remove the specified prefix from target variables 30609* [#5229](https://github.com/apache/nuttx/pull/5229) binfmt: coredump: remove the block fragmentation 30610 30611* [#5409](https://github.com/apache/nuttx/pull/5409) libc: stdlib: Compile lib_openpty.c without checking CONFIG_SERIAL_TERMIOS 30612* [#5600](https://github.com/apache/nuttx/pull/5600) libc: Imx6 thumb 30613* [#5474](https://github.com/apache/nuttx/pull/5474) libc: posix_openpty should use the absolute path("dev/ptmx") 30614* [#5508](https://github.com/apache/nuttx/pull/5508) libc: sim: Rename arch_setjmp[64].S to arch_setjmp_x86[_64].S 30615* [#4829](https://github.com/apache/nuttx/pull/4829) libc: Make perror work without CONFIG_FILE_STREAM 30616* [#4779](https://github.com/apache/nuttx/pull/4779) libc: wqueue Correct time calculation in work_p… 30617* [#4756](https://github.com/apache/nuttx/pull/4756) libc: machine: xtensa: add xtensa libc implement 30618* [#4752](https://github.com/apache/nuttx/pull/4752) libc Move lib_filesem.c, lib_stream.c and lib_streamsem.c to libc/stdio 30619* [#5288](https://github.com/apache/nuttx/pull/5288) libc: misc: lib_execinfo.c: fix bad memory access 30620* [#5290](https://github.com/apache/nuttx/pull/5290) libc: backtrace_malloc change sprintf to snprintf 30621* [#5381](https://github.com/apache/nuttx/pull/5381) libc: sim: arch_elf64.c: Implement R_X86_64_PC64 30622* [#4870](https://github.com/apache/nuttx/pull/4870) libc: add interface to support output stream as buffer style 30623* [#4861](https://github.com/apache/nuttx/pull/4861) libc: pthread: Implement pthread_atfork 30624* [#4992](https://github.com/apache/nuttx/pull/4992) libc: Move stream implementation from libs/libc/stdio to libs/libc/stream 30625* [#4768](https://github.com/apache/nuttx/pull/4768) libc: machine: add config LIBC_ARCH_MEMCHR 30626* [#4855](https://github.com/apache/nuttx/pull/4855) libc: psignal: Output the message to STDERR_FILENO instead STDOUT_FILENO 30627* [#4853](https://github.com/apache/nuttx/pull/4853) libc: hex2bin: Handle the line ending(\r, \n and \r\n) dynamically 30628* [#5690](https://github.com/apache/nuttx/pull/5690) libc: gettext: Support the plural format 30629* [#5692](https://github.com/apache/nuttx/pull/5692) libc: stdio: Fix bug when CONFIG_LIBC_NUMBERED_ARGS is enabled 30630* [#5465](https://github.com/apache/nuttx/pull/5465) libc: chdir:"PWD" should save absolute path 30631* [#4994](https://github.com/apache/nuttx/pull/4994) libc: textdomain: Fix error behaviour 30632* [#5039](https://github.com/apache/nuttx/pull/5039) libc: lzfcompress: add lzf compress stream 30633* [#4859](https://github.com/apache/nuttx/pull/4859) libc: getdelim: Remove KERNEL check since it shouldn't be called inside kernel 30634* [#4944](https://github.com/apache/nuttx/pull/4944) libc: getopt: Move struct getopt_s to include/nuttx/tls.h 30635* [#4881](https://github.com/apache/nuttx/pull/4881) libc: Update include/nuttx/input/x11_keysymdef.h to the latest version 30636* [#5126](https://github.com/apache/nuttx/pull/5126) libc: math: fix fmod family operation 30637* [#5125](https://github.com/apache/nuttx/pull/5125) libc: math: fix log and logf calculations on ARMv7 (and maybe others) 30638* [#5170](https://github.com/apache/nuttx/pull/5170) libc: pthread:pthread_barrierinit sem use pri_none 30639* [#2063](https://github.com/apache/nuttx/pull/2063) libc: Fix libcxx for sim/macOS 30640* [#5269](https://github.com/apache/nuttx/pull/5269) libc: Fix a few libcxx build issues for sim/macOS 30641* [#5202](https://github.com/apache/nuttx/pull/5202) libc: libcxx-mini: operator new will assert when alloc failed. 30642* [#5180](https://github.com/apache/nuttx/pull/5180) libc: pthread: restore pthread mutex default protocol POSIX compatibility 30643* [#5549](https://github.com/apache/nuttx/pull/5549) libc: pthread: add the kernel stack allocation for ADDRENV=y and BUILD_KERNEL 30644* [#4978](https://github.com/apache/nuttx/pull/4978) libc: Add getprogname function 30645* [#5004](https://github.com/apache/nuttx/pull/5004) libc: unistd: getopt: Use argc to end parsing 30646* [#5017](https://github.com/apache/nuttx/pull/5017) libc: Enable terminal api regardless of CONFIG_SERIAL_TERMIOS setting 30647* [#5053](https://github.com/apache/nuttx/pull/5053) libc: symtab: optimize the find speed by bisection 30648* [#5096](https://github.com/apache/nuttx/pull/5096) libc: Add backtrace_symbols[_fd] functions 30649* [#4874](https://github.com/apache/nuttx/pull/4874) libc: stdoutstream: restore the output method to fputc() 30650* [#5564](https://github.com/apache/nuttx/pull/5564) libc: machine: Implement ARM aeabi_xxx API called by clang 30651* [#5398](https://github.com/apache/nuttx/pull/5398) libc: Implement posix_openpt 30652* [#4962](https://github.com/apache/nuttx/pull/4962) libc: allsyms: Load all symbols for debugging 30653* [#4909](https://github.com/apache/nuttx/pull/4909) libc: Add mknod implementation 30654* [#4894](https://github.com/apache/nuttx/pull/4894) libc: misc: add err.c to libc 30655* [#4893](https://github.com/apache/nuttx/pull/4893) libc: str: add strlcat to libc 30656* [#5575](https://github.com/apache/nuttx/pull/5575) libc: sched: task_setcanceltype: fix function name in comment 30657* [#4828](https://github.com/apache/nuttx/pull/4828) libc: stdio: Handle 64bits off_t correctly 30658* [#4804](https://github.com/apache/nuttx/pull/4804) libc: netdb: fix access within misaligned address error 30659* [#4725](https://github.com/apache/nuttx/pull/4725) libc: Improve the netdb config consistency 30660* [#4985](https://github.com/apache/nuttx/pull/4985) libc: Remove CEVA tl420/tl421 support on Nuttx 30661* [#5036](https://github.com/apache/nuttx/pull/5036) libc: net: Implement getifaddrs and freeifaddrs 30662* [#5519](https://github.com/apache/nuttx/pull/5519) libc: Fix -Werror=nonnull-compare and -Werror=format-truncation= 30663* [#5629](https://github.com/apache/nuttx/pull/5629) libc: fix up_tls_info define for BUILD_KERNEL 30664* [#5307](https://github.com/apache/nuttx/pull/5307) libc: bug patch for frexpf function 30665* [#5107](https://github.com/apache/nuttx/pull/5107) libc: Ensure that sethostname null terminates the hostname correctly 30666* [#5479](https://github.com/apache/nuttx/pull/5479) libdsp: lib_observer: add nolinear fluxlink observer 30667* [#5483](https://github.com/apache/nuttx/pull/5483) libdsp: improvements for lib_observer.c 30668* [#5563](https://github.com/apache/nuttx/pull/5563) libdsp: minor improvements and support for fixed16 observers 30669* [#5527](https://github.com/apache/nuttx/pull/5527) libnx: handle the bad message correctly 30670* [#5321](https://github.com/apache/nuttx/pull/5321) libxx: uclibxx: add patch use overload constructor of filebuf & ostream 30671* [#4747](https://github.com/apache/nuttx/pull/4747) Revert "libc: Implement fesetround & fegetround for arm" 30672* [#4739](https://github.com/apache/nuttx/pull/4739) Revert "lib/netdb: Change the default NETDB_DNSCLIENT_NAMESIZE to NAM… 30673 30674* [#5459](https://github.com/apache/nuttx/pull/5459) mm: mm_heap: add mm_foreach to run handler for every memory node 30675* [#5504](https://github.com/apache/nuttx/pull/5504) mm: handle take mm sem in IRQ 30676* [#4765](https://github.com/apache/nuttx/pull/4765) mm: fix realloc overwrite memcpy when use a new block 30677* [#4759](https://github.com/apache/nuttx/pull/4759) mm: do kmm_checkcorruption in IRQ when TCB_FLAG_DEBUG_CHECK set 30678* [#5532](https://github.com/apache/nuttx/pull/5532) mm: fix gran_alloc() array index range checking 30679* [#5548](https://github.com/apache/nuttx/pull/5548) mm: fix #if condition of g_mmheap for BUILD_KERNEL and ADDRENV 30680* [#5539](https://github.com/apache/nuttx/pull/5539) mm: handle take mm sem in IRQ 30681* [#5585](https://github.com/apache/nuttx/pull/5585) mm: Add memory dump function when enable CONFIG_DEBUG_MM 30682 30683* [#5417](https://github.com/apache/nuttx/pull/5417) pthread: Add len argument to pthread_getname_np 30684 30685* [#4798](https://github.com/apache/nuttx/pull/4798) sched: Reduce the default preallocated buffer when DEFAULT_SMALL=y 30686* [#5632](https://github.com/apache/nuttx/pull/5632) sched: group: Fix dataabort when exiting task or pthread if ARCH_ADDR_ENV=y 30687* [#5658](https://github.com/apache/nuttx/pull/5658) sched: group: Simplify the allocation and deallocation logic 30688* [#5649](https://github.com/apache/nuttx/pull/5649) Revert "sched: Don't duplicate caller file handler when creating kernel thread" 30689* [#5543](https://github.com/apache/nuttx/pull/5543) sched: Mark pthread as non-cancelable to avoid additional calls to pthread_exit() 30690* [#5583](https://github.com/apache/nuttx/pull/5583) sched: note:add switch and dump instrumentation 30691* [#5416](https://github.com/apache/nuttx/pull/5416) sched: Disable pthread by default when DEFAULT_SMALL is enabled 30692* [#5015](https://github.com/apache/nuttx/pull/5015) sched: add holder in sem_trywait 30693* [#5264](https://github.com/apache/nuttx/pull/5264) sched: Define SMP_NCPUS to 1 in no SMP case 30694* [#4803](https://github.com/apache/nuttx/pull/4803) sched: signal: add spinlock to g_sigfreeaction 30695* [#4799](https://github.com/apache/nuttx/pull/4799) sched: Disable message queue by default when DEFAULT_SMALL equals y 30696* [#4772](https://github.com/apache/nuttx/pull/4772) sched: vfork: allocate tls_info_s instead task_info_s from stack 30697* [#4931](https://github.com/apache/nuttx/pull/4931) sched: sched_waitpid:delete debugassert 30698* [#4863](https://github.com/apache/nuttx/pull/4863) sched: Move g_tcbinfo to include/nuttx/sched.h 30699* [#5331](https://github.com/apache/nuttx/pull/5331) sched: critmonitor: remove the assertion if counter == 0 30700* [#5098](https://github.com/apache/nuttx/pull/5098) sched: backtrace: Dump the complete stack regardless the depth 30701* [#5185](https://github.com/apache/nuttx/pull/5185) sched: Remove CONFIG_ prefix from SCHED_HPWORK 30702* [#4666](https://github.com/apache/nuttx/pull/4666) sched: Remove pidhash_s and move ticks to tcb_s 30703* [#4676](https://github.com/apache/nuttx/pull/4676) sched: Check g_pidhash[hash_ndx] isn't NULL before access pid field in nxsched_get_tcb 30704* [#5545](https://github.com/apache/nuttx/pull/5545) sched: clock: Remove CLOCK_MONOTONIC option from Kconfig 30705* [#5464](https://github.com/apache/nuttx/pull/5464) sched: tcbinfo: Fix warning by discarded qualifiers 30706* [#5455](https://github.com/apache/nuttx/pull/5455) sched: mqueue: remove unused leave_cancellation_point 30707* [#5456](https://github.com/apache/nuttx/pull/5456) sched: module: remove redundant unlock 30708* [#5392](https://github.com/apache/nuttx/pull/5392) sched: Remove SDCLONE_DISABLE option and config 30709* [#4858](https://github.com/apache/nuttx/pull/4858) sched: watchdog: remove tick check in wd_timer 30710* [#5018](https://github.com/apache/nuttx/pull/5018) sched: init/nx_start.c: fix compile break when CONIFG_TASK_NAME_SIZE=0 30711* [#4999](https://github.com/apache/nuttx/pull/4999) sched: sched_note: change uint32_t nbi_module into uint8_t array 30712* [#4989](https://github.com/apache/nuttx/pull/4989) sched: fix bug in the function nxsched_resume_scheduler 30713* [#4958](https://github.com/apache/nuttx/pull/4958) sched: signal: Introduce a private spinlock in sig_action.c 30714* [#4954](https://github.com/apache/nuttx/pull/4954) sched: dumpstack: raise the stack dump level to emergency 30715* [#4953](https://github.com/apache/nuttx/pull/4953) sched: semaphore: fix race condition for timed wait 30716* [#4913](https://github.com/apache/nuttx/pull/4913) sched: Move argv from tcb_s to task_info_s 30717* [#5368](https://github.com/apache/nuttx/pull/5368) sched: idle: remove heap & stack check in idle thread 30718* [#4782](https://github.com/apache/nuttx/pull/4782) sched: sem: remove limitation of irq context when do sem_trywait 30719* [#4972](https://github.com/apache/nuttx/pull/4972) sched: wqueue: update wqueue to support using wqueue before wqueue start 30720* [#5266](https://github.com/apache/nuttx/pull/5266) sched: IDLE thread will not boost up when IDLE hold sem 30721* [#5540](https://github.com/apache/nuttx/pull/5540) sched: semaphore: fix corner case sem_waitirq assert crash 30722* [#4682](https://github.com/apache/nuttx/pull/4682) sched: cpuload: fix crash because of the member of g_pidhash is NULL 30723* [#5171](https://github.com/apache/nuttx/pull/5171) sched: semphore: release all semphores' holder that the task held when exit 30724* [#5063](https://github.com/apache/nuttx/pull/5063) sched: wqueue: fix NO leave_critical_section() when only CONFIG_SCHED_HPWORK 30725 30726## Major Changes to the Build System 30727 30728### New Features 30729 30730* [#5638](https://github.com/apache/nuttx/pull/5638) tools: add parsememdump.py to parse memdump info(by cmd: memdump all) 30731* [#5622](https://github.com/apache/nuttx/pull/5622) tools: add rustfmt to checkpatch 30732* [#4925](https://github.com/apache/nuttx/pull/4925) tools: Add size report script 30733* [#5153](https://github.com/apache/nuttx/pull/5153) tools: mpfs: prepare OpenSBI image 30734 30735### Bug Fixes 30736 30737* [#5362](https://github.com/apache/nuttx/pull/5362) tools: mkromfsimg.sh: add attribute to set minimum 4 bytes aignment for romfs image data 30738* [#4794](https://github.com/apache/nuttx/pull/4794) tools: mkconfig: Handle string with escape character correctly 30739* [#4730](https://github.com/apache/nuttx/pull/4730) tools: add code coverage tool 30740* [#5174](https://github.com/apache/nuttx/pull/5174) tools: Fix parallel build issue due to missing dependency 30741* [#5275](https://github.com/apache/nuttx/pull/5275) tools: mkromfsimg.sh: fix build error in case if romfs is used 30742* [#5274](https://github.com/apache/nuttx/pull/5274) tools: add option to reuse boards common files for custom boards 30743* [#5715](https://github.com/apache/nuttx/pull/5715) tools: define BOARD_COMMON_DIR only if ARCH_BOARD_COMMON is set 30744* [#5533](https://github.com/apache/nuttx/pull/5533) tools: Default macro to compile one Rust file. 30745* [#5494](https://github.com/apache/nuttx/pull/5494) tools: Unix.mk: silence output from version.sh 30746* [#5400](https://github.com/apache/nuttx/pull/5400) tools: mkconfig: Remove the unnecessary config option correction 30747* [#4701](https://github.com/apache/nuttx/pull/4701) tools: esp32: Refactor generation of QEMU-compatible image 30748* [#4865](https://github.com/apache/nuttx/pull/4865) tools: gdbinit: add sim:x86-m32 support 30749* [#4926](https://github.com/apache/nuttx/pull/4926) tools: rp2040: Compile with C++14 30750* [#4936](https://github.com/apache/nuttx/pull/4936) tools: Rename size_report to size_report.py 30751* [#5518](https://github.com/apache/nuttx/pull/5518) tools: mkallsyms.sh: Disable the mismatch warning of builtin declaration 30752* [#5346](https://github.com/apache/nuttx/pull/5346) tools: Config.mk: suppress all normal output for cmp 30753* [#5374](https://github.com/apache/nuttx/pull/5374) tools: Detect correct host CPU on MacOS/Linux running on ARM. 30754* [#4673](https://github.com/apache/nuttx/pull/4673) tools: CeDeROM add *BSD support 20211016 30755* [#4494](https://github.com/apache/nuttx/pull/4494) tools: build: Replace 'make download' with 'make flash', but keep both for now 30756* [#5116](https://github.com/apache/nuttx/pull/5116) tools: Remove .clean_context 30757* [#4869](https://github.com/apache/nuttx/pull/4869) tools: Improve releasecheck.sh 30758* [#5491](https://github.com/apache/nuttx/pull/5491) tools: Fix configure.sh for custom apps dir. 30759* [#5495](https://github.com/apache/nuttx/pull/5495) tools: Fix jlink-nuttx build with GCC 10.2 30760* [#5505](https://github.com/apache/nuttx/pull/5505) tools: Fix JLinkGDBServer crash attaching to target 30761* [#5147](https://github.com/apache/nuttx/pull/5147) tools: Improve dependencies for include/nuttx/version.h 30762* [#5162](https://github.com/apache/nuttx/pull/5162) tools: Improve dirlinks dependencies for Makefile.win 30763* [#5055](https://github.com/apache/nuttx/pull/5055) tools: Improve Makefile.[unix|win]::context's dependencies 30764* [#5163](https://github.com/apache/nuttx/pull/5163) tools: Rename Makefile.* to have the .mk extension 30765 30766## Architectural Support 30767 30768### New Architecture Support 30769 30770* [#4897](https://github.com/apache/nuttx/pull/4897) arch: arm: phy62xx: Phyplus release 1.2 30771* [#5470](https://github.com/apache/nuttx/pull/5470) arch: arm: STM32U5 Architecture Support 30772* [#5165](https://github.com/apache/nuttx/pull/5165) arch: ceva: add ceva platform xc5 xm6 support 30773* [#5352](https://github.com/apache/nuttx/pull/5352) arch: xtensa: Add initial support for ESP32-S3 30774* [#5241](https://github.com/apache/nuttx/pull/5241) arch: sparc: Port nuttx to sparc-v8 30775 30776### Architecture with Significant Improvements 30777 30778* [#5468](https://github.com/apache/nuttx/pull/5468) arch: Add xxx_tcbinfo.c to SoC level Make.defs 30779* [#5482](https://github.com/apache/nuttx/pull/5482) arch: Replace nx_vsyslog with vsyslog 30780* [#5507](https://github.com/apache/nuttx/pull/5507) arch: Align the implementation of stack related functions 30781* [#4830](https://github.com/apache/nuttx/pull/4830) arch: Remove fflush(stdout) from driver code 30782* [#5741](https://github.com/apache/nuttx/pull/5741) arch: Make the comment and definition of CONFIG_SYS_RESERVED correctly 30783* [#5332](https://github.com/apache/nuttx/pull/5332) arch: Toolchain.defs: Simplify addition builtin library to EXTRA_LIBS 30784* [#5122](https://github.com/apache/nuttx/pull/5122) arch: backtrace: correct the skip counter 30785* [#5095](https://github.com/apache/nuttx/pull/5095) arch: Select ARCH_HAVE_BACKTRACE in Kconfig for supported arch 30786* [#5342](https://github.com/apache/nuttx/pull/5342) arch: Add up_perf_getfreq function 30787* [#5335](https://github.com/apache/nuttx/pull/5335) arch: cache: flush/clean dcache all if size large than cache size 30788* [#5328](https://github.com/apache/nuttx/pull/5328) arch: Decouple up_critmon_[gettime|convert] from critmon 30789* [#4699](https://github.com/apache/nuttx/pull/4699) arch: cache: add lock & unlock feature 30790* [#4910](https://github.com/apache/nuttx/pull/4910) arch: Dump task name through tcb_s::name instead of argv[0] 30791* [#4677](https://github.com/apache/nuttx/pull/4677) arch: *_cpupause:Allow a spin before taking the g_cpu_wait spinlock. 30792* [#5007](https://github.com/apache/nuttx/pull/5007) arch: assert: flush the syslog before stack dump to avoid buffer overwrite 30793* [#4942](https://github.com/apache/nuttx/pull/4942) arch: tcbinfo: fix build break if task name disabled 30794* [#4941](https://github.com/apache/nuttx/pull/4941) arch: Remove the duplicated up_tls_info implementation 30795* [#5385](https://github.com/apache/nuttx/pull/5385) arch: Toolchain.defs: Replace --print-file-name=libgcc.a with --print-libgcc-file-name 30796* [#5371](https://github.com/apache/nuttx/pull/5371) arch: Toolchain.defs: Don't expand EXTRA_LIBS immediately 30797* [#5057](https://github.com/apache/nuttx/pull/5057) arch: arm/risc-v/xtensa: enhance the task dump 30798* [#5397](https://github.com/apache/nuttx/pull/5397) arch: arm/renesas/xtensa: fix leaving from critical section 30799* [#5231](https://github.com/apache/nuttx/pull/5231) arch: arm/xtensa/risc-v: save the running registers to xcp context 30800* [#5719](https://github.com/apache/nuttx/pull/5719) arch: Move [arm|xtensa]_intstack_[alloc|top] to common header file 30801* [#5060](https://github.com/apache/nuttx/pull/5060) arch: Kconfig: Add HAVE_SYSCALL_HOOKS configs to Xtensa arch. 30802* [#4840](https://github.com/apache/nuttx/pull/4840) arch: add MTDIOCTL_PROGMEM_ERASESTATE support 30803* [#5259](https://github.com/apache/nuttx/pull/5259) arch: use HTONS, NTOHS, HTONL, NTOHL macro in kernel code 30804* [#5008](https://github.com/apache/nuttx/pull/5008) arch: assert: unify stack and register dump across platforms 30805* [#4810](https://github.com/apache/nuttx/pull/4810) arch: debug: add tools for task aware debug 30806* [#5088](https://github.com/apache/nuttx/pull/5088) arch: make/allsyms: skip the unnecessary link operation 30807* [#4749](https://github.com/apache/nuttx/pull/4749) arch: Remove FILE dump code from _up_dumponexit 30808* [#5309](https://github.com/apache/nuttx/pull/5309) arch: toolchain: add libm to EXTRA_LIBS only if it is provided by the compiler 30809* [#5120](https://github.com/apache/nuttx/pull/5120) arch: signal: signal handler may cause task's state error 30810* [#4993](https://github.com/apache/nuttx/pull/4993) arch: tls: restore C89 compatibility for TLS 30811 30812#### ARM 30813 30814* [#4816](https://github.com/apache/nuttx/pull/4816) arch: arm: Remove EXPERIMENTAL from ARCH_TRUSTZONE_XXX 30815* [#5562](https://github.com/apache/nuttx/pull/5562) arch: arm: add BUILD_KERNEL code in arm: arm_vectors.S 30816* [#4980](https://github.com/apache/nuttx/pull/4980) arch: arm: select LIBC_ARCH_ATOMIC when config ARCH_CHIP_RP2040 30817* [#4961](https://github.com/apache/nuttx/pull/4961) arch: arm: assert: fix the stack dump overflow 30818* [#4935](https://github.com/apache/nuttx/pull/4935) arch: arm: Implement TLS support 30819* [#4917](https://github.com/apache/nuttx/pull/4917) arch: arm: Kconfig: Add ARCH_HAVE_PROGMEM config 30820* [#5593](https://github.com/apache/nuttx/pull/5593) arch: arm: unify some duplicate code to common layer 30821* [#5691](https://github.com/apache/nuttx/pull/5691) arch: arm: Move setjmp to common place 30822* [#4878](https://github.com/apache/nuttx/pull/4878) arch: arm: fix unalign cacheline invalidate & add cache coherence config for semihosting option 30823* [#5744](https://github.com/apache/nuttx/pull/5744) arch: arm: timer_lowerhalf: minor improvements 30824* [#5087](https://github.com/apache/nuttx/pull/5087) arch: arm: assert: move the arm_assert to common code 30825* [#5085](https://github.com/apache/nuttx/pull/5085) arch: arm: move the backtrace implement to common code 30826* [#5084](https://github.com/apache/nuttx/pull/5084) arch: arm: select ARM_THUMB by default for Cortex-M 30827* [#5329](https://github.com/apache/nuttx/pull/5329) arch: arm: Fix make export for armv7-a SoCs 30828* [#5105](https://github.com/apache/nuttx/pull/5105) arch: arm: Fix rebase error in arm_backtrace_thumb.c 30829* [#5703](https://github.com/apache/nuttx/pull/5703) arch: arm: Support setjmp/longjmp for all socs 30830* [#5582](https://github.com/apache/nuttx/pull/5582) arch: arm: replace SYS_syscall_return hardcode from syscall 30831* [#5502](https://github.com/apache/nuttx/pull/5502) arch: arm: armv7-a: Add debug messages for addrenv 30832* [#5511](https://github.com/apache/nuttx/pull/5511) arch: arm: armv7-a: Fix arm_syscall for SYS_pthread_start 30833* [#5517](https://github.com/apache/nuttx/pull/5517) arch: arm: armv7-a: fix gtm.h GTM_COMP1 and GTM_AUTO defines 30834* [#5620](https://github.com/apache/nuttx/pull/5620) arch: arm: armv7-a: Remove CONFIG_SMP guard from arm_scu.c 30835* [#5742](https://github.com/apache/nuttx/pull/5742) arch: arm: armv7-a/r: unified syscall registers dump 30836* [#5066](https://github.com/apache/nuttx/pull/5066) arch: arm: armv7-a/r: dump all registers with alias 30837* [#5354](https://github.com/apache/nuttx/pull/5354) arch: arm: armv7-a/r: cp15_invalidate_dcache_all: fix Sets mask error. 30838* [#5367](https://github.com/apache/nuttx/pull/5367) arch: arm: armv7-a/r: bugfix: fix a4 register use but not store in xxx_invalidate/flush/clean_all.S 30839* [#5558](https://github.com/apache/nuttx/pull/5558) arch: arm: armv7-a/r: fix SVC's sp restore in arm_vectors.S 30840* [#5628](https://github.com/apache/nuttx/pull/5628) arch: arm: armv7-a/r: handle swi on interrupt stack 30841* [#5734](https://github.com/apache/nuttx/pull/5734) arch: arm: armv7-a/r: set the default CPU mode to System 30842* [#5506](https://github.com/apache/nuttx/pull/5506) arch: arm: armv7-a/r: unify switch context from software interrupt 30843* [#5441](https://github.com/apache/nuttx/pull/5441) arch: arm: armv7-a/r: cache: add cp15_cache_size function and use flush/clean_all if size large than cache size 30844* [#5650](https://github.com/apache/nuttx/pull/5650) arch: arm: armv7-a/r: cache: modify hardcode in cache set/way operation 30845* [#4702](https://github.com/apache/nuttx/pull/4702) arch: arm: armv7-m,armv7-r,armv8-m:MPU Add mpu_reset and ARM_MPU_EARLY_RESET 30846* [#5477](https://github.com/apache/nuttx/pull/5477) arch: arm: armv8-m: Handle the special irq correctly in up_secure_irq 30847* [#5355](https://github.com/apache/nuttx/pull/5355) arch: arm: cortex-m: doirq: do not update the CURRENT_REGS on nested interrupt handling 30848* [#4960](https://github.com/apache/nuttx/pull/4960) arch: arm: cortex-m: backtrace: remove the push process to simplify backtrace 30849* [#4956](https://github.com/apache/nuttx/pull/4956) arch: arm: cortex-m: assert: dump all registers with alias 30850* [#4955](https://github.com/apache/nuttx/pull/4955) arch: arm: cortex-m: fault: add CFSR(Configurable Fault Status Register) Definitions 30851* [#5048](https://github.com/apache/nuttx/pull/5048) arch: arm: cortex-m: hardfault: add secure-fault handler 30852* [#4959](https://github.com/apache/nuttx/pull/4959) arch: arm: cortex-m: enhance the crash dump 30853* [#4957](https://github.com/apache/nuttx/pull/4957) arch: arm: cortex-m: hardfault: add usage/bus-fault handler 30854* [#4965](https://github.com/apache/nuttx/pull/4965) arch: arm: cortex-m23: remove mem-fault select from armv8-m baseline 30855 30856#### EFM32 30857 30858* [#5587](https://github.com/apache/nuttx/pull/5587) arch: arm: efm32: Garbage configuration setting in EFM32 code 30859 30860#### IMX6 30861 30862* [#5633](https://github.com/apache/nuttx/pull/5633) arch: arm: imx6: Fix imx6 30863* [#5639](https://github.com/apache/nuttx/pull/5639) arch: arm: imx6: Add the pgheap for imx6 30864 30865#### IMXRT 30866 30867* [#4784](https://github.com/apache/nuttx/pull/4784) arch: arm: imxrt: fixes 30868* [#4717](https://github.com/apache/nuttx/pull/4717) arch: arm: imxrt: rename imxrt_lowputc to arm_lowputc and drop CONFIG_DEBUG_FEATURES 30869 30870#### LC823450 30871 30872* [#4951](https://github.com/apache/nuttx/pull/4951) arch: arm: lc823450: Replace the critical section with spinlock in lc823450_serial.c 30873 30874#### NRF52 30875 30876* [#5025](https://github.com/apache/nuttx/pull/5025) arch: arm: nrf52: Fixes for NRF52 SoftDevice Controller 30877* [#5032](https://github.com/apache/nuttx/pull/5032) arch: arm: nrf52: NRF52_SDC_LE_CODED_PHY not available for nrf52832 30878* [#5031](https://github.com/apache/nuttx/pull/5031) arch: arm: nrf52: small improvements for softdevice 30879 30880#### PHY62XX 30881 30882* [#5642](https://github.com/apache/nuttx/pull/5642) arch: arm: phy62xx: remove unused private header 30883 30884#### RP2040 30885 30886* [#4786](https://github.com/apache/nuttx/pull/4786) arch: arm: rp2040: support I2C_RESET 30887 30888#### RTL8720C 30889 30890* [#5552](https://github.com/apache/nuttx/pull/5552) arch: arm: rtl8720c: Remove the unused Toolchain.defs 30891 30892#### S32K1XX 30893 30894* [#5220](https://github.com/apache/nuttx/pull/5220) arch: arm: s32k1xx: implement uniqueid 30895 30896#### SAM34 30897 30898* [#5700](https://github.com/apache/nuttx/pull/5700) arch: arm: sam34: sam_dmac.c: Fix compilation error 30899 30900#### SAMV7 30901 30902* [#5513](https://github.com/apache/nuttx/pull/5513) arch: arm: samv7: fix peripheral id shift during transmit xdma configuration 30903* [#5413](https://github.com/apache/nuttx/pull/5413) arch: arm: samv7: sam_progmem: insert DMB instruction into data write loop 30904* [#5411](https://github.com/apache/nuttx/pull/5411) arch: arm: samv7: add arm_systemreset.c to CMN_CSRCS 30905* [#5471](https://github.com/apache/nuttx/pull/5471) arch: arm: samv7: Added support for PWM driver 30906* [#4795](https://github.com/apache/nuttx/pull/4795) arch: arm: samv7: add support for AFEC driver 30907* [#4737](https://github.com/apache/nuttx/pull/4737) arch: arm: samv7: add support for QSPI driver in SPI Mode 30908* [#5145](https://github.com/apache/nuttx/pull/5145) arch: arm: samv7: correct number on interrupts 30909* [#4950](https://github.com/apache/nuttx/pull/4950) arch: arm: samv7: enable MCAN driver support for both rev A and rev B 30910* [#4901](https://github.com/apache/nuttx/pull/4901) arch: arm: samv7: Add DMA and TC support to AFEC (ADC) driver 30911* [#5146](https://github.com/apache/nuttx/pull/5146) arch: arm: samv7: rework SAMv7 timer counter implementation 30912* [#5219](https://github.com/apache/nuttx/pull/5219) arch: arm: samv7: implement quadrature encoder driver 30913* [#5043](https://github.com/apache/nuttx/pull/5043) arch: arm: samv7: initial support for LIN bus communication (Master only) 30914* [#4904](https://github.com/apache/nuttx/pull/4904) arch: arm: samv7: fix unaligned address write for progmem interface 30915* [#4899](https://github.com/apache/nuttx/pull/4899) arch: arm: samv7: fix page size flash writing for page unaligned addresses 30916* [#5393](https://github.com/apache/nuttx/pull/5393) arch: arm: samv7: fix leaving from critical section in HSMCI callback 30917 30918#### STM32 30919 30920* [#5206](https://github.com/apache/nuttx/pull/5206) arch: arm: stm32: add FDCAN support 30921* [#5169](https://github.com/apache/nuttx/pull/5169) arch: arm: stm32: add SocketCAN support 30922* [#5167](https://github.com/apache/nuttx/pull/5167) arch: arm: stm32: add CAN error support 30923* [#5419](https://github.com/apache/nuttx/pull/5419) arch: arm: stm32: add FDCAN SocketCAN support 30924* [#5523](https://github.com/apache/nuttx/pull/5523) arch: arm: stm32: dp83848c ethernet phy interrupt support 30925* [#5481](https://github.com/apache/nuttx/pull/5481) arch: arm: stm32: fdcan: add CAN FD frames support 30926* [#5370](https://github.com/apache/nuttx/pull/5370) arch: arm: stm32: Add OTG ID GPIO disable 30927* [#4790](https://github.com/apache/nuttx/pull/4790) arch: arm: stm32: Qencoder: add support for the encoder index pin and implementation for stm32/qenco 30928* [#5627](https://github.com/apache/nuttx/pull/5627) arch: arm: stm32f103re has a dac module.but the pinmap file has no corresponding 30929* [#5300](https://github.com/apache/nuttx/pull/5300) arch: arm: stm32f20xxf40xx: up_progmem_erasesize for stm32f20xxf40xx_flash.c 30930* [#5605](https://github.com/apache/nuttx/pull/5605) arch: arm: stm32f405: Add DAC2 configuration 30931* [#4967](https://github.com/apache/nuttx/pull/4967) arch: arm: stm32f412: add SPI2 & SPI3 30932* [#5267](https://github.com/apache/nuttx/pull/5267) arch: arm: stm32f7: serial fix PM_CONFIG build 30933* [#5064](https://github.com/apache/nuttx/pull/5064) arch: arm: stm32f7: sdmmc invalidate before DMA to avoid eviction overwrite - 30934* [#4704](https://github.com/apache/nuttx/pull/4704) arch: arm: stm32f0/g0/l0: Add custom clock config option to stm32f0/g0/l0 chips 30935* [#4872](https://github.com/apache/nuttx/pull/4872) arch: arm: stm32f7: sdmmc defer invalidate until after DMA completion 30936* [#5677](https://github.com/apache/nuttx/pull/5677) arch: arm: stm32f7: fix CAN3 receiving 30937* [#4741](https://github.com/apache/nuttx/pull/4741) arch: arm: stm32g4: Minor fixes for stm32g4 foc 30938* [#4780](https://github.com/apache/nuttx/pull/4780) arch: arm: stm32h7: sdmmc: do not enable power saving configuration bit in SD 4-bit mode 30939* [#4770](https://github.com/apache/nuttx/pull/4770) arch: arm: stm32h7: dmamux: correct bit fields 30940* [#4755](https://github.com/apache/nuttx/pull/4755) arch: arm: stm32h7: sdmmc: added missing sdio_set_sdio_card_isr() function to initialize SDIO in-band interrupt logic 30941* [#4731](https://github.com/apache/nuttx/pull/4731) arch: arm: stm32h7: add low power timers 30942* [#5492](https://github.com/apache/nuttx/pull/5492) arch: arm: stm32h7: Fix build for all config {R|T}XDMA states 30943* [#5493](https://github.com/apache/nuttx/pull/5493) arch: arm: stm32h7: Flash fixes from 328374f4658d11655f268f968f4c6c7a3942f320 30944* [#4815](https://github.com/apache/nuttx/pull/4815) arch: arm: stm32l4: dfumode: enable for STM32L4+ chips 30945* [#5666](https://github.com/apache/nuttx/pull/5666) arch: arm: stm32l4: stm32l4+ might need flash data cache corruption workaround 30946* [#4975](https://github.com/apache/nuttx/pull/4975) arch: arm: stm32l4: stm32l4_pwm.c: fix printf format 30947 30948#### CEVA 30949 30950* [#5520](https://github.com/apache/nuttx/pull/5520) arch: ceva: update the code to the latest mainline 30951* [#5568](https://github.com/apache/nuttx/pull/5568) arch: ceva: Replace OUTDIR with TOPDIR 30952* [#5727](https://github.com/apache/nuttx/pull/5727) arch: ceva: Move the idle stack initialization to up_initial_state 30953 30954#### SIM 30955 30956* [#5696](https://github.com/apache/nuttx/pull/5696) arch: sim: add all symbols support 30957* [#5641](https://github.com/apache/nuttx/pull/5641) arch: sim: add loop thread to handle dev loops 30958* [#4716](https://github.com/apache/nuttx/pull/4716) arch: sim: add native socket support based on usrsock 30959* [#4882](https://github.com/apache/nuttx/pull/4882) arch: sim: Add new option to enable arch specific hostfs 30960* [#4776](https://github.com/apache/nuttx/pull/4776) arch: sim: host ASAN improvement 30961* [#5401](https://github.com/apache/nuttx/pull/5401) arch: sim: initial support sim:nsh on MacOS M1 based hosts. 30962* [#5452](https://github.com/apache/nuttx/pull/5452) arch: sim: detect clang native compiler on MacOS. 30963* [#5414](https://github.com/apache/nuttx/pull/5414) arch: sim: Unify the return value of usrsock_xxx_handler 30964* [#5473](https://github.com/apache/nuttx/pull/5473) arch: sim: Always typedef xcpt_reg_t to unsigned long 30965* [#4751](https://github.com/apache/nuttx/pull/4751) arch: arm: Add l suffix for INT32_C macro 30966* [#5099](https://github.com/apache/nuttx/pull/5099) arch: sim: Implement up_backtrace 30967* [#5071](https://github.com/apache/nuttx/pull/5071) arch: sim: Support vncserver as display device 30968* [#4977](https://github.com/apache/nuttx/pull/4977) arch: sim: add CONFIG_SIM_STACKSIZE_ADJUSTMENT to reduce variability 30969* [#5384](https://github.com/apache/nuttx/pull/5384) arch: sim: Adjust the stack size for up_use_stack too 30970* [#5486](https://github.com/apache/nuttx/pull/5486) arch: sim: Fix a build with clang on linux 30971* [#5295](https://github.com/apache/nuttx/pull/5295) arch: sim: Added Kconfig option for UART buffer size. 30972* [#5188](https://github.com/apache/nuttx/pull/5188) arch: sim: Rename up_vfork_x[32|64].S to up_vfork_x86[_64].S 30973* [#5179](https://github.com/apache/nuttx/pull/5179) arch: sim: Move spiflash simulation to drivers/spi instead 30974* [#5178](https://github.com/apache/nuttx/pull/5178) arch: sim: Rename up_vfork[32|64].S to up_vfork_x[32|64].S 30975* [#5431](https://github.com/apache/nuttx/pull/5431) arch: sim: Don't add up_tls_size in up_use_stack before foward to up_create_stack 30976* [#4487](https://github.com/apache/nuttx/pull/4487) arch: sim: Don't add -lc++abi to STDLIBS 30977* [#4791](https://github.com/apache/nuttx/pull/4791) arch: sim: btuart: Remove the unnecessary config 30978* [#5313](https://github.com/apache/nuttx/pull/5313) arch: sim: netdev: retrieve all the queued RX frames from the network device on every poll 30979* [#4696](https://github.com/apache/nuttx/pull/4696) arch: sim: rptun: Trigger the callback only the sequnece number change 30980* [#5286](https://github.com/apache/nuttx/pull/5286) arch: sim: up_macho_init.c: Add a workaround for Monterey 30981* [#5046](https://github.com/apache/nuttx/pull/5046) arch: sim: usrsock: increase the sim usrsock buffer size 30982* [#5030](https://github.com/apache/nuttx/pull/5030) arch: sim: usrsock: reuse the socket address to avoid bind timeout 30983* [#5685](https://github.com/apache/nuttx/pull/5685) arch: sim: syscall: add syscall note support in the flat build 30984* [#4754](https://github.com/apache/nuttx/pull/4754) Revert "sim: Specify -fshort-wchar as NuttX wchar_t is 16-bit" 30985* [#5343](https://github.com/apache/nuttx/pull/5343) arch: sim: netdev,tapdev: implemented emulation of TX done and RX ready interrupts 30986* [#5295](https://github.com/apache/nuttx/pull/5295) arch: sim: Added Kconfig option for UART buffer size. 30987* [#5260](https://github.com/apache/nuttx/pull/5260) arch: sim: up_touchscreen: update up_touchscreen, using touch_upperhalf 30988* [#5226](https://github.com/apache/nuttx/pull/5226) arch: sim: netdev: eliminated RX data stream congestion in case of high TX network traffic 30989 30990#### RISC-V 30991 30992* [#5619](https://github.com/apache/nuttx/pull/5619) arch: espressif: Fix SCHED_CPULOAD feature using Oneshot Timer 30993* [#4728](https://github.com/apache/nuttx/pull/4728) arch: espressif: Rename MTD-related configs to become more intuitive 30994* [#5044](https://github.com/apache/nuttx/pull/5044) arch: espressif: Add hardware-supported Secure Boot on top of MCUboot 30995* [#4671](https://github.com/apache/nuttx/pull/4671) arch: espressif: Provide SPI Flash parameters to MCUboot build 30996* [#5173](https://github.com/apache/nuttx/pull/5173) arch: espressif: Fix build system issues related to Flash Encryption 30997* [#5619](https://github.com/apache/nuttx/pull/5619) arch: espressif: Fix SCHED_CPULOAD feature using Oneshot Timer 30998* [#4727](https://github.com/apache/nuttx/pull/4727) arch: espressif: Enable Partition Table allocation at custom offset 30999* [#4945](https://github.com/apache/nuttx/pull/4945) arch: risc-v: Introduce basic support for qemu rv32 31000* [#5291](https://github.com/apache/nuttx/pull/5291) arch: risc-v: Unify common irq code 31001* [#5192](https://github.com/apache/nuttx/pull/5192) arch: risc-v: Merge rv32im and rv64gc into common 31002* [#5228](https://github.com/apache/nuttx/pull/5228) arch: risc-v: Support both rv32/rv64 on qemu-rv 31003* [#5160](https://github.com/apache/nuttx/pull/5160) arch: risc-v: Replace __LP64__ with CONFIG_ARCH_RV64 31004* [#5148](https://github.com/apache/nuttx/pull/5148) arch: risc-v: Refine riscv_assert.c and arch.h 31005* [#5243](https://github.com/apache/nuttx/pull/5243) arch: risc-v: Make exception_common 8 byte align 31006* [#5709](https://github.com/apache/nuttx/pull/5709) arch: risc-v: mpfs: Make cleaner pinmux configurations for USB 31007* [#5209](https://github.com/apache/nuttx/pull/5209) arch: risc-v: Refine riscv_vectors.S 31008* [#5123](https://github.com/apache/nuttx/pull/5123) arch: risc-v: Correct epc adjustment with C ISA 31009* [#5106](https://github.com/apache/nuttx/pull/5106) arch: risc-v: Refine riscv_testset.S 31010* [#5076](https://github.com/apache/nuttx/pull/5076) arch: risc-v: Refine Toolchain.defs 31011* [#5097](https://github.com/apache/nuttx/pull/5097) arch: risc-v: Move riscv_blocktask.c to common 31012* [#5092](https://github.com/apache/nuttx/pull/5092) arch: risc-v: Remove unneeded kconfigs 31013* [#5064](https://github.com/apache/nuttx/pull/5064) arch: risc-v: opensbi: Make.defs: use a wildcard for file listing 31014* [#5314](https://github.com/apache/nuttx/pull/5314) arch: risc-v: Move xxx_cpustart.c to common 31015* [#5103](https://github.com/apache/nuttx/pull/5103) arch: risc-v: Refine riscv_fpu.S 31016* [#5273](https://github.com/apache/nuttx/pull/5273) arch: risc-v: Sv39 MMU driver 31017* [#5135](https://github.com/apache/nuttx/pull/5135) arch: risc-v: Refine riscv_initialstate.c 31018* [#5115](https://github.com/apache/nuttx/pull/5115) arch: risc-v: Refine syscall interface 31019* [#5113](https://github.com/apache/nuttx/pull/5113) arch: risc-v: Add backtrace to risc-v common sources 31020* [#4983](https://github.com/apache/nuttx/pull/4983) arch: risc-v: Implement TLS support 31021* [#5707](https://github.com/apache/nuttx/pull/5707) arch: risc-v: Implement SYS_save_context in swint 31022* [#5695](https://github.com/apache/nuttx/pull/5695) arch: risc-v: Save/Load float register in setjmp 31023* [#5478](https://github.com/apache/nuttx/pull/5478) arch: risc-v: Use _ebss instead of _default_stack_limit as idle stack base 31024* [#5484](https://github.com/apache/nuttx/pull/5484) arch: risc-v: Implement common up_cpu_idlestack 31025* [#5490](https://github.com/apache/nuttx/pull/5490) arch: risc-v: Let g_cpu_basestack determined at compile time 31026* [#5091](https://github.com/apache/nuttx/pull/5091) arch: risc-v: pwm: add option to break the loops when using multiple PWM channels 31027* [#5454](https://github.com/apache/nuttx/pull/5454) arch: risc-v: Remove duplicated up_idle logic 31028* [#5358](https://github.com/apache/nuttx/pull/5358) arch: risc-v: RISC-V MMU: Add missing implementation for PTE getter 31029* [#5240](https://github.com/apache/nuttx/pull/5240) arch: risc-v: Refine riscv_cpupause.c 31030* [#5308](https://github.com/apache/nuttx/pull/5308) arch: risc-v: Merge mcause.h into irq.h 31031* [#5210](https://github.com/apache/nuttx/pull/5210) arch: risc-v: Refine exception_common 31032* [#5236](https://github.com/apache/nuttx/pull/5236) arch: risc-v: Refine riscv_cpuindex.c 31033 31034#### BL602 31035 31036* [#5316](https://github.com/apache/nuttx/pull/5316) arch: risc-v: bl602: Fix broken bl602 flash due to partition_table being incorrectly marked as unused 31037* [#5221](https://github.com/apache/nuttx/pull/5221) arch: risc-v: bl602: Rename bl602_entry.S to bl602_head.S 31038* [#4876](https://github.com/apache/nuttx/pull/4876) arch: risc-v: bl602: Enable GPIO output 31039* [#4984](https://github.com/apache/nuttx/pull/4984) arch: risc-v: bl602: Swap SPI MISO and MOSI 31040* [#5131](https://github.com/apache/nuttx/pull/5131) arch: risc-v: bl602: Fix preprocessing directives for uart flow control 31041* [#5093](https://github.com/apache/nuttx/pull/5093) arch: risc-v: bl602: Use userspace chosen channel numbers when starting bl602 pwm 31042 31043#### ESP32C3 31044 31045* [#5129](https://github.com/apache/nuttx/pull/5129) arch: risc-v: esp32c3: SPI flash MTD device uses all flash space 31046* [#4771](https://github.com/apache/nuttx/pull/4771) arch: risc-v: esp32c3: Remove the DMA test included in the driver along with its defconfig. 31047* [#4700](https://github.com/apache/nuttx/pull/4700) arch: risc-v: esp32c3: Remove test code from crypto accelerators drivers. 31048* [#4711](https://github.com/apache/nuttx/pull/4711) arch: risc-v: esp32c3: Remove the stub implementations of the early serial 31049* [#5615](https://github.com/apache/nuttx/pull/5615) arch: risc-v: esp32c3: Fix detection of CPU reset by Watchdog Timer 31050* [#4796](https://github.com/apache/nuttx/pull/4796) arch: risc-v: esp32c3: Fix MMU pages number calculation error 31051* [#4820](https://github.com/apache/nuttx/pull/4820) arch: risc-v: esp32c3: Partition supports BIO cmd 31052* [#4821](https://github.com/apache/nuttx/pull/4821) arch: risc-v: esp32c3: Add hardware brownout check and reset 31053* [#4834](https://github.com/apache/nuttx/pull/4834) arch: risc-v: esp32c3: esp32c3_usbserial.c: Initialize cpuint to ENOMEM. 31054* [#4813](https://github.com/apache/nuttx/pull/4813) arch: risc-v: esp32c3: Fix GPIO Output on pins 18 and 19 USB/JTAG 31055* [#4809](https://github.com/apache/nuttx/pull/4809) arch: risc-v: esp32c3: Driver for the ESP32-C3's CDC console. 31056* [#5615](https://github.com/apache/nuttx/pull/5615) arch: risc-v: esp32c3: Fix detection of CPU reset by Watchdog Timer 31057* [#4787](https://github.com/apache/nuttx/pull/4787) arch: risc-v: esp32c3: Initialize the BLE Mac 31058* [#4822](https://github.com/apache/nuttx/pull/4822) arch: risc-v: esp32c3: Fix reset triggering crash nested when crash 31059* [#4740](https://github.com/apache/nuttx/pull/4740) arch: risc-v: esp32c3: Fix Wi-Fi & BLE coexist issues 31060* [#4886](https://github.com/apache/nuttx/pull/4886) arch: risc-v: esp32c3: Refactor SPI Flash to support umask interrupt when R/W/E SPI Flash 31061* [#4885](https://github.com/apache/nuttx/pull/4885) arch: risc-v: esp32c3: Refactor ADC calibration 31062* [#5616](https://github.com/apache/nuttx/pull/5616) arch: risc-v: esp32c3: Enable Timer Groups clocks on timer initialization 31063* [#5304](https://github.com/apache/nuttx/pull/5304) arch: risc-v: esp32c3: esp32c3_irq.c: Skip over ECALL instruction. 31064* [#5457](https://github.com/apache/nuttx/pull/5457) arch: risc-v: esp32c3: Fix issue #5377 UART1 not working because clock as disabled 31065* [#5016](https://github.com/apache/nuttx/pull/5016) arch: risc-v: esp32c3: Initialize rtc and peripheral parameters by default when chip starts 31066* [#5124](https://github.com/apache/nuttx/pull/5124) arch: risc-v: esp32s2/esp32c3: Remove unavailable support for ROM Basic Console 31067* [#5133](https://github.com/apache/nuttx/pull/5133) arch: risc-v: esp32s2/esp32c3: Add support for enabling hardware Flash Encryption on boot 31068 31069#### MPFS 31070 31071* [#4877](https://github.com/apache/nuttx/pull/4877) arch: risc-v: mpfs: Add spi cs control for mpfs 31072* [#5289](https://github.com/apache/nuttx/pull/5289) arch: risc-v: mpfs: bootloader entrypoints 31073* [#5247](https://github.com/apache/nuttx/pull/5247) arch: risc-v: mpfs: switch to exception common 31074* [#5360](https://github.com/apache/nuttx/pull/5360) arch: risc-v: mpfs: Add support for a ROMFS image for MPFS 31075* [#5322](https://github.com/apache/nuttx/pull/5322) arch: risc-v: mpfs: build protected 31076* [#5109](https://github.com/apache/nuttx/pull/5109) arch: risc-v: mpfs: Add MSSIO GPIO pinmap configuration 31077* [#5306](https://github.com/apache/nuttx/pull/5306) arch: risc-v: mpfs: OpenSBI: utilize an index2id table 31078* [#5287](https://github.com/apache/nuttx/pull/5287) arch: risc-v: mpfs: opensbi redefinition fixes 31079* [#5225](https://github.com/apache/nuttx/pull/5225) arch: risc-v: mpfs: Opensbi fixes 31080* [#5325](https://github.com/apache/nuttx/pull/5325) arch: risc-v: mpfs: opensbi conf 31081* [#5310](https://github.com/apache/nuttx/pull/5310) arch: risc-v: mpfs: switch to NuttX types for opensbi 31082* [#5702](https://github.com/apache/nuttx/pull/5702) arch: risc-v: mpfs: usb: apply review fixes 31083* [#5040](https://github.com/apache/nuttx/pull/5040) arch: risc-v: mpfs: add opensbi support 31084* [#4709](https://github.com/apache/nuttx/pull/4709) arch: risc-v: mpfs: emmcsd: provide proper internal emmc settings 31085* [#4714](https://github.com/apache/nuttx/pull/4714) arch: risc-v: mpfs: ddr training and system clock init 31086* [#4839](https://github.com/apache/nuttx/pull/4839) arch: risc-v: mpfs: emmcsd: boost waitresponse perf 31087* [#4817](https://github.com/apache/nuttx/pull/4817) arch: risc-v: mpfs: uart: add a way to configure uart3 and uart4 31088* [#4788](https://github.com/apache/nuttx/pull/4788) arch: risc-v: mpfs: emmcsd: fix uninitialized value 31089* [#4781](https://github.com/apache/nuttx/pull/4781) arch: risc-v: mpfs: cache: provide L1/L2 cache enablers 31090* [#4773](https://github.com/apache/nuttx/pull/4773) arch: risc-v: mpfs: i2c: Add support for adaptive I2C bus frequency 31091* [#5694](https://github.com/apache/nuttx/pull/5694) arch: risc-v: mpfs: usb: fix an unused variable warning 31092* [#5161](https://github.com/apache/nuttx/pull/5161) arch: risc-v: mpfs: mpfs_serial.c: Correct setting of nbits 31093* [#5152](https://github.com/apache/nuttx/pull/5152) arch: risc-v: opensbi: update to version 1.0 31094* [#5636](https://github.com/apache/nuttx/pull/5636) arch: risc-v/qemu-rv: Set FS bits in mstatus 31095* [#5529](https://github.com/apache/nuttx/pull/5529) arch: risc-v/qemu-rv: Supports SMP up to 8 cores and other minor changes 31096* [#4825](https://github.com/apache/nuttx/pull/4825) arch: risc-v/xtensa: Kconfig: Some cleanup and improvements to arch versions of C library functions. 31097* [#5683](https://github.com/apache/nuttx/pull/5683) arch: risc-v/xtensa: corrent dumpstate xcp size 31098* [#5717](https://github.com/apache/nuttx/pull/5717) Revert "arch: risc-v: Correct FPU register save area in riscv_copystate" 31099 31100#### SPARC 31101 31102* [#5394](https://github.com/apache/nuttx/pull/5394) arch: sparc: adaptive patch 31103* [#5521](https://github.com/apache/nuttx/pull/5521) arch: sparc: Replace adj_stack_ptr with stack_base_ptr 31104 31105#### XTENSA 31106 31107* [#4688](https://github.com/apache/nuttx/pull/4688) arch: xtensa: Kconfig: add quotes in source to clean warnings from setconfig 31108* [#5738](https://github.com/apache/nuttx/pull/5738) arch: xtensa: Save exception cause and vaddr into the user frame 31109* [#5149](https://github.com/apache/nuttx/pull/5149) arch: xtensa: Rename up_stack_color to xtensa_stack_color. 31110* [#5198](https://github.com/apache/nuttx/pull/5198) arch: xtensa: fix lack of float register save & resotre 31111* [#4663](https://github.com/apache/nuttx/pull/4663) arch: xtensa: Correctly save/restore coprocessor0 state. 31112* [#5450](https://github.com/apache/nuttx/pull/5450) arch: xtensa: kconfig: move ARCH_HAVE_TESTSET config to chip 31113* [#5648](https://github.com/apache/nuttx/pull/5648) arch: xtensa: fix sp duplicate reduce in handler enter 31114* [#5541](https://github.com/apache/nuttx/pull/5541) arch: xtensa: modify svcall to swint 31115* [#5729](https://github.com/apache/nuttx/pull/5729) arch: xtensa: Small improvements around xtensa_context 31116* [#5708](https://github.com/apache/nuttx/pull/5708) arch: xtensa: small improvements around using the software interrupt. 31117* [#5684](https://github.com/apache/nuttx/pull/5684) arch: xtensa: backtrace: fix backtrace last buffer error in some scene 31118* [#5250](https://github.com/apache/nuttx/pull/5250) arch: xtensa: Fix core voltage level when SPI Flash runs at 80Mhz 31119* [#5248](https://github.com/apache/nuttx/pull/5248) arch: xtensa: some fixes in interrupt handler 31120* [#4818](https://github.com/apache/nuttx/pull/4818) arch: xtensa: mpu: use WRITEBACK attribute for intsram & extsram 31121* [#4683](https://github.com/apache/nuttx/pull/4683) arch: xtensa: mpu: modify acc and memtype to uint32_t 31122* [#4664](https://github.com/apache/nuttx/pull/4664) arch: xtensa: xtensa_context.S: Save and restore SCOMPARE1 when necessary. 31123* [#4669](https://github.com/apache/nuttx/pull/4669) arch: xtensa: xtensa_cpupause.c: Allow a spin before taking the g_cpu_wait spinlock. 31124* [#5336](https://github.com/apache/nuttx/pull/5336) arch: xtensa: use swint to swith context 31125* [#5679](https://github.com/apache/nuttx/pull/5679) arch: xtensa: xtensa_user_handler.S: Store EXCCAUSE and EXCVADDR into the user frame. 31126* [#5000](https://github.com/apache/nuttx/pull/5000) arch: xtensa: correct the interrupt stack on irq handler 31127 31128#### ESP32 31129 31130* [#5056](https://github.com/apache/nuttx/pull/5056) arch: xtensa: esp32: Add WiFi/BLE Coexistence support 31131* [#5187](https://github.com/apache/nuttx/pull/5187) arch: xtensa: esp32: Add PWM support using the LEDC peripheral 31132* [#5143](https://github.com/apache/nuttx/pull/5143) arch: xtensa: esp32: Use ROM implementations of libc functions 31133* [#5117](https://github.com/apache/nuttx/pull/5117) arch: xtensa: esp32: Add support for enabling hardware Flash Encryption on boot 31134* [#4991](https://github.com/apache/nuttx/pull/4991) arch: xtensa: esp32: Show CPUs activity using LEDs. 31135* [#4670](https://github.com/apache/nuttx/pull/4670) arch: xtensa: esp32: Few fixes around SPI Flash to make it SMP friendly. 31136* [#4710](https://github.com/apache/nuttx/pull/4710) arch: xtensa: esp32: Make SPI Flash initialization common to all ESP32 boards 31137* [#5542](https://github.com/apache/nuttx/pull/5542) arch: xtensa: esp32: setup software interrupt for esp32chips 31138* [#5407](https://github.com/apache/nuttx/pull/5407) arch: xtensa: esp32: Remove the QEMU special case when initializing the heap. 31139* [#5536](https://github.com/apache/nuttx/pull/5536) arch: xtensa: esp32: Few improvements around interrupt handling. 31140* [#5196](https://github.com/apache/nuttx/pull/5196) arch: xtensa: esp32: Add support to RS485 31141* [#4543](https://github.com/apache/nuttx/pull/4543) arch: xtensa: esp32: Use device specific lock as much as possible. 31142* [#4796](https://github.com/apache/nuttx/pull/4796) arch: xtensa: esp32: Fix MMU pages number calculation error 31143* [#4820](https://github.com/apache/nuttx/pull/4820) arch: xtensa: esp32: Partition supports BIO cmd 31144* [#4933](https://github.com/apache/nuttx/pull/4933) arch: xtensa: esp32: Remove CONFIG_SMP conditions in the code. 31145* [#5073](https://github.com/apache/nuttx/pull/5073) arch: xtensa: esp32: Fix some Wi-Fi issues 31146* [#4867](https://github.com/apache/nuttx/pull/4867) arch: xtensa: esp32: Fix retrieving GPIOs' IRQ number and peripheral ID in SMP. 31147* [#4769](https://github.com/apache/nuttx/pull/4769) arch: xtensa: esp32: Make ESP32_BT_RESERVE_DRAM default to 0 again if Bluetooth is not enabled. 31148 31149#### ESP32S2 31150 31151* [#5213](https://github.com/apache/nuttx/pull/5213) arch: xtensa: esp32s2: Fix some wrong definitions related to IRQ management 31152* [#5212](https://github.com/apache/nuttx/pull/5212) arch: xtensa: esp32s2: Fix data cache option in menuconfig 31153* [#5693](https://github.com/apache/nuttx/pull/5693) arch: xtensa: esp32s2: Sync IRQ management API with ESP32 and ESP32-S3 31154* [#4902](https://github.com/apache/nuttx/pull/4902) arch: xtensa: esp32xx: esp32xx_rtc.c: misc. fixes. 31155* [#5609](https://github.com/apache/nuttx/pull/5609) arch: xtensa: esp32s2: Correctly enable the software interrupt. 31156* [#5698](https://github.com/apache/nuttx/pull/5698) arch: xtensa: esp32s2: Add support for Main System Watchdog Timers 31157* [#4703](https://github.com/apache/nuttx/pull/4703) arch: xtensa: esp32s2: Add RNG driver support and board profile example 31158 31159#### ESP32S3 31160 31161* [#5665](https://github.com/apache/nuttx/pull/5665) arch: xtensa: esp32s3: Add SPI-Flash support 31162* [#5699](https://github.com/apache/nuttx/pull/5699) arch: xtensa: esp32s3: Enable SMP support 31163* [#5723](https://github.com/apache/nuttx/pull/5723) arch: xtensa: esp32s3: Add support for RT-Timer based on Systimer peripheral 31164* [#5668](https://github.com/apache/nuttx/pull/5668) arch: xtensa: esp32s3: Add support for Tickless kernel using Systimer 31165* [#5671](https://github.com/apache/nuttx/pull/5671) arch: xtensa: esp32s3: Add support for Free-running Timer wrapper 31166* [#5686](https://github.com/apache/nuttx/pull/5686) arch: xtensa: esp32s3: Add SPI RAM/PSRAM Support 31167* [#5601](https://github.com/apache/nuttx/pull/5601) arch: xtensa: esp32s3: Add support for Main System Watchdog Timers 31168* [#5602](https://github.com/apache/nuttx/pull/5602) arch: xtensa: esp32s3: Add support for Timer Groups 0 and 1 31169* [#5604](https://github.com/apache/nuttx/pull/5604) arch: xtensa: esp32s3: Use the running CPU ID for enabling internal interrupts 31170* [#5608](https://github.com/apache/nuttx/pull/5608) arch: xtensa: esp32s3: Add support for Oneshot timer 31171* [#5722](https://github.com/apache/nuttx/pull/5722) arch: xtensa: esp32s3: Stall Timer ISR when core 1 is temporarily stalled 31172 31173#### Z80 31174 31175* [#5726](https://github.com/apache/nuttx/pull/5726) arch: z[80|16]: Move up_getsp declaration to arch.h 31176* [#5344](https://github.com/apache/nuttx/pull/5344) arch: z80: fix garbage collector option to linker for ez80 31177 31178## Driver Support 31179 31180### Drivers With Significant Improvements 31181 31182* [#5256](https://github.com/apache/nuttx/pull/5256) drivers: Add usbdev serial use boardid 31183* [#5728](https://github.com/apache/nuttx/pull/5728) drivers: Merge the common driver initialization into one place 31184* [#5716](https://github.com/apache/nuttx/pull/5716) drivers: Move the common driver to misc folder 31185* [#5080](https://github.com/apache/nuttx/pull/5080) drivers: regulator/clk rpmsg: pending on wait IPC channel ready 31186* [#4864](https://github.com/apache/nuttx/pull/4864) drivers: audio: cxd56: various audio fixes 31187* [#4976](https://github.com/apache/nuttx/pull/4976) drivers: bch: support flush and aligned bch buffer 31188* [#4712](https://github.com/apache/nuttx/pull/4712) drivers: can: Fix can_poll() POLLOUT calculation 31189* [#2641](https://github.com/apache/nuttx/pull/2641) drivers: can: Cleanup usage of soft fifo semaphore 31190* [#4661](https://github.com/apache/nuttx/pull/4661) drivers: i2c: fix compile break when enable CONFIG_I2C_BITBANG_NO_DELAY 31191* [#5042](https://github.com/apache/nuttx/pull/5042) drivers: input: ads7843e: complement critical section operation 31192* [#5631](https://github.com/apache/nuttx/pull/5631) drivers: input: Remove the couple from uinput 31193* [#5624](https://github.com/apache/nuttx/pull/5624) drivers: input: joystick/buttons: Fix the event lose between the invocation of poll 31194* [#5625](https://github.com/apache/nuttx/pull/5625) drivers: input: joystick: Remove [a|d]joy_enable from [a|d]joy_sample 31195* [#5204](https://github.com/apache/nuttx/pull/5204) drivers: input: joystck/buttons: Always protect the open list by critical section 31196* [#4837](https://github.com/apache/nuttx/pull/4837) drivers: input: touchscreen: added time stamp for touchscreen event 31197* [#4800](https://github.com/apache/nuttx/pull/4800) drivers: input: touchscreen: separate the interface for user interaction 31198* [#4928](https://github.com/apache/nuttx/pull/4928) drivers: input: touchscreen: added touchscreen gesture 31199* [#5005](https://github.com/apache/nuttx/pull/5005) drivers: ioexpander: add ioe_rpmsg server and client 31200* [#5657](https://github.com/apache/nuttx/pull/5657) drivers: ioexpander: Fix invert option value usage 31201* [#5680](https://github.com/apache/nuttx/pull/5680) drivers: ioexpander: fix output inversion for ioe_dummy 31202* [#4697](https://github.com/apache/nuttx/pull/4697) drivers: ioexpander: gpio: Remove the hardcode 100 lim 31203* [#4774](https://github.com/apache/nuttx/pull/4774) drivers: ioexpander: gpio: Use generic /dev/gpioN 31204* [#5183](https://github.com/apache/nuttx/pull/5183) drivers: ioexpander: Select IOEXPANDER_INT_ENABLE instead depend on it 31205* [#5037](https://github.com/apache/nuttx/pull/5037) drivers: net: Replace self defined macros with NET_SOCK_[FAMILY|TYPE|PROTOCOL] itation 31206* [#5733](https://github.com/apache/nuttx/pull/5733) drivers: note: Add macro guard for instrumention switch 31207* [#4530](https://github.com/apache/nuttx/pull/4530) drivers: mmcsd: Add RPMB ioctl 31208* [#5215](https://github.com/apache/nuttx/pull/5215) drivers: mmcsd: sdio.c: Fix struct packing of sdio_resp_r5 31209* [#5155](https://github.com/apache/nuttx/pull/5155) drivers: mmcsd: sdio: Move sdio utils functions to drivers/mmcsd 31210* [#4472](https://github.com/apache/nuttx/pull/4472) drivers: mmcsd: sdio: Update the defintion to the latest spec 31211* [#5294](https://github.com/apache/nuttx/pull/5294) drivers: mmcsd: add option to limit block count in multiple-block trans… 31212* [#5182](https://github.com/apache/nuttx/pull/5182) drivers: motor: Move simulated drivers from sim to common place 31213* [#4833](https://github.com/apache/nuttx/pull/4833) drivers: motor: add upperhalf structure 31214* [#5442](https://github.com/apache/nuttx/pull/5442) drivers: mtd: enlarge the limits of blocksize in struct m… 31215* [#5451](https://github.com/apache/nuttx/pull/5451) drivers: mtd: sst39vf.c: patch address map issue 31216* [#4924](https://github.com/apache/nuttx/pull/4924) drivers: mtd: Support multiple SST26 devices on the same spi bus 31217* [#4921](https://github.com/apache/nuttx/pull/4921) drivers: mtd: fix overflow checks in mtdpart 31218* [#4891](https://github.com/apache/nuttx/pull/4891) drivers: mtd: ramtron: Remove errant code and definitions 31219* [#4995](https://github.com/apache/nuttx/pull/4995) drivers: mtd/filemtd: improve write and erase access 31220* [#4964](https://github.com/apache/nuttx/pull/4964) drivers: note: noteram: when the buffer overflow happen and give the asan report 31221* [#4763](https://github.com/apache/nuttx/pull/4763) drivers: pipes: pipe close should notify block writting, and write will return … 31222* [#5425](https://github.com/apache/nuttx/pull/5425) drivers: pipes: Remove pipe from file system after open 31223* [#5475](https://github.com/apache/nuttx/pull/5475) drivers: pipes: Don't use sched_[lock|unlock] to do protection 31224* [#5423](https://github.com/apache/nuttx/pull/5423) drivers: pipes: Add DEV_PIPE_VFS_PATH to specify the pipe location 31225* [#4729](https://github.com/apache/nuttx/pull/4729) drivers: power: battery: add baterr, batinfo, batwarn for debug log 31226* [#4708](https://github.com/apache/nuttx/pull/4708) drivers: power: charge: modify battery_gauge code 31227* [#4990](https://github.com/apache/nuttx/pull/4990) drivers: power: charger: fix crash when notify without pollwaiter 31228* [#4889](https://github.com/apache/nuttx/pull/4889) drivers: power: improve charger interface 31229* [#5701](https://github.com/apache/nuttx/pull/5701) drivers: power: govorner: add govorner to per domain. 31230* [#5591](https://github.com/apache/nuttx/pull/5591) drivers: power: PM: add domain inner update power state feature 31231* [#5050](https://github.com/apache/nuttx/pull/5050) drivers: power: set ioexpander direction in regulator gpio init. 31232* [#5689](https://github.com/apache/nuttx/pull/5689) drivers: segger/sysview: add syscall support 31233* [#5140](https://github.com/apache/nuttx/pull/5140) drivers: sensors: as5048b: fix lower half init issue 31234* [#5061](https://github.com/apache/nuttx/pull/5061) drivers: sensors: isl29023.c: fix compilation error and warnings 31235* [#4838](https://github.com/apache/nuttx/pull/4838) drivers: sensors: Add sensor type ots. 31236* [#4850](https://github.com/apache/nuttx/pull/4850) drivers: sensors: add set calibration interface 31237* [#4842](https://github.com/apache/nuttx/pull/4842) drivers: sensors: Optimized GPS sensor and add gps satellite sensor. 31238* [#5356](https://github.com/apache/nuttx/pull/5356) drivers: sensors: ppg of dual- and quad-channel sensor types 31239* [#5024](https://github.com/apache/nuttx/pull/5024) drivers: sensors: reset interval,latency and circbuf when sensor is closed 31240* [#5128](https://github.com/apache/nuttx/pull/5128) drivers: serial: uart16550: Support 64bit platform 31241* [#5573](https://github.com/apache/nuttx/pull/5573) drivers: serial: pty: Handle pty ioctl and fcntl to pipe ioctl 31242* [#5114](https://github.com/apache/nuttx/pull/5114) drivers: serial: add CONFIG_TTY_LAUNCH support 31243* [#5197](https://github.com/apache/nuttx/pull/5197) drivers: serial: merge serial check signo to one place 31244* [#5430](https://github.com/apache/nuttx/pull/5430) drivers: serial: fix cu crash caused by ioctl is NULL 31245* [#5395](https://github.com/apache/nuttx/pull/5395) drivers: serial: Consolidate the general termios in the common place 31246* [#5427](https://github.com/apache/nuttx/pull/5427) drivers: serial: Minor fix for ptmx driver 31247* [#5415](https://github.com/apache/nuttx/pull/5415) drivers: serial: pty: Sync the default value of iflag and oflag regardless CONFIG_SERIAL_TERMIOS 31248* [#5444](https://github.com/apache/nuttx/pull/5444) drivers: serial: pty: Decouple SUSv1 style from pseudo fs operation 31249* [#5227](https://github.com/apache/nuttx/pull/5227) drivers: serial: uart_16550: Allow uintptr_t as addr width 31250* [#4940](https://github.com/apache/nuttx/pull/4940) drivers: serial: Fix offset calculation in 16550 31251* [#5569](https://github.com/apache/nuttx/pull/5569) drivers: serial: pty: Move the post process after reading the buffer 31252* [#5551](https://github.com/apache/nuttx/pull/5551) drivers: serial: pty: Remove the unused code related to CONFIG_PSEUDOTERM_FULLBLOCKS 31253* [#5402](https://github.com/apache/nuttx/pull/5402) drivers: serial: pty: fix the lock handling 31254* [#5428](https://github.com/apache/nuttx/pull/5428) drivers: serial: pty: Close the internal pipe when reference count drop to zero 31255* [#5429](https://github.com/apache/nuttx/pull/5429) drivers: serial: pty: Don't use shced_[lock|unlock] to protect pp_locked 31256* [#5433](https://github.com/apache/nuttx/pull/5433) drivers: serial: pty: Reorder the register driver to simplify the error handling 31257* [#5581](https://github.com/apache/nuttx/pull/5581) drivers: serial: pty: Remove the TODO comment for O_NONBLOCK 31258* [#5158](https://github.com/apache/nuttx/pull/5158) drivers: serial: uart_rpmsg: fix data loss 31259* [#4789](https://github.com/apache/nuttx/pull/4789) drivers: spi: Extend CONFIG_SPI_CS_DELAY_CONTROL to do inter frame delay and rename CONFIG_SPI_DELAY_CONTROL 31260* [#5408](https://github.com/apache/nuttx/pull/5408) drivers: syslog: syslog_device: fix flushing data when end of line is detected 31261* [#4873](https://github.com/apache/nuttx/pull/4873) drivers: syslog: change /dev/syslog & /dev/ramlog for unix standard 31262* [#5386](https://github.com/apache/nuttx/pull/5386) drivers: syslog: Refine Kconfig option 31263* [#5386](https://github.com/apache/nuttx/pull/5388) drivers: syslog: Implement RTT based log channel 31264* [#5735](https://github.com/apache/nuttx/pull/5735) drivers: syslog: correct the return value of default channel write 31265* [#5387](https://github.com/apache/nuttx/pull/5387) drivers: syslog: Include nuttx/syslog/syslog.h in include/nuttx/syslog/syslog_rpmsg.h 31266* [#5217](https://github.com/apache/nuttx/pull/5217) drivers: syslog: Fix in file channel initialization. 31267* [#5021](https://github.com/apache/nuttx/pull/5021) drivers: syslog/rpmsg: using up_putc to force flush syslog_rpmsg buffer 31268* [#5333](https://github.com/apache/nuttx/pull/5333) drivers: timers: Add weak_function for up_ function 31269* [#5265](https://github.com/apache/nuttx/pull/5265) drivers: timers: dirctly call rpmsg_rtc_server_xx() in server_ept_cb() 31270* [#5743](https://github.com/apache/nuttx/pull/5743) drivers: timers: timer: Add option for non-periodic notification 31271* [#5232](https://github.com/apache/nuttx/pull/5232) drivers: timers: rpmsg_rtc: resolve deadlock when the receive SYNC cmd 31272* [#5230](https://github.com/apache/nuttx/pull/5230) drivers: timers: Simplify the RTC rpmsg driver implementation 31273* [#4635](https://github.com/apache/nuttx/pull/4635) drivers: userled: Implement getall by checking actual pin state 31274* [#5594](https://github.com/apache/nuttx/pull/5594) drivers: video: vncserver: Allow fb operation while no connection 31275* [#5510](https://github.com/apache/nuttx/pull/5510) drivers: video: vncserver: Fix dead lock on re-connect 31276* [#5369](https://github.com/apache/nuttx/pull/5369) drivers: usbdev: cdcacm:support returning c_cflag & speed via termios 31277* [#5249](https://github.com/apache/nuttx/pull/5249) drivers: usbdev: Fix aligment issue: pktbuf needs to be 16bit aligned 31278* [#4766](https://github.com/apache/nuttx/pull/4766) drivers: Fix syslog_write failed 31279* [#4757](https://github.com/apache/nuttx/pull/4757) drivers: rptun: add ns_unbind_notify support 31280* [#4974](https://github.com/apache/nuttx/pull/4974) drivers: rptun: support can_recursive check for openamp 31281* [#5112](https://github.com/apache/nuttx/pull/5112) drivers: wireless: bcm43xxx: supported ARM CR4 core and bcm43455 chip in particular 31282* [#4690](https://github.com/apache/nuttx/pull/4690) drivers: wireless: bcm43xxx: supported high-speed timing mode with a clock rate up to 50MHz 31283* [#4778](https://github.com/apache/nuttx/pull/4778) drivers: wireless: bcm43xxx: corrected SDIO_CCCR_HIGHSPEED_SHS bit handling 31284* [#5497](https://github.com/apache/nuttx/pull/5497) drivers: wireless: Fix gs2200m_ioctl_accept() 31285 31286### New Driver Support 31287 31288* [#5002](https://github.com/apache/nuttx/pull/5002) drivers: analog: add mcp48xx dac support 31289* [#5376](https://github.com/apache/nuttx/pull/5376) drivers: i2c: Add TCA9548A I2C Multiplexer 31290* [#4937](https://github.com/apache/nuttx/pull/4937) drivers: mtd: add MTD null driver support 31291* [#4943](https://github.com/apache/nuttx/pull/4943) drivers: power: add regulator framework 31292* [#5317](https://github.com/apache/nuttx/pull/5317) drivers: sensors: add support to MS5611 barometer 31293* [#4691](https://github.com/apache/nuttx/pull/4691) drivers: sensors: support new sensor type 31294* [#5499](https://github.com/apache/nuttx/pull/5499) drivers: timers: add EPSON RX8010SJ I2C RTC timer support 31295* [#4918](https://github.com/apache/nuttx/pull/4918) drivers: clk: add clk framework 31296* [#5258](https://github.com/apache/nuttx/pull/5258) drivers: input: add touchscreen uinput driver 31297* [#5327](https://github.com/apache/nuttx/pull/5327) drivers: segger: add Segger System View support 31298 31299## Board Support 31300 31301### New Board Support 31302 31303* [#5363](https://github.com/apache/nuttx/pull/5363) boards: arm: phy62xx: add phyplus_rel_1.4 31304* [#4916](https://github.com/apache/nuttx/pull/4916) boards: arm: samv7: add support for SAME70 QMTECH board 31305* [#5195](https://github.com/apache/nuttx/pull/5195) boards: arm: rp2040: add support for Pimoroni Tiny 2040 board 31306* [#4851](https://github.com/apache/nuttx/pull/4851) boards: risc-v: mpfs: Add support for Aries M100PFSMVP board 31307 31308### Boards With Significant Improvements 31309 31310* [#5553](https://github.com/apache/nuttx/pull/5553) boards: Add -fno-common to ARCHCFLAGS and ARCHCXXFLAGS 31311* [#5330](https://github.com/apache/nuttx/pull/5330) boards: Board.mk: Make romfs_img 4 byte aligned 31312* [#5712](https://github.com/apache/nuttx/pull/5712) boards: Kconfig: introduce ARCH_BOARD_COMMON option 31313* [#4744](https://github.com/apache/nuttx/pull/4744) boards: Rename FOC_VEL_ADC to FOC_SETPOINT_ADC 31314* [#5557](https://github.com/apache/nuttx/pull/5557) boards: Replace CONFIG_CYGWIN_WINTOOL with CONVERT_PATH 31315* [#5555](https://github.com/apache/nuttx/pull/5555) boards: Remove the unnecessary customize Make.defs 31316* [#5476](https://github.com/apache/nuttx/pull/5476) boards: Remove -fno-builtin 31317* [#5244](https://github.com/apache/nuttx/pull/5244) boards: Remove -fno-strength-reduce 31318* [#5349](https://github.com/apache/nuttx/pull/5349) boards: Remove unused NXFLAT flags from Make.defs 31319* [#5348](https://github.com/apache/nuttx/pull/5348) boards: Revert user space / kernel space isolation for pthread_exit 31320* [#5557](https://github.com/apache/nuttx/pull/5557) boards: Replace CONFIG_CYGWIN_WINTOOL with CONVERT_PATH 31321* [#5282](https://github.com/apache/nuttx/pull/5282) boards: Update board Make.defs 31322 31323#### CXD56 31324 31325* [#5440](https://github.com/apache/nuttx/pull/5440) boards: arm: cxd56xx: audio: Support I2S input 31326* [#4996](https://github.com/apache/nuttx/pull/4996) boards: arm: cxd56xx: spresense: Adjust CONFIG_FAT_MAXFNAME and CONFIG_NAME_MAX 31327* [#4969](https://github.com/apache/nuttx/pull/4969) boards: arm: cxd56xx: spresense: Update smp/defconfig 31328 31329#### IMX6 31330 31331* [#5652](https://github.com/apache/nuttx/pull/5652) boards: arm: imx6: sabre-6quad: Add knsh 31332* [#5485](https://github.com/apache/nuttx/pull/5485) boards: arm: imx6: sabre-6quad: Add -fno-common to Make.defs 31333* [#5724](https://github.com/apache/nuttx/pull/5724) boards: arm: imx6: sabre-6quad: Add CONFIG_DEBUG_FULLOPT=y to knsh/defconfig 31334 31335#### IMXRT 31336 31337* [#5670](https://github.com/apache/nuttx/pull/5670) boards: arm: imxrt: fix userled config in appinit 31338* [#5682](https://github.com/apache/nuttx/pull/5682) boards: arm: imxrt: userleds: Teensy 4.x board LED is active high 31339 31340#### LC823450 31341 31342* [#4947](https://github.com/apache/nuttx/pull/4947) boards: arm: lc823450: lc823450-xgevk: Update bt/defconfig for SMP 31343 31344#### NRF52 31345 31346* [#5023](https://github.com/apache/nuttx/pull/5023) boards: arm: nrf52: nrf52832-dk/nrf52840-dk: add procfs and sdc support 31347 31348#### PHY62XX 31349 31350* [#5669](https://github.com/apache/nuttx/pull/5669) boards: arm: phy62xx: phy6222: remove -nostartfiles -nodefaultlibs 31351 31352#### SAMV7 31353 31354* [#5406](https://github.com/apache/nuttx/pull/5406) boards: arm: samv7: disable systick no matter if ARMV7M_SYSTICK is enabled or not 31355* [#5710](https://github.com/apache/nuttx/pull/5710) boards: arm: samv7: rework linker script usage logic to allow custom linker scripts 31356* [#5281](https://github.com/apache/nuttx/pull/5281) boards: arm: samv7: move HSMCI interface to common 31357* [#4981](https://github.com/apache/nuttx/pull/4981) boards: arm: samv7: Introduce common folder and refactor MCUboot 31358* [#5320](https://github.com/apache/nuttx/pull/5320) boards: arm: samv7: common: add HSMCI0 boot mount configuration option 31359* [#5127](https://github.com/apache/nuttx/pull/5127) boards: arm: samv7: common: Improve SAMv7 common folder approach 31360* [#5318](https://github.com/apache/nuttx/pull/5318) boards: arm: samv7: same70-qmtech: enable slow crystal 31361* [#5410](https://github.com/apache/nuttx/pull/5410) boards: arm: samv7: same70-qmtech: add buttons interface 31362* [#4911](https://github.com/apache/nuttx/pull/4911) boards: arm: samv7: samv71-xult: Set console at usart1 31363* [#5676](https://github.com/apache/nuttx/pull/5676) boards: arm: samv7: default BOARD_SAMV7_COMMON to n 31364* [#5119](https://github.com/apache/nuttx/pull/5119) boards: arm: samv7: improve progmem common interface 31365* [#5276](https://github.com/apache/nuttx/pull/5276) boards: arm: samv7: fix build error when automount is enabled 31366* [#5277](https://github.com/apache/nuttx/pull/5277) boards: arm: same70-qmtech: switch console to UART0 31367* [#5312](https://github.com/apache/nuttx/pull/5312) boards: arm: same70-qmtech: clarify usage of CD signal on SD card connector 31368* [#4880](https://github.com/apache/nuttx/pull/4880) boards: arm: same70-xplained: MCUboot support for SAM E70 Xplained 31369* [#4912](https://github.com/apache/nuttx/pull/4912) boards: arm: same70-xplained: disable systick before loading MCUboot application 31370* [#4907](https://github.com/apache/nuttx/pull/4907) boards: arm: same70-xplained: scripts: fix memory region size for MCUboot app 31371* [#4906](https://github.com/apache/nuttx/pull/4906) boards: arm: same70-xplained: fix usage of SAMV71XULT instead of SAME70XPLAINED 31372* [#4915](https://github.com/apache/nuttx/pull/4915) boards: arm: same70-xplained: MCUboot related improvements 31373 31374#### STM32 31375 31376* [#5011](https://github.com/apache/nuttx/pull/5011) boards: arm: stm32: emw3162: enabled internal pull-up resistors on SDIO bus 31377* [#4750](https://github.com/apache/nuttx/pull/4750) boards: arm: stm32: Normalize FOC related project 31378* [#5612](https://github.com/apache/nuttx/pull/5612) boards: arm: stm32: Update adb configs 31379* [#5675](https://github.com/apache/nuttx/pull/5675) boards: arm: stm32: stm32f4discovery: Remove CONFIG_LIBC_EXECFUNCS from adb defconfig 31380* [#4775](https://github.com/apache/nuttx/pull/4775) boards: arm: stm32: b-g431b-esc1: add Hall and Qenco support 31381* [#5420](https://github.com/apache/nuttx/pull/5420) boards: arm: stm32: b-g431b-esc1/nucleo-g431rb: add SocketCAN examples 31382* [#5237](https://github.com/apache/nuttx/pull/5237) boards: arm: stm32: b-g431b-esc1/nucleo-g431rb: add CAN example for 31383* [#5238](https://github.com/apache/nuttx/pull/5238) boards: arm: stm32: nucleo-f302r8: nucleo-f446re: add SocketCAN example 31384* [#4785](https://github.com/apache/nuttx/pull/4785) boards: arm: stm32: nucleo-f302r8: disable NSH commands for FOC configs to save FLASH 31385* [#4938](https://github.com/apache/nuttx/pull/4938) boards: arm: stm32: nucleo-f302r8: add 3ph Hall sensor support 31386* [#5166](https://github.com/apache/nuttx/pull/5166) boards: arm: stm32: nucleo-f446re: add procfs support 31387* [#5614](https://github.com/apache/nuttx/pull/5614) boards: arm: stm32: nucleo-l152re: Added registering logic SPI on /dev. 31388* [#5439](https://github.com/apache/nuttx/pull/5439) boards: arm: stm32: nucleo-l152re: Test/i2c 31389* [#5009](https://github.com/apache/nuttx/pull/5009) boards: arm: stm32: nucleo-f4x1re: Correct issues with userled support on the Nucleo F4x1RE. 31390* [#5130](https://github.com/apache/nuttx/pull/5130) boards: arm: stm32: photon: added configuration to measure wlan performance 31391 31392#### STM32H7 31393 31394* [#5697](https://github.com/apache/nuttx/pull/5697) boards: arm: stm32[f7|l4]: fix SPI chip select GPIO access 31395* [#4827](https://github.com/apache/nuttx/pull/4827) boards: arm: stm32h7: nucleo-h743zi: add board_reset function 31396 31397#### TIVA 31398 31399* [#5664](https://github.com/apache/nuttx/pull/5664) boards: arm: tiva: ekk-lm3s9b96: Remove unused mmcsd option 31400* [#5595](https://github.com/apache/nuttx/pull/5595) boards: arm: tiva: lm3s6965-ek: Add qemu-kostest 31401* [#5597](https://github.com/apache/nuttx/pull/5597) boards: arm: tiva: lm3s6965-ek: Fix qemu-kostest 31402* [#5597](https://github.com/apache/nuttx/pull/5597) boards: arm: tiva: lm3s6965-ek: Fix qemu-kostest 31403 31404#### RISC-V 31405 31406* [#5134](https://github.com/apache/nuttx/pull/5134) boards: risc-v: hifive1-revb: Enable some nsh commands in nsh/defconfig 31407* [#4675](https://github.com/apache/nuttx/pull/4675) boards: risc-v: k210: Add initial gpio user space support 31408* [#4665](https://github.com/apache/nuttx/pull/4665) boards: risc-v: k210: Fix -march and -mabi 31409* [#5067](https://github.com/apache/nuttx/pull/5067) boards: risc-v: mpfs: update m100pfsevp board info 31410* [#5688](https://github.com/apache/nuttx/pull/5688) boards: risc-v: mpfs: MPFS USB driver 31411* [#5111](https://github.com/apache/nuttx/pull/5111) boards: risc-v: m100pfsevp: Decrease DDR lane temination values to 40 ohm and … 31412* [#5500](https://github.com/apache/nuttx/pull/5500) boards: risc-v: bl602: Remove -D__NuttX__ from Makefile 31413* [#5515](https://github.com/apache/nuttx/pull/5515) boards: risc-v: rv-virt: Supports FPU test and ostest in both rv32/rv64 31414 31415#### SIM 31416 31417* [#5544](https://github.com/apache/nuttx/pull/5544) boards: sim: Add missing options to sim:vncserver 31418* [#5559](https://github.com/apache/nuttx/pull/5559) boards: sim: Rename ARCHCPUFLAGS[XX] to ARCHC[XX]FLAGS 31419* [#5739](https://github.com/apache/nuttx/pull/5739) boards: sim: add support of custom optimization level 31420* [#5186](https://github.com/apache/nuttx/pull/5186) boards: sim: Turn on more rpmsg drivers in rpserver config 31421* [#5101](https://github.com/apache/nuttx/pull/5101) boards: sim: Remove sim_tsc_setup 31422* [#5561](https://github.com/apache/nuttx/pull/5561) boards: sim: defconfig for hello_rust 31423* [#5535](https://github.com/apache/nuttx/pull/5535) boards: sim: Enable Rust suppport for hello_rust application. 31424* [#5640](https://github.com/apache/nuttx/pull/5640) boards: sim: Remove CCLINKFLAGS, use CFLAGS/CXXFLAGS instead 31425* [#5501](https://github.com/apache/nuttx/pull/5501) boards: sim: Add adb config for test 31426* [#5121](https://github.com/apache/nuttx/pull/5121) boards: sim: recovered eth0 interface in sim:tcpblaster configuration 31427* [#5383](https://github.com/apache/nuttx/pull/5383) boards: sim: Make.defs: CELFFLAGS += -mcmodel=large 31428 31429#### SPARC 31430 31431* [#5644](https://github.com/apache/nuttx/pull/5644) boards: sparc: Remove HOSTCC related flags from Make.defs 31432 31433#### XTENSA 31434 31435* [#4719](https://github.com/apache/nuttx/pull/4719) boards: xtensa: esp32: Refactor SPI Flash File system mount options on menuconfig 31436* [#5596](https://github.com/apache/nuttx/pull/5596) boards: xtensa: esp32: Update esp-wireless-drivers-3rdparty 31437* [#5074](https://github.com/apache/nuttx/pull/5074) boards: xtensa: esp32: Add board support to SHT3X sensor 31438* [#5051](https://github.com/apache/nuttx/pull/5051) boards: xtensa: esp32: Enable canaries stack protection to ESP32 chips 31439* [#5617](https://github.com/apache/nuttx/pull/5617) boards: xtensa: esp32-devkitc: Fix boot failure on tickless defconfig 31440* [#5654](https://github.com/apache/nuttx/pull/5654) boards: xtensa: esp32-devkitc: Increase INIT_STACKSIZE to 3072 in smp/defconfig 31441* [#5075](https://github.com/apache/nuttx/pull/5075) boards: xtensa: esp32-devkitc: Change CONFIG_USER_ENTRYPOINT to CONFIG_INIT_ENTRYPOINT 31442 31443## File System 31444 31445### Bug Fixes 31446 31447* [#4694](https://github.com/apache/nuttx/pull/4694) fs: littlefs: fix rmdir can remove a file 31448* [#4722](https://github.com/apache/nuttx/pull/4722) fs: mqueue: fix memory leak cause by lost inode_release 31449* [#5214](https://github.com/apache/nuttx/pull/5214) fs: partition: Fix compilation errors when CONFIG_FS_LARGEFIL… 31450* [#5279](https://github.com/apache/nuttx/pull/5279) fs: partition: Fix an overflow in blkcnt_t gpt_last_lba 31451* [#5653](https://github.com/apache/nuttx/pull/5653) fs: romfs: fix read file mismatch when the length of file name is 16 31452* [#5257](https://github.com/apache/nuttx/pull/5257) fs: smartfs: Fix file size corruption when opening with truncate mode 31453* [#4811](https://github.com/apache/nuttx/pull/4811) fs: procfs: fix ps can't log out Group id 31454* [#5172](https://github.com/apache/nuttx/pull/5172) fs: procfs: fix readdir loss last character 31455* [#4968](https://github.com/apache/nuttx/pull/4968) fs: fat: Use uint16_t instead of wchar_t 31456 31457### Significant Improvements 31458 31459* [#5108](https://github.com/apache/nuttx/pull/5108) fs: change fs strncpy to strlcpy to avoid losing'\0' 31460* [#5460](https://github.com/apache/nuttx/pull/5460) fs: epoll_fd: support dup file descriptor 31461* [#5345](https://github.com/apache/nuttx/pull/5345) fs: fs_automount: add options for signaling when volume is mounted and unmounted 31462* [#4934](https://github.com/apache/nuttx/pull/4934) fs: hosfs_rpmsg: merge hostfs_rpmsg to rpmsgfs 31463* [#4986](https://github.com/apache/nuttx/pull/4986) fs: hostfs: add lock to hostfs_rewinddir 31464* [#4718](https://github.com/apache/nuttx/pull/4718) fs: mount: Properly handle missing FS on the supported list 31465* [#4721](https://github.com/apache/nuttx/pull/4721) fs: mqueue: Change MAX_MQUEUE_PATH to 64 31466* [#4734](https://github.com/apache/nuttx/pull/4734) fs: partition: support mbr and gpt partition parsing 31467* [#4687](https://github.com/apache/nuttx/pull/4687) fs: partition: Make read_partition_block callable outside ptable 31468* [#5207](https://github.com/apache/nuttx/pull/5207) fs: procfs: Remove the unnecessary strcmp 31469* [#5554](https://github.com/apache/nuttx/pull/5554) fs: procfs: add newline /proc/*/loadavg snprintf format 31470* [#5157](https://github.com/apache/nuttx/pull/5157) fs: romfs: remove the error single list and using reference 31471* [#5461](https://github.com/apache/nuttx/pull/5461) fs: romfs: add FAR for all pointer and optimize some code 31472* [#5635](https://github.com/apache/nuttx/pull/5635) fs: romfs: optimize romfs_open speed and get path by cmd FIOC_FILEPATH 31473* [#5022](https://github.com/apache/nuttx/pull/5022) fs: tmpfs: support fsync always successful 31474* [#5014](https://github.com/apache/nuttx/pull/5014) fs: vfs: Add file descriptor based timers support 31475* [#5028](https://github.com/apache/nuttx/pull/5028) fs: vfs: eventfd: Remove the unused and private eventfd_get_minor 31476* [#5224](https://github.com/apache/nuttx/pull/5224) fs: vfs: Do not require write-access for fsync 31477* [#4767](https://github.com/apache/nuttx/pull/4767) fs: vfs: sanity check for parameter:length 31478 31479## Networking 31480 31481### Improvements 31482 31483* [#5254](https://github.com/apache/nuttx/pull/5254) net: unify FAR keyword usage for all net buffer memory mapped buffers 31484* [#5049](https://github.com/apache/nuttx/pull/5049) net: Update IFF_RUNNING flag by netdev_carrier_on and netdev_carrier_off 31485* [#4895](https://github.com/apache/nuttx/pull/4895) net: arp: clean the arp table when netdev carrier off 31486* [#5168](https://github.com/apache/nuttx/pull/5168) net: can: add CAN error definitions 31487* [#4814](https://github.com/apache/nuttx/pull/4814) net: can: can_recvmsg.c : put can_readahead in critical section 31488* [#5467](https://github.com/apache/nuttx/pull/5467) net: can: remove psock reference from can connect 31489* [#5110](https://github.com/apache/nuttx/pull/5110) net: devif: allocate devif callback dynamically 31490* [#5181](https://github.com/apache/nuttx/pull/5181) net: devif: devif_callback_free() call is not needed anymore in devif_callback_alloc() 31491* [#5136](https://github.com/apache/nuttx/pull/5136) net: icmp: post the semaphore if multiple references 31492* [#5525](https://github.com/apache/nuttx/pull/5525) net: ioballoc: add support of alloc with timeout net_iobtimedalloc() 31493* [#5426](https://github.com/apache/nuttx/pull/5426) net: local: Rename NET_LOCAL_PATH_PREFIX to NET_LOCAL_VFS_PATH 31494* [#4987](https://github.com/apache/nuttx/pull/4987) net: local_socket: filename use "/var/socket/xx" instead of "/var/socketxx" 31495* [#5150](https://github.com/apache/nuttx/pull/5150) net: misc: add support for CONFIG_NET_ALLOC_CONNS 31496* [#5725](https://github.com/apache/nuttx/pull/5725) net: optimize network subsystem initialization 31497* [#4973](https://github.com/apache/nuttx/pull/4973) net: rpmsg: add ioctl & fix unblock connect crash 31498* [#4760](https://github.com/apache/nuttx/pull/4760) net: socket: rpmsg related bug fix & update 31499* [#5337](https://github.com/apache/nuttx/pull/5337) net: tcbinfo: Update tcbinfo struct, Fix the compile warning 31500* [#5526](https://github.com/apache/nuttx/pull/5526) net: tcp: add support for send timeout on buffer mode 31501* [#5373](https://github.com/apache/nuttx/pull/5373) net: tcp: add debug asserts and logging to investigate the rare (conn->dev == NULL) bug in callback handlers 31502* [#5462](https://github.com/apache/nuttx/pull/5462) net: tcp: monitor: do not migrate the state to close 31503* [#5405](https://github.com/apache/nuttx/pull/5405) net: tcp: netdev/mld: correct the netlock handling 31504* [#4660](https://github.com/apache/nuttx/pull/4660) net: tcp: Remove NET_TCP_SPLIT 31505* [#5469](https://github.com/apache/nuttx/pull/5469) net: tcp: support for FIN+ACK case in tcp send event handlers 31506* [#5341](https://github.com/apache/nuttx/pull/5341) net: tcp: transformed NET_TCP_FAST_RETRANSMIT_WATERMARK option to boolean. 31507* [#5434](https://github.com/apache/nuttx/pull/5434) net: tcp: udp: remove psock hook to avoid invalid reference 31508* [#5339](https://github.com/apache/nuttx/pull/5339) net: tcp/tcp_sendfile: optimized out sendfile_txnotify() function 31509* [#5252](https://github.com/apache/nuttx/pull/5252) net: tcp/tcp_send*: reliably obtain the TCP connection pointer in TCP event handlers 31510* [#5268](https://github.com/apache/nuttx/pull/5268) net: tcp/tcp_send*: added debug asserts for TCP_ACKDATA, TCP_REXMIT and TCP_DISCONN_EVENTS flags 31511* [#5262](https://github.com/apache/nuttx/pull/5262) net: tcp/sendfile: swapped the location of TCP_DISCONN_EVENTS and TCP_ACKDATA conditions 31512* [#5340](https://github.com/apache/nuttx/pull/5340) net: tcp/sendfile: notify the device driver of the availability of TX data on TCP retransmission 31513* [#5311](https://github.com/apache/nuttx/pull/5311) net: tcp/sendfile: fast retransmit on duplicate acknowledgments (RFC 5681) 31514* [#5242](https://github.com/apache/nuttx/pull/5242) net: tcp/sendfile: TCP retransmission could not start because of incorrect snd_ackcb callback handling 31515* [#5104](https://github.com/apache/nuttx/pull/5104) net: tcp/udp: allocate tcp/udp connect dynamically 31516* [#5156](https://github.com/apache/nuttx/pull/5156) net: usrsock: add support for CONFIG_NET_ALLOC_CONNS 31517* [#5045](https://github.com/apache/nuttx/pull/5045) net: usrsock: increase the sendto() length limit to UINT32_MAX 31518 31519### Bug Fixes 31520 31521* [#5480](https://github.com/apache/nuttx/pull/5480) net: can: can_setsockopt.c: fix assertion, value can be NULL 31522* [#5141](https://github.com/apache/nuttx/pull/5141) net: can: SocketCAN: minor fixes 31523* [#4575](https://github.com/apache/nuttx/pull/4575) net: devif: Fix the memory leak in case of netdev isn't alive 31524* [#5437](https://github.com/apache/nuttx/pull/5437) net: devif: remove invalid NET_IPv4_REASSEMBLY definition 31525* [#5090](https://github.com/apache/nuttx/pull/5090) net: fix unaligned memory access when creating ICMP Port Unreachable messages 31526* [#5245](https://github.com/apache/nuttx/pull/5245) net: icmp: fix build break if enable NET_ALLOC_CONNS 31527* [#4761](https://github.com/apache/nuttx/pull/4761) net: local: socket bug fix & update 31528* [#5436](https://github.com/apache/nuttx/pull/5436) net: netdev: lladdrsize: remove invalid duplicate case 31529* [#5466](https://github.com/apache/nuttx/pull/5466) net: rpmsg: fix the NULL pointer reference on nonblock accept 31530* [#5531](https://github.com/apache/nuttx/pull/5531) net: socket: fix shadow variable 31531* [#5006](https://github.com/apache/nuttx/pull/5006) net: tcp: fix send deadlock if disconnect 31532* [#5296](https://github.com/apache/nuttx/pull/5296) net: tcp: fixed warning: ISO C90 forbids mixed declarations and code 31533* [#4639](https://github.com/apache/nuttx/pull/4639) net: tcp_timer: eliminated false decrements of conn->timer in case of multiple network adapters. 31534* [#4659](https://github.com/apache/nuttx/pull/4659) net: tcp(unbuffered): retransmit only one the earliest not acknowledged segment 31535* [#4656](https://github.com/apache/nuttx/pull/4656) net: tcp(unbuffered): fixed an issue with unackseq calculation. 31536* [#5138](https://github.com/apache/nuttx/pull/5138) net: tcp(unbuffered): advance sndseq by +1 because SYN and FIN occupy one sequence number 31537* [#5137](https://github.com/apache/nuttx/pull/5137) net: tcp(unbuffered): fast retransmit on duplicate acknowledgments 31538* [#5078](https://github.com/apache/nuttx/pull/5078) net: tcp(unbuffered): tx_unacked overflow occurred if NET_TCP_WINDOW_SCALE option was enabled. 31539* [#5102](https://github.com/apache/nuttx/pull/5102) net: tcp(unbuffered): removed excessive overwrites of conn->sndseq 31540* [#5297](https://github.com/apache/nuttx/pull/5297) net: tcp/sendfile: removed excessive overwrites of conn->sndseq 31541* [#5239](https://github.com/apache/nuttx/pull/5239) net: tcp/sendfile: NET_TCP_WRITE_BUFFERS and NET_SENDFILE were inconsistent with each other 31542* [#5293](https://github.com/apache/nuttx/pull/5293) net: tcp/sendfile: fixed an issue with unackseq calculation. 31543* [#5272](https://github.com/apache/nuttx/pull/5272) net: tcp/sendfile: retransmit only one the earliest not acknowledged segment 31544* [#5013](https://github.com/apache/nuttx/pull/5013) net: udp: fix the invaild udp destination address 31545* [#4890](https://github.com/apache/nuttx/pull/4890) net: udp/icmp: correct the unreadchable handling 31546* [#5154](https://github.com/apache/nuttx/pull/5154) net: usrsock: replace xid type to uint64_t to avoid limitation of connections 31547 31548## Security Issues Fixed In This Release 31549 31550Compatibility Concerns 31551Renamed Kconfigs 31552 31553PR-5065 has renamed the following Kconfigs: 31554 31555CONFIG_USER_ENTRYPOINT -> CONFIG_INIT_ENTRYPOINT 31556CONFIG_USERMAIN_STACKSIZE -> CONFIG_INIT_STACKSIZE 31557 31558These are the non-"CONFIG_"-prefixed names: 31559 31560USER_ENTRYPOINT -> INIT_ENTRYPOINT 31561USERMAIN_STACKSIZE -> INIT_STACKSIZE 31562 31563All in-tree boards have been updated. 31564 31565NuttX users developing their own out-of-tree boards need to update all references to the above names as well. 31566 31567See PR-5065, git commits 4bc7b8c802cd42bd2c3d98f4fd11207d2dd50de4, 632716dc7ad04f7cad48c5787f5c0b500cbee296, and 036d98a06ba873318061380b876b838f7ffa64fb. 31568 31569Changes to Build System 31570 31571PR-5496 has refactored the separate Unix and Windows handling of the build variable ARCHSCRIPT so that each board's Make.defs will not need logic like this: 31572 31573ifeq ($(CONFIG_CYGWIN_WINTOOL),y) 31574 ARCHSCRIPT = -T "${shell cygpath -w $(BOARD_DIR)$(DELIM)scripts$(DELIM)tfm-ns.ld}" 31575else 31576 ARCHSCRIPT = -T$(BOARD_DIR)$(DELIM)scripts$(DELIM)tfm-ns.ld 31577endif 31578 31579And can instead append the variable just one, like this: 31580 31581ARCHSCRIPT += $(BOARD_DIR)$(DELIM)scripts$(DELIM)tfm-ns.ld 31582 31583Note the assignment is changed to append (from "=" to "+=") and removal of "-T". 31584 31585All boards in the NuttX tree have been updated. 31586 31587NuttX users developing their own custom boards will need to update their board's scripts/Make.defs file as shown above. 31588 31589See PR-5496, git commit 855534deef50e1e9c957eb32a7b15497d1bfd34a. 31590 31591 31592 31593 31594PR-5712 has refactored board common logic. BOARD_SAMV7_COMMON and BOARD_STM32_COMMON options are removed and a new ARCH_BOARD_COMMON is introduced. 31595 31596All in-tree boards have been updated. 31597 31598NuttX users developing their own out-of-tree boards need to replace "CONFIG_BOARD_SAMV7_COMMON=y" and "CONFIG_BOARD_STM32_COMMON=y" to "CONFIG_ARCH_BOARD_COMMON=y" in defconfig files. Also for some out-of-tree boards the compilation may fail with next error messages: 31599 31600make[2]: *** No rule to make target 'libboard.a'. Stop. 31601Makefile:139: recipe for target 'board/libboard.a' failed 31602make[1]: *** [board/libboard.a] Error 2 31603tools/Unix.mk:509: recipe for target 'nuttx' failed 31604 31605In this case the out-of-tree board actually relies on in-tree boards common folder structure. To overcome the build error there are two possible options: 31606 31607Add "CONFIG_ARCH_BOARD_COMMON=y" to defconfig file (this will restore parity with previous NuttX release) 31608Rename "src/Make.defs" → "src/Makefile" in out-of-tree board directory and append "include $(TOPDIR)/boards/Board.mk" to "src/Makefile". 31609Refactored Arch Headers 31610 31611PR-5720 has refactored architectural headers affecting all ARM platforms: arm_arch.h has been removed and its contents merged into arm_internal.h. Previously, most low-level modules in arch/arm/* and boards/arm/* needed to include both headers. Following the refactor, only arm_internal.h is needed. 31612 31613All boards in the NuttX tree have been updated. 31614 31615NuttX users developing their own custom boards will need to remove any #include "arm_arch.h" and (if necessary), #include "arm_internal.h" instead. 31616 31617See PR-5720, git commit 54e630e14d7e32d6f81ae79d4e5df3d2fa787ef0. 31618 31619NuttX-11.0.0 Release Notes 31620 31621# What's New In This Release 31622 31623## Bug Fixes and Improvements 31624 31625* [#5978](https://github.com/apache/nuttx/pull/5978) nuttx: unify FAR attribute usage across the code 31626* [#6064](https://github.com/apache/nuttx/pull/6064) sched/environ: Ensure tg_envp terminated by double 31627* [#6038](https://github.com/apache/nuttx/pull/6038) sched/pthread_create:fix bug,delete data_sem 31628* [#6035](https://github.com/apache/nuttx/pull/6035) sched/init: drivers_initialize() should be late than up_initialize() 31629* [#6026](https://github.com/apache/nuttx/pull/6026) sched/note: include-able from C++ files 31630* [#6083](https://github.com/apache/nuttx/pull/6083) sched/environ: Refine the environment variables storage layout 31631* [#5992](https://github.com/apache/nuttx/pull/5992) sched/note: correct flatten format 31632* [#6271](https://github.com/apache/nuttx/pull/6271) sched: Replace pthread_sem_take with nxsem_wait_uninterruptible 31633* [#6220](https://github.com/apache/nuttx/pull/6220) sched/note: fix build break 31634* [#6215](https://github.com/apache/nuttx/pull/6215) sched/group: addrenv: allocate current group for each cpu 31635* [#6153](https://github.com/apache/nuttx/pull/6153) sched:fix mq_timedsend describe 31636* [#6135](https://github.com/apache/nuttx/pull/6135) sched: cpuload: add pm callbacks for cpuidle and time compensate for idle task 31637* [#5986](https://github.com/apache/nuttx/pull/5986) sched/irq: Fix array overrun in coverity check 31638* [#5859](https://github.com/apache/nuttx/pull/5859) sched/sched_timerexpiration.c: change from sched_time to eventtime 31639* [#6137](https://github.com/apache/nuttx/pull/6137) sched: remove DEBUGASSERT from nx_waitpid 31640* [#5929](https://github.com/apache/nuttx/pull/5929) sched/pthread:need check pthread is DETACHED 31641* [#5915](https://github.com/apache/nuttx/pull/5915) sched/note: add support of trace section mark 31642* [#6328](https://github.com/apache/nuttx/pull/6328) sched: Move the call of pthread_mutex_inconsistent to nxtask_recover 31643* [#6329](https://github.com/apache/nuttx/pull/6329) sched/pthread: Should call up_exit in pthread_exit 31644* [#6296](https://github.com/apache/nuttx/pull/6296) sched/wqueue: Add work_timeleft macro to get the left time to start 31645* [#5753](https://github.com/apache/nuttx/pull/5753) Fix the initial idle tasks environment 31646* [#5793](https://github.com/apache/nuttx/pull/5793) sched/module: correct the check condition 31647* [#6716](https://github.com/apache/nuttx/pull/6716) sched/Makefile: move task_reparent.c to appropriate Makefile 31648* [#6707](https://github.com/apache/nuttx/pull/6707) sched: Remove the not really used cmptime 31649* [#6679](https://github.com/apache/nuttx/pull/6679) sched_critmonitor: remove check zero in sched_critmonitor 31650* [#6677](https://github.com/apache/nuttx/pull/6677) sched: handle nxtask_setup_arguments return values 31651* [#6628](https://github.com/apache/nuttx/pull/6628) sched/timer: timer_settime not fully satisfy IEEE 1003.1 31652* [#6423](https://github.com/apache/nuttx/pull/6423) sched/env: Fix the return value of unsetenv() 31653* [#6410](https://github.com/apache/nuttx/pull/6410) sched/mqueue: do sanity check if DEBUG_FEATURES is enabled 31654* [#6403](https://github.com/apache/nuttx/pull/6403) sched/mqueue: configurable mqueue notification 31655* [#6402](https://github.com/apache/nuttx/pull/6402) sched/mqueue: minor code tuning of message queue 31656* [#6393](https://github.com/apache/nuttx/pull/6393) sched/mqueue: replace inline linklist to improve performance 31657* [#6392](https://github.com/apache/nuttx/pull/6392) sched/mqueue: remove sched_lock to improve performance 31658* [#6377](https://github.com/apache/nuttx/pull/6377) sched/tls: Shouldn't get tls info directly from sp in kernel space 31659* [#6365](https://github.com/apache/nuttx/pull/6365) sched/tls: Wrap up_info_size into tls_info_size 31660* [#6340](https://github.com/apache/nuttx/pull/6340) Change dpends on SCHED_[L|H]PWORK to SCHED_WORKQUEUE 31661* [#6250](https://github.com/apache/nuttx/pull/6250) sched: Remove task_restart in case of CONFIG_BUILD_KERNEL 31662* [#6236](https://github.com/apache/nuttx/pull/6236) sched: Remove task_delete in case of CONFIG_BUILD_KERNEL 31663* [#5822](https://github.com/apache/nuttx/pull/5822) sched/dumpstack: Print "backtrace:" only in the first iteration 31664* [#5925](https://github.com/apache/nuttx/pull/5925) sigact: get free sigact from freelist always successful 31665* [#6227](https://github.com/apache/nuttx/pull/6227) Replace all sem_wait with nxsem_wait 31666* [#5931](https://github.com/apache/nuttx/pull/5931) fix: pthread_rwlock_timedwrlock. 31667* [#6348](https://github.com/apache/nuttx/pull/6348) cpuload: use correct pm cpuload tick 31668* [#5888](https://github.com/apache/nuttx/pull/5888) workqueue: add work_foreach support 31669* [#6226](https://github.com/apache/nuttx/pull/6226) Replace nxsem_timedwait_uninterruptible with nxsem_tickwait_uninterruptible 31670* [#6085](https://github.com/apache/nuttx/pull/6085) semaphore: fix usage of NXSEM_INITIALIZER 31671* [#5819](https://github.com/apache/nuttx/pull/5819) pid_t: unify usage of special task IDs 31672* [#6611](https://github.com/apache/nuttx/pull/6611) include: Declare nxtask_delete function 31673* [#5960](https://github.com/apache/nuttx/pull/5960) timerexpiration:fix DEADCODE when RR_INTERVAL or SCHED_SPORADIC not select 31674* [#6745](https://github.com/apache/nuttx/pull/6745) Remove the private NULL, TRUE and FALSE macros 31675* [#6489](https://github.com/apache/nuttx/pull/6489) syscall: Remove exit() call gate 31676* [#5887](https://github.com/apache/nuttx/pull/5887) signal: Don't do schedule_sigaction when there is no action 31677* [#6359](https://github.com/apache/nuttx/pull/6359) signal: add define of SIGHUP/SIGTTIN 31678* [#6283](https://github.com/apache/nuttx/pull/6283) pthread/spinlock: Call up_testsest directly in the flat build 31679* [#6282](https://github.com/apache/nuttx/pull/6282) timers/watchdog: Ensure it's the idle domain before keepalive 31680* [#6133](https://github.com/apache/nuttx/pull/6133) syscall: Fix prototype of exec() to syscall.csv 31681* [#6616](https://github.com/apache/nuttx/pull/6616) syscall: Add socketpair to syscall.csv 31682* [#6120](https://github.com/apache/nuttx/pull/6120) Implement execle, execve, execvp, execlp and execvpe 31683* [#5814](https://github.com/apache/nuttx/pull/5814) env_dup: Allocate memory from the correct memory pool 31684 31685* [#5914](https://github.com/apache/nuttx/pull/5914) mm/mm_heap: place alloc-bit at the LSB of node->preceeding 31686* [#6685](https://github.com/apache/nuttx/pull/6685) mm/mm_heap: update MM_BACKTRACE and malloc failed output 31687* [#6658](https://github.com/apache/nuttx/pull/6658) mm: Fixed the usage of CONFIG_MM_BACKTRACE & CONFIG_DEBUG_MM 31688* [#5906](https://github.com/apache/nuttx/pull/5906) mm_heap: heapsize align with MM_MIN_CHUNK 31689* [#6409](https://github.com/apache/nuttx/pull/6409) mm: Add mm_uninitialize to release the resource 31690* [#6385](https://github.com/apache/nuttx/pull/6385) mm: Log name of the Heap to which the new region is being added 31691* [#5855](https://github.com/apache/nuttx/pull/5855) mm/memdump: dynamic turn on backtrace in heap when enable DEBUG_MM 31692* [#6749](https://github.com/apache/nuttx/pull/6749) mm/kasan: node header should updated from unpoisoning memory 31693* [#6697](https://github.com/apache/nuttx/pull/6697) mm/circbuf: support circbuf_is_init and circ_peekat 31694* [#6011](https://github.com/apache/nuttx/pull/6011) mm_initialize: malloc() return aligend pointer 31695* [#6750](https://github.com/apache/nuttx/pull/6750) mm_heap/kasan: poison free node after return back the heap list 31696* [#6305](https://github.com/apache/nuttx/pull/6305) Separate a few debug stuff from CONFIG_DEBUG_MM 31697* [#5982](https://github.com/apache/nuttx/pull/5982) openamp: Change the dependence from OPENAMP to RPTUN 31698* [#6762](https://github.com/apache/nuttx/pull/6762) merge openamp to newest version (2022.04.0) 31699 31700* [#6067](https://github.com/apache/nuttx/pull/6067) libc/string: Use Byte-Shift algorithm for very long needles 31701* [#6047](https://github.com/apache/nuttx/pull/6047) libc/lib_glob:use strlcpy instead of memcpy 31702* [#6044](https://github.com/apache/nuttx/pull/6044) libc/net:use strlcpy instead of strncpy 31703* [#5995](https://github.com/apache/nuttx/pull/5995) lib_lib_vsprintf/backtrace: fix the type issue 31704* [#6168](https://github.com/apache/nuttx/pull/6168) Implement preadv and pwritev 31705* [#5737](https://github.com/apache/nuttx/pull/5737) Add dn resolution function 31706* [#6210](https://github.com/apache/nuttx/pull/6210) Optimize bool type handling in c 31707* [#6029](https://github.com/apache/nuttx/pull/6029) libc:add strptime support 31708* [#6445](https://github.com/apache/nuttx/pull/6445) nuttx/lib: remove dependency on BUILD_FLAT for library memory allocation interface 31709* [#6389](https://github.com/apache/nuttx/pull/6389) libc/ipc: add ftok(3) support 31710* [#6384](https://github.com/apache/nuttx/pull/6384) libc/stdio: Generate the dummy atexit and on_exit 31711* [#6371](https://github.com/apache/nuttx/pull/6371) libc:xtensa:arch_memmove: fix warning 31712* [#6370](https://github.com/apache/nuttx/pull/6370) libc:Optimize the behavior of fwrite 31713* [#6360](https://github.com/apache/nuttx/pull/6360) libc/time: rearrange itimerspec struct elements 31714* [#6357](https://github.com/apache/nuttx/pull/6357) libc/stdio: Support 'e'(O_CLOEXEC) in lib_mode2oflags 31715* [#6248](https://github.com/apache/nuttx/pull/6248) libc: Rename lib_Exit lib__Exit 31716* [#5971](https://github.com/apache/nuttx/pull/5971) libc: Avoid the compiler generate code call self(memcpy/memmove/memset/memcmp) recursively 31717* [#6240](https://github.com/apache/nuttx/pull/6240) libs: Move aeabi_atexit from libxx/ to libc/machine/arm/ 31718* [#6229](https://github.com/apache/nuttx/pull/6229) libc/string: simplify strrchr 31719* [#6197](https://github.com/apache/nuttx/pull/6197) libc: Implement userland implementations of exit functions 31720* [#6196](https://github.com/apache/nuttx/pull/6196) libxx: Make HAVE_CXXINITIALIZE workable even HAVE_CXX isn't enabled 31721* [#6175](https://github.com/apache/nuttx/pull/6175) libc: Remove the redundant seek in writev 31722* [#6184](https://github.com/apache/nuttx/pull/6184) libc/assert: let CONFIG_NDEBUG default to !CONFIG_DEBUG_ASSERTIONS 31723* [#6169](https://github.com/apache/nuttx/pull/6169) libc/arch_atomic: add gcc legacy __sync buitins support and add FAR to pointers 31724* [#6140](https://github.com/apache/nuttx/pull/6140) libs/libc/string: unify implementation across the functions 31725* [#5948](https://github.com/apache/nuttx/pull/5948) libc/lib_localtime:fix deadcode 31726* [#5861](https://github.com/apache/nuttx/pull/5861) libs/libc/time: update description of strftime 31727* [#5837](https://github.com/apache/nuttx/pull/5837) libc: Implement getrandom on top of "/dev/[u]random" 31728* [#5806](https://github.com/apache/nuttx/pull/5806) libc: Change the return type of strerror from "const char *" to "char *" 31729* [#5798](https://github.com/apache/nuttx/pull/5798) libc/err: fix unpaired va_end() 31730* [#6139](https://github.com/apache/nuttx/pull/6139) libc/string: strcmp/strncmp cast unsigned char 31731* [#6130](https://github.com/apache/nuttx/pull/6130) libc: Fix typo error in execle 31732* [#6124](https://github.com/apache/nuttx/pull/6124) libc/fixedmatch: Avoid "divide by zero" error 31733* [#6066](https://github.com/apache/nuttx/pull/6066) libc/blockstream: add block out stream backend 31734* [#6087](https://github.com/apache/nuttx/pull/6087) libc: Don't duplicate string in chdir and lib_restoredir 31735* [#5950](https://github.com/apache/nuttx/pull/5950) libs/libc/lib_err.c:add va_end to vwarn 31736* [#5949](https://github.com/apache/nuttx/pull/5949) lib_chdir:change ret judgment method 31737* [#5976](https://github.com/apache/nuttx/pull/5976) modlib_bind.c: Restore "Relocation address out of range" checks 31738* [#5951](https://github.com/apache/nuttx/pull/5951) modlib/modlib_bind:fix unsigned_compare with zero 31739* [#5952](https://github.com/apache/nuttx/pull/5952) libc/netdb: Support the recursive lock 31740* [#6027](https://github.com/apache/nuttx/pull/6027) netdb/lib_dnsaddserver.c: Do not insert the duplicate DNS address 31741* [#6714](https://github.com/apache/nuttx/pull/6714) libc: Remove the unnecessary include from wchar and wctype 31742* [#6613](https://github.com/apache/nuttx/pull/6613) libc/stdio: Support "long long" type if CONFIG_HAVE_LONG_LONG is enabled 31743* [#6607](https://github.com/apache/nuttx/pull/6607) libc/stdio: Enable LIBC_FLOATINGPOINT by default if ARCH_FPU is enabled 31744* [#6606](https://github.com/apache/nuttx/pull/6606) libc/stdio: enable long long formating by CONFIG_HAVE_LONG_LONG 31745* [#6547](https://github.com/apache/nuttx/pull/6547) libc: Fix getrandom() bug: Didn't propagate read error 31746* [#6241](https://github.com/apache/nuttx/pull/6241) libs: risc-v: Add R_RISCV_JAL support to arch_elf.c 31747* [#6667](https://github.com/apache/nuttx/pull/6667) libs/libc/string: add memmem 31748* [#6666](https://github.com/apache/nuttx/pull/6666) libc/wchar: support wchar 31749* [#6652](https://github.com/apache/nuttx/pull/6652) libc/impure: Fix the inconsistence from the different toolchain 31750* [#6337](https://github.com/apache/nuttx/pull/6337) Refine the implementation of TLS 31751* [#6434](https://github.com/apache/nuttx/pull/6434) include/cxx: Remove all non standard c++ header files 31752* [#6108](https://github.com/apache/nuttx/pull/6108) assert: static_assert is not support in c standard C89,C99 31753* [#5851](https://github.com/apache/nuttx/pull/5851) libxx: Add CXX_RTTI for enabling RTTI support for C++ applications 31754* [#6791](https://github.com/apache/nuttx/pull/6791) Add Embedded Template Library (ETL) support 31755* [#6720](https://github.com/apache/nuttx/pull/6720) libs/libc: correct config name 31756* [#5890](https://github.com/apache/nuttx/pull/5890) rexec: fix free error in error handing 31757* [#6709](https://github.com/apache/nuttx/pull/6709) Imx6 adb 31758* [#6586](https://github.com/apache/nuttx/pull/6586) Sabre6quad netknsh 31759* [#6482](https://github.com/apache/nuttx/pull/6482) Use builtins for byteswapping 31760* [#6421](https://github.com/apache/nuttx/pull/6421) getrandom: use _NX_XXXX interface to remove cancelation point for kernel 31761 31762* [#6205](https://github.com/apache/nuttx/pull/6205) binfmt/libelf: Fix function description field 31763* [#6190](https://github.com/apache/nuttx/pull/6190) binfmt_execmodule: Use heap size getter for print 31764 31765# Major Changes to the Build System 31766 31767## Bug Fixes and Improvements 31768 31769* [#6015](https://github.com/apache/nuttx/pull/6015) configure.sh: Make top Make.defs symlink to board Make.defs instead 31770* [#6014](https://github.com/apache/nuttx/pull/6014) checkpatch.sh: add -m option to enable/disable Change-Id check 31771* [#6013](https://github.com/apache/nuttx/pull/6013) tools/mkdeps: Extend MAX_SHQUOTE to 3072 31772* [#6094](https://github.com/apache/nuttx/pull/6094) tools/cibuild.sh: Migrate risc-v toolchian from 8.3.0 to 10.2.0 31773* [#5836](https://github.com/apache/nuttx/pull/5836) tools:use dump log creat a gdbsever to debug 31774* [#6350](https://github.com/apache/nuttx/pull/6350) tools/gencromfs: add attribute to set minimum 4 bytes aignment for cromfs image data 31775* [#6520](https://github.com/apache/nuttx/pull/6520) tools/jlink-nuttx: Move the register index check to setget_reg 31776* [#5826](https://github.com/apache/nuttx/pull/5826) tools/jlink: Change the type of pid from uint16_t to uint32_t 31777* [#5808](https://github.com/apache/nuttx/pull/5808) tools/nxstyle: Order g_white_prefix by alphanum 31778* [#6128](https://github.com/apache/nuttx/pull/6128) tools:fix parsememdump.py match error 31779* [#6245](https://github.com/apache/nuttx/pull/6245) tools/mkallsyms.sh: Make it work with llvm 31780* [#6129](https://github.com/apache/nuttx/pull/6129) tools:minidumpserver.py support xtensa 31781* [#6132](https://github.com/apache/nuttx/pull/6132) compiler.h: optimization option is not supported before GCC 4.6 31782* [#6232](https://github.com/apache/nuttx/pull/6232) tools/nxstyle: Add the suffix white list 31783* [#6180](https://github.com/apache/nuttx/pull/6180) tools/testbuild.sh: Don't skip configure and distclean 31784 31785# Architectural Support 31786 31787## New Architecture Support 31788 31789* [#6179](https://github.com/apache/nuttx/pull/6179) tlsr82: first commit of telink tlsr82xx chip port 31790* [#6687](https://github.com/apache/nuttx/pull/6687) Add support for NXP S32K3XX MCU family and boards 31791* [#6375](https://github.com/apache/nuttx/pull/6375) stm32wl5: add new chip family 31792* [#6422](https://github.com/apache/nuttx/pull/6422) New stm32wb chip family 31793* [#6418](https://github.com/apache/nuttx/pull/6418) Eps32 Lilygo t5v2 BSP 31794* [#6478](https://github.com/apache/nuttx/pull/6478) arch: arm64: ARMv8-A support for NuttX 31795 31796## Bug Fixes and Improvements 31797 31798* [#6188](https://github.com/apache/nuttx/pull/6188) arch: Move -fstack-protector-all and -finstrument-functions from Make.defs to Toolchain.defs 31799* [#6200](https://github.com/apache/nuttx/pull/6200) arch: Add gcov related config for arm/risc-v/xtensa 31800* [#6063](https://github.com/apache/nuttx/pull/6063) arch/stack_color: correct the stack top of running task 31801* [#6056](https://github.com/apache/nuttx/pull/6056) arch/stack_color: correct the end address of stack color 31802* [#5966](https://github.com/apache/nuttx/pull/5966) arch:tcbinfo: update tcbinfo as xcpcontext update 31803* [#5865](https://github.com/apache/nuttx/pull/5865) arch: Add -fsanitize=kernel-address to ARCHCPUFLAGS if CONFIG_MM_KASAN=y 31804* [#5864](https://github.com/apache/nuttx/pull/5864) arch/Toolchain.defs: add wildcard for EXTRA_LIBS 31805* [#5920](https://github.com/apache/nuttx/pull/5920) ARCH_ADDRENV: Add guard against mis-configuration 31806* [#6105](https://github.com/apache/nuttx/pull/6105) arch/clang: add support for Clang LTO 31807* [#6089](https://github.com/apache/nuttx/pull/6089) arch: Move group_addrenv to common place 31808* [#6183](https://github.com/apache/nuttx/pull/6183) arch: Remvoe the error message when toolchain can't find 31809* [#6080](https://github.com/apache/nuttx/pull/6080) arch/ostest: remove CONFIG_TESTING_OSTEST_FPUSIZE & board level implement 31810* [#6086](https://github.com/apache/nuttx/pull/6086) Remove FAR from the arch and board files of ceva/mips/misoc/or1k/sim/sparc/x86_64/xtensa 31811* [#6778](https://github.com/apache/nuttx/pull/6778) arch: common: Fix up_check_tcbstack() for CONFIG_ARCH_ADDRENV=y 31812* [#6665](https://github.com/apache/nuttx/pull/6665) arch/stack: get correct stack remain and limit dump size when sp is not within stack 31813* [#6717](https://github.com/apache/nuttx/pull/6717) arch: Call board_reset before up_irq_save and spin_trylock 31814* [#6252](https://github.com/apache/nuttx/pull/6252) arch/addrenv: Change text write enable/disable to generic mprot 31815* [#6254](https://github.com/apache/nuttx/pull/6254) arch: Remove board/libboard$(LIBEXT) from the rerequest of export_startup 31816* [#6276](https://github.com/apache/nuttx/pull/6276) arch: Move "-nostartfiles -nodefaultlibs" from Make.defs to Toolchian.defs 31817* [#6351](https://github.com/apache/nuttx/pull/6351) arch: Define WCHAR_[MIN|MAX] in arch/include/limits.h 31818* [#6286](https://github.com/apache/nuttx/pull/6286) arch: inline up_interrupt_context() 31819* [#6284](https://github.com/apache/nuttx/pull/6284) arch/addrenv: Add missing FAR qualifier to addrenv_mprot 31820* [#6277](https://github.com/apache/nuttx/pull/6277) arch/i2c: Change xxx_i2c_tousecs to xxx_i2c_toticks 31821* [#6416](https://github.com/apache/nuttx/pull/6416) Fix CONFIG_ALLSYMS for arm, risc-v and xtensa after #5496 31822* [#6567](https://github.com/apache/nuttx/pull/6567) arch: Remove the inclusion of arch/irq.h from chip/irq.h 31823* [#6550](https://github.com/apache/nuttx/pull/6550) arch: Move up_getsp from arch.h to irq.h 31824* [#6452](https://github.com/apache/nuttx/pull/6452) arch/backtrace: correct the skip counter 31825* [#6581](https://github.com/apache/nuttx/pull/6581) arch: Correct the order of stack related information in assert 31826* [#5818](https://github.com/apache/nuttx/pull/5818) progmem: eliminate PROGMEM_ERASESTATE configuration option 31827* [#5828](https://github.com/apache/nuttx/pull/5828) Show assigned cpu in dump task 31828* [#6193](https://github.com/apache/nuttx/pull/6193) Elf loader: give temporary write access to user .text memory 31829* [#6176](https://github.com/apache/nuttx/pull/6176) UMM: Implement getter for address environment heap start vaddr 31830* [#6367](https://github.com/apache/nuttx/pull/6367) dump_task: also dump thread param when dump thread name 31831* [#6062](https://github.com/apache/nuttx/pull/6062) SAM3X HSMCI DMA Fixes 31832 31833* [#6059](https://github.com/apache/nuttx/pull/6059) arch/risc-v/riscv_misaligned: Correct sw source register 31834* [#6065](https://github.com/apache/nuttx/pull/6065) RISC-V: Support for mtimer in S-mode 31835* [#6054](https://github.com/apache/nuttx/pull/6054) riscv/riscv_schedulesigaction.c: Remove the duplicate state saving 31836* [#6051](https://github.com/apache/nuttx/pull/6051) arch/risc-v: Add missing DMB to mtimer / setmtimecmp 31837* [#6050](https://github.com/apache/nuttx/pull/6050) RISC-V: Move mhartid to own assembly macro+function 31838* [#6039](https://github.com/apache/nuttx/pull/6039) arch/riscv: Move toolchain config to arch/risc-v/Kconfig like xtensa 31839* [#6034](https://github.com/apache/nuttx/pull/6034) arch/risc-v: Apply common mtime driver to mtime based chps 31840* [#6022](https://github.com/apache/nuttx/pull/6022) arch/risc-v: Apply misaligned access handler for k210/bl602 31841* [#6006](https://github.com/apache/nuttx/pull/6006) riscv/ESP32C3: Use the common exception handler 31842* [#6468](https://github.com/apache/nuttx/pull/6468) Add I2C_M_NOSTART and I2C_M_NOSTOP support in esp32c3_i2c 31843* [#6583](https://github.com/apache/nuttx/pull/6583) risc-v/esp32c3: Add the rest of the reset causes 31844* [#6600](https://github.com/apache/nuttx/pull/6600) ESP32-C3: General improvements to Protected Mode infra 31845* [#6487](https://github.com/apache/nuttx/pull/6487) risc-v/esp32c3: Implement up_perf_xxx API 31846* [#6538](https://github.com/apache/nuttx/pull/6538) ESP32-S3: Add driver for I2C peripheral in Master mode 31847* [#6552](https://github.com/apache/nuttx/pull/6552) esp32s3: Fix IOMUX function number for SPI 31848* [#6522](https://github.com/apache/nuttx/pull/6522) Added configuration files for using BMP280 with ESP32-DevkitC 31849* [#6549](https://github.com/apache/nuttx/pull/6549) Esp32 lilygo tty t5v2 bugfix 31850* [#6540](https://github.com/apache/nuttx/pull/6540) ESP32-S2: Improvements to the GPIO driver 31851* [#6539](https://github.com/apache/nuttx/pull/6539) ESP32-S2: Add driver for I2C peripheral in Master mode 31852* [#6493](https://github.com/apache/nuttx/pull/6493) stm32xx: Fix RTC drift when using HSE 31853* [#6492](https://github.com/apache/nuttx/pull/6492) Stm32wl55JC SPI driver 31854* [#6579](https://github.com/apache/nuttx/pull/6579) Added ADC support to RP2040 31855* [#6499](https://github.com/apache/nuttx/pull/6499) Added PWM for rp2040 31856* [#6502](https://github.com/apache/nuttx/pull/6502) risc-v: Move common memory map to its own file from riscv_internal 31857* [#6603](https://github.com/apache/nuttx/pull/6603) ESP32: Add support for Protected Mode 31858* [#6516](https://github.com/apache/nuttx/pull/6516) arch/stm32_capture fix SMC register offset address and completion slave mode selection 31859* [#6565](https://github.com/apache/nuttx/pull/6565) arch/risc-v: Move __XSTR, FLOAD/FSTORE and REGLOAD/REGSTORE to the right place 31860* [#6020](https://github.com/apache/nuttx/pull/6020) arch/riscv: Add mtimer driver 31861* [#6008](https://github.com/apache/nuttx/pull/6008) arch/risc-v: Attach exception handler in common place 31862* [#5998](https://github.com/apache/nuttx/pull/5998) arch/riscv: Minor style change and text correction 31863* [#6003](https://github.com/apache/nuttx/pull/6003) esp32c3: Simplify irq dispatch logic 31864* [#5989](https://github.com/apache/nuttx/pull/5989) arch/risc-v: Replace riscv_fault with riscv_exception 31865* [#5970](https://github.com/apache/nuttx/pull/5970) b-u585i-iot02a:nsh: Drop TrustedFirmware-M dependency 31866* [#5974](https://github.com/apache/nuttx/pull/5974) arch/risc-v: use STACK_FRAME_SIZE for in S-mode syscall asm 31867* [#5980](https://github.com/apache/nuttx/pull/5980) RISC-V: Fix file name of riscv_dispatch_syscall 31868* [#5985](https://github.com/apache/nuttx/pull/5985) RISC-V: Combine 3 variables that depend on CPU amount into one 31869* [#5981](https://github.com/apache/nuttx/pull/5981) RISC-V: Fix usage of static_assert in riscv_percpu.c 31870* [#5983](https://github.com/apache/nuttx/pull/5983) arch/risc-v: Remove the unnecessary inclusion of board header files 31871* [#5754](https://github.com/apache/nuttx/pull/5754) arch/risc-v: Correct stack coloration in riscv_cpu_boot 31872* [#5758](https://github.com/apache/nuttx/pull/5758) RISC-V: Prepare CONFIG_BUILD_KERNEL part 1 31873* [#5760](https://github.com/apache/nuttx/pull/5760) ESP32-S3: Fix UART IRQ setup hardcoded to CPU 0 31874* [#5766](https://github.com/apache/nuttx/pull/5766) arch/risc-v: Rework riscv_get_newintctx 31875* [#5773](https://github.com/apache/nuttx/pull/5773) risc-v/esp32c3: Remove deprecated option for disabling atomics support 31876* [#5775](https://github.com/apache/nuttx/pull/5775) arch/risc-v: Merge riscv_getnewintctx into common 31877* [#5781](https://github.com/apache/nuttx/pull/5781) phy62xx_exception: using armv6-m exception_common code 31878* [#5782](https://github.com/apache/nuttx/pull/5782) RISC-V: Implement option to run NuttX in supervisor mode (S-mode) 31879* [#5809](https://github.com/apache/nuttx/pull/5809) fixed mpu9250 not work on i2c bus issue. 31880* [#5765](https://github.com/apache/nuttx/pull/5765) esp32 efuse build fix 31881* [#5772](https://github.com/apache/nuttx/pull/5772) arch/Kconfig: Don't depend on Xtensa for the SUPPRESS_CLOCK_CONFIG option 31882* [#5825](https://github.com/apache/nuttx/pull/5825) ESP32-S3: Enable GPIO read/write operations and interrupts support 31883* [#5827](https://github.com/apache/nuttx/pull/5827) Add SPIRAM to ESP32-S2 31884* [#5829](https://github.com/apache/nuttx/pull/5829) RISC-V: Add/fix implementation for arch_elf.c 31885* [#5830](https://github.com/apache/nuttx/pull/5830) risc-v/qemu-rv: Restore FPU context after context switch 31886* [#5831](https://github.com/apache/nuttx/pull/5831) RISC-V: Add kernel stack 31887* [#5833](https://github.com/apache/nuttx/pull/5833) ESP32-S2: Remove unused and unsupported configs from Kconfig 31888* [#5834](https://github.com/apache/nuttx/pull/5834) ESP32-S2: Initialize instruction cache on startup 31889* [#5878](https://github.com/apache/nuttx/pull/5878) arch/risc-v: Use riscv_fpuconfig to enable FPU 31890* [#5898](https://github.com/apache/nuttx/pull/5898) riscv/bl602: Implement SPI Cmd/Data 31891* [#5957](https://github.com/apache/nuttx/pull/5957) risc-v/esp32c3: Fix regression on IRQ handling for ECALL instruction 31892* [#5905](https://github.com/apache/nuttx/pull/5905) arch/risc-v: Store/Restore FPU register in exception_common 31893* [#5795](https://github.com/apache/nuttx/pull/5795) ESP32-S3: Clean up and improve GPIO driver interface 31894* [#6604](https://github.com/apache/nuttx/pull/6604) esp32s3: Add DMA support 31895* [#5838](https://github.com/apache/nuttx/pull/5838) esp32/Make.defs: Organise common arch files and chip files appropriately 31896* [#5868](https://github.com/apache/nuttx/pull/5868) arch/risc-v: Move fpu [re]store to common place 31897* [#5869](https://github.com/apache/nuttx/pull/5869) riscv/bl602: Enable SPI Master in SPI Poll Send 31898* [#5907](https://github.com/apache/nuttx/pull/5907) riscv/bl602: Remove check for LCD driver 31899* [#5908](https://github.com/apache/nuttx/pull/5908) riscv/esp32c3: Remove check for LCD driver 31900* [#5746](https://github.com/apache/nuttx/pull/5746) RISCV: Fix nasty bug in PMP region test 31901* [#5842](https://github.com/apache/nuttx/pull/5842) arch/risc-v: improve style consistency accross chip variants 31902* [#5913](https://github.com/apache/nuttx/pull/5913) arch/risc-v: Move group_addrenv to correct place 31903* [#5922](https://github.com/apache/nuttx/pull/5922) arch/risc-v: get wider visibility for arch instruction macros 31904* [#5940](https://github.com/apache/nuttx/pull/5940) arch/risc-v: Add handler for misaligned load/store 31905* [#5917](https://github.com/apache/nuttx/pull/5917) arch/risc-v: move REGLOAD/REGSTORE macro to riscv_internal.h 31906* [#6217](https://github.com/apache/nuttx/pull/6217) riscv/pmp: fix bug: PMP_CFG_FLAG_MASK makes pmp cfg fail 31907* [#6192](https://github.com/apache/nuttx/pull/6192) Riscv hostfs 31908* [#6235](https://github.com/apache/nuttx/pull/6235) RISC-V: add C++ support to crt0 31909* [#5731](https://github.com/apache/nuttx/pull/5731) arch/risc-v: Improve speed of context switch 31910* [#6255](https://github.com/apache/nuttx/pull/6255) arch/riscv: Remove & ~1 before assign signal_handler to REG_EPC 31911* [#6237](https://github.com/apache/nuttx/pull/6237) arch: risc-v: Enable FPU for qemu-rv only if EXPERIMENTAL=y 31912* [#6242](https://github.com/apache/nuttx/pull/6242) rv-virt:knsh64 31913* [#6690](https://github.com/apache/nuttx/pull/6690) Ability to use newer pico-sdk with RP2040 builds (Issue #4919) 31914* [#6249](https://github.com/apache/nuttx/pull/6249) risc-v/mpfs: introduce IHC driver 31915* [#6776](https://github.com/apache/nuttx/pull/6776) risc-v/mpfs: usb: configure fifos properly 31916* [#6077](https://github.com/apache/nuttx/pull/6077) arch/risc-v: Use fs status definition from csr.h 31917* [#6095](https://github.com/apache/nuttx/pull/6095) arch/risc-v: Remove FAR from chip and board folder 31918* [#6101](https://github.com/apache/nuttx/pull/6101) arch/risc-v: Change riscv_savefpu/riscv_loadfpu to macro 31919* [#6102](https://github.com/apache/nuttx/pull/6102) ARM/RISC-V: Fix xxx_assert from IRQ context 31920* [#6115](https://github.com/apache/nuttx/pull/6115) arch/risc-v: Don't clear reserved bits in fcsr in riscv_fpuconfig 31921* [#6116](https://github.com/apache/nuttx/pull/6116) arch/risc-v: Enable FPU for K210 31922* [#6117](https://github.com/apache/nuttx/pull/6117) arch/risc-v/riscv_misaligned: Implement float load/store support 31923* [#6125](https://github.com/apache/nuttx/pull/6125) arch: risc-v: Do not enable FPU for K210 with QEMU 31924* [#6126](https://github.com/apache/nuttx/pull/6126) arch/risc-v: add support for GCC LTO 31925* [#6156](https://github.com/apache/nuttx/pull/6156) riscv/Makefile: Delete old target used for debugging 31926* [#6162](https://github.com/apache/nuttx/pull/6162) RISC-V PMP: Restrict Fence instruction for chips that support S-mode 31927* [#6191](https://github.com/apache/nuttx/pull/6191) RISC-V: Fix crt0 file compilation 31928* [#6194](https://github.com/apache/nuttx/pull/6194) RISC-V: Fix bug in riscv_addrenv.c 31929* [#6052](https://github.com/apache/nuttx/pull/6052) arch/riscv: Jump instead call riscv_dispatch_syscall 31930* [#6131](https://github.com/apache/nuttx/pull/6131) RISC-V: Add implementation for vfork 31931* [#6134](https://github.com/apache/nuttx/pull/6134) RISC-V: Fix system crash when FPU is in use 31932* [#6145](https://github.com/apache/nuttx/pull/6145) RISC-V: Add syscall support for vfork 31933* [#6151](https://github.com/apache/nuttx/pull/6151) RISC-V: workaround for the RV64 SoC which does not has mem mapped MTI... 31934* [#6069](https://github.com/apache/nuttx/pull/6069) RISC-V: Add support for CONFIG_BUILD_KERNEL 31935* [#6005](https://github.com/apache/nuttx/pull/6005) ESP32C3 TWAI (CAN) controller support. 31936* [#5740](https://github.com/apache/nuttx/pull/5740) Add ethernet support for risc-v/MPFS 31937* [#5749](https://github.com/apache/nuttx/pull/5749) risc-v/mpfs: usb: fix ep0 stall/resume and rx reads 31938* [#5783](https://github.com/apache/nuttx/pull/5783) risc-v/mpfs: usb: fix ep0 read done 31939* [#5881](https://github.com/apache/nuttx/pull/5881) MPFS: Fix issue with external interrupt detection 31940* [#5875](https://github.com/apache/nuttx/pull/5875) MPFS: Fix error in flat build linker script 31941* [#5912](https://github.com/apache/nuttx/pull/5912) arch/risc-v/mpfs: Remove duplicated riscv_restorefpu 31942* [#6060](https://github.com/apache/nuttx/pull/6060) MPFS: Fix timer and exception/fault handling 31943* [#6070](https://github.com/apache/nuttx/pull/6070) MPFS: Set correct interrupt per mode (M-/S-mode) for mtimer 31944* [#5993](https://github.com/apache/nuttx/pull/5993) MPFS: Prepare support for S-mode 31945* [#5780](https://github.com/apache/nuttx/pull/5780) MPFS: Add board_memorymap.h 31946* [#6160](https://github.com/apache/nuttx/pull/6160) MPFS: Remove # CONFIG_ARCH_FPU is not set from defconfigs 31947* [#6177](https://github.com/apache/nuttx/pull/6177) MPFS: Add support for CONFIG_BUILD_KERNEL, adds icicle:knsh 31948* [#6303](https://github.com/apache/nuttx/pull/6303) MPFS: Implement S-mode head and start function 31949* [#6304](https://github.com/apache/nuttx/pull/6304) risc-v/mpfs: amend OpenSBI to utilize IHC 31950* [#6260](https://github.com/apache/nuttx/pull/6260) risc-v/mpfs: apply IHC review fixes 31951* [#6396](https://github.com/apache/nuttx/pull/6396) Mpfs fix ddr training failures 31952* [#6395](https://github.com/apache/nuttx/pull/6395) risc-v/mpfs: composite usb driver 31953* [#6261](https://github.com/apache/nuttx/pull/6261) risc-v/mpfs: IHC: clarify semaphore usage 31954* [#6285](https://github.com/apache/nuttx/pull/6285) risc-v/mpfs: IHC: allow hart configuration 31955* [#6437](https://github.com/apache/nuttx/pull/6437) risc-v/mpfs: update clock configuration parameters 31956* [#6405](https://github.com/apache/nuttx/pull/6405) risc-v/mpfs: Move the entry point to .start section 31957* [#6496](https://github.com/apache/nuttx/pull/6496) risc-v/mpfs: emmcsd: fix two issues 31958* [#6326](https://github.com/apache/nuttx/pull/6326) mpfs/knsh: Add C++ support 31959* [#6450](https://github.com/apache/nuttx/pull/6450) arch/riscv/mpfs: Add a config flag to select SD mux state 31960* [#6503](https://github.com/apache/nuttx/pull/6503) arch/risc-v/src/mpfs: Add mpfs_gpiosetevent and gpio irq handling fun… 31961* [#6530](https://github.com/apache/nuttx/pull/6530) mpfs: Fix IHC memory locations to native width type 31962* [#6490](https://github.com/apache/nuttx/pull/6490) mpfs: Allow mapping of RAM/ROM regions from different memory areas 31963* [#6602](https://github.com/apache/nuttx/pull/6602) risc-v/mpfs: usb: fix illegal reads 31964* [#6535](https://github.com/apache/nuttx/pull/6535) risc-v/mpfs: ihc: don't start rptun automatically 31965* [#6361](https://github.com/apache/nuttx/pull/6361) arch/risc-v: re-add missing riscv_udelay source 31966* [#6343](https://github.com/apache/nuttx/pull/6343) Some cleanup for risc-v 31967* [#6342](https://github.com/apache/nuttx/pull/6342) arch/risc-v: Unify common source include 31968* [#6292](https://github.com/apache/nuttx/pull/6292) risc-v/opensbi: Generalize the SBI variable handling in makefile 31969* [#6291](https://github.com/apache/nuttx/pull/6291) ESP32-C3: Add support for Protected Mode 31970* [#6400](https://github.com/apache/nuttx/pull/6400) ESP32-C3: Disable access to invalid memory regions using MPU 31971* [#6336](https://github.com/apache/nuttx/pull/6336) esp32*: Disable CONFIG_RAW_BINARY and make Config.mk update nuttx.manifest for nuttx.bin 31972* [#6325](https://github.com/apache/nuttx/pull/6325) esp32:wamr_wasi_debug: Remove CONFIG_SCHED_ONEXIT 31973* [#6324](https://github.com/apache/nuttx/pull/6324) Fix stm32 pwm HAVE_ADVTIM 31974* [#6323](https://github.com/apache/nuttx/pull/6323) esp32: Add an example config for wamr and littlefs 31975* [#6322](https://github.com/apache/nuttx/pull/6322) ESP32/ESP32-C3: Fix leak of semaphores created by Wi-Fi kernel thread 31976* [#6317](https://github.com/apache/nuttx/pull/6317) esp32_cpuidlestack.c: Remove unnecessary code. 31977* [#6313](https://github.com/apache/nuttx/pull/6313) arch: risc-v: Fix crt0.c if CONFIG_HAVE_CXX is not set 31978* [#6300](https://github.com/apache/nuttx/pull/6300) risc-v/vfork: FPU was not saved correctly 31979* [#6299](https://github.com/apache/nuttx/pull/6299) risc-v/vfork: Fix saved register set and add FPU registers 31980* [#6415](https://github.com/apache/nuttx/pull/6415) arch: k210: Add a workaround for clock stabilization 31981* [#6688](https://github.com/apache/nuttx/pull/6688) OpenSBI: Add configurable support for domain init 31982* [#6285](https://github.com/apache/nuttx/pull/6285) risc-v/mpfs: IHC: allow hart configuration 31983* [#6645](https://github.com/apache/nuttx/pull/6645) arch/esp32: Introduce the ESP32_RTC option 31984 31985* [#5946](https://github.com/apache/nuttx/pull/5946) arch/xtensa: Add xtensa_tcbinfo struct that contains helpful offsets 31986* [#5877](https://github.com/apache/nuttx/pull/5877) xtensa: add xtensa arch oneshot ops 31987* [#5876](https://github.com/apache/nuttx/pull/5876) xtensa: add xtensa_spill_window declaration 31988* [#5820](https://github.com/apache/nuttx/pull/5820) xtensa/esp32(s2)_user.c: Use macros defined in xtens_corebits.h 31989* [#5771](https://github.com/apache/nuttx/pull/5771) arch/xtensa: Don't always reset the APP CPU on startup 31990* [#5979](https://github.com/apache/nuttx/pull/5979) arch/xtensa: Build the xtensa_tcbinfo.c file for S2 and S3 31991* [#5987](https://github.com/apache/nuttx/pull/5987) xtensa/esp32: Add support to TWAI/CANBus 31992* [#5941](https://github.com/apache/nuttx/pull/5941) arch/xtensa: add syscall note support in the flat build 31993* [#6167](https://github.com/apache/nuttx/pull/6167) arch/xtensa: Replace the xcp context with stack context to improve context switching 31994* [#6148](https://github.com/apache/nuttx/pull/6148) arch/xtensa: Refactor assembly macros 31995* [#6147](https://github.com/apache/nuttx/pull/6147) arch/xtensa: Simply use xtensa_createstack for CPU1 idle task. 31996* [#6136](https://github.com/apache/nuttx/pull/6136) xtensa: Fix backtrace on exceptions 31997* [#6122](https://github.com/apache/nuttx/pull/6122) arch/xtensa: Color the other CPUs task when they are created 31998* [#6111](https://github.com/apache/nuttx/pull/6111) arch/xtensa: Use syscall interface for xtensa_save/restore_context 31999* [#6109](https://github.com/apache/nuttx/pull/6109) arch/sparc,xtensa: Control output by $(Q) as other arch 32000* [#6222](https://github.com/apache/nuttx/pull/6222) xtensa: move fpu register to XCPTCONTEXT_REGS 32001* [#6231](https://github.com/apache/nuttx/pull/6231) xtensa_sigtramp.S: Remove unnecessary entry instruction 32002* [#6203](https://github.com/apache/nuttx/pull/6203) xtensa/xtensa_coproc.S: Use the first allocated memory to save A0 32003* [#5790](https://github.com/apache/nuttx/pull/5790) xtensa_coporc: Adjust stack frame for C callable coprocessor functions 32004* [#6258](https://github.com/apache/nuttx/pull/6258) xtensa: Fix argument passing for sys_call5 and sys_call6 functions 32005* [#6269](https://github.com/apache/nuttx/pull/6269) xtensa: use CONFIG_ARCH_FPU macro for coprocossor and add up_fpucmp 32006* [#6270](https://github.com/apache/nuttx/pull/6270) xtensa: Implement syscalls required for Protected Mode 32007* [#6278](https://github.com/apache/nuttx/pull/6278) xtensa.h: Remove old prototype 32008* [#6293](https://github.com/apache/nuttx/pull/6293) Xtensa: Add missing input operand on sys_call6 inline ASM 32009* [#6349](https://github.com/apache/nuttx/pull/6349) arch/xtensa: Remove the assembly signal trampoline 32010* [#6312](https://github.com/apache/nuttx/pull/6312) xtensa/esp32s3: Add basic support to SPI 32011* [#6372](https://github.com/apache/nuttx/pull/6372) arch/xtensa: Initialize the internal heap early with the rest of custom heaps 32012* [#6352](https://github.com/apache/nuttx/pull/6352) esp32-devkitc:wamr_wasi_debug: pin WAMR version 32013* [#6314](https://github.com/apache/nuttx/pull/6314) xtensa: esp32: enable cp processor of app core 32014* [#6302](https://github.com/apache/nuttx/pull/6302) xtensa: coproc: modify coproc_save/restore to macro 32015* [#6294](https://github.com/apache/nuttx/pull/6294) xtensa: add perf counter 32016* [#6380](https://github.com/apache/nuttx/pull/6380) arch/xtensa/xtensa_coproc.S: Fix the condition to save the coprocessors state 32017* [#6425](https://github.com/apache/nuttx/pull/6425) arch/xtensa: Don't build xtensa_coproc.S 32018* [#6443](https://github.com/apache/nuttx/pull/6443) xtensa: Remove old references to co-processors 32019* [#6440](https://github.com/apache/nuttx/pull/6440) arch/xtensa: Refactor assembly code 32020* [#6436](https://github.com/apache/nuttx/pull/6436) xtensa/esp32_rtc_lowerhalf.c: Initialize ret variable 32021* [#6532](https://github.com/apache/nuttx/pull/6532) Remove '-g' LDFLAG 32022* [#6573](https://github.com/apache/nuttx/pull/6573) xtensa: Unify common options within a single Make.defs 32023 32024* [#6390](https://github.com/apache/nuttx/pull/6390) arch/sparc/bm3803: fix the using of uart1 and uart2 32025* [#6327](https://github.com/apache/nuttx/pull/6327) arch/sparc: Remove FILE dump code from _up_dumponexit 32026 32027* [#6233](https://github.com/apache/nuttx/pull/6233) Tiva qemu 32028* [#5151](https://github.com/apache/nuttx/pull/5151) Tiva CAN driver 32029* [#6244](https://github.com/apache/nuttx/pull/6244) Fix broken tiva_gpioirqclear 32030* [#6548](https://github.com/apache/nuttx/pull/6548) tiva: Add UART CTS/RTS support 32031 32032* [#5815](https://github.com/apache/nuttx/pull/5815) defconfig: add Lua configs for sim and teensy-4.x 32033 32034* [#6765](https://github.com/apache/nuttx/pull/6765) arm/backtrace: use sp unwind if FRAME_POINTER is enabled on thumb mode 32035* [#6208](https://github.com/apache/nuttx/pull/6208) arm: Refine the common Make.defs 32036* [#6309](https://github.com/apache/nuttx/pull/6309) Armv6-m LTO fix 32037* [#6071](https://github.com/apache/nuttx/pull/6071) arm/rtl8720c: Remove up_getsp which is already implemented in arch/arm/arch.h 32038* [#6072](https://github.com/apache/nuttx/pull/6072) arm/armv7-[a|r]: move fpu save/restore to assembly handler 32039* [#6048](https://github.com/apache/nuttx/pull/6048) arm/armv8-m: indicating no low-overhead-loop predication by default 32040* [#6042](https://github.com/apache/nuttx/pull/6042) arch/arm: Move FPU initialization to common place 32041* [#6001](https://github.com/apache/nuttx/pull/6001) arm/armv[7|8]-m: skip the fpu save/restore if stack frame is integer-only 32042* [#5752](https://github.com/apache/nuttx/pull/5752) arch: cxd56xx: Fix critical section in serial transmission 32043* [#5761](https://github.com/apache/nuttx/pull/5761) arch/arm: Remove the code copy register from xcpt to stack 32044* [#5774](https://github.com/apache/nuttx/pull/5774) arch/arm: set the SP to stack top 32045* [#5824](https://github.com/apache/nuttx/pull/5824) arch/arm/src/stm32l4: peripheral voltage monitor support for vddio2 32046* [#5863](https://github.com/apache/nuttx/pull/5863) arch/arm: Change arm_arch.h to arm_internal.h in arm_perf.c 32047* [#5870](https://github.com/apache/nuttx/pull/5870) arch/armv7-a: Fix a typo in Toolchain.defs 32048* [#5845](https://github.com/apache/nuttx/pull/5845) armv8-m: make the securefault handled by non-securefult 32049* [#5850](https://github.com/apache/nuttx/pull/5850) armv7-m/armv8-m: move up_pref* api to common place 32050* [#5745](https://github.com/apache/nuttx/pull/5745) arch/arm/samv7/sam_tc: implement timer driver support 32051* [#5896](https://github.com/apache/nuttx/pull/5896) arm/cortex-[a|r]: IRQ Switch return should with shadow SPSR 32052* [#5897](https://github.com/apache/nuttx/pull/5897) ESP32{S2/S3/C3}: Enable support for C++ applications 32053* [#5918](https://github.com/apache/nuttx/pull/5918) arm/chip: add backtrace support for all chips that support thumb instruction set 32054* [#6079](https://github.com/apache/nuttx/pull/6079) arm/arch: using __builtin_frame_address(0) implement up_getsp() 32055* [#6076](https://github.com/apache/nuttx/pull/6076) arch/armv[7|8]m: enhance the clang support 32056* [#6073](https://github.com/apache/nuttx/pull/6073) arch/arm: Remove all lazy fpu related code 32057* [#6057](https://github.com/apache/nuttx/pull/6057) arch/stm32h7: Add SocketCAN FDCAN driver 32058* [#6091](https://github.com/apache/nuttx/pull/6091) arch/arm: Move arm_signal_dispatch.c to common folder 32059* [#6165](https://github.com/apache/nuttx/pull/6165) arch/arm/Make.defs: unify common source include 32060* [#6123](https://github.com/apache/nuttx/pull/6123) arch/arm: add support for GCC LTO 32061* [#6114](https://github.com/apache/nuttx/pull/6114) arm/armv[7|8]m: compare of hardware fp registers should skip REG_FP_RESERVED 32062* [#6107](https://github.com/apache/nuttx/pull/6107) armv7/r:cp15_cache_all: fix error in LineSize 'r5' mask 32063* [#6099](https://github.com/apache/nuttx/pull/6099) arch/armv7-[a|r]: correct the handing of group env switch 32064* [#6097](https://github.com/apache/nuttx/pull/6097) arch/armv[7|8]-m: Unify the toolchain definition of eabi/clang/iar for linux and windows 32065* [#6096](https://github.com/apache/nuttx/pull/6096) arch/arm: Remove unneeded group_addrenv call which handled by arm_doirq 32066* [#6093](https://github.com/apache/nuttx/pull/6093) arch/arm: Remove FAR and CODE from common/ and arm*/ folder 32067* [#6092](https://github.com/apache/nuttx/pull/6092) arch/arm: Remove FAR and CODE from chip and board folder 32068* [#6198](https://github.com/apache/nuttx/pull/6198) armv7-a: smp: fix stack coloration 32069* [#6185](https://github.com/apache/nuttx/pull/6185) arm/cxd56xx/lc823450: replace arch testset to board implement 32070* [#6178](https://github.com/apache/nuttx/pull/6178) armv7-a/r: use cps instruction to change cpu mode 32071* [#6163](https://github.com/apache/nuttx/pull/6163) arm/arch_setjmp.S: armv6m support setjmp, longjmp 32072* [#6103](https://github.com/apache/nuttx/pull/6103) arm: Remove or merge assembly code as much as possible 32073* [#6214](https://github.com/apache/nuttx/pull/6214) armv7-a: smp: allocate page table for each cpu 32074* [#6213](https://github.com/apache/nuttx/pull/6213) arm/cortex-m/toolchain: try print runtime library only in clang 32075* [#6211](https://github.com/apache/nuttx/pull/6211) armv7-a: Inner Shareable TLB maintenance operations 32076* [#6225](https://github.com/apache/nuttx/pull/6225) arm/tlsr82: pwm driver optimize and add pulse count support 32077* [#6259](https://github.com/apache/nuttx/pull/6259) arm/tlsr82: add hardware aes encrypt and decrypt support 32078* [#6354](https://github.com/apache/nuttx/pull/6354) arm/tlsr82: support flash protection and flash voltage calibration 32079* [#6311](https://github.com/apache/nuttx/pull/6311) arm/tlsr82: optimize the adc driver 32080* [#6424](https://github.com/apache/nuttx/pull/6424) arm/tlsr82: bugfix, tlsr82_flash_ioctl() return wrong value 32081* [#6379](https://github.com/apache/nuttx/pull/6379) arm/tlsr82: gpio driver bug fix and optimize 32082* [#6334](https://github.com/apache/nuttx/pull/6334) arm/tlsr82: ble performance optimize and problems solve 32083* [#6238](https://github.com/apache/nuttx/pull/6238) tlsr82/tc32: optimize the irq process 32084* [#6332](https://github.com/apache/nuttx/pull/6332) arch: imx6: add support kernel build and smp 32085* [#6429](https://github.com/apache/nuttx/pull/6429) arch: imx6: Enable imx_idle.c to reduce CPU load 32086* [#6234](https://github.com/apache/nuttx/pull/6234) arm/tc32/Make.defs: filter-out arm_udelay.c 32087* [#6736](https://github.com/apache/nuttx/pull/6736) arm/allocateheap: fix multiple definition of 'up_allocate_heap' 32088* [#6659](https://github.com/apache/nuttx/pull/6659) arch/arm/samv7: fix SPI 16-bit transactions in DMA mode 32089* [#6676](https://github.com/apache/nuttx/pull/6676) arm_secure_irq: fix NVIC_IRQ_DBGMONITOR un-secure set failed 32090* [#5645](https://github.com/apache/nuttx/pull/5645) arch/arm: optimize context switch speed 32091* [#5662](https://github.com/apache/nuttx/pull/5662) arch/arm: Move ARCHCPUFLAGS to Toolchain.defs 32092* [#6228](https://github.com/apache/nuttx/pull/6228) arch/arm: Fix target 'arm_fpuconfig.o' given more than once in the same rule 32093* [#6201](https://github.com/apache/nuttx/pull/6201) Restore lost flash define for stm32 32094* [#3488](https://github.com/apache/nuttx/pull/3488) stm32h7: Adds tickless support 32095* [#6772](https://github.com/apache/nuttx/pull/6772) arch/stm32f7/stm32_tim.c: include the missing RCC header 32096* [#6771](https://github.com/apache/nuttx/pull/6771) arch/stm32xx/Kconfig: simplify and unify PWM options 32097* [#6757](https://github.com/apache/nuttx/pull/6757) STM32L4 DAC: Implements basic support for low level operations 32098* [#6741](https://github.com/apache/nuttx/pull/6741) stm32wb/mbox: fixing TX buffer queue 32099* [#6732](https://github.com/apache/nuttx/pull/6732) Multiple stm32wl5jc flash usage improvements 32100* [#6775](https://github.com/apache/nuttx/pull/6775) arch/stm32/stm32_foc.c: fix some ADC and PWM ifdefs 32101* [#6769](https://github.com/apache/nuttx/pull/6769) arch/stm32f0l0g0: add SPI3 support (STM32G0B0 chips) 32102* [#6218](https://github.com/apache/nuttx/pull/6218) STM32F746G-Disco, Audiosupport, Bugfix 32103* [#6715](https://github.com/apache/nuttx/pull/6715) stm32wb: adding BLE support 32104* [#6729](https://github.com/apache/nuttx/pull/6729) stm32f7: add showprogress in __start 32105* [#6078](https://github.com/apache/nuttx/pull/6078) Stm32f746 audio 32106* [#6413](https://github.com/apache/nuttx/pull/6413) stm32wl5: add gpio exti support 32107* [#6426](https://github.com/apache/nuttx/pull/6426) stm32wl5: add flash progmem driver support 32108* [#6788](https://github.com/apache/nuttx/pull/6788) LPC17xx_40xx PWM multichannel support 32109* [#6758](https://github.com/apache/nuttx/pull/6758) LPC17_40 CAN driver SocketCAN support 32110* [#6267](https://github.com/apache/nuttx/pull/6267) arch/arm/samv7/sam_afec: fix ADC pin for channel 9 32111* [#6339](https://github.com/apache/nuttx/pull/6339) sama5d2: Fix sama5d2 Kconfig errors and add missing pin definitions 32112* [#6268](https://github.com/apache/nuttx/pull/6268) arm/cortex-[a|r]: add performance counter implement based on PMU 32113* [#6298](https://github.com/apache/nuttx/pull/6298) arch/arm/samv7: Fix PWM operation for single channel mode 32114* [#6265](https://github.com/apache/nuttx/pull/6265) Fixes to imxRT and SAM E70 PWM drivers 32115* [#6572](https://github.com/apache/nuttx/pull/6572) arch/arm/Kconfig: Add description for ARM_THUMB to make it configurable 32116* [#6508](https://github.com/apache/nuttx/pull/6508) sama5: add config SAMA5_SYSTEMRESET in arch/arm/src/sama5/Kconfig 32117* [#6534](https://github.com/apache/nuttx/pull/6534) arch/arm/armv7-m: Fix error link argument for compiler-rt 32118* [#6497](https://github.com/apache/nuttx/pull/6497) samv7:mcan Fix can buffer calculation. Add two words to every msg buffer 32119* [#6614](https://github.com/apache/nuttx/pull/6614) samv7: add support for RX DMA and RS-485 mode to serial driver 32120* [#6599](https://github.com/apache/nuttx/pull/6599) arch/arm/samv7: EMAC bugfixes 32121* [#6306](https://github.com/apache/nuttx/pull/6306) Add up_textheap_heapmember 32122* [#6204](https://github.com/apache/nuttx/pull/6204) MCAN_INT_ACKE must be on the list of MCAN_TXERR_INTS to be properly h… 32123* [#6121](https://github.com/apache/nuttx/pull/6121) compile/opt: add config DEBUG_LINK_MAP 32124* [#6614](https://github.com/apache/nuttx/pull/6614) samv7: add support for RX DMA and RS-485 mode to serial driver 32125* [#6615](https://github.com/apache/nuttx/pull/6615) Add I2C slave mode for RP2040 32126* [#6617](https://github.com/apache/nuttx/pull/6617) Fix arm64 stack coloration 32127* [#6682](https://github.com/apache/nuttx/pull/6682) Fixed path calculation in BBS RAM 32128 32129* [#6790](https://github.com/apache/nuttx/pull/6790) Several IMXRT fixes 32130* [#6786](https://github.com/apache/nuttx/pull/6786) IMX.RT EDMA Support 32131* [#6787](https://github.com/apache/nuttx/pull/6787) imxrt: Ethernet Cleanup and extend support for ETH1 or ETH2 and LAN8742A 32132* [#6794](https://github.com/apache/nuttx/pull/6794) IMX.RT Add DMA on LPSPI, LPUART, LPI2C 32133 32134* [#6675](https://github.com/apache/nuttx/pull/6675) sim: idle pm should do PM_RESOTRE in critical section 32135* [#6689](https://github.com/apache/nuttx/pull/6689) sim: Increased priority of loop task 32136* [#6792](https://github.com/apache/nuttx/pull/6792) sim/adb: Enable ping for test 32137* [#5862](https://github.com/apache/nuttx/pull/5862) arch/sim: Remove the unused SIM_TCNWAITERS from Kconfig 32138* [#5923](https://github.com/apache/nuttx/pull/5923) sim: Fix initialization of static C++ constructors when using glibc >= 2.34 32139* [#5885](https://github.com/apache/nuttx/pull/5885) sim/rptun: rsc must set rpmsg_vdev.config_len 32140* [#5756](https://github.com/apache/nuttx/pull/5756) sim: Enable garbage collection of unused input sections 32141* [#5988](https://github.com/apache/nuttx/pull/5988) arch/sim: support simulator keyboard devices 32142* [#6043](https://github.com/apache/nuttx/pull/6043) sim: bt: Add specific bluetooth HCI number id 32143 32144# Driver Support 32145 32146## New Driver Support 32147 32148* [#6030](https://github.com/apache/nuttx/pull/6030) Add Sensirion's SCD41 driver and minor fix 32149* [#6412](https://github.com/apache/nuttx/pull/6412) drivers/sensors: add driver for as5048a magnetic encoder 32150* [#6345](https://github.com/apache/nuttx/pull/6345) drivers: video: add isx019 camera sensor 32151* [#6491](https://github.com/apache/nuttx/pull/6491) LITEETH peripheral driver support 32152* [#6525](https://github.com/apache/nuttx/pull/6525) drivers: add support of pwm capture driver 32153* [#6537](https://github.com/apache/nuttx/pull/6537) drivers/ipcc: add Inter Processor Communication driver 32154* [#5835](https://github.com/apache/nuttx/pull/5835) LITESDCARD peripheral driver support 32155* [#6510](https://github.com/apache/nuttx/pull/6510) Support for 2.13 inch display v2 32156* [#6634](https://github.com/apache/nuttx/pull/6634) drivers/lcd: Add support to use APA102 LED Matrix as LCD Display 32157* [#6408](https://github.com/apache/nuttx/pull/6408) e-ink ssd1680 driver 32158* [#6353](https://github.com/apache/nuttx/pull/6353) Add driver for WIZnet W5500 Ethernet controller 32159 32160## Bug Fixes and Improvements 32161 32162* [#6068](https://github.com/apache/nuttx/pull/6068) driver/mmcsdio: do not hold the semaphore on interrupt context 32163* [#6019](https://github.com/apache/nuttx/pull/6019) power/governor: Remove the duplicated function prototype 32164* [#6021](https://github.com/apache/nuttx/pull/6021) Test/wm8904balance 32165* [#6018](https://github.com/apache/nuttx/pull/6018) Increase audio_comp driver flexibility 32166* [#5927](https://github.com/apache/nuttx/pull/5927) Minor improve for mmcsd 32167* [#5747](https://github.com/apache/nuttx/pull/5747) drivers/timers: rename notification parameter oneshot to periodic 32168* [#5849](https://github.com/apache/nuttx/pull/5849) pm: remove unnecessary depends on OSINIT_OS_READY 32169* [#5853](https://github.com/apache/nuttx/pull/5853) driver/syslog: Add microseconds after date time 32170* [#5901](https://github.com/apache/nuttx/pull/5901) power: unify lock sates and move pm_auto_update to outer dir 32171* [#5990](https://github.com/apache/nuttx/pull/5990) fix uinput rpmsg logic error 32172* [#5816](https://github.com/apache/nuttx/pull/5816) drivers/mtd/mtd_config: set different format versions for named and ID modes 32173* [#5736](https://github.com/apache/nuttx/pull/5736) driver/uinput: add cross core control function 32174* [#6127](https://github.com/apache/nuttx/pull/6127) pm: Move pm_initialize call from driver_initialize to xxx_pminitialize 32175* [#6053](https://github.com/apache/nuttx/pull/6053) drivers: remove unimplemented open/close/ioctl interfaces 32176* [#6157](https://github.com/apache/nuttx/pull/6157) drivers: mtd: fix null buffer reference 32177* [#6159](https://github.com/apache/nuttx/pull/6159) driver/ioexpander: remove response about irq_handler 32178* [#6186](https://github.com/apache/nuttx/pull/6186) Stm32f746 audio 32179* [#6164](https://github.com/apache/nuttx/pull/6164) drivers/audio/cxd56: Workaround for HW issue of CXD56 32180* [#6655](https://github.com/apache/nuttx/pull/6655) driver/syslog: support syslog_rpmsg client and server chardev 32181* [#6657](https://github.com/apache/nuttx/pull/6657) drivers/lcd/st7789: update putarea() method 32182* [#6661](https://github.com/apache/nuttx/pull/6661) drivers/syslog: Call up_nputs in syslog_default_write 32183* [#6668](https://github.com/apache/nuttx/pull/6668) driver/ioe_rpmsg: split server and client ept_cb to simplify code 32184* [#6246](https://github.com/apache/nuttx/pull/6246) drivers/sdio: Call SDIO_LOCK before and after the transaction 32185* [#5736](https://github.com/apache/nuttx/pull/5736) driver/uinput: add cross core control function 32186* [#5718](https://github.com/apache/nuttx/pull/5718) drivers/can: optimize can driver reader side 32187* [#6789](https://github.com/apache/nuttx/pull/6789) drivers/net: make sure that net driver d_buf is 16-bit aligned 32188* [#6708](https://github.com/apache/nuttx/pull/6708) driver/sensors[2]: enhance and update sensor driver 32189* [#6703](https://github.com/apache/nuttx/pull/6703) driver/sensor: add calibrate interface for sensor driver 32190* [#6704](https://github.com/apache/nuttx/pull/6704) driver/sensors: enhance sensor driver 32191* [#6696](https://github.com/apache/nuttx/pull/6696) driver/sensor: add sensor type of cap and wake_gesture 32192* [#6698](https://github.com/apache/nuttx/pull/6698) driver/power:add ioctl cmd for voltage info and protocol and add update event mask 32193* [#6727](https://github.com/apache/nuttx/pull/6727) power: add PM_IDLE_DOMAIN to pm.h and remove definations 32194* [#6759](https://github.com/apache/nuttx/pull/6759) drivers: Reorganize the power related code layout 32195* [#6748](https://github.com/apache/nuttx/pull/6748) power/axp202: Replace battery_charger_operations_s * with battery_charger_dev_s 32196* [#6761](https://github.com/apache/nuttx/pull/6761) drivers/wireless/gs2200m: Fix short bit length 32197* [#6743](https://github.com/apache/nuttx/pull/6743) drivers/battery: Handle the early changed event correctly 32198* [#6673](https://github.com/apache/nuttx/pull/6673) power related update 32199* [#6653](https://github.com/apache/nuttx/pull/6653) Driver/sensor: enhance sensor driver to support uorb and multi core access sensor by rpmsg 32200* [#6331](https://github.com/apache/nuttx/pull/6331) drivers/mtd/smart.c: Modify devname[] size to avoid overflow 32201* [#6414](https://github.com/apache/nuttx/pull/6414) drivers/syslog: fix deadlock by reverting part of the changes from b88a8cf39ff1019ad787c4316b22ce29c7daa2dc 32202* [#6435](https://github.com/apache/nuttx/pull/6435) drivers/syslog: reuse rmutex_t for the recursive check 32203* [#6419](https://github.com/apache/nuttx/pull/6419) drvers/mmcsd/sdio: function enable should wait for CCCR_IORDY 32204* [#6500](https://github.com/apache/nuttx/pull/6500) drivers: serial: Add error for insuff buffer 32205* [#6526](https://github.com/apache/nuttx/pull/6526) drivers/lcd: getplaneinfo fix for ST7789,ST7565 and skeleton driver 32206* [#6513](https://github.com/apache/nuttx/pull/6513) drivers/lcd: Fix regression on ILI9341 introduced after #6465 32207* [#6544](https://github.com/apache/nuttx/pull/6544) Make sensor mpu60x0 more configurable in menuconfig 32208* [#6564](https://github.com/apache/nuttx/pull/6564) drivers/lcd_framebuffer: Optimize updateearea for the full screan case 32209* [#6577](https://github.com/apache/nuttx/pull/6577) drivers/segger: Support the customize SEGGER_RTT_[BUFFER_]SECTION 32210* [#6113](https://github.com/apache/nuttx/pull/6113) pipe: Increase buffer size by one byte to ompensate the full indicator 32211* [#6455](https://github.com/apache/nuttx/pull/6455) usbhost_cdcacm: fix error with interrupt IN endpoint 32212* [#6369](https://github.com/apache/nuttx/pull/6369) Fix in default syslog date format 32213* [#6601](https://github.com/apache/nuttx/pull/6601) usbdev/usbmsc: introduce USBMSC_WRMULTIPLE for faster writes 32214* [#6571](https://github.com/apache/nuttx/pull/6571) fix sd can't usage when mult-block receive errro 32215* [#6551](https://github.com/apache/nuttx/pull/6551) framebuffer for e-ink display. Added callback function to redraw 32216* [#6456](https://github.com/apache/nuttx/pull/6456) mmcsd/sdio: correct return value of sdio_probe() 32217* [#6363](https://github.com/apache/nuttx/pull/6363) Added color reset when a syslog channel is added 32218* [#6362](https://github.com/apache/nuttx/pull/6362) syslog Fixed separation of log sessions 32219* [#5886](https://github.com/apache/nuttx/pull/5886) syslog_rpmsg related update 32220* [#5803](https://github.com/apache/nuttx/pull/5803) syslog: Change g_syslog_default_sem to static function variable 32221* [#5801](https://github.com/apache/nuttx/pull/5801) syslog/channel: minor fix to avoid unreachabled return 32222* [#6171](https://github.com/apache/nuttx/pull/6171) syslog: Fixed a potential buffer overflow issue 32223* [#6618](https://github.com/apache/nuttx/pull/6618) Optimize syslog_write performance 32224* [#6669](https://github.com/apache/nuttx/pull/6669) lcd/apa102: Fix APA102 RGB LED Matrix interleaving issue 32225* [#6639](https://github.com/apache/nuttx/pull/6639) lcd/apa102: Add putarea() support for faster rendering 32226* [#6633](https://github.com/apache/nuttx/pull/6633) drivers/bch: Adjust f_pos with the correct value 32227* [#6621](https://github.com/apache/nuttx/pull/6621) mmcsd: Remove the not really used capacity field 32228* [#5802](https://github.com/apache/nuttx/pull/5802) Refine the uinput implementation 32229* [#5800](https://github.com/apache/nuttx/pull/5800) regulator/rpmsg: list delete should use safe version in loop 32230* [#5893](https://github.com/apache/nuttx/pull/5893) ioe_rpmsg: use rptun_wait/post to resolve deadlock with usrsock 32231* [#6699](https://github.com/apache/nuttx/pull/6699) rtc/rpmsg: when a client connection, server initiates time sync 32232* [#6706](https://github.com/apache/nuttx/pull/6706) rptun related update 1 32233* [#6713](https://github.com/apache/nuttx/pull/6713) rptun related update 32234* [#5847](https://github.com/apache/nuttx/pull/5847) rptun related update 32235* [#6678](https://github.com/apache/nuttx/pull/6678) stdio: need also flush stdio when flushall 32236* [#6756](https://github.com/apache/nuttx/pull/6756) Minor update for sensor 32237* [#5880](https://github.com/apache/nuttx/pull/5880) ramlog: support setting threshold value of ramlog for poll waiters 32238* [#5857](https://github.com/apache/nuttx/pull/5857) c89: get rid of designated initializers in common code 32239* [#6738](https://github.com/apache/nuttx/pull/6738) w25qxxxjv.c: Use PRIxOFF to format off_t 32240* [#6728](https://github.com/apache/nuttx/pull/6728) w25qxxxjv.c: Ensure Quad SPI mode is enabled 32241* [#6459](https://github.com/apache/nuttx/pull/6459) Adds device descriptor for the MB5RS2MTA 256KB FRAM part 32242* [#6465](https://github.com/apache/nuttx/pull/6465) Add lcd_dev_s pointer to lcd_planeinfo_s to support multiple LCDs per board 32243* [#6588](https://github.com/apache/nuttx/pull/6588) SSD1680 Landscape mode bugfix 32244* [#6319](https://github.com/apache/nuttx/pull/6319) SSD1306: Added option to force reconfigure display after power off 32245* [#6224](https://github.com/apache/nuttx/pull/6224) LCD SSD1306: Added custom configuration option 32246* [#6223](https://github.com/apache/nuttx/pull/6223) LCD: Added existing FBIO_SETPOWER support to lcd_framebuffer.c 32247* [#6344](https://github.com/apache/nuttx/pull/6344) Video: various updates 32248* [#6320](https://github.com/apache/nuttx/pull/6320) use rmutex inside of all repeated implementation 32249 32250# Board Support 32251## New Board Support 32252 32253* [#6216](https://github.com/apache/nuttx/pull/6216) Nucleo G474RE board support including USB Full Speed Device 32254* [#6754](https://github.com/apache/nuttx/pull/6754) NXP S32K1XX: add initial support for NXP RDDRONE-BMS772 board 32255* [#6730](https://github.com/apache/nuttx/pull/6730) boards/stm32f7: add intial support for ST steval-eth001v1 board 32256* [#6691](https://github.com/apache/nuttx/pull/6691) boards: add initial support for ST steval-stlcs01v1 32257* [#6383](https://github.com/apache/nuttx/pull/6383) boards/nucleo-wl55jc: add new board 32258* [#6448](https://github.com/apache/nuttx/pull/6448) xtensa/esp32s3: Add esp32s3-eye board support 32259* [#6592](https://github.com/apache/nuttx/pull/6592) boards: add initial support for stm32l0538-disco 32260* [#6528](https://github.com/apache/nuttx/pull/6528) Added RP2040 Boards: Adafruit KB2040 and Adafruit Feather RP2040 32261* [#6620](https://github.com/apache/nuttx/pull/6620) boards/stm32f0l0g0: common board logic support 32262* [#6189](https://github.com/apache/nuttx/pull/6189) Sabre 6quad libcxx 32263* [#6793](https://github.com/apache/nuttx/pull/6793) TTGO T-Display ESP32 V1.1 board support 32264* [#6266](https://github.com/apache/nuttx/pull/6266) Nucleo f401 re oled 32265* [#6592](https://github.com/apache/nuttx/pull/6592) boards: add initial support for stm32l0538-disco 32266 32267## Bug Fixes and Improvements 32268 32269* [#6684](https://github.com/apache/nuttx/pull/6684) Enable to test C++ static object in ELF 32270* [#6036](https://github.com/apache/nuttx/pull/6036) arch, boards: cxd56xx: Minor update for spresense 32271* [#6074](https://github.com/apache/nuttx/pull/6074) boards/arm/a1x: Remove the check CONFIG_ARCH_FPU around arm_fpuconfig 32272* [#5964](https://github.com/apache/nuttx/pull/5964) boards/nucleo-f446re: support for SystemView 32273* [#5964](https://github.com/apache/nuttx/pull/5964) boards/nucleo-f446re: support for SystemView 32274* [#5788](https://github.com/apache/nuttx/pull/5788) boards/arm/samv7/same70-qmtech: add gpio driver support 32275* [#5812](https://github.com/apache/nuttx/pull/5812) esp32s3-devkit/spiflash: Use SmartFS instead of LittleFS 32276* [#5817](https://github.com/apache/nuttx/pull/5817) boards/arm/same70-qmtech: Remove dead code 32277* [#5841](https://github.com/apache/nuttx/pull/5841) esp32s3-devkit: Fix the number of memory regions in some configurations 32278* [#5909](https://github.com/apache/nuttx/pull/5909) boards/boardctl:common boardctl to read reset cause 32279* [#5751](https://github.com/apache/nuttx/pull/5751) boards/sim/adb: Enable CONFIG_ADBD_SOCKET_SERVICE 32280* [#5763](https://github.com/apache/nuttx/pull/5763) boards: sabre-6quad: Enable environ and path in knsh/defconfig 32281* [#5839](https://github.com/apache/nuttx/pull/5839) boards: rv-virt: Fix stack corruption for rv64 config 32282* [#5860](https://github.com/apache/nuttx/pull/5860) boards/arm/uid: fix pointer to int compare 32283* [#5895](https://github.com/apache/nuttx/pull/5895) boards: correct path to RCRAWS files during file copy 32284* [#5785](https://github.com/apache/nuttx/pull/5785) boards/arm/samv7: define MTD progmem partitions at board level 32285* [#5787](https://github.com/apache/nuttx/pull/5787) boards/arm/samv7/same70-qmtech: add /dev/timer0 support 32286* [#5804](https://github.com/apache/nuttx/pull/5804) boards/arm/samv7/samv71-xult: Fix mcuboot update example missing config 32287* [#6142](https://github.com/apache/nuttx/pull/6142) boards: Switch the elf link script to binfmt/libelf/gnu-elf.ld 32288* [#6199](https://github.com/apache/nuttx/pull/6199) boards/space: Remove the unneeded XXXEXT definition 32289* [#6138](https://github.com/apache/nuttx/pull/6138) boards/boardctl: correct boarctl return value 32290* [#6141](https://github.com/apache/nuttx/pull/6141) boards/risc-v: Remove "MAXOPTIMIZATION = -Os" from Make.defs 32291* [#6143](https://github.com/apache/nuttx/pull/6143) boards: Move -fno-common from Make.defs to Toolchain.defs 32292* [#6144](https://github.com/apache/nuttx/pull/6144) boards: Move -g from Make.defs to Toolchain.defs 32293* [#6146](https://github.com/apache/nuttx/pull/6146) boards: Move "-fno-exceptions -fcheck-new" from Make.defs to Toolchain.defs 32294* [#6155](https://github.com/apache/nuttx/pull/6155) boards: Move -fno-strict-aliasing from Make.defs to Toolchain.defs 32295* [#6195](https://github.com/apache/nuttx/pull/6195) boards: rv-virt: Add support ELF to nsh and nsh64 defconfigs 32296* [#6075](https://github.com/apache/nuttx/pull/6075) boards/esp32_twai: Remove arm_arch.h from comment 32297* [#6081](https://github.com/apache/nuttx/pull/6081) boards/sim: support rc.sysinit 32298* [#6654](https://github.com/apache/nuttx/pull/6654) boardctl:add reset subreason restore factory 32299* [#6744](https://github.com/apache/nuttx/pull/6744) boards/stm32wb/ble: adding nimble config 32300* [#6752](https://github.com/apache/nuttx/pull/6752) NXP S32K1XX: fix LPI2C reset 32301* [#6753](https://github.com/apache/nuttx/pull/6753) NXP S32K1XX boards: add up_perf_init to support SEGGER SystemView 32302* [#6798](https://github.com/apache/nuttx/pull/6798) board/cxd56xx/audio: Fix CXD56 audio initialization 32303* [#5033](https://github.com/apache/nuttx/pull/5033) boards/arm/samv7: Update mcuboot configs 32304* [#6692](https://github.com/apache/nuttx/pull/6692) stm32f0l0g0: fixes for SPI half duplex 32305* [#6693](https://github.com/apache/nuttx/pull/6693) boards/stm32g071b-disco: add ina230 support and gpio dev support 32306* [#6694](https://github.com/apache/nuttx/pull/6694) esp32s3-devkit: Add support to discrete 5-way joystick 32307* [#6764](https://github.com/apache/nuttx/pull/6764) boards: spresense: Reduce power consumption with LTE board 32308* [#6777](https://github.com/apache/nuttx/pull/6777) boards: Enable thread local storage for some config 32309* [#6391](https://github.com/apache/nuttx/pull/6391) esp32c3-devkit/knsh: Enable CONFIG_RAW_BINARY to convert the ELF file 32310* [#6287](https://github.com/apache/nuttx/pull/6287) stm32h7: allow definition of HSI divider in board config 32311* [#6373](https://github.com/apache/nuttx/pull/6373) board: nucleo-l432kc: Add missing nucleo 432kc spi driver setting 32312* [#6275](https://github.com/apache/nuttx/pull/6275) boards/arm: Remove "LDFLAGS += -g" whichi is already added by Toolchain.defs 32313* [#6439](https://github.com/apache/nuttx/pull/6439) boards/esp32: Increase the NTP deamon stack size as it was overflowing 32314* [#6273](https://github.com/apache/nuttx/pull/6273) board/sim: Enable hellocxx in loadable config 32315* [#6580](https://github.com/apache/nuttx/pull/6580) Add ws2812 bringup logic to all RP2040 boards 32316* [#6511](https://github.com/apache/nuttx/pull/6511) esp32_board_spi:Missing Data Command pin support 32317* [#6514](https://github.com/apache/nuttx/pull/6514) esp32-wrover-kit: Add board profile to support MMC/SDCard over SPI 32318* [#6462](https://github.com/apache/nuttx/pull/6462) boards/risc-v/mpfs/m100pfsevp/include/board_liberodefs.h: Update memo… 32319* [#6597](https://github.com/apache/nuttx/pull/6597) boards/xtensa: Remove outdated information 32320* [#6582](https://github.com/apache/nuttx/pull/6582) boards: stm32f4discovery: Add iperf to rndis/defconfig 32321* [#6626](https://github.com/apache/nuttx/pull/6626) stm32: hide STM32xx_SPI_DMA option and select it automatically 32322* [#6627](https://github.com/apache/nuttx/pull/6627) stm32g071b-disco: add OLED support 32323* [#6542](https://github.com/apache/nuttx/pull/6542) Nucleo Wl55JC board supports E-ink display 32324* [#6622](https://github.com/apache/nuttx/pull/6622) arch/stm32f0l0g0: improvements for SPI and enable SPI for STM32G0 32325* [#6623](https://github.com/apache/nuttx/pull/6623) stm32f0l0g0: improvements for ADC 32326* [#6625](https://github.com/apache/nuttx/pull/6625) stm32f0l0g0/SPI: support for half duplex and simplex rx/tx modes 32327* [#6646](https://github.com/apache/nuttx/pull/6646) esp32: Re-organise wireless options 32328* [#6585](https://github.com/apache/nuttx/pull/6585) esp32s3-devkit: Add support to ST7735 SPI LCD 32329* [#6648](https://github.com/apache/nuttx/pull/6648) Added Adafruit QT Py RP2040 board and made UART, SPI, and I2C configuration more flexible 32330 32331# File System 32332 32333## Bug Fixes and Improvements 32334 32335* [#6726](https://github.com/apache/nuttx/pull/6726) vfs: Remove the unnessary check when CONFIG_DEBUG_MM enable 32336* [#6007](https://github.com/apache/nuttx/pull/6007) fs/vfs: fix st_mode mask check 32337* [#6002](https://github.com/apache/nuttx/pull/6002) fs/poll: change format for type pollevent_t 32338* [#5797](https://github.com/apache/nuttx/pull/5797) fs/rpmsgfs: minor refine the return value 32339* [#6686](https://github.com/apache/nuttx/pull/6686) fs/hostfs: Change nuttx_dev_t from uint16_t to uint32_t 32340* [#6674](https://github.com/apache/nuttx/pull/6674) procfs related update 32341* [#6671](https://github.com/apache/nuttx/pull/6671) rpmsgfs related update 32342* [#6663](https://github.com/apache/nuttx/pull/6663) fs/fs_sync/ioctl: update 32343* [#6662](https://github.com/apache/nuttx/pull/6662) sys/sysmacros.h: support sysmacros header 32344* [#6630](https://github.com/apache/nuttx/pull/6630) partition/gpt: Replace PRI?LBA with PRI?OFF 32345* [#6629](https://github.com/apache/nuttx/pull/6629) procfs/mount: Unify uint[32|64]_t to fsblkcnt_t for the code simplification 32346* [#6545](https://github.com/apache/nuttx/pull/6545) fs/fat: Fix a bug that long file name cannot be found 32347* [#6401](https://github.com/apache/nuttx/pull/6401) fs/mqueue: skip nxmq_pollnotify() if no poll waiters 32348* [#6347](https://github.com/apache/nuttx/pull/6347) fs/cromfs: Fixed a hardFault caused by unaligned memory access 32349* [#6104](https://github.com/apache/nuttx/pull/6104) fs:oflag need consistent with psock 32350* [#6100](https://github.com/apache/nuttx/pull/6100) fs/inode/fs_files:changes fd judgment method 32351* [#5854](https://github.com/apache/nuttx/pull/5854) fs/romfs: fix bug about test case:examples/romfs 32352* [#5867](https://github.com/apache/nuttx/pull/5867) fs/romfs: fix size of pointer during memory allocation 32353* [#5879](https://github.com/apache/nuttx/pull/5879) littlefs: unify lfs error code to nuttx 32354* [#5884](https://github.com/apache/nuttx/pull/5884) fs/files_allocate: assert when fd overflow 32355* [#5894](https://github.com/apache/nuttx/pull/5894) fs:add _POSIX_OPEN_MAX limit to files_extend 32356* [#5899](https://github.com/apache/nuttx/pull/5899) Fs/romfs: fix bug about compare path with same prefix 32357* [#6049](https://github.com/apache/nuttx/pull/6049) fs/vfs/fs_truncate.c: Use ioctl to truncate on non-mountpoint inode 32358* [#5891](https://github.com/apache/nuttx/pull/5891) opendir: use inode_find() instead when opendir() 32359* [#6024](https://github.com/apache/nuttx/pull/6024) fs/fcntl: add O_APPEND flag judge in fcntl 32360* [#6023](https://github.com/apache/nuttx/pull/6023) littelfs: deal with block devices w/o ioctl 32361* [#6773](https://github.com/apache/nuttx/pull/6773) FS disable FS_LARGEFILE by default 32362* [#5934](https://github.com/apache/nuttx/pull/5934) fs/unionfs: fix some warning and bug 32363* [#5938](https://github.com/apache/nuttx/pull/5938) fs/procfstcbinfo: minor bug about print address 32364* [#5883](https://github.com/apache/nuttx/pull/5883) lseek: use type:off_t for return value 32365* [#5764](https://github.com/apache/nuttx/pull/5764) procfs: Remove mallinfo from struct procfs_meminfo_entry_s 32366* [#5924](https://github.com/apache/nuttx/pull/5924) fs and unistd: increase OPEN_MAX by claiming a Kconfig 32367* [#5937](https://github.com/apache/nuttx/pull/5937) fs/epoll: change type of eventset from uint8_t to uint32_t 32368* [#5807](https://github.com/apache/nuttx/pull/5807) sys/type.h: Change pid_t from int16_t to int 32369* [#6307](https://github.com/apache/nuttx/pull/6307) littlefs_stat: Fix directory size 32370* [#6724](https://github.com/apache/nuttx/pull/6724) add heapcheck(memcheck) flag 32371* [#5935](https://github.com/apache/nuttx/pull/5935) fs/rpmsgfs: fix bug about using uninit variable "times" 32372* [#5936](https://github.com/apache/nuttx/pull/5936) fs/romfs: fix string overflow 32373* [#5844](https://github.com/apache/nuttx/pull/5844) rpmsgfs: do NOT access the pointer when do remote ioctl 32374* [#5856](https://github.com/apache/nuttx/pull/5856) rpmsgfs/rename: fix bug about pathname align with 8bytes 32375* [#5892](https://github.com/apache/nuttx/pull/5892) rpmsgfs related update 32376* [#5846](https://github.com/apache/nuttx/pull/5846) epoll: fix epoll close error, report by kasan 32377* [#6680](https://github.com/apache/nuttx/pull/6680) poll: defalut set POLLERR POLLHUP to events 32378* [#6681](https://github.com/apache/nuttx/pull/6681) unlink: don't do unlink with inode_semtake 32379* [#6637](https://github.com/apache/nuttx/pull/6637) mtd/smartfs: Fix uninitialized variable 32380 32381# Networking 32382 32383## Bug Fixes and Improvements 32384 32385* [#5967](https://github.com/apache/nuttx/pull/5967) net:fix coverity warning 32386* [#5972](https://github.com/apache/nuttx/pull/5972) net/utils: fix IPv4 checksum calculation 32387* [#5769](https://github.com/apache/nuttx/pull/5769) net/local: correct the socket flags from client socket 32388* [#5750](https://github.com/apache/nuttx/pull/5750) net/udp: clear the connection structure after free 32389* [#5748](https://github.com/apache/nuttx/pull/5748) net/local: correct the socket flags from server socket 32390* [#6368](https://github.com/apache/nuttx/pull/6368) net/tcp: Hold the net lock in tcp_timer_expiry 32391* [#6355](https://github.com/apache/nuttx/pull/6355) tcp: remove all devif_timer 32392* [#6154](https://github.com/apache/nuttx/pull/6154) net/tcp:make initial tcp port more random 32393* [#5794](https://github.com/apache/nuttx/pull/5794) netdb/getaddrinfo: fix NULL pointer reference 32394* [#5791](https://github.com/apache/nuttx/pull/5791) netinitialize: call xxx_netinitialize unconditionally 32395* [#5770](https://github.com/apache/nuttx/pull/5770) net/sockopt: bypass the SO_RCVBUF/SO_SNDBUF to usrsock 32396* [#6735](https://github.com/apache/nuttx/pull/6735) make sure conn's domain is matched with addr's family 32397* [#6608](https://github.com/apache/nuttx/pull/6608) net: Fix frame count check fail and race condition 32398* [#6330](https://github.com/apache/nuttx/pull/6330) tcp: move wd_timer from wifi driver to tcp stack 32399* [#6289](https://github.com/apache/nuttx/pull/6289) net: fix the build when CONFIG_NET_TCP_WRITE_BUFFERS is not enabled 32400* [#6262](https://github.com/apache/nuttx/pull/6262) icmp: Fixed replies to broadcasts 32401* [#6161](https://github.com/apache/nuttx/pull/6161) Fix udp recvfrom to correctly return addrlen 32402* [#5799](https://github.com/apache/nuttx/pull/5799) net/netdev: fix switch case missing break 32403* [#6398](https://github.com/apache/nuttx/pull/6398) net/tcp: wave hands on background 32404* [#6297](https://github.com/apache/nuttx/pull/6297) net/tcp: Zero keeptimer in case caller set keepalive to false 32405* [#6290](https://github.com/apache/nuttx/pull/6290) net/tcp: Use the decrease timer in TCP_TIME_WAIT/TCP_FIN_WAIT_2 32406* [#6264](https://github.com/apache/nuttx/pull/6264) Fix ENOENT errors when polling on Netlink socket 32407* [#6428](https://github.com/apache/nuttx/pull/6428) net/tcp: d_appdata should remove the tcp specific option field 32408* [#6399](https://github.com/apache/nuttx/pull/6399) Packet dropped in IPv4/v6 input is now an info, not a warning 32409* [#6770](https://github.com/apache/nuttx/pull/6770) delay creating DNS bind socket 32410* [#6751](https://github.com/apache/nuttx/pull/6751) Net thread-safe ether_ntoa_r & inet_ntoa_r 32411* [#6740](https://github.com/apache/nuttx/pull/6740) [TCP] Close RAM usage optimization 32412* [#6747](https://github.com/apache/nuttx/pull/6747) Fix notify disassocitaion 32413* [#6702](https://github.com/apache/nuttx/pull/6702) tcp: check option length before d_len update 32414* [#6701](https://github.com/apache/nuttx/pull/6701) udp: Use s_sndtimeo as the actual timeout time 32415* [#6700](https://github.com/apache/nuttx/pull/6700) netdev: add return value for ifup / ifdown 32416* [#6563](https://github.com/apache/nuttx/pull/6563) net/tcp: discard connect reference before free 32417* [#6562](https://github.com/apache/nuttx/pull/6562) net/tcp: fix regression of invalid update the rexmit_seq in buffer mode 32418* [#6543](https://github.com/apache/nuttx/pull/6543) net_if: add IFF_LOOPBACK/POINTOPOINT/MULTICAST/BROADCAST 32419* [#6529](https://github.com/apache/nuttx/pull/6529) net: Ensure sendmsg and sendfile return -EAGAIN in case of timeout 32420* [#6519](https://github.com/apache/nuttx/pull/6519) netdev/carrier: check the IF stautus before carrier 32421* [#6451](https://github.com/apache/nuttx/pull/6451) net/tcp(buffered): retransmit only one the earliest not acknowledged segment 32422* [#6640](https://github.com/apache/nuttx/pull/6640) net/slip: Rename and clarify orphaned Kconfig options 32423* [#6590](https://github.com/apache/nuttx/pull/6590) net/poll: fix race condition if connect free before poll teardown 32424* [#6589](https://github.com/apache/nuttx/pull/6589) net/tcp: fix assertion of fallback connection alloc 32425* [#5943](https://github.com/apache/nuttx/pull/5943) This PR mainly contains some USRSOCK related changes 32426* [#6041](https://github.com/apache/nuttx/pull/6041) rpmsg_usrsock: Support the wireless ioctl which contain pointer 32427* [#5945](https://github.com/apache/nuttx/pull/5945) fix:Remove udp send large pkt assert 32428* [#5944](https://github.com/apache/nuttx/pull/5944) net: tcp/udp/icmp/icmpv6 add FIONSPACE support 32429* [#5926](https://github.com/apache/nuttx/pull/5926) local socket: cancel assert about backlog exceed 255 32430* [#5933](https://github.com/apache/nuttx/pull/5933) netdev_file_ioctl: Fix fcntl F_SETFL O_NONBLOCK regression 32431* [#5889](https://github.com/apache/nuttx/pull/5889) rpmsg_socket: fix kasan report error 32432* [#5848](https://github.com/apache/nuttx/pull/5848) local_socket: default set block mode if accept() a new socket 32433* [#5755](https://github.com/apache/nuttx/pull/5755) wireless/80211: update the 80211 header 32434* [#6432](https://github.com/apache/nuttx/pull/6432) wireless/bcm43xxx: add extended join parameters 32435* [#6358](https://github.com/apache/nuttx/pull/6358) wireless: add Wireless statistics definition 32436* [#6420](https://github.com/apache/nuttx/pull/6420) wireless/bcm43xxx: add support of bcm43013 chip 32437* [#6463](https://github.com/apache/nuttx/pull/6463) wireless/bcm43xxx: add status print on bcmf_wl_auth_event_handler() 32438* [#6461](https://github.com/apache/nuttx/pull/6461) wireless/bcm43xxx: Don't call bcmf_board_setup_oob_irq in bcmf_sdio_thread 32439* [#6457](https://github.com/apache/nuttx/pull/6457) wireless/bcm43xxx: configurable buffer size of escan result 32440* [#6453](https://github.com/apache/nuttx/pull/6453) wireless/bcm43xxx: replace all busy delay to nxsig_usleep 32441* [#6447](https://github.com/apache/nuttx/pull/6447) bcm43xxx: Remove bcmf_txavail_work and resue bcmf_tx_poll_work 32442* [#6446](https://github.com/apache/nuttx/pull/6446) wireless/bcm43xxx: improve throughput of net driver 32443* [#6444](https://github.com/apache/nuttx/pull/6444) wireless/bcm43xxx: configurable schedule priority of daemon thread 32444* [#6442](https://github.com/apache/nuttx/pull/6442) wireless/bcm43xxx: fix typo sq_init() -> dq_init() 32445* [#6441](https://github.com/apache/nuttx/pull/6441) wireless/bcm43xx: replace sem_wait to uninterruptible version 32446* [#6431](https://github.com/apache/nuttx/pull/6431) wirless/sdio: frame length should with guard bound 32447* [#6430](https://github.com/apache/nuttx/pull/6430) wireless/bcm430xx: rename chip minor id to 'x' 32448* [#6427](https://github.com/apache/nuttx/pull/6427) wireless/bcm43xxx: load nvram from file system 32449* [#6561](https://github.com/apache/nuttx/pull/6561) wireless/bcm43xxx: only break out the send loop if no data 32450* [#6560](https://github.com/apache/nuttx/pull/6560) wireless/bcm43xxx: remove flowctrl check 32451* [#6559](https://github.com/apache/nuttx/pull/6559) wireless/bcm43xxx: filter out the bssi with same ssid name 32452* [#6558](https://github.com/apache/nuttx/pull/6558) wireless/bcm43xxx: mac address does not need to be updated in ifup 32453* [#6557](https://github.com/apache/nuttx/pull/6557) wireless/bcm43xxx: discard auth event if netdev down 32454* [#6556](https://github.com/apache/nuttx/pull/6556) wireless/bcm43xxx: set listen interval on lowpower 32455* [#6555](https://github.com/apache/nuttx/pull/6555) wireless/bcm43xxx: country code should terminating with null 32456* [#6554](https://github.com/apache/nuttx/pull/6554) wireless/bcm43xxx: fix memory leak if tx fail 32457* [#6533](https://github.com/apache/nuttx/pull/6533) wireless/bcm43xxx: enable tx flow control to improve performance 32458* [#6524](https://github.com/apache/nuttx/pull/6524) wireless/bcm43xxx: replace private queue implement to list_node 32459* [#6523](https://github.com/apache/nuttx/pull/6523) wireless/bcm43xxx: remove unused tx_queue_count 32460* [#6518](https://github.com/apache/nuttx/pull/6518) wireless/bcm43xxx: add dynamic kso control support 32461* [#6517](https://github.com/apache/nuttx/pull/6517) wireless/bcm43xxx: correct the return value 32462* [#6501](https://github.com/apache/nuttx/pull/6501) wireless/bcm43xxx: add get country code support 32463* [#6494](https://github.com/apache/nuttx/pull/6494) wireless/bcm43xxx: add set country code support 32464* [#6488](https://github.com/apache/nuttx/pull/6488) wireless/bcm43xxx: add auto power saving support 32465* [#6481](https://github.com/apache/nuttx/pull/6481) wireless/bcm43xxx: remove small chunks to improve clm download speed 32466* [#6480](https://github.com/apache/nuttx/pull/6480) wireless/bcm43xxx: prefer HPWORK if bcmf task has higher priority than HPWORK 32467* [#6479](https://github.com/apache/nuttx/pull/6479) wireless/bcm43xxx: merge frame send to once to improve the performance 32468* [#6471](https://github.com/apache/nuttx/pull/6471) wireless/bcm43xxx: enable power saving on netdev up/down 32469* [#6470](https://github.com/apache/nuttx/pull/6470) wireless/bcm43xxx: add customized MAC address support 32470* [#6469](https://github.com/apache/nuttx/pull/6469) wireless/bcm43xxx: remove global variable for bcmf_sdio_thread 32471* [#6467](https://github.com/apache/nuttx/pull/6467) wireless/bcm43xxx: handle disassoc correctly 32472* [#6466](https://github.com/apache/nuttx/pull/6466) wireless/bcm43xxx: sort scan result by rssi 32473* [#6464](https://github.com/apache/nuttx/pull/6464) wireless/bcm43xxx: add more ioctl command support 32474* [#6636](https://github.com/apache/nuttx/pull/6636) wireless/ieee802154: Don't set IFF_DOWN in mac802154netdev_register 32475* [#6695](https://github.com/apache/nuttx/pull/6695) bluetooth: fixing BT buffer addref/release balance 32476* [#6782](https://github.com/apache/nuttx/pull/6782) bluetooth: fix net lock imbalance in drop casse 32477* [#6672](https://github.com/apache/nuttx/pull/6672) rpmsg socket related update 32478* [#6670](https://github.com/apache/nuttx/pull/6670) local socket related update 32479 32480Compatibility Concerns 32481 32482#6276 - Remove -nostartfiles and -nodefaultlibs from individual board Make.defs. 32483 32484#6256 - Remove ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef and ARCHWARNINGSXX = -Wall -Wshadow -Wundef and then remove ARCHWARNINGS and ARCHWARNINGSXX from CFLAGS and CXXFLAGS. 32485 32486#5897 - Remove -fno-exceptions -fcheck-new from ARCHCFLAGS and ARCHCXXFLAGS and change ARCHCFLAGS = to ARCHCFLAGS += and ARCHCXXFLAGS = to ARCHCXXFLAGS +=. C++ exceptions are now managed centrally by Kconfig options CONFIG_CXX_EXCEPTION and CONFIG_CXX_RTTI. 32487 32488#6144 - Remove from each board: 32489 32490ifeq ($(CONFIG_DEBUG_SYMBOLS),y) 32491ARCHOPTIMIZATION = -g 32492endif 32493 32494and 32495 32496ifeq ($(CONFIG_DEBUG_SYMBOLS),y) 32497LDFLAGS += -g 32498endif 32499 32500as these are now managed centrally by Kconfig option CONFIG_DEBUG_SYMBOLS. 32501 32502#6155 - Remove from each board: 32503 32504ifneq ($(CONFIG_DEBUG_NOOPT),y) 32505ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing 32506endif 32507 32508as these are now managed centrally by Kconfig options CONFIG_DEBUG_OPTLEVEL and CONFIG_DEBUG_FULLOPT. 32509 32510NuttX-12.0.0 Release Notes 32511 32512# What's New In This Release 32513 32514## Core OS Improvements 32515 32516 * [#7493](https://github.com/apache/incubator-nuttx/pull/7493) sched: clock: adjust clock function to support tick 32517 * [#7200](https://github.com/apache/incubator-nuttx/pull/7200) sched: clock: Rename g_system_timer to g_system_ticks 32518 * [#6936](https://github.com/apache/incubator-nuttx/pull/6936) sched: cpuload: fix cpuload error 32519 * [#7318](https://github.com/apache/incubator-nuttx/pull/7318) sched: env: Skip the envirnment variable duplication of kernel thread 32520 * [#7490](https://github.com/apache/incubator-nuttx/pull/7490) sched: getprioritymax: handle invaild policy as posix style 32521 * [#7563](https://github.com/apache/incubator-nuttx/pull/7563) sched: group_setupidlefiles: fall back to /dev/null if /dev/console is disabled 32522 * [#7235](https://github.com/apache/incubator-nuttx/pull/7235) sched: irq: Refactor irq_spinlock.c 32523 * [#7469](https://github.com/apache/incubator-nuttx/pull/7469) sched: mutex: NXMUTEX_INITIALIZER should enable priority inheritance 32524 * [#7095](https://github.com/apache/incubator-nuttx/pull/7095) sched: mqueue: fix resource leak in mq_timedsend() 32525 * [#7088](https://github.com/apache/incubator-nuttx/pull/7088) sched: msgq: add support of System V message queue 32526 * [#7838](https://github.com/apache/incubator-nuttx/pull/7838) sched: nx_bringup: Set the initial stack size in kernel build as well 32527 * [#7492](https://github.com/apache/incubator-nuttx/pull/7492) sched: posix/timer: handle invaild timerid correctly 32528 * [#6905](https://github.com/apache/incubator-nuttx/pull/6905) sched: prctl: Replace strncpy with strlcpy for safety 32529 * [#7267](https://github.com/apache/incubator-nuttx/pull/7267) sched: sem: don't clear waitobj when do sem recover 32530 * [#6967](https://github.com/apache/incubator-nuttx/pull/6967) sched: semaphore: add sem_count temporary variable to improve performance 32531 * [#6318](https://github.com/apache/incubator-nuttx/pull/6318) sched: semaphore: fix priority boost restoration for priority inheritance 32532 * [#7456](https://github.com/apache/incubator-nuttx/pull/7456) sched: semaphore: add the wdog judge before cancel 32533 * [#7583](https://github.com/apache/incubator-nuttx/pull/7583) sched: signal: fix sigtimedwait error handling 32534 * [#7327](https://github.com/apache/incubator-nuttx/pull/7327) sched: spawn: Add the dummy task_spawnattr_xxxstackyyy in the kernel mode 32535 * [#7485](https://github.com/apache/incubator-nuttx/pull/7485) sched: spawn: Rename task_spawnattr_[get|set]stack[size|addr] to posix_spawnattr_[get|set]stack[size|addr] 32536 * [#7597](https://github.com/apache/incubator-nuttx/pull/7597) sched: task: task_getpid: getpid should return process id not thread id 32537 * [#7018](https://github.com/apache/incubator-nuttx/pull/7018) sched: wqueue: change single queue to double queue to improve speed 32538 * [#6996](https://github.com/apache/incubator-nuttx/pull/6996) sched: wqueue: fix visual studio Compiler Error C2059 32539 * [#7477](https://github.com/apache/incubator-nuttx/pull/7477) sched: change the type of tg_joinlock, mm_lock and md_lock from sem_t to mutex_t 32540 * [#7019](https://github.com/apache/incubator-nuttx/pull/7019) sched: fix corner case wd_cancel assert crash 32541 * [#7062](https://github.com/apache/incubator-nuttx/pull/7062) sched: fix kasan report error when open CONFIG_DEBUG_MM 32542 * [#6948](https://github.com/apache/incubator-nuttx/pull/6948) sched: fix macro "SCHED_NOTE_PRINTF" requires 3 argumnets, but only 1 given 32543 * [#7322](https://github.com/apache/incubator-nuttx/pull/7322) sched: fix runtime error UBSan(division by zero) 32544 * [#7792](https://github.com/apache/incubator-nuttx/pull/7792) sched: Improve UBSan configuraion 32545 * [#7159](https://github.com/apache/incubator-nuttx/pull/7159) sched: merge waitsem and msgwaitq 32546 * [#7791](https://github.com/apache/incubator-nuttx/pull/7791) sched: move _assert to kernel space. 32547 * [#7837](https://github.com/apache/incubator-nuttx/pull/7837) sched: move sched_note.c to drivers/note 32548 * [#7810](https://github.com/apache/incubator-nuttx/pull/7810) sched: pthread_mutex_timedlock never returns EINTR 32549 * [#7816](https://github.com/apache/incubator-nuttx/pull/7816) sched: Remove intr and EINTR from pthread mutex 32550 * [#7276](https://github.com/apache/incubator-nuttx/pull/7276) sched: Minor fix backtrace config 32551 * [#7459](https://github.com/apache/incubator-nuttx/pull/7459) sched: use pid to check idle task 32552 * [#7196](https://github.com/apache/incubator-nuttx/pull/7196) sched: Optimize sched_note_begin/end 32553 * [#7471](https://github.com/apache/incubator-nuttx/pull/7471) sched: Remove the unnecessary (FAR sem_t *) cast 32554 * [#6862](https://github.com/apache/incubator-nuttx/pull/6862) sched: Remove the unnecessary weak_function 32555 * [#6958](https://github.com/apache/incubator-nuttx/pull/6958) sched: Remove volatile from the task list 32556 * [#7808](https://github.com/apache/incubator-nuttx/pull/7808) sched: move common assert logic together. 32557 * [#6987](https://github.com/apache/incubator-nuttx/pull/6987) sched: semaphore and mqueue task list optimize 32558 * [#7339](https://github.com/apache/incubator-nuttx/pull/7339) sched: Simplify HAVE_GROUP_MEMBERS logic 32559 * [#6866](https://github.com/apache/incubator-nuttx/pull/6866) sched: Simplify the cpuload process 32560 * [#7511](https://github.com/apache/incubator-nuttx/pull/7511) sched: remove sched_continue, merge code 32561 * [#7599](https://github.com/apache/incubator-nuttx/pull/7599) sched: remove nxsched_remove_blocked from up_unblock_task 32562 * [#7364](https://github.com/apache/incubator-nuttx/pull/7364) sched: Support the stack size and address for posix_spawn and kernel mode 32563 * [#7415](https://github.com/apache/incubator-nuttx/pull/7415) sched: Pass idle thread envionment variables to the child task through copy 32564 * [#7454](https://github.com/apache/incubator-nuttx/pull/7454) sched: remove the unused function nx_wait and nx_waitid 32565 * [#7605](https://github.com/apache/incubator-nuttx/pull/7605) sched: mqueue: make mqueue and mqueue sysv can disable separately 32566 * [#7656](https://github.com/apache/incubator-nuttx/pull/7656) sched: merge up_block_task and up_unblock_task 32567 * [#7065](https://github.com/apache/incubator-nuttx/pull/7065) sched: wqueue: fix race-condition on work_queue 32568 32569 * [#7815](https://github.com/apache/incubator-nuttx/pull/7815) mm: iob: reserved bytes should be updated after each iteration 32570 * [#7714](https://github.com/apache/incubator-nuttx/pull/7714) mm: iob: new function iob_reserve() to adjust headroom offset 32571 * [#6836](https://github.com/apache/incubator-nuttx/pull/6836) mm: iob: Remove iob_user_e enum and related code 32572 * [#6834](https://github.com/apache/incubator-nuttx/pull/6834) mm: iob: modify iob to support header padding and alignment features 32573 * [#7066](https://github.com/apache/incubator-nuttx/pull/7066) mm: kasan: use init value to avoid kasan used before bss clear 32574 * [#7509](https://github.com/apache/incubator-nuttx/pull/7509) mm: kasan: fix kasan race-condition # 32575 * [#6804](https://github.com/apache/incubator-nuttx/pull/6804) mm: mempool: support mempool and show mempool info in procfs 32576 * [#7450](https://github.com/apache/incubator-nuttx/pull/7450) mm: mempool: support multiple-mempool and enhance mempool 32577 * [#7581](https://github.com/apache/incubator-nuttx/pull/7581) mm: mm_heap: Change TCB_FLAG_HEAPCHECK to TCB_FLAG_HEAP_CHECK 32578 * [#7449](https://github.com/apache/incubator-nuttx/pull/7449) mm: mm_heap: optimize MM_XX_SHIFT define 32579 * [#7495](https://github.com/apache/incubator-nuttx/pull/7495) mm: mm_heap: add debug assert to check the alignment problem 32580 * [#6928](https://github.com/apache/incubator-nuttx/pull/6928) mm: mm_heap: Avoid assertion violation in case of kmm_free(NULL) 32581 * [#7662](https://github.com/apache/incubator-nuttx/pull/7662) mm: mm_size2ndx: using flsl to calculate the ndx 32582 * [#7618](https://github.com/apache/incubator-nuttx/pull/7618) mm: shm: Implement a generic utility API for creating / destroying shm mappings 32583 * [#7607](https://github.com/apache/incubator-nuttx/pull/7607) mm: shm: Implement shmem drivers for risc-v target 32584 * [#7134](https://github.com/apache/incubator-nuttx/pull/7134) mm: ubsan: UBSan option should be turned on if SIM_UBSAN enabled 32585 * [#7301](https://github.com/apache/incubator-nuttx/pull/7301) mm: ubsan: Ubsan 32586 * [#7285](https://github.com/apache/incubator-nuttx/pull/7285) mm: ubsan: Fixed undefined behavior in UBSan. 32587 * [#6986](https://github.com/apache/incubator-nuttx/pull/6986) mm: ubsan: Allow custom the sanitizer in Kconfig 32588 * [#6881](https://github.com/apache/incubator-nuttx/pull/6881) mm: ubsan: debug: Introduce portion of UBSan 32589 * [#6979](https://github.com/apache/incubator-nuttx/pull/6979) mm: umm_heap: Do not register Umem if CONFIG_BUILD_KERNEL=y 32590 * [#6995](https://github.com/apache/incubator-nuttx/pull/6995) mm: Check the function result with suitable macro. 32591 * [#7457](https://github.com/apache/incubator-nuttx/pull/7457) mm: Check for memory leaks in tasks 32592 * [#6999](https://github.com/apache/incubator-nuttx/pull/6999) mm: fix runtime error by UBSan # 32593 * [#7536](https://github.com/apache/incubator-nuttx/pull/7536) mm: Refine mm Kconfig 32594 * [#7551](https://github.com/apache/incubator-nuttx/pull/7551) mm: Remove the unused macro MM_IS_ALLOCATED 32595 * [#7540](https://github.com/apache/incubator-nuttx/pull/7540) mm: Restore the return type of mm_lock from bool to int 32596 32597 * [#7424](https://github.com/apache/incubator-nuttx/pull/7424) libc: Add %T and %R conversion specifiers to strftime(3) 32598 * [#7025](https://github.com/apache/incubator-nuttx/pull/7025) libc: Add check in roundx() functions for infinite or NaN cases 32599 * [#7724](https://github.com/apache/incubator-nuttx/pull/7724) libc: Add Hexadecimal parsing for strtof 32600 * [#7661](https://github.com/apache/incubator-nuttx/pull/7661) libc: Add libc_stubs functions 32601 * [#6898](https://github.com/apache/incubator-nuttx/pull/6898) libc: add lib_dump utils 32602 * [#7198](https://github.com/apache/incubator-nuttx/pull/7198) libc: add obstack 32603 * [#7003](https://github.com/apache/incubator-nuttx/pull/7003) libc: add timingsafe_bcmp to libc # 32604 * [#6861](https://github.com/apache/incubator-nuttx/pull/6861) libc: Add some missing functions to libc.csv 32605 * [#7345](https://github.com/apache/incubator-nuttx/pull/7345) libc: Added flush of the read buffers when a file is reopened. 32606 * [#7224](https://github.com/apache/incubator-nuttx/pull/7224) libc: allow to enable LIBC_NETDB directly from menuconfig 32607 * [#7545](https://github.com/apache/incubator-nuttx/pull/7545) libc: atexit: correct return value of exitfunc lock 32608 * [#7175](https://github.com/apache/incubator-nuttx/pull/7175) libc: arm: use builtin routines instead of aliases of __aeabi_mem* 32609 * [#6856](https://github.com/apache/incubator-nuttx/pull/6856) libc: crc: Add full suffix to avoid the the penitential symbol collision 32610 * [#6841](https://github.com/apache/incubator-nuttx/pull/6841) libc: dns_client: directly initialize g_dns_servers and remove dns_initialize directly 32611 * [#7117](https://github.com/apache/incubator-nuttx/pull/7117) libc: Ensure key returned from ftok is unique 32612 * [#7567](https://github.com/apache/incubator-nuttx/pull/7567) libc: fine tune mutex/sem_t implementation 32613 * [#6959](https://github.com/apache/incubator-nuttx/pull/6959) libc: Fix wrong report by UBSan 32614 * [#6991](https://github.com/apache/incubator-nuttx/pull/6991) libc: Fixed pow() for negative bases. 32615 * [#6952](https://github.com/apache/incubator-nuttx/pull/6952) libc: fixes in strtod parser. 32616 * [#7349](https://github.com/apache/incubator-nuttx/pull/7349) libc: gmtimer: Fixed range of tm_yday. 32617 * [#7774](https://github.com/apache/incubator-nuttx/pull/7774) libc: hex2bin: Remove the unused declaration 32618 * [#6806](https://github.com/apache/incubator-nuttx/pull/6806) libc: Implement memfd on top of tmpfs 32619 * [#7688](https://github.com/apache/incubator-nuttx/pull/7688) libc: include: unified stream read and write interface 32620 * [#7677](https://github.com/apache/incubator-nuttx/pull/7677) libc: lib_libvsprintf: fix the float point print bug 32621 * [#6868](https://github.com/apache/incubator-nuttx/pull/6868) libc: libc.csv: Add new found missing functions 32622 * [#7343](https://github.com/apache/incubator-nuttx/pull/7343) libc: libfread: Fixed error flag when reading a write-only file. 32623 * [#6783](https://github.com/apache/incubator-nuttx/pull/6783) libc: localtime: fix some issues and update to consistent with mainline 32624 * [#7657](https://github.com/apache/incubator-nuttx/pull/7657) libc: machine: xtensa: make longjmp safe against context switch 32625 * [#7681](https://github.com/apache/incubator-nuttx/pull/7681) libc: Minor stream interface improvement 32626 * [#7700](https://github.com/apache/incubator-nuttx/pull/7700) libc: Minor fix for vsprintf and stream 32627 * [#6840](https://github.com/apache/incubator-nuttx/pull/6840) libc: move crc8.h, crc16.h and crc32.h from include to include/nuttx 32628 * [#7372](https://github.com/apache/incubator-nuttx/pull/7372) libc: move param check to sem_xx level 32629 * [#7185](https://github.com/apache/incubator-nuttx/pull/7185) libc: Move queue.h from include to include/nuttx 32630 * [#7820](https://github.com/apache/incubator-nuttx/pull/7820) libc: netdb: add proto.c 32631 * [#7289](https://github.com/apache/incubator-nuttx/pull/7289) libc: newlib/impure: declare thread specific file only if __NEWLIB__ is defined 32632 * [#7281](https://github.com/apache/incubator-nuttx/pull/7281) libc: newlib/impure: sync with newlib(4.2.0) reent update 32633 * [#7667](https://github.com/apache/incubator-nuttx/pull/7667) libc: obstack, mm/circbuf: Fix non-standard usage of void* arithmetics 32634 * [#7716](https://github.com/apache/incubator-nuttx/pull/7716) libc: optimize the code of the printf 32635 * [#6954](https://github.com/apache/incubator-nuttx/pull/6954) libc: Port strtod fixes to strtof, strtold and improve comments 32636 * [#7565](https://github.com/apache/incubator-nuttx/pull/7565) libc: pthread_barrier:don't destroy when barrier used 32637 * [#7644](https://github.com/apache/incubator-nuttx/pull/7644) libc: pthread: Change stacksize type from long to size_t 32638 * [#7005](https://github.com/apache/incubator-nuttx/pull/7005) libc: pthread: fix typo with CONFIG_PTHREAD_MUTEX_DEFAULT_PRIO_INHERIT 32639 * [#6805](https://github.com/apache/incubator-nuttx/pull/6805) libc: Remove CONFIG_LIBC_ERR 32640 * [#7116](https://github.com/apache/incubator-nuttx/pull/7116) libc: Remove LIBC_ERR from libs/libc/misc/Kconfig 32641 * [#7151](https://github.com/apache/incubator-nuttx/pull/7151) libc: Remove the reference of _stext/_etext from lib_cxx_initialize.c 32642 * [#5070](https://github.com/apache/incubator-nuttx/pull/5070) libc: semaphore: sem_init change defult protocol 32643 * [#7710](https://github.com/apache/incubator-nuttx/pull/7710) libc: signal: correct the return values 32644 * [#7499](https://github.com/apache/incubator-nuttx/pull/7499) libc: spawn: Always build lib_psa_[get|set]stacksize.c 32645 * [#6152](https://github.com/apache/incubator-nuttx/pull/6152) libc: stdio: Add stdio file locking functions 32646 * [#7770](https://github.com/apache/incubator-nuttx/pull/7770) libc: stdio: add total_len back 32647 * [#7310](https://github.com/apache/incubator-nuttx/pull/7310) libc: stdio: fix ungetc operation 32648 * [#7715](https://github.com/apache/incubator-nuttx/pull/7715) libc: stream: add putc interface for mtd/blk stream. 32649 * [#7694](https://github.com/apache/incubator-nuttx/pull/7694) libc: stream: Remove \n special handle from syslogstream_putc 32650 * [#7772](https://github.com/apache/incubator-nuttx/pull/7772) libc: stream: Rename [lib_stream_](put|get) to [lib_stream_](putc|getc) 32651 * [#7348](https://github.com/apache/incubator-nuttx/pull/7348) libc: strftime: Added support for the %w format specifier. 32652 * [#7455](https://github.com/apache/incubator-nuttx/pull/7455) libc: time: fix regression in clock_calendar2utc 32653 * [#7440](https://github.com/apache/incubator-nuttx/pull/7440) libc: time: mktime normalize struct tm 32654 32655 * [#7819](https://github.com/apache/incubator-nuttx/pull/7819) openamp: don't depend on pen-amp.zip and libmetal.zip in the git mode 32656 * [#7534](https://github.com/apache/incubator-nuttx/pull/7534) openamp: update openmap lib version to 2022.10.0 32657 * [#7279](https://github.com/apache/incubator-nuttx/pull/7279) openamp: libmetal: support other arch sim host 32658 * [#7444](https://github.com/apache/incubator-nuttx/pull/7444) openamp: fix rptun don't wait issue when get tx patyload buffer 32659 32660 * [#6910](https://github.com/apache/incubator-nuttx/pull/6910) syscall: fix task_testcancel header file 32661 * [#7557](https://github.com/apache/incubator-nuttx/pull/7557) syscall: prctl syscall is present unconditionally 32662 * [#6824](https://github.com/apache/incubator-nuttx/pull/6824) syscall: remove directory related function declaration since it become normal libc api after #6803 32663 32664 * [#7735](https://github.com/apache/incubator-nuttx/pull/7735) Add linux-like panic notifier. 32665 * [#6994](https://github.com/apache/incubator-nuttx/pull/6994) binfmt: Check return pointer. 32666 * [#7498](https://github.com/apache/incubator-nuttx/pull/7498) binfmt: elf_addrenv_free select addrenv before up_addrenv_destroy 32667 * [#7473](https://github.com/apache/incubator-nuttx/pull/7473) Call nxsem_destroy or nxmutex_destry in the error path 32668 * [#6983](https://github.com/apache/incubator-nuttx/pull/6983) compiler.h: Rename inline_function to always_inline_function 32669 * [#7561](https://github.com/apache/incubator-nuttx/pull/7561) crypto: random_pool:add a new api arc4random 32670 * [#7516](https://github.com/apache/incubator-nuttx/pull/7516) fix a mistake about nxmutex & sem 32671 * [#6961](https://github.com/apache/incubator-nuttx/pull/6961) Fixed format specifier in various prints. 32672 * [#7532](https://github.com/apache/incubator-nuttx/pull/7532) hwspinlock: add hwspinlock driver for multi CPU 32673 * [#7472](https://github.com/apache/incubator-nuttx/pull/7472) Initialize global mutext/sem by NXMUTEX_INITIALIZER and SEM_INITIALIZER 32674 * [#6926](https://github.com/apache/incubator-nuttx/pull/6926) list.h: Change inline function to macro as much as possbile 32675 * [#7517](https://github.com/apache/incubator-nuttx/pull/7517) nxmutex: minor fix for mutex lock mismatch 32676 * [#6965](https://github.com/apache/incubator-nuttx/pull/6965) nxmutex: replace nxsem when used as a lock 32677 * [#6966](https://github.com/apache/incubator-nuttx/pull/6966) queue: Change some queue function to macro 32678 * [#6906](https://github.com/apache/incubator-nuttx/pull/6906) Replace all strncpy with strlcpy for safety 32679 * [#7590](https://github.com/apache/incubator-nuttx/pull/7590) sys: boardctl: Add more reset causes to enum 32680 * [#7033](https://github.com/apache/incubator-nuttx/pull/7033) timer: add arch_alarm tick interface 32681 * [#7115](https://github.com/apache/incubator-nuttx/pull/7115) time: Typedef time_t to uint64_t if CONFIG_SYSTEM_TIME64 is defined 32682 * [#6981](https://github.com/apache/incubator-nuttx/pull/6981) up_nputs: fix AddressSanitizer: global-buffer-overflow problem 32683 * [#7420](https://github.com/apache/incubator-nuttx/pull/7420) Update errno to match asm-generic 32684 32685## Build System Improvements 32686 32687 * [#7419](https://github.com/apache/incubator-nuttx/pull/7419) Makefile: Remove INCDIROPT 32688 * [#7118](https://github.com/apache/incubator-nuttx/pull/7118) Remove EXPERIMENTAL from some long existent config 32689 * [#7043](https://github.com/apache/incubator-nuttx/pull/7043) Kconfig: EXPERIMENTAL: Add help text and change prompt label 32690 * [#7052](https://github.com/apache/incubator-nuttx/pull/7052) Config.mk: Add COMPILEZIG 32691 * [#6885](https://github.com/apache/incubator-nuttx/pull/6885) Make the full image instrumentation configurable 32692 * [#7272](https://github.com/apache/incubator-nuttx/pull/7272) tools: Added Kconfig option for ccache. 32693 * [#7048](https://github.com/apache/incubator-nuttx/pull/7048) tools: Optimizing mkallsyms scripts with python 32694 * [#7103](https://github.com/apache/incubator-nuttx/pull/7103) tools: configure.sh: Update USAGE for custom out-of-tree boards 32695 * [#7081](https://github.com/apache/incubator-nuttx/pull/7081) tools: b16.c: Fix usage text 32696 * [#7080](https://github.com/apache/incubator-nuttx/pull/7080) tools: pic32: Add description, fix nxstyle, fix typos 32697 * [#7076](https://github.com/apache/incubator-nuttx/pull/7076) tools: Remove duplicate calls and optimize compilation speed 32698 * [#7569](https://github.com/apache/incubator-nuttx/pull/7569) tools: Win.mk Fix error in Windows native build 32699 * [#7556](https://github.com/apache/incubator-nuttx/pull/7556) tools: incdir.bat 32700 * [#7849](https://github.com/apache/incubator-nuttx/pull/7849) tools: Fix ccache: error: Could not find compiler "x86_64-elf-gcc" in PATH 32701 * [#7552](https://github.com/apache/incubator-nuttx/pull/7552) tools: ignore errors when indir does not exist 32702 * [#7658](https://github.com/apache/incubator-nuttx/pull/7658) tools: Config: Fix error caused by double quotation in Windows native build 32703 * [#7357](https://github.com/apache/incubator-nuttx/pull/7357) tools: Fix an issue that libboard.a is not exported 32704 * [#7686](https://github.com/apache/incubator-nuttx/pull/7686) tools: nuttx-gdbinit: restore the context at the end of each command 32705 * [#7594](https://github.com/apache/incubator-nuttx/pull/7594) tools: configure.bat: Update USAGE 32706 * [#7765](https://github.com/apache/incubator-nuttx/pull/7765) tools: define.bat: sync design of define.bat with define.sh to uniform usage 32707 * [#7572](https://github.com/apache/incubator-nuttx/pull/7572) tools: Fix various error in Windows native build 32708 * [#7560](https://github.com/apache/incubator-nuttx/pull/7560) tools: Fix some buid error 32709 * [#7529](https://github.com/apache/incubator-nuttx/pull/7529) tools: Fix some configure error in Windows native build 32710 32711## Architectural Support 32712### New Architecture Support 32713 32714 * [#7011](https://github.com/apache/incubator-nuttx/pull/7011) arch: arm: add chip GD32F450 of GD32MCU 32715 * [#7125](https://github.com/apache/incubator-nuttx/pull/7125) arch: arm: initial support for NRF5340 32716 * [#7443](https://github.com/apache/incubator-nuttx/pull/7443) arch: sparc: add initial support for S698PM chip and SMP 32717 * [#7692](https://github.com/apache/incubator-nuttx/pull/7692) arch: arm: arm64: Add support for PINE64 PinePhone 32718 32719### Architecture Improvements 32720 32721 * [#7804](https://github.com/apache/incubator-nuttx/pull/7804) arch: arch_alarm: don't init local variable for fpu test case fail 32722 * [#7160](https://github.com/apache/incubator-nuttx/pull/7160) arch: Change the linker generated symbols from uint32_t to uint8_t * 32723 * [#6919](https://github.com/apache/incubator-nuttx/pull/6919) arch: common: Fix arm_allocateheap.c for BUILD_KERNEL 32724 * [#7503](https://github.com/apache/incubator-nuttx/pull/7503) arch: Fix linking of multiple preprocessed linker script files 32725 * [#7208](https://github.com/apache/incubator-nuttx/pull/7208) arch: makefile: preprocess link script to make configure more flexibly 32726 * [#7140](https://github.com/apache/incubator-nuttx/pull/7140) arch: Move _vector and g_current_regs definition to common place 32727 * [#7621](https://github.com/apache/incubator-nuttx/pull/7621) arch: Refine SCTLR register configuration to confirm the spec 32728 * [#7463](https://github.com/apache/incubator-nuttx/pull/7463) arch: Remove the unnecessary nosanitize_address from backtrace source code 32729 * [#7430](https://github.com/apache/incubator-nuttx/pull/7430) arch: Replace __builtin_bswapxx with bswapxx 32730 * [#7106](https://github.com/apache/incubator-nuttx/pull/7106) arch: Remove FAR from 32bit/64bit arch 32731 * [#6833](https://github.com/apache/incubator-nuttx/pull/6833) arch: SMP: fix crash when switch to new task which is still running 32732 * [#7610](https://github.com/apache/incubator-nuttx/pull/7610) arch: rename arch special function name 32733 * [#7436](https://github.com/apache/incubator-nuttx/pull/7436) arch: arm: Added breakpoint in stack overflow trap. 32734 * [#7100](https://github.com/apache/incubator-nuttx/pull/7100) arch: arm: add support for armclang compiler(AC6) 32735 * [#7818](https://github.com/apache/incubator-nuttx/pull/7818) arch: arm: add syscall SYS_save_context support for old arm and armv7-r 32736 * [#7448](https://github.com/apache/incubator-nuttx/pull/7448) arch: arm: added DHCSR definitions for ARMv7 & ARMv8. 32737 * [#7187](https://github.com/apache/incubator-nuttx/pull/7187) arch: arm: armlink: add support of link time optimization(lto) 32738 * [#7767](https://github.com/apache/incubator-nuttx/pull/7767) arch: arm: arm_syscall: add SYS_save_context for armv7-a 32739 * [#7283](https://github.com/apache/incubator-nuttx/pull/7283) arch: arm: backtrace: rename arm_backtrace_thumb.c to arm_backtrace_sp.c 32740 * [#7260](https://github.com/apache/incubator-nuttx/pull/7260) arch: arm: backtrace: add support for EHABI(Exception Handling ABI) stack unwinder 32741 * [#7119](https://github.com/apache/incubator-nuttx/pull/7119) arch: arm: correct global symbol name 32742 * [#6968](https://github.com/apache/incubator-nuttx/pull/6968) arch: arm: change context switch to macro 32743 * [#7120](https://github.com/apache/incubator-nuttx/pull/7120) arch: arm: declare vector array default type to read-only 32744 * [#7173](https://github.com/apache/incubator-nuttx/pull/7173) arch: arm: declare vector array default type to read-only 32745 * [#7502](https://github.com/apache/incubator-nuttx/pull/7502) arch: arm: document the clever trick of PRI?32 macros 32746 * [#7154](https://github.com/apache/incubator-nuttx/pull/7154) arch: arm: fallback to common toolchain if armeb(endian big) is unavailable 32747 * [#7068](https://github.com/apache/incubator-nuttx/pull/7068) arch: arm: fix backtrace busyloop 32748 * [#7158](https://github.com/apache/incubator-nuttx/pull/7158) arch: arm: fix conditional compilation term (#else) 32749 * [#7755](https://github.com/apache/incubator-nuttx/pull/7755) arch: arm: generating assemble code in ARM states by default 32750 * [#7827](https://github.com/apache/incubator-nuttx/pull/7827) arch: arm: Kconfig: add cortex-m85 config 32751 * [#7128](https://github.com/apache/incubator-nuttx/pull/7128) arch: arm: makefile: linking libraries with GCC should use option -l 32752 * [#7830](https://github.com/apache/incubator-nuttx/pull/7830) arch: arm: qemu-armv8a/netnsh: Set iob buffer size to 1514 to improve performance 32753 * [#7165](https://github.com/apache/incubator-nuttx/pull/7165) arch: arm: redefine the linker symbols as armlink style 32754 * [#7824](https://github.com/apache/incubator-nuttx/pull/7824) arch: arm: only compare callee-saved registers for fpu 32755 * [#7337](https://github.com/apache/incubator-nuttx/pull/7337) arch: arm: Remove the unnecessary cast for main_t, NULL and argv 32756 * [#7775](https://github.com/apache/incubator-nuttx/pull/7775) arch: arm: sync ARM_THUMB support from cortex-a 32757 * [#7653](https://github.com/apache/incubator-nuttx/pull/7653) arch: arm: llvm/clang: add support for LLVMEmbeddedToolchainForArm release-15.0.2 32758 * [#7212](https://github.com/apache/incubator-nuttx/pull/7212) arch: arm: armv[7|8]-m: Implement up_invalidate_icache 32759 * [#7288](https://github.com/apache/incubator-nuttx/pull/7288) arch: arm: armv7-a: add l2 page mapping interface 32760 * [#7064](https://github.com/apache/incubator-nuttx/pull/7064) arch: arm: armv7-a: icache also need SMP cache coherency configuration 32761 * [#7141](https://github.com/apache/incubator-nuttx/pull/7141) arch: arm: armv7-a: mmu enable should after enable SMP 32762 * [#7149](https://github.com/apache/incubator-nuttx/pull/7149) arch: arm: armv7-a: remove the code for CONFIG_ARCH_PGPOOL_MAPPING=n 32763 * [#7290](https://github.com/apache/incubator-nuttx/pull/7290) arch: arm: armv7-a: set normal memory shareable in smp mode 32764 * [#7171](https://github.com/apache/incubator-nuttx/pull/7171) arch: arm: armv7-r: correct include path of chip.h 32765 * [#7718](https://github.com/apache/incubator-nuttx/pull/7718) arch: arm: armv7-r: correct the wrong usage of ARMV7A_XX marco 32766 * [#7577](https://github.com/apache/incubator-nuttx/pull/7577) arch: arm: armv7-r: fix arm_gic_nlines redefines 32767 * [#7190](https://github.com/apache/incubator-nuttx/pull/7190) arch: arm: armv7-r: fix build break on armlink 32768 * [#7155](https://github.com/apache/incubator-nuttx/pull/7155) arch: arm: armv7-r: remove incorrect include header "addrenv.h" 32769 * [#7773](https://github.com/apache/incubator-nuttx/pull/7773) arch: arm: armv7-r: sync ARM_THUMB support from cortex-a 32770 * [#7513](https://github.com/apache/incubator-nuttx/pull/7513) arch: arm: armv7-a/r: add isb after CACHE and TLB operations. 32771 * [#7195](https://github.com/apache/incubator-nuttx/pull/7195) arch: arm: armv7-a/r: SMP hande all cores start at same time 32772 * [#7338](https://github.com/apache/incubator-nuttx/pull/7338) arch: arm: armv7-a/r: Don't define fiq stack if CONFIG_ARMV7A_DECODEFIQ=n 32773 * [#7751](https://github.com/apache/incubator-nuttx/pull/7751) arch: arm: armv7-a/r: thumb: force assembler files to be interpreted as Thumb code 32774 * [#7129](https://github.com/apache/incubator-nuttx/pull/7129) arch: arm: armv7-a/r: Implement up_affinity_irq 32775 * [#7144](https://github.com/apache/incubator-nuttx/pull/7144) arch: arm: armv7-a/r: only primary can do invalidate_dcache_all() at startting 32776 * [#7113](https://github.com/apache/incubator-nuttx/pull/7113) arch: arm: armv7-a/r: refact cp15_cache functions 32777 * [#7045](https://github.com/apache/incubator-nuttx/pull/7045) arch: arm: armv7-a/r: use SRS and RFE for exception handler 32778 * [#7063](https://github.com/apache/incubator-nuttx/pull/7063) arch: arm: armv7-a/r: use generic timer to realize arm_timer 32779 * [#7067](https://github.com/apache/incubator-nuttx/pull/7067) arch: arm: armv7-a/r: cache: fix up_clean_dcache() slowly 32780 * [#7099](https://github.com/apache/incubator-nuttx/pull/7099) arch: arm: armv7-a/r: modify regs index to improve exception performance 32781 * [#7384](https://github.com/apache/incubator-nuttx/pull/7384) arch: arm: armv8-m MPU fixes 32782 * [#7423](https://github.com/apache/incubator-nuttx/pull/7423) arch: arm: toolchain: update toolchain comment to avoid confusion 32783 * [#7406](https://github.com/apache/incubator-nuttx/pull/7406) arch: arm: cxd56xx: Fix stall bulk xfer when sending 512 byte data 32784 * [#7405](https://github.com/apache/incubator-nuttx/pull/7405) arch: arm: cxd56xx: Fix deadlock by using GNSS CEP file on SPI-Flash 32785 * [#6842](https://github.com/apache/incubator-nuttx/pull/6842) arch: arm: imx6: enet update 32786 * [#7096](https://github.com/apache/incubator-nuttx/pull/7096) arch: arm: imxrt: add support for PWM synchronization 32787 * [#7164](https://github.com/apache/incubator-nuttx/pull/7164) arch: arm: imxrt: add support for ADC triggering by an external signal 32788 * [#7593](https://github.com/apache/incubator-nuttx/pull/7593) arch: arm: imxrt: add Support for NXP TJA1103 PHY 32789 * [#6989](https://github.com/apache/incubator-nuttx/pull/6989) arch: arm: imxrt: encoder: add support for QEIOC_GETINDEX ioctl 32790 * [#7146](https://github.com/apache/incubator-nuttx/pull/7146) arch: arm: imxrt: disable PWM synchronization when XBAR connection fails 32791 * [#7178](https://github.com/apache/incubator-nuttx/pull/7178) arch: arm: lc823450: Fix to boot 32792 * [#6813](https://github.com/apache/incubator-nuttx/pull/6813) arch: arm: kinetis: EDMA update 32793 * [#7111](https://github.com/apache/incubator-nuttx/pull/7111) arch: arm: phy62xx: support MTDIOC_ERASESTATE 32794 * [#7142](https://github.com/apache/incubator-nuttx/pull/7142) arch: arm: sama5: add SAMA5D2 support for SAMA5 xdma driver 32795 * [#7698](https://github.com/apache/incubator-nuttx/pull/7698) arch: arm: sama5: Corrects PIO errors and omissions for SAMA5D2 32796 * [#7740](https://github.com/apache/incubator-nuttx/pull/7740) arch: arm: sama5: fix recursive dependency 32797 * [#7702](https://github.com/apache/incubator-nuttx/pull/7702) arch: arm: sama5: Fix SAMA5D2 ADC and TSD problems 32798 * [#7730](https://github.com/apache/incubator-nuttx/pull/7730) arch: arm: sama5: Fixes for SAMA5D2 Flexcom USART 32799 * [#7761](https://github.com/apache/incubator-nuttx/pull/7761) arch: arm: sama5: SAMA5D2 TDC, ADC and TC Corrections 32800 * [#7112](https://github.com/apache/incubator-nuttx/pull/7112) arch: arm: samv7: fix random corruption of data after SDIO RX DMA transaction 32801 * [#6830](https://github.com/apache/incubator-nuttx/pull/6830) arch: arm: samv7: get TX DMA running for HSMCI interface 32802 * [#6814](https://github.com/apache/incubator-nuttx/pull/6814) arch: arm: s32k1xx: EDMA clean up and loop support 32803 * [#7758](https://github.com/apache/incubator-nuttx/pull/7758) arch: arm: s32k1xx: LPI2C Add DMA support and fix compile 32804 * [#6821](https://github.com/apache/incubator-nuttx/pull/6821) arch: arm: s32k1xx: LPI2C Add DMA support 32805 * [#6882](https://github.com/apache/incubator-nuttx/pull/6882) arch: arm: S32K1xx: Fixed PM bug for clockconfig 32806 * [#7216](https://github.com/apache/incubator-nuttx/pull/7216) arch: arm: s32k1xx: Fix FlexIO timer register access macros 32807 * [#7217](https://github.com/apache/incubator-nuttx/pull/7217) arch: arm: s32k1xx: Allow building with debug features and no console. 32808 * [#7737](https://github.com/apache/incubator-nuttx/pull/7737) arch: arm: s32K3xx: RAM fixes 32809 * [#7759](https://github.com/apache/incubator-nuttx/pull/7759) arch: arm: s32k3xx: EDMA add looping and Error handling 32810 * [#7757](https://github.com/apache/incubator-nuttx/pull/7757) arch: arm: s32k3xx: EDMA fix DMAMUX1 access violation 32811 * [#7784](https://github.com/apache/incubator-nuttx/pull/7784) arch: arm: s32k3xx: EDMA Set Backdoor for DTCM memory map 32812 * [#7538](https://github.com/apache/incubator-nuttx/pull/7538) arch: arm: stm32_eth: Fix in assertion parameters. 32813 * [#7611](https://github.com/apache/incubator-nuttx/pull/7611) arch: arm: stm32: fix ADC clock after ef517ed 32814 * [#7592](https://github.com/apache/incubator-nuttx/pull/7592) arch: arm: stm32: 1wire: Don't free the context if the reference doesn't equal zero 32815 * [#7385](https://github.com/apache/incubator-nuttx/pull/7385) arch: arm: stm32: socketcan: fix the EFF flag for received frames 32816 * [#7347](https://github.com/apache/incubator-nuttx/pull/7347) arch: arm: stm32: socketcan: fixes for arm_netinitialize 32817 * [#7346](https://github.com/apache/incubator-nuttx/pull/7346) arch: arm: stm32f7: add SocketCAN support 32818 * [#6930](https://github.com/apache/incubator-nuttx/pull/6930) arch: arm: stm32f7: fix syslog formats 32819 * [#6831](https://github.com/apache/incubator-nuttx/pull/6831) arch: arm: stm32f7: fix cache invalidation issue in Ethernet RX 32820 * [#6889](https://github.com/apache/incubator-nuttx/pull/6889) arch: arm: stm32f7: Kconfig: add STM32F7_SYSCFG 32821 * [#6810](https://github.com/apache/incubator-nuttx/pull/6810) arch: arm: stm32f7: port ADC driver from arch/stm32 32822 * [#6811](https://github.com/apache/incubator-nuttx/pull/6811) arch: arm: stm32f7: port FOC driver from arch/stm32 32823 * [#6809](https://github.com/apache/incubator-nuttx/pull/6809) arch: arm: stm32f7: port PWM driver from arch/stm32 32824 * [#6880](https://github.com/apache/incubator-nuttx/pull/6880) arch: arm: stm32f7: stm32_otghost.c: fix undeclared ret 32825 * [#7763](https://github.com/apache/incubator-nuttx/pull/7763) arch: arm: stm32f7: stm32f746 usb 32826 * [#7258](https://github.com/apache/incubator-nuttx/pull/7258) arch: arm: stm32h7: Add support for dual bank flash 32827 * [#7359](https://github.com/apache/incubator-nuttx/pull/7359) arch: arm: stm32h7: Add support for stm32h7b3xx MCU's flash 32828 * [#7417](https://github.com/apache/incubator-nuttx/pull/7417) arch: arm: stm32h7: Allow the use of the Network Monitor via polling 32829 * [#7017](https://github.com/apache/incubator-nuttx/pull/7017) arch: arm: stm32h7: kconfig 32830 * [#7401](https://github.com/apache/incubator-nuttx/pull/7401) arch: arm: stm32h7: multiple fixes for stm32h7 flash interface 32831 * [#6984](https://github.com/apache/incubator-nuttx/pull/6984) arch: arm: stm32h7: stm32_fdcan_sock: fix the FDCAN_LOOPBACK config macros 32832 * [#7174](https://github.com/apache/incubator-nuttx/pull/7174) arch: arm: stm32h7: SDMMC fix unaligned access for buffers not on 32 bit boundaries 32833 * [#7194](https://github.com/apache/incubator-nuttx/pull/7194) arch: arm: stm32h7: stm32_fdcan_sock: reserve space for timeval struct in the int… 32834 * [#6875](https://github.com/apache/incubator-nuttx/pull/6875) arch: arm: stm32l4: ADC: Change hardware trigger configuration 32835 * [#7167](https://github.com/apache/incubator-nuttx/pull/7167) arch: arm: stm32l5: fix conditional compilation term (#else) 32836 * [#7162](https://github.com/apache/incubator-nuttx/pull/7162) arch: arm: stm32u5: fix conditional compilation term (#else) 32837 * [#7166](https://github.com/apache/incubator-nuttx/pull/7166) arch: arm: stm32wl5: fix conditional compilation term (#else) 32838 * [#6781](https://github.com/apache/incubator-nuttx/pull/6781) arch: arm: stm32wl5: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc 32839 * [#6998](https://github.com/apache/incubator-nuttx/pull/6998) arch: arm: rp2040: Added SMART filesystem to RP2040 # 32840 * [#7037](https://github.com/apache/incubator-nuttx/pull/7037) arch: arm: rp2040: Add watchdog driver support to RP2040 32841 * [#7044](https://github.com/apache/incubator-nuttx/pull/7044) arch: arm: rp2040: Code Cleanup 32842 * [#7036](https://github.com/apache/incubator-nuttx/pull/7036) arch: arm: rp2040: Eliminate un-needed wait in rp2040 SMART filesystem 32843 * [#7021](https://github.com/apache/incubator-nuttx/pull/7021) arch: arm: rp2040: Fix race condition in RaspberryPi Pico W WiFi 32844 * [#7321](https://github.com/apache/incubator-nuttx/pull/7321) arch: arm: rp2040: Use the correct marcro name for RP2040_UART0_BASE 32845 * [#7029](https://github.com/apache/incubator-nuttx/pull/7029) arch: arm: telink: add custom setjmp implementation for tlsr82. 32846 * [#7204](https://github.com/apache/incubator-nuttx/pull/7204) arch: arm: tlsr82: move peripherals pin config to board.h 32847 * [#7172](https://github.com/apache/incubator-nuttx/pull/7172) arch: arm: tlsr82: replace incompatible instruction sets to internal implement 32848 * [#7133](https://github.com/apache/incubator-nuttx/pull/7133) arch: arm: tlsr82: serial: clear tx index also when uart_reset called. 32849 * [#7130](https://github.com/apache/incubator-nuttx/pull/7130) arch: arm: tlsr82: Use flase_read ins of memcpy 32850 * [#7630](https://github.com/apache/incubator-nuttx/pull/7630) arch: arm64: add support for Generic Interrupt Controller Version 2 32851 * [#7304](https://github.com/apache/incubator-nuttx/pull/7304) arch: arm64: add Cortex-A57 and Cortex-A72 configurations 32852 * [#7362](https://github.com/apache/incubator-nuttx/pull/7362) arch: arm64: arm64_arch_timer: delete unused includes 32853 * [#7256](https://github.com/apache/incubator-nuttx/pull/7256) arch: arm64: arm64_mmu: add mmu_nxrt_config 32854 * [#7295](https://github.com/apache/incubator-nuttx/pull/7295) arch: arm64: cleanup defconfigs 32855 * [#7745](https://github.com/apache/incubator-nuttx/pull/7745) arch: arm64: Fix qemu_pl011_txint() in qemu_serial.c 32856 * [#7262](https://github.com/apache/incubator-nuttx/pull/7262) arch: arm64: qemu/qemu_boot: fix wrong memory size 32857 * [#7623](https://github.com/apache/incubator-nuttx/pull/7623) arch: arm64: Move group_addrenv to arm64_syscall_switch 32858 * [#7261](https://github.com/apache/incubator-nuttx/pull/7261) arch: arm64: update to follow NuttX C Coding Standard 32859 * [#6815](https://github.com/apache/incubator-nuttx/pull/6815) arch: mips: pic32mx: add option to disable JTAG at runtime 32860 * [#6962](https://github.com/apache/incubator-nuttx/pull/6962) arch: risc-v: addrenv # 32861 * [#7246](https://github.com/apache/incubator-nuttx/pull/7246) arch: risc-v: address environments: Add basic sanity checks for section boundaries 32862 * [#7252](https://github.com/apache/incubator-nuttx/pull/7252) arch: risc-v: BUILD_KERNEL + SMP 32863 * [#6957](https://github.com/apache/incubator-nuttx/pull/6957) arch: risc-v: Dump trap val in exception handler 32864 * [#6817](https://github.com/apache/incubator-nuttx/pull/6817) arch: risc-v: Fix kernel MMU mapping for L3 table 32865 * [#7744](https://github.com/apache/incubator-nuttx/pull/7744) arch: risc-v: Fix nsec overflow in riscv_mtimer_current() 32866 * [#6963](https://github.com/apache/incubator-nuttx/pull/6963) arch: risc-v: Fix up_check_tcbstack() for CONFIG_ARCH_ADDRENV=y 32867 * [#7242](https://github.com/apache/incubator-nuttx/pull/7242) arch: risc-v: Introduce g_percpu_spin in riscv_percpu.c 32868 * [#7249](https://github.com/apache/incubator-nuttx/pull/7249) arch: risc-v: Introduce RISCV_IPI macro for SMP 32869 * [#6818](https://github.com/apache/incubator-nuttx/pull/6818) arch: risc-v: Implement riscv_sbi_set_timer 32870 * [#7137](https://github.com/apache/incubator-nuttx/pull/7137) arch: risc-v: Remove FPU support from qemu-rv 32871 * [#7823](https://github.com/apache/incubator-nuttx/pull/7823) arch: risc-v: mmu-mappings: Mark kernel page tables as NOLOAD to save ROM space in kernel 32872 * [#7229](https://github.com/apache/incubator-nuttx/pull/7229) arch: risc-v: bl602: Add initial DMA support, including SPI over DMA. 32873 * [#7280](https://github.com/apache/incubator-nuttx/pull/7280) arch: risc-v: bl602/dma: Fix possible call of null pointer 32874 * [#7263](https://github.com/apache/incubator-nuttx/pull/7263) arch: risc-v: bl602: Fix bug in lli functionality for dma. 32875 * [#7228](https://github.com/apache/incubator-nuttx/pull/7228) arch: risc-v: qemu-rv: Add M-timer handling for BUILD_KERNEL 32876 * [#7221](https://github.com/apache/incubator-nuttx/pull/7221) arch: risc-v: qemu-rv: Fix qemu_rv_start_s() for S-mode 32877 * [#7244](https://github.com/apache/incubator-nuttx/pull/7244) arch: risc-v: qemu-rv: Fix build errors in chip.h for BUILD_KERNEL + SMP 32878 * [#6848](https://github.com/apache/incubator-nuttx/pull/6848) arch: risc-v: qemu-rv: Fix high CPU usage in SMP mode 32879 * [#7254](https://github.com/apache/incubator-nuttx/pull/7254) arch: risc-v: qemu-rv: Fix timer and IPI handling for BUILD_KERNEL+SMP 32880 * [#7259](https://github.com/apache/incubator-nuttx/pull/7259) arch: risc-v: qemu-rv: Refactor the entry point name for BUILD_KERNEL 32881 * [#7829](https://github.com/apache/incubator-nuttx/pull/7829) arch: risc-v: esp32: Fix maximum I2C FIFO size (now SSD1306 will work) 32882 * [#7822](https://github.com/apache/incubator-nuttx/pull/7822) arch: risc-v: esp32[-S2/-S3]: Refactor and rename linker scripts 32883 * [#7800](https://github.com/apache/incubator-nuttx/pull/7800) arch: risc-v: esp32: Optimize macro and ensure overwrite protection 32884 * [#7790](https://github.com/apache/incubator-nuttx/pull/7790) arch: risc-v: esp32: Modify REG_[GET/SET]_FIELD to use [get/set]reg32 32885 * [#7817](https://github.com/apache/incubator-nuttx/pull/7817) arch: risc-v: es32c3: improve passthrough performance by iob offload 32886 * [#7637](https://github.com/apache/incubator-nuttx/pull/7637) arch: risc-v: esp32c3: fix i2c bug of timout 32887 * [#7214](https://github.com/apache/incubator-nuttx/pull/7214) arch: risc-v: esp32c3: Fix retrieval for linker-defined symbol 32888 * [#6988](https://github.com/apache/incubator-nuttx/pull/6988) arch: risc-v: esp32c3: Fix some UBSAN shift-out-of-bounds warnings 32889 * [#7439](https://github.com/apache/incubator-nuttx/pull/7439) arch: risc-v: esp32[-s2/-s3/-c3]: Re-sort SPI Flash configs 32890 * [#7445](https://github.com/apache/incubator-nuttx/pull/7445) arch: risc-v: fix bl602 i2c sem init mistake 32891 * [#7060](https://github.com/apache/incubator-nuttx/pull/7060) arch: risc-v: mmu: Fix L3 mappings for kernel, and mpfs protected mode user space 32892 * [#7270](https://github.com/apache/incubator-nuttx/pull/7270) arch: risc-v: mpfs: Add a config option for enabling L2 cache 32893 * [#7460](https://github.com/apache/incubator-nuttx/pull/7460) arch: risc-v: mpfs: Add a configuration flag for SD-card card detec… 32894 * [#7203](https://github.com/apache/incubator-nuttx/pull/7203) arch: risc-v: mpfs: add conf flags for ddr 32895 * [#7047](https://github.com/apache/incubator-nuttx/pull/7047) arch: risc-v: mpfs: emmcsd: allow switching from SD to eMMC 32896 * [#7092](https://github.com/apache/incubator-nuttx/pull/7092) arch: risc-v: mpfs: emmcsd: further enhance the clocking 32897 * [#7075](https://github.com/apache/incubator-nuttx/pull/7075) arch: risc-v: mpfs: emmcsd: provide options for selecting clk speed 32898 * [#7526](https://github.com/apache/incubator-nuttx/pull/7526) arch: risc-v: mpfs: Fix the section align mask checks 32899 * [#6911](https://github.com/apache/incubator-nuttx/pull/6911) arch: risc-v: mpfs: Fixes for MSSIO GPIO configurations 32900 * [#7507](https://github.com/apache/incubator-nuttx/pull/7507) arch: risc-v: mpfs: ihc rework 32901 * [#6922](https://github.com/apache/incubator-nuttx/pull/6922) arch: risc-v: mpfs: ihc: fix performance issue 32902 * [#6902](https://github.com/apache/incubator-nuttx/pull/6902) arch: risc-v: mpfs: ihc: update vq ids 32903 * [#6872](https://github.com/apache/incubator-nuttx/pull/6872) arch: risc-v: mpfs: ihc: don't use semaphores with OpenSBI vendor calls 32904 * [#7461](https://github.com/apache/incubator-nuttx/pull/7461) arch: risc-v: mpfs: Lower the defaul… 32905 * [#7606](https://github.com/apache/incubator-nuttx/pull/7606) arch: risc-v: mpfs: Mark .start section attributes explicitly 32906 * [#6879](https://github.com/apache/incubator-nuttx/pull/6879) arch: risc-v: mpfs: Make entrypoint table run-time configurable 32907 * [#7527](https://github.com/apache/incubator-nuttx/pull/7527) arch: risc-v: mpfs: opensbi: fix random boot failures 32908 * [#6878](https://github.com/apache/incubator-nuttx/pull/6878) arch: risc-v: mpfs: opensbi: Add the ddr memory region back to opensbi ld script 32909 * [#6820](https://github.com/apache/incubator-nuttx/pull/6820) arch: risc-v: mpfs: Remove the ddrstorage section from the OpenSBI package 32910 * [#7230](https://github.com/apache/incubator-nuttx/pull/7230) arch: risc-v: mpfs: Set PHY speed advert after PHY … 32911 * [#7091](https://github.com/apache/incubator-nuttx/pull/7091) arch: risc-v: mpfs: Stop the DDR training once it is completed 32912 * [#6953](https://github.com/apache/incubator-nuttx/pull/6953) arch: risc-v: mpfs: usb: fix cppcheck findings 32913 * [#6951](https://github.com/apache/incubator-nuttx/pull/6951) arch: risc-v: mpfs: usb: fix infinite loop issue 32914 * [#7041](https://github.com/apache/incubator-nuttx/pull/7041) arch: risc-v: mpfs: usb: fix usb restart 32915 * [#7013](https://github.com/apache/incubator-nuttx/pull/7013) arch: risc-v: mpfs: usb: provide more endpoints 32916 * [#7783](https://github.com/apache/incubator-nuttx/pull/7783) arch: sim: add fb poll notify support 32917 * [#7798](https://github.com/apache/incubator-nuttx/pull/7798) arch: sim: add v4l2 driver for sim 32918 * [#6933](https://github.com/apache/incubator-nuttx/pull/6933) arch: sim: added gcov dump on application exit. 32919 * [#6935](https://github.com/apache/incubator-nuttx/pull/6935) arch: sim: add bth4 bridge codes 32920 * [#6897](https://github.com/apache/incubator-nuttx/pull/6897) arch: sim: add windows host simulate support 32921 * [#6903](https://github.com/apache/incubator-nuttx/pull/6903) arch: sim: Assign virtio vring notifyid to RSC_NOTIFY_ID_ANY 32922 * [#7015](https://github.com/apache/incubator-nuttx/pull/7015) arch: sim: fix signal crash in SMP mode 32923 * [#7380](https://github.com/apache/incubator-nuttx/pull/7380) arch: sim: fix MTU mismatch on TAP device in host route mode 32924 * [#7334](https://github.com/apache/incubator-nuttx/pull/7334) arch: sim: fix tx pipeline in netdriver to avoid delaying packets. 32925 * [#7771](https://github.com/apache/incubator-nuttx/pull/7771) arch: sim: Make the naming consistent with each other 32926 * [#7779](https://github.com/apache/incubator-nuttx/pull/7779) arch: sim: netdriver: set ipv6 addr to host route 32927 * [#7170](https://github.com/apache/incubator-nuttx/pull/7170) arch: sim: remove stderr in the function renaming list 32928 * [#6852](https://github.com/apache/incubator-nuttx/pull/6852) arch: sim: remove up_smpsignal.o and up_touchscreen.o from REQUIREDOBJS 32929 * [#6883](https://github.com/apache/incubator-nuttx/pull/6883) arch: sim: set CMDLINE env to the argument user pass to nuttx 32930 * [#7717](https://github.com/apache/incubator-nuttx/pull/7717) arch: sim: sim_alsa.c: add mp3 offload playback on sim 32931 * [#7282](https://github.com/apache/incubator-nuttx/pull/7282) arch: sim: support multiple tapdev for sim 32932 * [#7655](https://github.com/apache/incubator-nuttx/pull/7655) arch: sim: Unify the host soruce file naming 32933 * [#6908](https://github.com/apache/incubator-nuttx/pull/6908) arch: sim: wchar_t: fix visual studio Compiler Error C2371 32934 * [#7335](https://github.com/apache/incubator-nuttx/pull/7335) arch: sparc: add support of spin_lock for LEON3 and LEON4 32935 * [#7292](https://github.com/apache/incubator-nuttx/pull/7292) arch: sparc: dismiss non-Unicode characters issue 32936 * [#7579](https://github.com/apache/incubator-nuttx/pull/7579) arch: xtensa: Add missing SENS registers to ESP32 32937 * [#6993](https://github.com/apache/incubator-nuttx/pull/6993) arch: xtensa: Minor issues to fix ESP32's TWAI. 32938 * [#6990](https://github.com/apache/incubator-nuttx/pull/6990) arch: xtensa: Avoid including handlers when no coprocessor is available 32939 * [#6937](https://github.com/apache/incubator-nuttx/pull/6937) arch: xtensa: Remove non-existent ARCH_HAVE_TESTSET support for ESP32-S2 32940 * [#7447](https://github.com/apache/incubator-nuttx/pull/7447) arch: xtensa: Define COMMON_CTX_REGS for chips without FPU (e.g. ESP32-S2) 32941 * [#6924](https://github.com/apache/incubator-nuttx/pull/6924) arch: xtensa: Fix allocation of FPU registers in exception context 32942 * [#7220](https://github.com/apache/incubator-nuttx/pull/7220) arch: xtensa: Add I2S support for ESP32 32943 * [#7375](https://github.com/apache/incubator-nuttx/pull/7375) arch: xtensa: Save SCOMPARE1 on context switches 32944 * [#7336](https://github.com/apache/incubator-nuttx/pull/7336) arch: xtensa: esp32_qencoder: Fix small issues and typos reported by Tiago Medicci 32945 * [#7328](https://github.com/apache/incubator-nuttx/pull/7328) arch: xtensa: esp32: Add support to Quadrature Encoder 32946 * [#7236](https://github.com/apache/incubator-nuttx/pull/7236) arch: xtensa: esp32: Allow allocation of user data in SPI RAM 32947 * [#7361](https://github.com/apache/incubator-nuttx/pull/7361) arch: xtensa: esp32: i2c: Add macros to conform with other peripherals and fix typos 32948 * [#7596](https://github.com/apache/incubator-nuttx/pull/7596) arch: xtensa: esp32: i2s: implement I2S receiver module 32949 * [#7501](https://github.com/apache/incubator-nuttx/pull/7501) arch: xtensa: esp32: i2s: use internal buffer to handle multiple audio formats 32950 * [#7360](https://github.com/apache/incubator-nuttx/pull/7360) arch: xtensa: esp32: i2s: Reduce MCLK multiple to support existing boards 32951 * [#7373](https://github.com/apache/incubator-nuttx/pull/7373) arch: xtensa: esp32s2: i2s: add support for I2S peripheral 32952 * [#7537](https://github.com/apache/incubator-nuttx/pull/7537) arch: xtensa: esp32s2: i2s: use internal buffer to handle multiple audio formats 32953 * [#7363](https://github.com/apache/incubator-nuttx/pull/7363) arch: xtensa: esp32s2: Fix SPI 32954 * [#6823](https://github.com/apache/incubator-nuttx/pull/6823) arch: xtensa: esp32s2: Add basic support to SPI 32955 * [#7641](https://github.com/apache/incubator-nuttx/pull/7641) arch: xtensa: esp32s2: i2s: implement I2S receiver module 32956 * [#7799](https://github.com/apache/incubator-nuttx/pull/7799) arch: xtensa: esp32-s3: Add support for Protected Mode 32957 32958## Driver Support 32959### New Driver Support 32960 32961 * [#7042](https://github.com/apache/incubator-nuttx/pull/7042) drivers: Add rpmsgmtd support 32962 * [#7466](https://github.com/apache/incubator-nuttx/pull/7466) drivers: sensors: add LTR308 ambient light sensor 32963 * [#7546](https://github.com/apache/incubator-nuttx/pull/7546) drivers: audio: Add support for the ES8388 codec (output) 32964 * [#6869](https://github.com/apache/incubator-nuttx/pull/6869) drivers: misc: rpmsgdev: add rpmsg-device support. 32965 * [#7442](https://github.com/apache/incubator-nuttx/pull/7442) drivers: misc: rpmsgblk: rpmsg block device support 32966 * [#7678](https://github.com/apache/incubator-nuttx/pull/7678) drivers: segger: Add Segger RTT stream support 32967 * [#7609](https://github.com/apache/incubator-nuttx/pull/7609) drivers: mtd: add support for mx25l16 serial flash 32968 32969### Drivers With Significant Improvements 32970 32971 * [#7429](https://github.com/apache/incubator-nuttx/pull/7429) drivers: audio: add i2s_mclkfrequency method to the I2S lower half 32972 * [#7225](https://github.com/apache/incubator-nuttx/pull/7225) drivers: btuart driver improvement 32973 * [#7739](https://github.com/apache/incubator-nuttx/pull/7739) drivers: input: touchscreen_upper: add missing function code comments 32974 * [#6853](https://github.com/apache/incubator-nuttx/pull/6853) drivers: ioexpander: Honor C89 standard 32975 * [#7032](https://github.com/apache/incubator-nuttx/pull/7032) drivers: ipcc: enter/leave critical section should in pairs 32976 * [#6849](https://github.com/apache/incubator-nuttx/pull/6849) drivers: leds: ws2812: Revert SPI frequency change 32977 * [#7643](https://github.com/apache/incubator-nuttx/pull/7643) drivers: lcd: st7789: fix invalid displayed color 32978 * [#7277](https://github.com/apache/incubator-nuttx/pull/7277) drivers: lcd: Fix npixels parameter in calls to getrun/putrun 32979 * [#6837](https://github.com/apache/incubator-nuttx/pull/6837) drivers: lcd: Framebuffer and lcddev buffer usage for LCD displays drivers 32980 * [#7403](https://github.com/apache/incubator-nuttx/pull/7403) drivers: lte: Include nuttx/fs/ioctl.h instead of wireless.h 32981 * [#7840](https://github.com/apache/incubator-nuttx/pull/7840) drivers: note: unify spinlock related functions 32982 * [#7533](https://github.com/apache/incubator-nuttx/pull/7533) drivers: mbox: Don't reference the nonexistent CONFIG_MBOX 32983 * [#6827](https://github.com/apache/incubator-nuttx/pull/6827) drivers: misc: Refine rpmsg server initialization sequence 32984 * [#7255](https://github.com/apache/incubator-nuttx/pull/7255) drivers: misc: rpmsgdev: add rpmsgdev poll() support. 32985 * [#7753](https://github.com/apache/incubator-nuttx/pull/7753) drivers: misc: rpmsgdev: rpmsgdegv ioctl and seek buf fix 32986 * [#6904](https://github.com/apache/incubator-nuttx/pull/6904) drivers: mmcsd: Double the MMCSD_IDLE_DELAY from 50ms to 100ms 32987 * [#7084](https://github.com/apache/incubator-nuttx/pull/7084) drivers: mmcsd: Remove executable permissions from source files 32988 * [#7077](https://github.com/apache/incubator-nuttx/pull/7077) drivers: mmcsd: mmcsd_spi:reinit spi sd when sd status is wrong. 32989 * [#7248](https://github.com/apache/incubator-nuttx/pull/7248) drivers: modem: update altair modem 32990 * [#7408](https://github.com/apache/incubator-nuttx/pull/7408) drivers: modem: alt1250: Change return type of bool function 32991 * [#7402](https://github.com/apache/incubator-nuttx/pull/7402) drivers: modem: alt1250: Fix poll function 32992 * [#7612](https://github.com/apache/incubator-nuttx/pull/7612) drivers: motor: foc: remove unused variable 32993 * [#6829](https://github.com/apache/incubator-nuttx/pull/6829) drivers: mtd: init commit of power-loss resilient cfg 32994 * [#7046](https://github.com/apache/incubator-nuttx/pull/7046) drivers: mtd: config: Remove MTD_CONFIG_ERASEDVALUE 32995 * [#7691](https://github.com/apache/incubator-nuttx/pull/7691) drivers: mtd: GD25Q 4 byte read status issue 32996 * [#7358](https://github.com/apache/incubator-nuttx/pull/7358) drivers: mtd/smart: Fix a compile error in smart_fsck 32997 * [#7218](https://github.com/apache/incubator-nuttx/pull/7218) drivers: net: Enable NETDEVICES by default 32998 * [#7251](https://github.com/apache/incubator-nuttx/pull/7251) drivers: net: Fix the skeleton network driver 32999 * [#7087](https://github.com/apache/incubator-nuttx/pull/7087) drivers: net: w5500: Fix small typo 33000 * [#7131](https://github.com/apache/incubator-nuttx/pull/7131) drivers: poll: add poll_notify() api and call it in all drivers. 33001 * [#7255](https://github.com/apache/incubator-nuttx/pull/7255) drivers: rpmsgdev: add rpmsgdev poll() support. 33002 * [#7287](https://github.com/apache/incubator-nuttx/pull/7287) drivers: rpmsgdev: forward all open/close to server to support complex driver 33003 * [#7603](https://github.com/apache/incubator-nuttx/pull/7603) drivers: rpmsgdev: support blocked read/write operation 33004 * [#7575](https://github.com/apache/incubator-nuttx/pull/7575) drivers: rptun: bug fix 33005 * [#7645](https://github.com/apache/incubator-nuttx/pull/7645) drivers: rptun: fix rptun don't wait issue when get tx patyload 33006 * [#7709](https://github.com/apache/incubator-nuttx/pull/7709) drivers: segger: let segger RTT kconfig sink one level 33007 * [#7634](https://github.com/apache/incubator-nuttx/pull/7634) drivers: segger: make RTT_MODE configurable 33008 * [#7704](https://github.com/apache/incubator-nuttx/pull/7704) drivers: segger: Refine Kconfig option 33009 * [#7809](https://github.com/apache/incubator-nuttx/pull/7809) drivers: segger: Systemview add kconfig SEGGER_SYSVIEW_PREFIX for co-existance with other note drivers 33010 * [#6807](https://github.com/apache/incubator-nuttx/pull/6807) drivers: sensors: rename /dev/sensor -> /dev/uorb 33011 * [#6939](https://github.com/apache/incubator-nuttx/pull/6939) drivers: sensors: as5048b.c: change initialization of struct to C89 standard 33012 * [#7547](https://github.com/apache/incubator-nuttx/pull/7547) drivers: sensors: mpu60x0: Remove the simple mpu_lock/mpu_unlock 33013 * [#7061](https://github.com/apache/incubator-nuttx/pull/7061) drivers: serial: uart_rpmsg: add mutex to dmatx 33014 * [#6901](https://github.com/apache/incubator-nuttx/pull/6901) drivers: serial: uart: h4: add ioctl interface 33015 * [#7672](https://github.com/apache/incubator-nuttx/pull/7672) drivers: syslog: Move syslog stream to libc like other stream implementation 33016 * [#7674](https://github.com/apache/incubator-nuttx/pull/7674) drivers: syslog: support stream as syslog backend. 33017 * [#6894](https://github.com/apache/incubator-nuttx/pull/6894) drivers: syslog: Refine how to specify iob and ramlog data section 33018 * [#7659](https://github.com/apache/incubator-nuttx/pull/7659) drivers: syslog: add stream as syslog backend, let crash dump into stream. 33019 * [#7211](https://github.com/apache/incubator-nuttx/pull/7211) drivers: telnet: Remove io work thread 33020 * [#7494](https://github.com/apache/incubator-nuttx/pull/7494) drivers: timers: arch_timer: adjust timer/arch_timer to support tick 33021 * [#7441](https://github.com/apache/incubator-nuttx/pull/7441) drivers: timers: capture: Fix mutual exclusion lock 33022 * [#7126](https://github.com/apache/incubator-nuttx/pull/7126) drivers: timers: watchdog: Support auto monitor keep alive from timer/oneshot lowerhalf 33023 * [#7825](https://github.com/apache/incubator-nuttx/pull/7825) drivers: usb: ft232r: fixed build issue 33024 * [#7805](https://github.com/apache/incubator-nuttx/pull/7805) drivers: usbdev: adb: fixed usbclass steup issue 33025 * [#7264](https://github.com/apache/incubator-nuttx/pull/7264) drivers: usrsock: Add driver with type of rpmsg interface 33026 * [#7226](https://github.com/apache/incubator-nuttx/pull/7226) drivers: usrsock: Check CONFIG_NET_USRSOCK_DEVICE instead CONFIG_NET_USRSOCK 33027 * [#7070](https://github.com/apache/incubator-nuttx/pull/7070) drivers: usrsock: up usrsock refactor 33028 * [#7754](https://github.com/apache/incubator-nuttx/pull/7754) drivers: video: add support for YUV formats 33029 * [#7687](https://github.com/apache/incubator-nuttx/pull/7687) drivers: video: add support for V4L2 mmap-ed buffer 33030 * [#7738](https://github.com/apache/incubator-nuttx/pull/7738) drivers: video: fb: add poll support 33031 * [#7749](https://github.com/apache/incubator-nuttx/pull/7749) drivers: video: enhance v4l2 compatibility 33032 * [#7521](https://github.com/apache/incubator-nuttx/pull/7521) drivers: video: Move _VIDIOCBASE and _VIDIOC to include/nuttx/fs/ioctl.h 33033 * [#7416](https://github.com/apache/incubator-nuttx/pull/7416) drivers: video: Update some features 33034 * [#7673](https://github.com/apache/incubator-nuttx/pull/7673) drivers: virtio: Add virtio-mmio and virtio-net drivers 33035 * [#6857](https://github.com/apache/incubator-nuttx/pull/6857) drivers: wireless: Add ioctl cmd to setting PTA prio 33036 * [#6934](https://github.com/apache/incubator-nuttx/pull/6934) drivers: wireless/bluetooth:add bt bridge codes 33037 * [#7024](https://github.com/apache/incubator-nuttx/pull/7024) drivers: wireless: Add SIOCGIFFLAGS support to gs2200m.c 33038 * [#6845](https://github.com/apache/incubator-nuttx/pull/6845) drivers: wireless: Added gSPI mode for Infineon CYW43439 WiFi chip. 33039 * [#7374](https://github.com/apache/incubator-nuttx/pull/7374) drivers: wireless: bcm43xxx: correct auth status if PSK is invaild 33040 * [#7543](https://github.com/apache/incubator-nuttx/pull/7543) drivers: wireless: lpwan/sx127x: correct device unlock interface to nxmutex_unlock() 33041 33042## Board Support 33043### New Board Support 33044 33045 * [#6850](https://github.com/apache/incubator-nuttx/pull/6850) boards: arm: rp2040: Added support for Raspberry Pi Pico W 33046 * [#7418](https://github.com/apache/incubator-nuttx/pull/7418) boards: arm: stm32wb: Flipper Zero initial support 33047 * [#7023](https://github.com/apache/incubator-nuttx/pull/7023) boards: arm: tiva: Add tm4c129e-launchpad 33048 * [#6895](https://github.com/apache/incubator-nuttx/pull/6895) boards: risc-v: esp32c3: Add initial support to esp32c3-devkit-rust-1 board 33049 * [#7685](https://github.com/apache/incubator-nuttx/pull/7685) boards: sparc: add initial support of s698pm-dkit board 33050 * [#7548](https://github.com/apache/incubator-nuttx/pull/7548) boards: xtensa: Added support for the ESP32-S2-Kaluga-1 board 33051 * [#7169](https://github.com/apache/incubator-nuttx/pull/7169) boards: xtensa: initial support for the ESP32-LyraT 33052 * [#7073](https://github.com/apache/incubator-nuttx/pull/7073) boards: xtensa: ttgo_lora_esp32: Add support to SX1276 33053 33054### Boards With Significant Improvements 33055 33056 * [#7330](https://github.com/apache/incubator-nuttx/pull/7330) boards: Change CONFIG_SYSTEM_NSH_SYMTAB to CONFIG_NSH_SYMTAB 33057 * [#7245](https://github.com/apache/incubator-nuttx/pull/7245) boards: Change the linker generated symbols from uint32_t to uint8_t array 33058 * [#7648](https://github.com/apache/incubator-nuttx/pull/7648) boards: enter/leave critical section should in pairs 33059 * [#7316](https://github.com/apache/incubator-nuttx/pull/7316) boards: Fix pthread_attr_setstacksize failed in ostest 33060 * [#7626](https://github.com/apache/incubator-nuttx/pull/7626) boards: iperf: device name will vary across different NICs # 33061 * [#7351](https://github.com/apache/incubator-nuttx/pull/7351) boards: Update telnetd related config after apps/nshlib change 33062 * [#7324](https://github.com/apache/incubator-nuttx/pull/7324) boards: Remove the duplicated prototype of CONFIG_INIT_ENTRYPOINT 33063 * [#7788](https://github.com/apache/incubator-nuttx/pull/7788) boards: Remove the unused function prototype(slcd_getstream) 33064 * [#7409](https://github.com/apache/incubator-nuttx/pull/7409) boards: arm: gcc: disable coverage analysis temporarily 33065 * [#7524](https://github.com/apache/incubator-nuttx/pull/7524) boards: arm: remove -funwind-tables from boards Make.defs 33066 * [#6847](https://github.com/apache/incubator-nuttx/pull/6847) boards: arm: imx6: sabre-6quad: Add netknsh_smp/defconfig 33067 * [#6826](https://github.com/apache/incubator-nuttx/pull/6826) boards: arm: imx6: sabre-6quad: Add telnetd to netknsh/defconfig 33068 * [#7604](https://github.com/apache/incubator-nuttx/pull/7604) boards: arm: lpc31xx/ea3131/pgnsh: enable DEFAULT_SMALL to reducing the code size 33069 * [#7071](https://github.com/apache/incubator-nuttx/pull/7071) boards: arm: rp2040: Add "telnet" configuration to Raspberry Pi Pico W 33070 * [#7243](https://github.com/apache/incubator-nuttx/pull/7243) boards: arm: raspberrypi-pico: Adjust CONFIG_UART0_TXBUFSIZE for SMP 33071 * [#6844](https://github.com/apache/incubator-nuttx/pull/6844) boards: arm: samv7: add support for GPIO driver based encoder 33072 * [#7601](https://github.com/apache/incubator-nuttx/pull/7601) boards: arm: samv7: Add SAMV7's capability to overwirte pwm pins 33073 * [#7122](https://github.com/apache/incubator-nuttx/pull/7122) boards: arm: sabre-6quad/lm3s6965-ek: ac6: add scatter linker script for sabre-6quad/lm3s6965-ek 33074 * [#7176](https://github.com/apache/incubator-nuttx/pull/7176) boards: arm: stm32: Add b-g474e-dpow1:ostest configuration. 33075 * [#7240](https://github.com/apache/incubator-nuttx/pull/7240) boards: arm: stm32: nucleo-f446re: add romfs support 33076 * [#6851](https://github.com/apache/incubator-nuttx/pull/6851) boards: arm: stm32: stm32f4discovery: Add Shift Game board example with gesture (APDS9960 sensor) support 33077 * [#7093](https://github.com/apache/incubator-nuttx/pull/7093) boards: arm: stm32: stm32F4Discovery: Add support to W5500 and board config example 33078 * [#7639](https://github.com/apache/incubator-nuttx/pull/7639) boards: arm: stm32: stm32f4discovery: icmp/arp message should talk to GS2200M through usrsock 33079 * [#7587](https://github.com/apache/incubator-nuttx/pull/7587) boards: arm: stm32: stm32f103-minimum: Enable nsh help and basic commands 33080 * [#7602](https://github.com/apache/incubator-nuttx/pull/7602) boards: arm: stm32: stm32f103-minimum: enable LTO to reducing the code size 33081 * [#6858](https://github.com/apache/incubator-nuttx/pull/6858) boards: arm: stm32f7: steval-eth001v1: add FOC examples 33082 * [#7588](https://github.com/apache/incubator-nuttx/pull/7588) boards: arm: stm32f103-minimum: Add ssd1306 example 33083 * [#6931](https://github.com/apache/incubator-nuttx/pull/6931) boards: arm: stm32f7: nucleo-144: fix CONFIG_STM32F4DISC… 33084 * [#7470](https://github.com/apache/incubator-nuttx/pull/7470) boards: arm: stm32f7: Files for pysimCoder on nucleo-h743zi2 # 33085 * [#7432](https://github.com/apache/incubator-nuttx/pull/7432) boards: arm: stm32f7: New files for pysimCoder 33086 * [#7487](https://github.com/apache/incubator-nuttx/pull/7487) boards: arm: stm32h7: Initialization of wdg 33087 * [#6944](https://github.com/apache/incubator-nuttx/pull/6944) boards: arm: stm32h7: add support for mcuboot 33088 * [#7427](https://github.com/apache/incubator-nuttx/pull/7427) boarda: arm: stm32h7: update mcuboot-loader configuration 33089 * [#4908](https://github.com/apache/incubator-nuttx/pull/4908) boards: arm: stm32h7: nucleo-h743zi: add board files to support mcuboot 33090 * [#7107](https://github.com/apache/incubator-nuttx/pull/7107) boards: arm: stm32h7: nucleo-h743zi: Remove CONFIG_ARMV7M_SYSTICK from stm32_boot_image.c 33091 * [#7040](https://github.com/apache/incubator-nuttx/pull/7470) boards: arm: stm32l4: nucleo-l496zg: modify clock config #7040 33092 * [#7479](https://github.com/apache/incubator-nuttx/pull/7479) boards: arm: stm32wb: flipperzero: adding LCD support 33093 * [#6863](https://github.com/apache/incubator-nuttx/pull/6863) boards: arm: spresense: Add fmsynth defconfig 33094 * [#7410](https://github.com/apache/incubator-nuttx/pull/7410) boards: arm: spresense: enable lte modem 33095 * [#7708](https://github.com/apache/incubator-nuttx/pull/7708) boards: arm: spresense: Fix the build error in cxd56_crashdump.c 33096 * [#7489](https://github.com/apache/incubator-nuttx/pull/7489) boards: arm: spresense: Minor update for video and lte driver 33097 * [#7793](https://github.com/apache/incubator-nuttx/pull/7793) boards: arm: spresense: set RNDIS default throttle entries to 24 (2*MTU) 33098 * [#7412](https://github.com/apache/incubator-nuttx/pull/7412) boards: arm: spresense: Update imageproc driver 33099 * [#6927](https://github.com/apache/incubator-nuttx/pull/6927) boards: arm: tiva: lm3s6965-ek: Fix to load ELF applications for qemu-protected 33100 * [#7183](https://github.com/apache/incubator-nuttx/pull/7183) boards: arm: tiva: tm4c129e-launchpad: Expand README.txt 33101 * [#7253](https://github.com/apache/incubator-nuttx/pull/7253) boards: arm: tiva: tm4c129e-launchpad: Enable priority inheritance in ostest config 33102 * [#7098](https://github.com/apache/incubator-nuttx/pull/7098) boards: arm: tlsr: Add specific section for discribe information 33103 * [#7303](https://github.com/apache/incubator-nuttx/pull/7303) boards: arm64: qemu/qemu-a53: Ensure the purity of the defconfig 33104 * [#7796](https://github.com/apache/incubator-nuttx/pull/7796) boards: arm64: a64: Add drivers for PIO and LEDs 33105 * [#7806](https://github.com/apache/incubator-nuttx/pull/7806) boards: arm64: a64: pinephone: add support of reboot command 33106 * [#6977](https://github.com/apache/incubator-nuttx/pull/6977) boards: sim: add usrsocktest config to detect the regression issue 33107 * [#7219](https://github.com/apache/incubator-nuttx/pull/7219) boards: sim: adb: Enable netdb 33108 * [#7332](https://github.com/apache/incubator-nuttx/pull/7332) boards: sim: Enable CONFIG_NSH_TELNET_LOGIN for adb 33109 * [#6892](https://github.com/apache/incubator-nuttx/pull/6892) boards: sim: Enable ubsan in sim:kasan 33110 * [#7210](https://github.com/apache/incubator-nuttx/pull/7210) boards: sim: Enable telnetd in adb config 33111 * [#6843](https://github.com/apache/incubator-nuttx/pull/6843) boards: sim: Fix the /etc/passwd after TEA algo fixing 33112 * [#6946](https://github.com/apache/incubator-nuttx/pull/6946) boards: sim: Add a new config minmea to detect build break 33113 * [#7182](https://github.com/apache/incubator-nuttx/pull/7182) boards: sim: windows: add more net configs 33114 * [#7386](https://github.com/apache/incubator-nuttx/pull/7386) boards: risc-v: Implement Interface method for ESP32C3: go_setpintype 33115 * [#6955](https://github.com/apache/incubator-nuttx/pull/6955) boards: risc-v: esp32c3: Add support APA102/APDS-9960 for Shift Game 33116 * [#7831](https://github.com/apache/incubator-nuttx/pull/7831) boards: risc-v: esp32c3: enable dumpstack/backtrace 33117 * [#7250](https://github.com/apache/incubator-nuttx/pull/7250) boards: risc-v: esp32c3: fix wapi stack size on board examples 33118 * [#7833](https://github.com/apache/incubator-nuttx/pull/7833) boards: risc-v: esp32c3: Move linker scripts and source files to folder common to all boards 33119 * [#7453](https://github.com/apache/incubator-nuttx/pull/7453) boards: risc-v: esp32c3: remove not needed ldscript flags 33120 * [#6846](https://github.com/apache/incubator-nuttx/pull/6846) boards: risc-v: esp32c3-devkit: Fix /etc/passwd too 33121 * [#7619](https://github.com/apache/incubator-nuttx/pull/7619) boards: risc-v: mpfs: Add example target for SHM 33122 * [#7860](https://github.com/apache/incubator-nuttx/pull/7860) boards: risc-v: rv-virt: Improve iperf speed for virtio-mmio-net 33123 * [#7333](https://github.com/apache/incubator-nuttx/pull/7333) boards: risc-v: rv-virt: Update README.txt 33124 * [#7725](https://github.com/apache/incubator-nuttx/pull/7725) boards: xtensa: Fix buttons IRQ on ESP boards 33125 * [#7582](https://github.com/apache/incubator-nuttx/pull/7582) boards: xtensa: esp32: Add support to LilyGO_TBeam V1.1 LoRa/GPS board 33126 * [#7474](https://github.com/apache/incubator-nuttx/pull/7474) boards: xtensa: esp32: Add MAX6675 temperature sensor support 33127 * [#7519](https://github.com/apache/incubator-nuttx/pull/7519) boards: xtensa: esp32: Fix invalid IRAM option in linker script 33128 * [#7647](https://github.com/apache/incubator-nuttx/pull/7647) boards: xtensa: esp32: Esp32 sparrow kit 33129 * [#7693](https://github.com/apache/incubator-nuttx/pull/7693) boards: xtensa: esp32: Adds ESP32-WroverKit LUA config and fixes LEDs setup 33130 * [#7293](https://github.com/apache/incubator-nuttx/pull/7293) boards: xtensa: esp32s2: Add missing ESP32S2 SPIRAM config 33131 * [#7520](https://github.com/apache/incubator-nuttx/pull/7520) boards: xtensa: esp32s2: Move linker scripts to folder common to all boards 33132 * [#6917](https://github.com/apache/incubator-nuttx/pull/6917) boards: xtensa: esp32s3: Fix alignment of FPU registers in exception context 33133 * [#6916](https://github.com/apache/incubator-nuttx/pull/6916) boards: xtensa: esp32s3: Fix Data allocation offset within shared Internal SRAM1 33134 * [#7500](https://github.com/apache/incubator-nuttx/pull/7500) boards: xtensa: esp32s3: Move linker scripts to folder common to all boards 33135 * [#7550](https://github.com/apache/incubator-nuttx/pull/7550) boards: xtensa: esp32s3: Extend Instruction RAM region according to IDFboot v4.4.2 33136 * [#7564](https://github.com/apache/incubator-nuttx/pull/7564) boards: xtensa: esp32-devkitc/wamr_wasi_debug: bump WAMR version 33137 * [#7127](https://github.com/apache/incubator-nuttx/pull/7127) boards: xtensa: esp32-devkitc: Add support to W5500 WIZnet 33138 * [#7553](https://github.com/apache/incubator-nuttx/pull/7553) boards: xtensa: esp32-devkitc: Update elf/defconfig 33139 * [#7756](https://github.com/apache/incubator-nuttx/pull/7756) boards: xtensa: esp32-devkitc: wamr_wasi_debug: enable native-lib stuff 33140 * [#6964](https://github.com/apache/incubator-nuttx/pull/6964) boards: xtensa: esp32-devkitc: wamr_wasi_debug: config maintenance 33141 * [#7736](https://github.com/apache/incubator-nuttx/pull/7736) boards: xtensa: esp32-devkitc: wamr_wasi_debug: kconfig maintainance 33142 * [#7559](https://github.com/apache/incubator-nuttx/pull/7559) boards: xtensa: esp32-lyrat: Remove CONFIG_MM_CIRCBUF=y from audio config 33143 33144 33145## File System Improvements 33146 33147 * [#6932](https://github.com/apache/incubator-nuttx/pull/6932) fs: aio: fix typo ail 33148 * [#6803](https://github.com/apache/incubator-nuttx/pull/6803) fs: directory: Using file api to implement operations on directories 33149 * [#6969](https://github.com/apache/incubator-nuttx/pull/6969) fs: dup2: fix potential deadlock on usrsock 33150 * [#7034](https://github.com/apache/incubator-nuttx/pull/7034) fs: Fix symbol name in comments 33151 * [#7434](https://github.com/apache/incubator-nuttx/pull/7434) fs: Refine the implementation of files_allocate 33152 * [#7712](https://github.com/apache/incubator-nuttx/pull/7712) fs: romfs meet localtime in syslog 33153 * [#7437](https://github.com/apache/incubator-nuttx/pull/7437) fs: remove the unused nx_xxx functions 33154 * [#7748](https://github.com/apache/incubator-nuttx/pull/7748) fs: littlefs: add a few Kconfig options 33155 * [#7555](https://github.com/apache/incubator-nuttx/pull/7555) fs: littlefs: set LFS_NAME_MAX to CONFIG_NAME_MAX 33156 * [#7760](https://github.com/apache/incubator-nuttx/pull/7760) fs: littlefs: Get and return the current error status before RMDIR execution type 33157 * [#7568](https://github.com/apache/incubator-nuttx/pull/7568) fs: epoll: Reuse fd returned from epoll for internal signaling 33158 * [#7642](https://github.com/apache/incubator-nuttx/pull/7642) fs: epoll: support extend the epoll dynamicly. 33159 * [#7696](https://github.com/apache/incubator-nuttx/pull/7696) fs: epoll: [bug fix] EPOLL_CTL_ADD/MOD consider the teardown list too 33160 * [#7699](https://github.com/apache/incubator-nuttx/pull/7699) fs: epoll: [bug fix] epoll node use-after-free in epoll extend list 33161 * [#7539](https://github.com/apache/incubator-nuttx/pull/7539) fs: epoll: Correct epoll lock usage 33162 * [#7189](https://github.com/apache/incubator-nuttx/pull/7189) fs: partition: Fixes for GPT partition parsing 33163 * [#7376](https://github.com/apache/incubator-nuttx/pull/7376) fs: procfs: check task group before get group info 33164 * [#7319](https://github.com/apache/incubator-nuttx/pull/7319) fs: procfs: Change FS_PROCFS_EXCLUDE_xxx default value to DEFAULT_SMALL 33165 * [#7723](https://github.com/apache/incubator-nuttx/pull/7723) fs: procfs: meminfo: buflen identify the left of buffer 33166 * [#7404](https://github.com/apache/incubator-nuttx/pull/7404) fs: romfs: expand file cache by CONFIG_FS_ROMFS_FCACHE_NSECTORS 33167 * [#6864](https://github.com/apache/incubator-nuttx/pull/6864) fs: rpmsgfs: fix ioctl operation can not work bug 33168 * [#6865](https://github.com/apache/incubator-nuttx/pull/6865) fs: rpmsgfs: fix double free 33169 * [#6980](https://github.com/apache/incubator-nuttx/pull/6980) fs: rpmsgfs/Make.defs: rpmsgfs_server.c given more than once 33170 * [#7462](https://github.com/apache/incubator-nuttx/pull/7462) fs: socket: Separation error code EBADF and ENOTSOCK 33171 * [#7007](https://github.com/apache/incubator-nuttx/pull/7007) fs: smartfs: Fixes to RP2040 SMART flash and documentation 33172 * [#7305](https://github.com/apache/incubator-nuttx/pull/7305) fs: tmpfs: Fixed NULL pointer use in tmpfs. 33173 * [#7591](https://github.com/apache/incubator-nuttx/pull/7591) fs: unionfs: fix memory leak about directory operation 33174 * [#7628](https://github.com/apache/incubator-nuttx/pull/7628) fs: userfs: destroy nxmutex properly 33175 * [#7312](https://github.com/apache/incubator-nuttx/pull/7312) fs: vfs: fix case when file to rename does not exist 33176 * [#7188](https://github.com/apache/incubator-nuttx/pull/7188) fs: vfs: fs_poll: not clear POLLIN event if POLLHUP or POLLERR set 33177 * [#7356](https://github.com/apache/incubator-nuttx/pull/7356) fs: vfs: implement fdopendir 33178 * [#6976](https://github.com/apache/incubator-nuttx/pull/6976) fs: vfs: run the default action of FIONBIO/FIOCLEX/FIONCLEX in success path 33179 * [#7207](https://github.com/apache/incubator-nuttx/pull/7207) fs: vfs: poll: using callback mechanism to implement poll notification 33180 * [#7317](https://github.com/apache/incubator-nuttx/pull/7317) fs: vfs: refine the implementation of rename 33181 * [#7227](https://github.com/apache/incubator-nuttx/pull/7227) fs: vfs: don't need monitor POLLERR or POLLHUP explicitly 33182 * [#7742](https://github.com/apache/incubator-nuttx/pull/7742) fs: vfs: timerfd_create: initial reference count to zero 33183 * [#7035](https://github.com/apache/incubator-nuttx/pull/7035) fs: vfs: fs_open.c: Improve documentation blocks of functions 33184 33185## Networking 33186### New Features 33187 33188 * [#7562](https://github.com/apache/incubator-nuttx/pull/7562) net: Add Network Address Translation (NAT) for NuttX 33189 33190### Improvements 33191 33192 * [#7828](https://github.com/apache/incubator-nuttx/pull/7828) net: Adjust ioctl function of cellular 33193 * [#7821](https://github.com/apache/incubator-nuttx/pull/7821) net: Add mtu set and interface name set in ioctl 33194 * [#7143](https://github.com/apache/incubator-nuttx/pull/7143) net: Add IN6_IS_ADDR_LINKLOCAL macro 33195 * [#7727](https://github.com/apache/incubator-nuttx/pull/7727) net: extract l3 header build code into new functions 33196 * [#6923](https://github.com/apache/incubator-nuttx/pull/6923) net: remove pvconn reference from all devif callback 33197 * [#7675](https://github.com/apache/incubator-nuttx/pull/7675) net: remove psock reference from connect 33198 * [#7452](https://github.com/apache/incubator-nuttx/pull/7452) net: remove the unused nx_[send|recv]msg 33199 * [#7431](https://github.com/apache/incubator-nuttx/pull/7431) net: move IPv4/6BUF define to common header 33200 * [#7769](https://github.com/apache/incubator-nuttx/pull/7769) net: nename arp_arpin to arp_input 33201 * [#7631](https://github.com/apache/incubator-nuttx/pull/7631) net: arp: Make NET_ARP(Address Resolution Protocol) configurable 33202 * [#7239](https://github.com/apache/incubator-nuttx/pull/7239) net: can: improve net/can/Kconfig 33203 * [#7382](https://github.com/apache/incubator-nuttx/pull/7382) net: can: can_xxxsockopt.c: correct the code alignment 33204 * [#7733](https://github.com/apache/incubator-nuttx/pull/7733) net: chksum: move all chksum api declarations to common header 33205 * [#7814](https://github.com/apache/incubator-nuttx/pull/7814) net: devif_send: replace all block send to nonblock mode 33206 * [#7703](https://github.com/apache/incubator-nuttx/pull/7703) net: devif/ip: build l2 header on the IP layer 33207 * [#7746](https://github.com/apache/incubator-nuttx/pull/7746) net: devif: fix devif loopback 33208 * [#7719](https://github.com/apache/incubator-nuttx/pull/7719) net: devif: add common interface to build L2 headers 33209 * [#7701](https://github.com/apache/incubator-nuttx/pull/7701) net: devif: add common funtion to build L2 headers before sending 33210 * [#7574](https://github.com/apache/incubator-nuttx/pull/7574) net: dns: Reduce the dns_lock granularity 33211 * [#7625](https://github.com/apache/incubator-nuttx/pull/7625) net: icmp: ICMP_NO_STACK should not depends on NET_IPv4 33212 * [#7269](https://github.com/apache/incubator-nuttx/pull/7269) net: ipforward: fix typo in ipv4_dev_forward 33213 * [#7766](https://github.com/apache/incubator-nuttx/pull/7766) net: offload: add offload support for pkt/arp 33214 * [#7616](https://github.com/apache/incubator-nuttx/pull/7616) net: l2/l3/l4: add support of iob offload 33215 * [#7713](https://github.com/apache/incubator-nuttx/pull/7713) net: local: add net_lock to local_listen 33216 * [#6808](https://github.com/apache/incubator-nuttx/pull/6808) net: local: make local udp send multi-thread safe 33217 * [#7197](https://github.com/apache/incubator-nuttx/pull/7197) net: local: remove dead code 33218 * [#6812](https://github.com/apache/incubator-nuttx/pull/6812) net: local: remove the sync preamble from datagram 33219 * [#7679](https://github.com/apache/incubator-nuttx/pull/7679) net: local: support FIONWRITE for domain socket ioctl 33220 * [#7275](https://github.com/apache/incubator-nuttx/pull/7275) net: local: unified formatting name function 33221 * [#7732](https://github.com/apache/incubator-nuttx/pull/7732) net: loopback: reuse devif_loopback() logic for device lo(loopback) 33222 * [#7768](https://github.com/apache/incubator-nuttx/pull/7768) net: d_buf: remove d_buf reference from l3/l4 33223 * [#7807](https://github.com/apache/incubator-nuttx/pull/7807) net: devif: initialize d_len to 0 before polling connections 33224 * [#7782](https://github.com/apache/incubator-nuttx/pull/7782) net: devif: reprepare iob buffer before polling connections 33225 * [#7711](https://github.com/apache/incubator-nuttx/pull/7711) net: inet: fix compile failed if not define UDP 33226 * [#7030](https://github.com/apache/incubator-nuttx/pull/7030) net: inet: invalid addrlen length should return EINVAL 33227 * [#7778](https://github.com/apache/incubator-nuttx/pull/7778) net: ip: return success if the packet was forwarded. 33228 * [#7433](https://github.com/apache/incubator-nuttx/pull/7433) net: ipfwd: correct application data offset 33229 * [#7797](https://github.com/apache/incubator-nuttx/pull/7797) net: ipfwd: fix ipforward after IOB offload 33230 * [#7826](https://github.com/apache/incubator-nuttx/pull/7826) net: ipfwd: limit number of ipforward struct to be less than number of IOB 33231 * [#7750](https://github.com/apache/incubator-nuttx/pull/7750) net: ipfwd: Support ICMP/ICMPv6 error reply when forwarding 33232 * [#7801](https://github.com/apache/incubator-nuttx/pull/7801) net: ipfwd: update IP buffer offset 33233 * [#7741](https://github.com/apache/incubator-nuttx/pull/7741) net: ipv4: fix shadows declaration 33234 * [#7683](https://github.com/apache/incubator-nuttx/pull/7683) net: icmpv6: Fix icmpv6_reply function 33235 * [#6925](https://github.com/apache/incubator-nuttx/pull/6925) net: icmpv6: finetune the RA parsing procedure 33236 * [#7747](https://github.com/apache/incubator-nuttx/pull/7747) net: nat: Add support for ICMP Error Message 33237 * [#7102](https://github.com/apache/incubator-nuttx/pull/7102) net: netdev: Fix memcpy() size used by SIOCSIFHWADDR for radios 33238 * [#7101](https://github.com/apache/incubator-nuttx/pull/7101) net: netdev: Fix sa_family returned by SIOCGIFHWADDR 33239 * [#7314](https://github.com/apache/incubator-nuttx/pull/7314) net: netdev: Add Cellular link layer support 33240 * [#7016](https://github.com/apache/incubator-nuttx/pull/7016) net: netdev: ioctl: correct the argument length of ioctl MII/PHY 33241 * [#7038](https://github.com/apache/incubator-nuttx/pull/7038) net: netdev ioctl: netlock/unlock() should in pairs 33242 * [#7020](https://github.com/apache/incubator-nuttx/pull/7020) net: netdev: simplify handling of netdev ifr ioctl() 33243 * [#7004](https://github.com/apache/incubator-nuttx/pull/7004) net: procfs: add tcp profs support 33244 * [#6997](https://github.com/apache/incubator-nuttx/pull/6997) net: procfs: add entry mapping table 33245 * [#7132](https://github.com/apache/incubator-nuttx/pull/7132) net: procfs: disable tcp/udp proc node if no stack available 33246 * [#7192](https://github.com/apache/incubator-nuttx/pull/7192) net: procfs: fix runtime error AddressSanitizer(global-buffer-overflow) 33247 * [#7039](https://github.com/apache/incubator-nuttx/pull/7039) net: procfs: interface index should begin from 1 33248 * [#7124](https://github.com/apache/incubator-nuttx/pull/7124) net: socket: implement SO_RCVBUF and SO_SNDBUF for getsockopt 33249 * [#7438](https://github.com/apache/incubator-nuttx/pull/7438) net: socket: remove the unused nx_xxx functions 33250 * [#7206](https://github.com/apache/incubator-nuttx/pull/7206) net: socket: return -ENOPROTOOPT for unsupported/unknown socket option 33251 * [#6907](https://github.com/apache/incubator-nuttx/pull/6907) net: sockopt: move BINDTODEVICE to socket level 33252 * [#7722](https://github.com/apache/incubator-nuttx/pull/7722) net: sockopt: add parameter check in psock_setsockopt 33253 * [#7651](https://github.com/apache/incubator-nuttx/pull/7651) net: sockif: add si_getsockopt and si_setsockopt to simply getsockopt and setsockopt 33254 * [#7377](https://github.com/apache/incubator-nuttx/pull/7377) net: tcp: Update conn laddr after select device 33255 * [#7483](https://github.com/apache/incubator-nuttx/pull/7483) net: tcp: fix build break if enable NET_TCP_NO_STACK 33256 * [#7350](https://github.com/apache/incubator-nuttx/pull/7350) net: tcp: remove debug counter of connect instance 33257 * [#7313](https://github.com/apache/incubator-nuttx/pull/7313) net: tcp: syscall send() should not return ETIMEDOUT 33258 * [#7535](https://github.com/apache/incubator-nuttx/pull/7535) net: tcp: Make TCP_MAXRTX and TCP_MAXSYNRTX configurable 33259 * [#7668](https://github.com/apache/incubator-nuttx/pull/7668) net: tcp: recv returns 0 without set errno 33260 * [#7571](https://github.com/apache/incubator-nuttx/pull/7571) net: tcp: find bound device when laddr is ANY 33261 * [#6956](https://github.com/apache/incubator-nuttx/pull/6956) net: tcp: use independent work to free the conn instance 33262 * [#7635](https://github.com/apache/incubator-nuttx/pull/7635) net: tcp: TCP_WAITALL should use state flag 33263 * [#7728](https://github.com/apache/incubator-nuttx/pull/7728) net: tcp: fix build break if enable CONFIG_NET_IPv6 only 33264 * [#6874](https://github.com/apache/incubator-nuttx/pull/6874) net: tcp: reset conn->nrtx when ack received 33265 * [#7510](https://github.com/apache/incubator-nuttx/pull/7510) net: tcp: Avoid starting TCP sequence number from 0 33266 * [#6947](https://github.com/apache/incubator-nuttx/pull/6947) net: tcp: fix devif callback list corruption on tcp_close() 33267 * [#7286](https://github.com/apache/incubator-nuttx/pull/7286) net: tcp: Added handling of MSG_WAITALL flag in TCP recv. 33268 * [#7652](https://github.com/apache/incubator-nuttx/pull/7652) net: usrsock: add REMOTE_CLOSED event handler to connect 33269 * [#6975](https://github.com/apache/incubator-nuttx/pull/6975) net: usrsock: allow usrsock *DATA_ACK with no-preload data 33270 * [#6893](https://github.com/apache/incubator-nuttx/pull/6893) net: usrsock: Change xid from uint64_t to uint32_t 33271 * [#6971](https://github.com/apache/incubator-nuttx/pull/6971) net: usrsock: Change xid from uint64_t to uint32_t 33272 * [#7072](https://github.com/apache/incubator-nuttx/pull/7072) net: usrsock: Code refactor 33273 * [#7291](https://github.com/apache/incubator-nuttx/pull/7291) net: usrsock: Correct some status exceptions in non-blocking mode usrsock connect 33274 * [#7665](https://github.com/apache/incubator-nuttx/pull/7665) net: usrsock: fix get/setsockopt issue about usrsock protocol 33275 * [#6974](https://github.com/apache/incubator-nuttx/pull/6974) net: usrsock: forward FIONBIO to socket level 33276 * [#6949](https://github.com/apache/incubator-nuttx/pull/6949) net: usrsock: refine usrsock's architecture 33277 * [#7627](https://github.com/apache/incubator-nuttx/pull/7627) net: usrsock: Refine Kconfig option 33278 * [#6890](https://github.com/apache/incubator-nuttx/pull/6890) net: usrsock: Remove dev field from usrsockdev_s 33279 * [#7671](https://github.com/apache/incubator-nuttx/pull/7671) net: usrsock: Remove specific process from common code as much as possible 33280 * [#7378](https://github.com/apache/incubator-nuttx/pull/7378) net: usrsock: Some relatively reasonable error code modifications 33281 * [#7009](https://github.com/apache/incubator-nuttx/pull/7009) net: udp: add IPVx_PKTINFO related support 33282 * [#7026](https://github.com/apache/incubator-nuttx/pull/7026) net: udp: Clean up psock_udp_recvfrom related code 33283 * [#7506](https://github.com/apache/incubator-nuttx/pull/7506) net: utils: add net_chksum_adjust defined by RFC3022 33284 * [#6900](https://github.com/apache/incubator-nuttx/pull/6900) net: wireless: bluetooth: add btsnoop open-close ioctl cmd 33285 * [#6899](https://github.com/apache/incubator-nuttx/pull/6899) net: wireless: bluetooth: add btsnoop and snoop 33286 * [#7135](https://github.com/apache/incubator-nuttx/pull/7135) net: wireless: add support for netdev private ioctl 33287 * [#6970](https://github.com/apache/incubator-nuttx/pull/6970) net: getsockname: small addrlen should be a valid value 33288 * [#7576](https://github.com/apache/incubator-nuttx/pull/7576) net: rpmsg: add lock to poll & poll_notify 33289 * [#6978](https://github.com/apache/incubator-nuttx/pull/6978) net: Align the prototype of sock_intf_s::si_ioctl with file_operations::ioctl 33290 33291## Security Issues Fixed In This Release 33292## Compatibility Concerns 33293## API Changes 33294Default Semaphore Protocol Changed 33295 33296When NuttX is built with priority inheritance (CONFIG_PRIORITY_INHERITANCE), priority inheritance can be enabled or disabled per semaphore and care must be taken to make the correct choice based on how each semaphore is used. 33297 33298When a semaphore is used as a mutual exclusion lock ("locking semaphore"), a thread that needs exclusive access to a resource waits on the semaphore, uses the resource, and then posts the semaphore. In this case, priority inheritance should be enabled for the semaphore (sem_setprotocol(sem, SEM_PRIO_INHERIT)) to mitigate priority inversion which could occur when multiple threads with different priorities compete for various resources. 33299 33300In contrast, when a semaphore is used to signal an event from one thread to another ("signaling semaphore"), one thread waits on the semaphore and another thread posts it when the anticipated event occurs. In this case, since the thread that posts the semaphore is different than the one that waits on it, priority inheritance must not be enabled for the semaphore (sem_setprotocol(sem, SEM_PRIO_NONE)). 33301 33302In earlier releases, priority inheritance was enabled by default for all semaphores whenever NuttX was built with CONFIG_PRIORITY_INHERITANCE. If a semaphore was used for signaling across threads, the non-standard API sem_setprotocol(sem, SEM_PRIO_NONE) had to be used to selectively disable priority inheritance for that semaphore. 33303 33304Starting with this release, the default is changed: priority inheritance is disabled by default for all semaphores. To enable priority inheritance for a semaphore, first NuttX needs to be built with CONFIG_PRIORITY_INHERITANCE, then priority inheritance needs to be enabled for the semaphore in question with sem_setprotocol(sem, SEM_PRIO_INHERIT). 33305 33306The benefit of this change is easier porting and maintenance of standards-compliant applications to NuttX by eliminating the need for 3rd party applications to call the non-standard API sem_setprotocol(). 33307 33308In addition, this is a safer default: Having priority inheritance inadvertently enabled for a signaling semaphore can cause incorrect behavior, while the impact of having it inadvertently disabled for a locking semaphore is limited to reduced performance. 33309 33310This change was introduced in PR # 5070 https://github.com/apache/incubator-nuttx/pull/5070, git commits 4e1d967bcd0031bd07a6a46f022c75216cf98404, e5fbbd416d5f1e74e3f705677b2e99b0b8c544d3, 9a4b66fbb306d388e2ce431807a139848604a9f0, and 125de66b63b316a2c2a2912dd408f4bac2fc85c3. 33311 33312All semaphore uses within the NuttX repositories have been updated; those used for locking have been replaced with mutexes (mutex_t instead of sem_t). See PR # 6965, git commits 33313 33314ef3919e4eb75b1ab854a21c98124d7e90e5c5e14, 590e0d5666c47dcb91ccd35faa57681ca26d4b1d, and 5db565c78d7c009eaea8517f01a2d138ab5f0028. 33315 33316Downstream users need to call sem_setprotocol(sem, SEM_PRIO_INHERIT) when setting up each semaphore used for mutual exclusion locking. In addition, they may optionally remove calls to sem_setprotocol(sem, SEM_PRIO_NONE) for signaling semaphores. 33317 33318NuttX-12.1.0 Release Notes 33319 33320What's New In This Release 33321 33322Changes to Core OS 33323Sched 33324* [](https://github.com/apache/nuttx/pull/) Correct Real Time signal definitions. #8881 33325 33326* [#8286](https://github.com/apache/nuttx/pull/8286) sched: Add _NSIG, SIGFPE, SIGILL and SIGSEGV definition 33327* [#8686](https://github.com/apache/nuttx/pull/8686) sched: add critical section in nxsched_get_stateinfo 33328* [#8708](https://github.com/apache/nuttx/pull/8708) sched: build error fix in task_exithook 33329* [#4819](https://github.com/apache/nuttx/pull/4819) sched: Disable stdio api by default when DEFAULT_SMALL equals y 33330* [#8642](https://github.com/apache/nuttx/pull/8642) sched: fix kconfig warning 33331* [#8151](https://github.com/apache/nuttx/pull/8151) sched: fix task_delete crash in SMP case 33332* [#8311](https://github.com/apache/nuttx/pull/8311) sched: fix run ltp_interfaces_sched_setscheduler_17_1 fail 33333* [#8210](https://github.com/apache/nuttx/pull/8210) sched: Map both NZERO and PTHREAD_DEFAULT_PRIORITY to SCHED_PRIORITY_DEFAULT 33334* [#8330](https://github.com/apache/nuttx/pull/8330) sched: Map SCHED_OTHER to SCHED_FIFO or SCHED_RR 33335* [#7882](https://github.com/apache/nuttx/pull/7882) sched: remove unnecessary type cast 33336* [#8374](https://github.com/apache/nuttx/pull/8374) sched: Remove the unused TCB_FLAG_SCHED_OTHER 33337* [#7956](https://github.com/apache/nuttx/pull/7956) sched: assert: modify assert message 33338* [#7957](https://github.com/apache/nuttx/pull/7957) sched: assert: Do not call the user space "exit" function 33339* [#7952](https://github.com/apache/nuttx/pull/7952) sched: assert: Fix printing argv when address environments are in use 33340* [#8224](https://github.com/apache/nuttx/pull/8224) sched: assert: sched: Implement tkill/tgkill 33341* [#8556](https://github.com/apache/nuttx/pull/8556) sched: assert: sync ps/assert output 33342* [#8897](https://github.com/apache/nuttx/pull/8897) sched: clock_gettime: Remove output log 33343* [#8653](https://github.com/apache/nuttx/pull/8653) sched: env: add tg_envc in task_group_s to avoid some loops in code 33344* [#8394](https://github.com/apache/nuttx/pull/8394) sched: getpid: replace syscall getpid/tid/ppid() to kernel version 33345* [#8066](https://github.com/apache/nuttx/pull/8066) sched: group: fix task info heap-use-after-free 33346* [#7997](https://github.com/apache/nuttx/pull/7997) sched: group: Fix memory corruption in group_leave.c 33347* [#8282](https://github.com/apache/nuttx/pull/8282) sched: group: Implement group_drop() 33348* [#8169](https://github.com/apache/nuttx/pull/8169) sched: group/addrenv: An assorment of fixes to address environment handling (part1) 33349* [#7995](https://github.com/apache/nuttx/pull/7995) sched: misc: add linux-like reboot notifier list 33350* [#8035](https://github.com/apache/nuttx/pull/8035) sched: misc: assert: add a last type to call notifier 33351* [#8158](https://github.com/apache/nuttx/pull/8158) sched: misc: assert: fix build break 33352* [#8035](https://github.com/apache/nuttx/pull/8035) sched: misc: assert: add a last type to call notifier 33353* [#8144](https://github.com/apache/nuttx/pull/8144) sched: misc: crash dump message added 33354* [#7996](https://github.com/apache/nuttx/pull/7996) sched: misc: Rename panic.c to panic_notifier.c 33355* [#7893](https://github.com/apache/nuttx/pull/7893) sched: note: Change sched_note_[begin|end] to macro 33356* [#8521](https://github.com/apache/nuttx/pull/8521) sched: nxtask_sigchild: Set exit code when CONFIG_SCHED_CHILD_STATUS=y 33357* [#8486](https://github.com/apache/nuttx/pull/8486) sched: nxtask_sigchild: Set process exit code to group exit code 33358* [#8520](https://github.com/apache/nuttx/pull/8520) sched: pthread: change the wrong type cast 33359* [#8505](https://github.com/apache/nuttx/pull/8505) sched: pthread: check pthread group after find joininfo 33360* [#7923](https://github.com/apache/nuttx/pull/7923) sched: pthread: Delay pjoininfo allocation time 33361* [#8150](https://github.com/apache/nuttx/pull/8150) sched: pthread: fix pthread exit error when set DETACHED 33362* [#8170](https://github.com/apache/nuttx/pull/8170) sched: pthread: fixed pthread issue 33363* [#8205](https://github.com/apache/nuttx/pull/8205) sched: pthread: Implement more pthread API 33364* [#8209](https://github.com/apache/nuttx/pull/8209) sched: pthread: Implement pthread_gettid_np 33365* [#8236](https://github.com/apache/nuttx/pull/8236) sched: pthread: restore C89 compliance in pthread_create 33366* [#8336](https://github.com/apache/nuttx/pull/8336) sched: pthread: set default pthread name to parent's name 33367* [#7909](https://github.com/apache/nuttx/pull/7909) sched: pthread: show thread main entry when display thread name 33368* [#7877](https://github.com/apache/nuttx/pull/7877) sched: release_tcb: Do not release stack for user processes here 33369* [#8182](https://github.com/apache/nuttx/pull/8182) sched: semaphore: Add the holder for mutex 33370* [#7934](https://github.com/apache/nuttx/pull/7934) sched: semaphore: check sem flags before enable priority inheritance 33371* [#8175](https://github.com/apache/nuttx/pull/8175) sched: semaphore: increase sem count when holder task exit 33372* [#8074](https://github.com/apache/nuttx/pull/8074) sched: semaphore: Remove PRIOINHERIT_FLAGS_ENABLE and use SEM_PRIO_INHERIT instead 33373* [#8057](https://github.com/apache/nuttx/pull/8057) sched: semaphore: sem_unlink: return ENOENT when the named semaphore does not exist. 33374* [#8918](https://github.com/apache/nuttx/pull/8918) sched: semaphore: sem_waitirq: Fix semaphore wait interruption when MMU is in use 33375* [#8452](https://github.com/apache/nuttx/pull/8452) sched: sched_note: add SCHED_NOTE_CUSTOM_BEGIN/END interface 33376* [#8245](https://github.com/apache/nuttx/pull/8245) sched: sched_releasetcb: Revert 2 changes related to stack deallocation 33377* [#8914](https://github.com/apache/nuttx/pull/8914) sched: signal: add SIGSYS 33378* [#8312](https://github.com/apache/nuttx/pull/8312) sched: signal: Fix typo error in Kconfig(SIG_SEGA->SIG_SEGV) 33379* [#8885](https://github.com/apache/nuttx/pull/8885) sched: signal: Increase the number of real time signals. Two is not enough. 33380* [#8900](https://github.com/apache/nuttx/pull/8900) sched: signal: Remove configurable assignment of signal numbers 33381* [#8884](https://github.com/apache/nuttx/pull/8884) sched: signal: remove unused SIGCONDTIMEDOUT 33382* [#8740](https://github.com/apache/nuttx/pull/8740) sched: signal: sig_dispatch: Add signal action, if task is in system call 33383* [#8605](https://github.com/apache/nuttx/pull/8605) sched: signal: sig_dispatch: Fix case where signal action is sent twice 33384* [#8563](https://github.com/apache/nuttx/pull/8563) sched: signal: sig_dispatch: Signal action was not performed if TCB_FLAG_SYSC… 33385* [#8763](https://github.com/apache/nuttx/pull/8763) sched: signal: sig_dispatch: Revert changes that cause a regression 33386* [#7910](https://github.com/apache/nuttx/pull/7910) sched: task_setup: set sigprocmask directly to improve performance 33387* [#8560](https://github.com/apache/nuttx/pull/8560) sched: task: task_cancelpt: Kill the child if it is not in a cancel point 33388* [#8392](https://github.com/apache/nuttx/pull/8392) sched: waitpid: rename nx_waitpid() to nxsched_waitpid() 33389* [#8832](https://github.com/apache/nuttx/pull/8832) sched: wqueue: Do as much work as possible in work_thread 33390* [#8126](https://github.com/apache/nuttx/pull/8126) sched: wqueue: do work_cancel when worker is not null 33391* [#8321](https://github.com/apache/nuttx/pull/8321) sched: wqueue: semaphore count should be consistent with the number of work entries. 33392mm 33393* [#8085](https://github.com/apache/nuttx/pull/8085) mm: Add common virtual region allocator 33394* [#8140](https://github.com/apache/nuttx/pull/8140) mm: Enable a dedicated kernel heap on BUILD_FLAT via MM_KERNEL_HEAP 33395* [#7953](https://github.com/apache/nuttx/pull/7953) mm: fix typos 33396* [#8094](https://github.com/apache/nuttx/pull/8094) mm: Integrate TLSF manager 33397* [#8139](https://github.com/apache/nuttx/pull/8139) mm: backtrace: add backtrace for mempool and memdup for tlsf 33398* [#8650](https://github.com/apache/nuttx/pull/8650) mm: circbuf: update buffer head according to real length of writing 33399* [#8668](https://github.com/apache/nuttx/pull/8668) mm: circbuf: fix minor issue about update buffer head 33400* [#8161](https://github.com/apache/nuttx/pull/8161) mm: heap: add heap args to mm_malloc_size 33401* [#8054](https://github.com/apache/nuttx/pull/8054) mm: heap: Minor fix 33402* [#8136](https://github.com/apache/nuttx/pull/8136) mm: heap: tlsf: add global multi-mempool for heap manager and tlsf 33403* [#7920](https://github.com/apache/nuttx/pull/7920) mm: iob: revert "modify iob to support header padding and alignment features" 33404* [#7914](https://github.com/apache/nuttx/pull/7914) mm: iob: add a helper function to get iob count in chain 33405* [#7892](https://github.com/apache/nuttx/pull/7892) mm: iob: iob members are initialized after allocate 33406* [#7870](https://github.com/apache/nuttx/pull/7870) mm: iob: add support of partial bytes clone 33407* [#8296](https://github.com/apache/nuttx/pull/8296) mm: kasan: bypass link-time optimizer 33408* [#8028](https://github.com/apache/nuttx/pull/8028) mm: map: Remove the unnessary map.h inclusion in various drivers 33409* [#8512](https://github.com/apache/nuttx/pull/8512) mm: mempool: fix bug for realloc when shortage of memory 33410* [#8511](https://github.com/apache/nuttx/pull/8511) mm: mempool: fix mempool bug,when use MM_BACKTRACE 33411* [#8116](https://github.com/apache/nuttx/pull/8116) mm: mempool: fix crash by kasan report and enhance mempool 33412* [#8167](https://github.com/apache/nuttx/pull/8167) mm: mempool: update about mempool. 33413* [#8188](https://github.com/apache/nuttx/pull/8188) mm: mm_extend: Increase total heap size accordingly 33414* [#8339](https://github.com/apache/nuttx/pull/8339) mm: mm_memalign: avoid two adjacent free nodes situation. 33415* [#8295](https://github.com/apache/nuttx/pull/8295) mm: mm_heap: do this check in mm_size2ndx 33416* [#8734](https://github.com/apache/nuttx/pull/8734) mm: mm_heap: double malloced memory default alignment (4 -> 8, 8 -> 16) 33417* [#8353](https://github.com/apache/nuttx/pull/8353) mm: mm_heap: reduce the memory node overhead size 33418* [#8721](https://github.com/apache/nuttx/pull/8721) mm: mm_heap: support custom the mm alignment and default to be 8 33419* [#8131](https://github.com/apache/nuttx/pull/8131) mm: mm_heap: tlsf: support global mempool to optimize small block performance 33420* [#8068](https://github.com/apache/nuttx/pull/8068) mm: shm: Clean up the System-V shm driver 33421* [#8133](https://github.com/apache/nuttx/pull/8133) mm: tlsf: fix compile error/warning on tlsf 33422* [#8736](https://github.com/apache/nuttx/pull/8736) mm: ubsan: Implement __ubsan_handle_invalid_builtin 33423libs 33424* [#8042](https://github.com/apache/nuttx/pull/8042) libc: Add more libc function for arm and riscv 33425* [#8862](https://github.com/apache/nuttx/pull/8862) libc: add more syscall/libc symbols into csv file 33426* [#8118](https://github.com/apache/nuttx/pull/8118) libc: Add sys/endian.h to improve the compatiblity with bionic libc 33427* [#8294](https://github.com/apache/nuttx/pull/8294) libc: Add return check in posix_spawn_file_actions_adddup2 33428* [#7850](https://github.com/apache/nuttx/pull/7850) libc: Add scalbn[f|l]function to libc math 33429* [#8437](https://github.com/apache/nuttx/pull/8437) libc: Define _assert/__assert to avoid 3rd libary redefine them 33430* [#8065](https://github.com/apache/nuttx/pull/8065) libc: don't redefined __ARM_ARCH_XXX when __ARM_ARCH defined 33431* [#8624](https://github.com/apache/nuttx/pull/8624) libc: export exit() if configured in flat mode 33432* [#8608](https://github.com/apache/nuttx/pull/8608) libc: fix a bug of strtof 33433* [#8441](https://github.com/apache/nuttx/pull/8441) libc: fix a bug of strtold 33434* [#8106](https://github.com/apache/nuttx/pull/8106) libc: fix the some else bug of strtold 33435* [#8495](https://github.com/apache/nuttx/pull/8495) libc: fix some bug of strtold 33436* [#8117](https://github.com/apache/nuttx/pull/8117) libc: Fixbug strtold 33437* [#8206](https://github.com/apache/nuttx/pull/8206) libc: Implement quick_exit and at_quick_exit 33438* [#8289](https://github.com/apache/nuttx/pull/8289) libc: invalid dns cache entry after ttl expires 33439* [#8418](https://github.com/apache/nuttx/pull/8418) libc: Keep printf("%pS", p) behavior consistent 33440* [#8112](https://github.com/apache/nuttx/pull/8112) libc: Let _SC_PAGESIZE return 4096 when CONFIG_MM_PGSIZE isn't defined 33441* [#8112](https://github.com/apache/nuttx/pull/8112) libc: modify the strtof 33442* [#8584](https://github.com/apache/nuttx/pull/8584) libc: Move math library from libs/libc/math to libs/libm/libm 33443* [#8023](https://github.com/apache/nuttx/pull/8023) libc: Move tree.h from include/nuttx to include/sys 33444* [#8517](https://github.com/apache/nuttx/pull/8517) libc: Move memfd related stuff to sys/mman.h 33445* [#8585](https://github.com/apache/nuttx/pull/8585) libc: Remove dependence of LIBC_FLOATINGPOINT and LIBC_LONG_LONG from LIBC_NUMBERED_ARGS 33446* [#8292](https://github.com/apache/nuttx/pull/8292) libc: asctime_r: add param check to asctime_r() 33447* [#8546](https://github.com/apache/nuttx/pull/8546) libc: exit: Purge calls to userspace API exit() from kernel 33448* [#8087](https://github.com/apache/nuttx/pull/8087) libc: getaddrinfo: add AI_NUMERICHOST flag handle 33449* [#8606](https://github.com/apache/nuttx/pull/8606) libc: lib_abort.c: Change tall to user-space exit() into system call _exit() 33450* [#8651](https://github.com/apache/nuttx/pull/8651) libc: lib_bzero: Add bzero prototype. 33451* [#8522](https://github.com/apache/nuttx/pull/8522) libc: lib_memcpy.c:Add mempcpy method. 33452* [#8639](https://github.com/apache/nuttx/pull/8639) libc: lib_rawmemchr.c: Add rawmemchr methon. 33453* [#8756](https://github.com/apache/nuttx/pull/8756) libc: libvsprintf: use puts to replace the putc 33454* [#8063](https://github.com/apache/nuttx/pull/8063) libc: math: add simple implementation for sincos API 33455* [#8874](https://github.com/apache/nuttx/pull/8874) libc: math: rename libc/math.csv to libm/libm.csv 33456* [#8416](https://github.com/apache/nuttx/pull/8416) libc: misc: mutex: fix assertion if nxmutex_reset() before nxmutex_unlock() 33457* [#8291](https://github.com/apache/nuttx/pull/8291) libc: netdb: Add return check in rexec_af 33458* [#7998](https://github.com/apache/nuttx/pull/7998) libc: passwd: add pw_gecos field(userinfo) 33459* [#8861](https://github.com/apache/nuttx/pull/8861) libc: settimeofday: correct prototype of settimeofday() 33460* [#8356](https://github.com/apache/nuttx/pull/8356) libc: stdio: fix rounding errors for fractional values less than 1 33461* [#8696](https://github.com/apache/nuttx/pull/8696) libc: stdio: Implement lib_get_stream 33462* [#8641](https://github.com/apache/nuttx/pull/8641) libc: stdio: Implement simple buffered out stream for vdprintf 33463* [#8638](https://github.com/apache/nuttx/pull/8638) libc: stdio: Make gets/gets_s work without CONFIG_FILE_STREAM 33464* [#8628](https://github.com/apache/nuttx/pull/8628) libc: stdio: Remove CONFIG_EOL_IS_XXX 33465* [#5996](https://github.com/apache/nuttx/pull/5996) libc: stdlib: generate uniformly distributed pseudo-random numbers 33466* [#8503](https://github.com/apache/nuttx/pull/8503) libc: stdlib: Guard fflush in exit with CONFIG_FILE_STREAM 33467* [#8681](https://github.com/apache/nuttx/pull/8681) libc: stream: Exchange name of lib_rawsostream.c and lib_rawoutstream.c 33468* [#8352](https://github.com/apache/nuttx/pull/8352) libc: stream: fix syslogstream_addstring length error 33469* [#8685](https://github.com/apache/nuttx/pull/8685) libc: stream: Implement gets/puts for all streams 33470* [#8704](https://github.com/apache/nuttx/pull/8704) libc: stream: unify stream return behavior 33471* [#8809](https://github.com/apache/nuttx/pull/8809) libc: syslogstream: add length check 33472* [#8555](https://github.com/apache/nuttx/pull/8555) libc: unistd: lib_getrlimit: return a value for RLIMIT_NOFILE request. 33473* [#8115](https://github.com/apache/nuttx/pull/8115) libc: versionsort: support versionsort and strverscmp 33474* [#8596](https://github.com/apache/nuttx/pull/8596) libcxx: Workaround -Wmaybe-uninitialized warning with "GCC 12.2" 33475* [#8120](https://github.com/apache/nuttx/pull/8120) libxx: Add CXX_STANDARD to select -std=c++?? 33476* [#8187](https://github.com/apache/nuttx/pull/8187) libxx: c++: Change the default value of CXX_STANDARD from c++17 to gnu++17 33477* [#8600](https://github.com/apache/nuttx/pull/8600) libxx: check GCC version before set special flags 33478* [#8611](https://github.com/apache/nuttx/pull/8611) libxx: Fix typo in shell expressions 33479* [#8349](https://github.com/apache/nuttx/pull/8349) netdb: add sanity check to avoid null pointer reference 33480Misc 33481* [#8634](https://github.com/apache/nuttx/pull/8634) Add branch prediction for assert 33482* [#8280](https://github.com/apache/nuttx/pull/8280) Add more battery operation 33483* [#8003](https://github.com/apache/nuttx/pull/8003) Add new api for signal and string 33484* [#8000](https://github.com/apache/nuttx/pull/8000) Change FIOC_MMAP, FIOC_MUNMAP and FIOC_TRUNCATE into file operation c… 33485* [#8371](https://github.com/apache/nuttx/pull/8371) Change sec2tick macros to round up 33486* [#8618](https://github.com/apache/nuttx/pull/8618) change strcpy to strlcpy 33487* [#8285](https://github.com/apache/nuttx/pull/8285) Force sockaddr_storage to the desired alignment 33488* [#8201](https://github.com/apache/nuttx/pull/8201) Make 64-bit time_t unsigned 33489* [#8435](https://github.com/apache/nuttx/pull/8435) Move SEEK_xxx from unistd.h to sys/types.h 33490* [#8363](https://github.com/apache/nuttx/pull/8363) Remove executable permissions from source files 33491* [#7881](https://github.com/apache/nuttx/pull/7881) Remove FAR and apply formatting 33492* [#8401](https://github.com/apache/nuttx/pull/8401) Remove OK macro from the code base 33493* [#8417](https://github.com/apache/nuttx/pull/8417) Remove the remain MIN/MAX like macro 33494* [#8424](https://github.com/apache/nuttx/pull/8424) Remove the remain MIN/MAX like macro 33495* [#8240](https://github.com/apache/nuttx/pull/8240) Switch from semaphore to mutex for exclusive access 33496* [#8400](https://github.com/apache/nuttx/pull/8400) assert: add a Kconfig option to limit binfile size 33497* [#8213](https://github.com/apache/nuttx/pull/8213) assert: Log the assertion expression in case of fail 33498* [#6920](https://github.com/apache/nuttx/pull/6920) crypto: support /dev/crypto for nuttx 33499* [#8134](https://github.com/apache/nuttx/pull/8134) crypto: support crypto can handle streaming data 33500* [#8135](https://github.com/apache/nuttx/pull/8135) crypto: add read & write function aviod check flag failed 33501* [#8279](https://github.com/apache/nuttx/pull/8279) dns: packed dns_header_s and dns_question_s 33502* [#8274](https://github.com/apache/nuttx/pull/8274) feature: add audio AUDIOIOC_SETPARAMTER ioctl command 33503* [#8397](https://github.com/apache/nuttx/pull/8397) include: Add MIN/MAX definition to sys/param.h 33504* [#8414](https://github.com/apache/nuttx/pull/8414) include: Add nitems() definition to sys/param.h 33505* [#7859](https://github.com/apache/nuttx/pull/7859) include: compiler.h: Add malloc_likex and realloc_like macro 33506* [#8211](https://github.com/apache/nuttx/pull/8211) include: epoll.h: Add u64 field like Linux 33507* [#8523](https://github.com/apache/nuttx/pull/8523) include: limits.h: Map _POSIX_[S]SIZE_M[AX|IN] to [U]LONG_M[AX|IN] 33508* [#8183](https://github.com/apache/nuttx/pull/8183) include: limits.h: add PTRDIFF_MAX and PTRDIFF_MIN 33509* [#8623](https://github.com/apache/nuttx/pull/8623) include: signal.h:Expanding SIGNAL to be consistent with Linux 33510* [#8571](https://github.com/apache/nuttx/pull/8571) include: sys/resource.h:Added ru_maxrss type 33511* [#8535](https://github.com/apache/nuttx/pull/8535) include: sys/socket.h: Add SOCK_CTRL to socket type 33512* [#8326](https://github.com/apache/nuttx/pull/8326) include: sys/queue.h:remove CONFIG_ALLOW_MIT_COMPONENTS 33513* [#8196](https://github.com/apache/nuttx/pull/8196) include: time.h: Add CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID definition 33514* [#8277](https://github.com/apache/nuttx/pull/8277) include: timers/pwm: Add user provided argument in struct pwm_info_s 33515* [#8174](https://github.com/apache/nuttx/pull/8174) include: touchscreen.h: move the #ifdef CONFIG_INPUT position 33516* [#8407](https://github.com/apache/nuttx/pull/8407) misc/assert: remove const string from assert expression 33517* [#8281](https://github.com/apache/nuttx/pull/8281) motor: Add pattern control mode 33518* [#7943](https://github.com/apache/nuttx/pull/7943) nuttx: add some missing FAR 33519* [#7942](https://github.com/apache/nuttx/pull/7942) nuttx: unify MIN, MAX and ABS macro definition across the code 33520* [#8413](https://github.com/apache/nuttx/pull/8413) nuttx: Use MIN/MAX definitions from "sys/param.h" 33521* [#8859](https://github.com/apache/nuttx/pull/8859) openamp: fix libmetal compile error with arm64 arch 33522* [#8629](https://github.com/apache/nuttx/pull/8629) openamp: update openamp lib 33523* [#8284](https://github.com/apache/nuttx/pull/8284) spinlock: Move spinlock_init to public macros 33524* [#7999](https://github.com/apache/nuttx/pull/7999) sys: socket/scm: return NULL when cmsg_len is zero 33525* [#8073](https://github.com/apache/nuttx/pull/8073) syscall: Always add munmap into syscalls 33526* [#8275](https://github.com/apache/nuttx/pull/8275) touch: Add ioctl to enable/disable gesture 33527* [#8016](https://github.com/apache/nuttx/pull/8016) treewide: Remove the unnecessary NULL fields in global instance definition of file_operations 33528* [#8527](https://github.com/apache/nuttx/pull/8527) utsname: Expand the buffer for version information slightly 33529 33530Changes to the Build System 33531Improvements 33532* [#8177](https://github.com/apache/nuttx/pull/8177) build: Add STACK_USAGE(-fstack-usage) to assist the stack analysis 33533* [#8449](https://github.com/apache/nuttx/pull/8449) build/Kconfig: add BINDIR/APPSBINDIR to support out of tree build 33534* [#8357](https://github.com/apache/nuttx/pull/8357) tools: add separate flags parameter for COMPILE/COMPILEXX 33535* [#8391](https://github.com/apache/nuttx/pull/8391) tools: ARCHIVE uses the full path 33536* [#8732](https://github.com/apache/nuttx/pull/8732) tools: arm: Add missing -mcpu param for zig 33537* [#8403](https://github.com/apache/nuttx/pull/8403) tools: checkpatch.sh: Check the source code doesn't set executable bit 33538* [#8379](https://github.com/apache/nuttx/pull/8379) tools: checkpatch: Added encoding check with cvt2utf 33539* [#8379](https://github.com/apache/nuttx/pull/8379) tools: checkpatch: Added encoding check with cvt2utf 33540* [#8347](https://github.com/apache/nuttx/pull/8347) tools: compile with full file path 33541* [#8347](https://github.com/apache/nuttx/pull/8347) tools: compile with full file path 33542* [#8443](https://github.com/apache/nuttx/pull/8443) tools: config: silent print of archive objects 33543* [#8442](https://github.com/apache/nuttx/pull/8442) tools: config: stack usage(.su) file should be removed on clean phase 33544* [#8674](https://github.com/apache/nuttx/pull/8674) tools: cxd56: Fix typo in mkspk tool 33545* [#8663](https://github.com/apache/nuttx/pull/8663) tools: Don't download tarball if a local git repo found 33546* [#7971](https://github.com/apache/nuttx/pull/7971) tools: Ensure removing Python related commands for macOS 33547* [#7993](https://github.com/apache/nuttx/pull/7993) tools: Ensure removing Python3.11 related commands for macOS 33548* [#8515](https://github.com/apache/nuttx/pull/8515) tools: Extract a valid trace line and resolve the address to a function name 33549* [#8310](https://github.com/apache/nuttx/pull/8310) tools: Extend mkdep buffer 33550* [#8916](https://github.com/apache/nuttx/pull/8916) tools: export: LLVM style arch info for non-c language 33551* [#8870](https://github.com/apache/nuttx/pull/8870) tools: export: Add LDELFFLAGS to mkexport.sh. 33552* [#8425](https://github.com/apache/nuttx/pull/8425) tools: Fix Config.mk 33553* [#8494](https://github.com/apache/nuttx/pull/8494) tools: kconfig: add kconfiglib support 33554* [#8384](https://github.com/apache/nuttx/pull/8384) tools: Makefile: fix redundant delimiters when using make V=1 33555* [#8378](https://github.com/apache/nuttx/pull/8378) tools: makefile: silent all compile output 33556* [#8381](https://github.com/apache/nuttx/pull/8381) tools: Make zig available for arm/riscv/sim 33557* [#8601](https://github.com/apache/nuttx/pull/8601) tools: make the symbol table generated by mkallsyms.py two-byte aligned 33558* [#8305](https://github.com/apache/nuttx/pull/8305) tools: minidumpserver: add arm-a support 33559* [#8142](https://github.com/apache/nuttx/pull/8142) tools: minidumpserver: replace stackdump to stack_dump 33560* [#7938](https://github.com/apache/nuttx/pull/7938) tools: minidumpserver: sync the stackdump search string after #7875 33561* [#8723](https://github.com/apache/nuttx/pull/8723) tools: nxstyle: add 'IRQn_Type' to whitelists 33562* [#8657](https://github.com/apache/nuttx/pull/8657) tools: nxstyle: add "NimMain" to whitelists. 33563* [#8559](https://github.com/apache/nuttx/pull/8559) tools: nxstyle: add "CMUnitTest" to nxstyle white list 33564* [#8307](https://github.com/apache/nuttx/pull/8307) tools: parsememdump.py: support show total pid memory 33565* [#8652](https://github.com/apache/nuttx/pull/8652) tools: parsememdump.py: Restore the execution permission bit 33566* [#8808](https://github.com/apache/nuttx/pull/8808) tools: parsetrace: fix context swtich parsing error 33567* [#8928](https://github.com/apache/nuttx/pull/8928) tools: riscv: Map extensions to certain cpu model for LLVM based toolc… 33568* [#8030](https://github.com/apache/nuttx/pull/8030) tools: script: support IPv6 in simhostroute.sh 33569* [#8001](https://github.com/apache/nuttx/pull/8001) tools: script: enable forward in simhostroute.sh 33570* [#8007](https://github.com/apache/nuttx/pull/8007) tools: syscall: export UP_WRAPSYM/UP_REALSYM macro 33571* [#8419](https://github.com/apache/nuttx/pull/8419) tools: use relative paths when reverting to compile 33572* [#8586](https://github.com/apache/nuttx/pull/8586) tools: unix: use anonymous pipes to avoid menuconfig break 33573* [#8675](https://github.com/apache/nuttx/pull/8675) tools: Unix.mk: Add VERSION_ARG to argument of version.sh 33574* [#8308](https://github.com/apache/nuttx/pull/8308) tools: unix.mk: Pass APPDIR to arch's Makefile 33575* [#8582](https://github.com/apache/nuttx/pull/8582) tools: Updated python scripts interpreter invocation in tools/. 33576* [#8306](https://github.com/apache/nuttx/pull/8306) tools: version: generate dummy version without breakout 33577* [#8759](https://github.com/apache/nuttx/pull/8759) treewide: add DOWNLOAD variable as unification of curl call 33578 33579Architectural Support 33580New Architecture Support 33581* [#8816](https://github.com/apache/nuttx/pull/#8816) risc-v: espressif: Add Espressif chip family support on top of esp-hal-3rdparty 33582* [#8420](https://github.com/apache/nuttx/pull/#8420) risc-v: esp32c6: Add ESP32-C6 basic support 33583* [#8466](https://github.com/apache/nuttx/pull/#8466) risc-v: hpm6750: add hpmicro chip 33584Improvements 33585* [#8114](https://github.com/apache/nuttx/pull/8114) Revert "arch: Don't free the context if the reference doesn't equal z… 33586* [#7982](https://github.com/apache/nuttx/pull/7982) arch: add volatile for regs in up_dump_register function 33587* [#8283](https://github.com/apache/nuttx/pull/8283) arch: addrenv: Change group_addrenv_t to arch_addrenv_t 33588* [#8355](https://github.com/apache/nuttx/pull/8355) arch: addrenv: Refactor address environment handling, by moving tg_addrenv out of the group structure 33589* [#8227](https://github.com/apache/nuttx/pull/8227) arch: ARCH_KERNEL_STACK: Fix signal handling with kernel stack 33590* [#8821](https://github.com/apache/nuttx/pull/8821) arch: arch_timer: fixed build issue when enable tickless 33591* [#8241](https://github.com/apache/nuttx/pull/8241) arch: assert: switch from ASSERT(0/false) to PANIC 33592* [#8192](https://github.com/apache/nuttx/pull/8192) arch: backtrace: use CURRENT_REGS when in interrupt context 33593* [#8037](https://github.com/apache/nuttx/pull/8037) arch: change tcbinfo regs num 33594* [#7915](https://github.com/apache/nuttx/pull/7915) arch: compiler.h: Add _ between format|printf|syslog|scanf|strftime and like 33595* [#8253](https://github.com/apache/nuttx/pull/8253) arch: EXTRA_LIBS: link all staging library 33596* [#8776](https://github.com/apache/nuttx/pull/8776) arch: fixed error in the calculation of nwords caused an out of bounds 33597* [#8467](https://github.com/apache/nuttx/pull/8467) arch: group_addrenv: Fix call to group_addrenv for targets that don't need it 33598* [#7895](https://github.com/apache/nuttx/pull/7895) arch: Make REG_[GET/SET]_FIELD thread safe for ESP SOCs 33599* [#7875](https://github.com/apache/nuttx/pull/7875) arch: move stack and task dump to common code 33600* [#8875](https://github.com/apache/nuttx/pull/8875) arch: Remove MIN macro definition 33601* [#7973](https://github.com/apache/nuttx/pull/7973) arch: Remove the unused arch color function variant 33602* [#8779](https://github.com/apache/nuttx/pull/8779) arch: Rename up_[early]serialinit to [arm64|riscv|x86_64][early]serialinit 33603* [#7899](https://github.com/apache/nuttx/pull/7899) arch: remove up_release_pending function 33604* [#8825](https://github.com/apache/nuttx/pull/8825) arch: remove unnecessary sem_setprotocol code 33605* [#7955](https://github.com/apache/nuttx/pull/7955) arch: save user context in assert common code 33606* [#8842](https://github.com/apache/nuttx/pull/8842) arch: Set the default value of ARCH for x86_64 33607* [#8712](https://github.com/apache/nuttx/pull/8712) arch/boards: Rename up_lowputc to [arm64|renesas]_lowputc 33608 33609* [#8127](https://github.com/apache/nuttx/pull/8127) arm: Add missing kconfig for arm 33610* [#8627](https://github.com/apache/nuttx/pull/8627) arm: backtrace/unwind: skip unaligned instruction 33611* [#8730](https://github.com/apache/nuttx/pull/8730) arm: cache: add up_get_xcache_linesize() support 33612* [#8866](https://github.com/apache/nuttx/pull/8866) arm: chip/sdio/muxbus: remove all undefined symbols 33613* [#8746](https://github.com/apache/nuttx/pull/8746) arm: correct ARCH_HAVE_DSP to ARM_HAVE_DSP 33614* [#8125](https://github.com/apache/nuttx/pull/8125) arm: Fix error in cache ops 33615* [#7906](https://github.com/apache/nuttx/pull/7906) arm: fix typos in start files 33616* [#8249](https://github.com/apache/nuttx/pull/8249) arm: make DSP arch extension configurable 33617* [#8703](https://github.com/apache/nuttx/pull/8703) arm: armv7-a: fixed scu cpu tagram mask define issue 33618* [#8157](https://github.com/apache/nuttx/pull/8157) arm: armv7-a/r: fix kconfig error of l2 cache latency 33619* [#8036](https://github.com/apache/nuttx/pull/8036) arm: armv7-m/armv8-m: add faultmask register operation to 33620* [#8737](https://github.com/apache/nuttx/pull/8737) arm: armv8-m: add missing zig flags 33621* [#8717](https://github.com/apache/nuttx/pull/8717) arm: armv8-m: DSP extension is optional 33622* [#8238](https://github.com/apache/nuttx/pull/8238) arm: armv8-m: Fix pthread_start syscall 33623* [#7854](https://github.com/apache/nuttx/pull/7854) arm: armv8-m: support pmu api 33624* [#8747](https://github.com/apache/nuttx/pull/8747) arm: armv8-m/cortex-m85: add support of PACBTI(Authentication and Branch Target Identification Extension) 33625* [#8335](https://github.com/apache/nuttx/pull/8335) arm: itm_syslog: remove invaild select config 33626* [#8360](https://github.com/apache/nuttx/pull/8360) arm: unwinder: set default unwinder type to arm exidx/extab 33627 33628* [#8678](https://github.com/apache/nuttx/pull/8678) arm: cxd56xx: Fix a freezing issue caused by power control 33629* [#8677](https://github.com/apache/nuttx/pull/8677) arm: cxd56xx: Fix gnss poll when an event has already occurred 33630* [#8877](https://github.com/apache/nuttx/pull/8877) arm: cxd56xx: Fix SPI transfer without DMA 33631* [#8676](https://github.com/apache/nuttx/pull/8676) arm: cxd56xx: Update miscellaneous cxd56xx drivers 33632 33633* [#7884](https://github.com/apache/nuttx/pull/7884) arm: gd32f450: Add i2c driver for gd32f450 MCU 33634 33635* [#8707](https://github.com/apache/nuttx/pull/8707) arm: imx6: Fix a compilation error with UBSan 33636* [#8603](https://github.com/apache/nuttx/pull/8603) arm: imxrt: d-cache write-back mode with networking 33637* [#8684](https://github.com/apache/nuttx/pull/8684) arm: imxrt: Feature imxrt1064 mcuboot 33638* [#8788](https://github.com/apache/nuttx/pull/8788) arm: imxrt: imxrt_flexpwm independent output B support added 33639* [#8499](https://github.com/apache/nuttx/pull/8499) arm: imxrt: PWM trigger source selection option and update for Teensy 4.1 configuration 33640* [#7929](https://github.com/apache/nuttx/pull/7929) arm: imxrt: serial: Fix selection of RTS to iflow 33641* [#7868](https://github.com/apache/nuttx/pull/7868) arm: imxrt: Serial: LPUART_STAT_PF s/b LPUART_STAT_NF 33642 33643* [#7933](https://github.com/apache/nuttx/pull/7933) amr: lpc17xx_40xx: CAN driver SocketCAN enforce TX fifo behaviour 33644 33645* [#8803](https://github.com/apache/nuttx/pull/8803) arm: nrf52: fix device shutdown 33646* [#8828](https://github.com/apache/nuttx/pull/8828) arm: nrf52: fix RTC tickless 33647* [#8817](https://github.com/apache/nuttx/pull/8817) arm: nrf52: improvements for GPIOTE and buttons example for boards 33648* [#8923](https://github.com/apache/nuttx/pull/8923) arm: nrf52: initial support for USBDEV 33649* [#8725](https://github.com/apache/nuttx/pull/8725) arm: nrf52: minor fixes for SoftDevice 33650* [#8702](https://github.com/apache/nuttx/pull/8702) arm: nrf52: use the lates SoftDevice release (v2.3.0) 33651* [#8793](https://github.com/apache/nuttx/pull/8793) arm: nrf52/nrf53: various fixes 33652* [#8804](https://github.com/apache/nuttx/pull/8804) arm: nrf53: add ADC support 33653* [#8909](https://github.com/apache/nuttx/pull/8909) arm: nrf53: add GPIOTE support (GPIO interrupts) 33654* [#8826](https://github.com/apache/nuttx/pull/8826) arm: nrf53: add PWM support 33655* [#8908](https://github.com/apache/nuttx/pull/8908) arm: nrf53: add RTC and tickless support 33656* [#8722](https://github.com/apache/nuttx/pull/8722) arm: nrf53: add SoftDevice support for the net core 33657* [#8806](https://github.com/apache/nuttx/pull/8806) arm: nrf53: add TIM support 33658* [#8805](https://github.com/apache/nuttx/pull/8805) arm: nrf53: add UID support 33659* [#8770](https://github.com/apache/nuttx/pull/8770) arm: nrf53: add more register definitions (ported from nrf52) and some cosmetics for nrf52 33660* [#8710](https://github.com/apache/nuttx/pull/8710) arm: nrf53: initial support for net core boot 33661* [#8765](https://github.com/apache/nuttx/pull/8765) arm: nrf53: initial support for rptun 33662* [#8807](https://github.com/apache/nuttx/pull/8807) arm: nrf53: initialize PM 33663 33664* [#7869](https://github.com/apache/nuttx/pull/7869) arm: s32k1xx: Add DMA to the s32k1 serial 33665* [#7961](https://github.com/apache/nuttx/pull/7961) arm: s32k1xx: Add config option to enable UART invert setting. 33666* [#7866](https://github.com/apache/nuttx/pull/7866) arm: s32k1xx: automatically calculate size of periphclocks array 33667* [#8058](https://github.com/apache/nuttx/pull/8058) arm: s32k1xx: avoid buffer overflow when CAN time is used for non-FD CAN. 33668* [#7887](https://github.com/apache/nuttx/pull/7887) arm: s32k3xx: Clean up 33669* [#7931](https://github.com/apache/nuttx/pull/7931) arm: s32k3xx: EDMA fix get count 33670* [#7901](https://github.com/apache/nuttx/pull/7901) arm: s32k1xx: Fix S32K1XX PM which was broken by #7869 33671* [#7879](https://github.com/apache/nuttx/pull/7879) arm: s32k1xx: FlexCAN don't use a blocking wait in tx avail 33672* [#7888](https://github.com/apache/nuttx/pull/7888) arm: s32k1xx: LPSPI use DMA 33673* [#7921](https://github.com/apache/nuttx/pull/7921) arm: s32k3xx: MR-CANHUBK3 Add protected knsh support 33674* [#7958](https://github.com/apache/nuttx/pull/7958) arm: s32k3xx: PHY MII/MMD support and TJA1103 support 33675* [#7967](https://github.com/apache/nuttx/pull/7967) arm: s32k3xx: Progmem dataflash with littlefs support 33676* [#8005](https://github.com/apache/nuttx/pull/8005) arm: s32k3xx: Progmem fixes and size config 33677* [#7932](https://github.com/apache/nuttx/pull/7932) arm: s32k3xx: Serial add DMA 33678* [#8223](https://github.com/apache/nuttx/pull/8223) arm: s32k3xx: serial Do not use TC use TDRE & TIE Bug Fix 33679* [#7930](https://github.com/apache/nuttx/pull/7930) arm: s32k1xx: serial: Fix selection of RTS to iflow 33680 33681* [#7907](https://github.com/apache/nuttx/pull/7907) arm: samv7: add ARCH_RAMVECTORS support 33682* [#7894](https://github.com/apache/nuttx/pull/7894) arm: sama5: Add Flexcom SPI support 33683* [#7940](https://github.com/apache/nuttx/pull/7940) arm: sama5: Add SAMA5D2 MCAN support 33684* [#8655](https://github.com/apache/nuttx/pull/8655) arm: samv7: add support for ADC conversion triggering with PWM 33685* [#8597](https://github.com/apache/nuttx/pull/8597) arm: samv7: add support for complementary PWM output 33686* [#8484](https://github.com/apache/nuttx/pull/8484) arm: sama5: add support for flexcom twi 33687* [#8689](https://github.com/apache/nuttx/pull/8689) arm: samv7: add support for PWM fault protection 33688* [#8480](https://github.com/apache/nuttx/pull/8480) arm: sama5: Changes to allow board-specific SAMA5 DRP/OTG support 33689* [#8724](https://github.com/apache/nuttx/pull/8724) arm: sam34: Copy I2C_M_NOSTART support from sam7v/sam_twihs.c driver 33690* [#8141](https://github.com/apache/nuttx/pull/8141) arm: sama5: Ensure SFR CKTRIM register correctly set, SAMA5D2/D3 only 33691* [#8488](https://github.com/apache/nuttx/pull/8488) arm: samv7: fix compilation error when only DAC1 is configured 33692* [#8104](https://github.com/apache/nuttx/pull/8104) arm: sama5: fix dma support for SAMA5 flexspi driver 33693* [#8237](https://github.com/apache/nuttx/pull/8237) arm: samv7: fix issue when AFEC1 driver failed to open second time 33694* [#8565](https://github.com/apache/nuttx/pull/8565) arm: samv7: fix MCAN build error 33695* [#8479](https://github.com/apache/nuttx/pull/8479) arm: sama5: Fix sam_udphs to allow RNDIS to work 33696* [#8490](https://github.com/apache/nuttx/pull/8490) arm: sama5: Fixes to PR that enables SAMA5 OTG/DRP support 33697* [#7904](https://github.com/apache/nuttx/pull/7904) arm: sama5: serial and flexcom serial corrections 33698* [#8714](https://github.com/apache/nuttx/pull/8714) arm: samv7: raise input flow control warning only for serial drivers 33699* [#8745](https://github.com/apache/nuttx/pull/8745) arm: samv7: switch from printing numbers as signed to unsigned in QSPI 33700* [#7941](https://github.com/apache/nuttx/pull/7941) arm: samv7: Update SAMV7 sam_mcan.c 33701 33702* [#8570](https://github.com/apache/nuttx/pull/8570) arm: stm32: Add UART4 & UART5 to high density stm32f103 chips 33703* [#8880](https://github.com/apache/nuttx/pull/8880) arm: stm32: Fixed stm32 rcc and tim 33704* [#8882](https://github.com/apache/nuttx/pull/8882) arm: stm32: otgdev: remove invalid use of the priv field for EP 33705* [#8060](https://github.com/apache/nuttx/pull/8060) arm: stm32: protect TX buffer during CAN error frame generation. 33706* [#8040](https://github.com/apache/nuttx/pull/8040) arm: stm32: unified up_perf initialization 33707* [#8220](https://github.com/apache/nuttx/pull/8220) arm: stm32: foc: move the warning in the right place - should be in stm32f7 33708* [#8569](https://github.com/apache/nuttx/pull/8569) arm: stm32: stm32_eth: Fixed alignment of Ethernet descriptors & buffers. 33709* [#8566](https://github.com/apache/nuttx/pull/8566) arm: stm32: stm32_eth: Enabled store-end-forward. 33710* [#8548](https://github.com/apache/nuttx/pull/8548) arm: stm32: stm32_eth: Busy bit is cleared before accessing the MACMIIAR register. 33711* [#8502](https://github.com/apache/nuttx/pull/8502) arm: stm32: stm32_sdio: Fix in SDIO clocking configuration. 33712* [#8212](https://github.com/apache/nuttx/pull/8212) arm: stm32/stm32f7: add support for BEMF sensing 33713* [#8069](https://github.com/apache/nuttx/pull/8069) arm: stm32/stm32f7: CANv1: protect TX buffer during CAN error frame generation 33714* [#8547](https://github.com/apache/nuttx/pull/8547) arm: stm32f7: Remove CPU lock on HW fail 33715* [#8699](https://github.com/apache/nuttx/pull/8699) arm: stm32f7: stm32_i2c.c: Driver cleanup 33716* [#8303](https://github.com/apache/nuttx/pull/8303) arm: stm32f7: stm32_i2c.c: Round up stm32_i2c_toticks return v… 33717* [#8219](https://github.com/apache/nuttx/pull/8219) arm: stm32h7: add lower half timer driver 33718* [#8124](https://github.com/apache/nuttx/pull/8124) arm: stm32h7: add SMPS PWR option for STM32H7X7 33719* [#8536](https://github.com/apache/nuttx/pull/8536) arm: stm32h7: socketcan extended filter fixes 33720* [#8250](https://github.com/apache/nuttx/pull/8250) arm: stm32h7: Support socket CAN error handling. 33721* [#8055](https://github.com/apache/nuttx/pull/8055) arm: stm32wb: add i2c driver 33722 33723* [#8304](https://github.com/apache/nuttx/pull/8304) arm: tiva: Added SocketCAN driver implementation to the tiva chip, modified the … 33724* [#8465](https://github.com/apache/nuttx/pull/8465) arm: tiva: Fix inability to control serial CTS/RTS via termios 33725* [#8362](https://github.com/apache/nuttx/pull/8362) arm: tiva: Remove dead store 33726* [#8475](https://github.com/apache/nuttx/pull/8475) arm: tiva: Serial TIOCxBRK BSD-compatible BREAK support 33727* [#8405](https://github.com/apache/nuttx/pull/8405) arm: tiva: Support termios for Tiva 33728* [#8406](https://github.com/apache/nuttx/pull/8406) arm: tiva: serial: Allow changing CTS/RTS with termios 33729 33730* [#8322](https://github.com/apache/nuttx/pull/8322) arm: tlsr82: Minor fix for telink tls82 chip 33731* [#8252](https://github.com/apache/nuttx/pull/8252) arm: tlsr82: tc32 backtrace bug fix 33732 33733* [#8716](https://github.com/apache/nuttx/pull/8716) arm64: add arm64_serialinit/arm64_earlyserialinit 33734* [#8665](https://github.com/apache/nuttx/pull/8665) arm64: ARMv8-r(Cortex-R82) support 33735* [#8687](https://github.com/apache/nuttx/pull/8687) arm64: ARMv8-r(Cortex-R82) support( add FVP platform) 33736* [#8009](https://github.com/apache/nuttx/pull/8009) arm64/a64: add driver for Allwinner A64 I2C bus 33737* [#7865](https://github.com/apache/nuttx/pull/7865) arm64/A64: Add irq definition of Allwinner A64 interrupts #7939 arm64/a64: Add driver for MIPI DSI 33738* [#8039](https://github.com/apache/nuttx/pull/8039) arm64/a64: Fix PIO Interrupt 33739* [#7944](https://github.com/apache/nuttx/pull/7944) arm64/a64: Add driver for Display Engine 33740* [#7962](https://github.com/apache/nuttx/pull/7962) arm64/a64: Add driver for Reduced Serial Bus 33741* [#7919](https://github.com/apache/nuttx/pull/7919) arm64/a64: Add driver for TCON0 33742 33743* [#8476](https://github.com/apache/nuttx/pull/8476) mips: pic32mz: Serial support for termios 33744* [#8550](https://github.com/apache/nuttx/pull/8550) mips: pic32mz: Serial TIOCxBRK BSD-compatible BREAK support 33745* [#8540](https://github.com/apache/nuttx/pull/8540) mips: pic32mz: Fix PPS mappings for RPE5R register 33746* [#8539](https://github.com/apache/nuttx/pull/8539) mips: pic32mz: Fix PPS register mapping defines 33747 33748* [#7970](https://github.com/apache/nuttx/pull/7970) qemu-rv: Fix qemu_rv_mtimer_interrupt() for BUILD_KERNEL 33749 33750* [#8180](https://github.com/apache/nuttx/pull/8180) risc-v: addrenv: Do not free physical memory for SHM area 33751* [#7960](https://github.com/apache/nuttx/pull/7960) risc-v: addrenv: Test that satp contents make sense 33752* [#8168](https://github.com/apache/nuttx/pull/8168) risc-v: addrenv_shm: Add missing sanity check to up_shmdt() 33753* [#8226](https://github.com/apache/nuttx/pull/8226) risc-v: riscv_exception.c: Print the EPC value always 33754* [#8461](https://github.com/apache/nuttx/pull/8461) risc-v: esp32c3: Add RTC interrupt support 33755* [#8064](https://github.com/apache/nuttx/pull/8064) risc-v: esp32c3: correct receive buffer size 33756* [#8415](https://github.com/apache/nuttx/pull/8415) risc-v: esp32c3: fix cpuint issue 33757* [#7902](https://github.com/apache/nuttx/pull/7902) risc-v: esp32c3: Fix double initialization of SHA Accelerator 33758* [#8265](https://github.com/apache/nuttx/pull/8265) risc-v: esp32c3: Fix IRQ initialization, it was crashing on DEBUG_ASSERTIONS 33759* [#8671](https://github.com/apache/nuttx/pull/8671) risc-v: esp32c3: Fix missing irq timer 33760* [#8636](https://github.com/apache/nuttx/pull/8636) risc-v: esp32c3: Fix WDT incorrect interrupt enable/disable 33761* [#8014](https://github.com/apache/nuttx/pull/8014) risc-v: esp32c3: Modify the IRQ APIs to be compatible with ESP32/S2/S3 33762* [#8673](https://github.com/apache/nuttx/pull/8673) risc-v: esp32c3: Remove erroneous interrupt disable 33763* [#8934](https://github.com/apache/nuttx/pull/8934) risc-v: espressif: Add High Resolution Timer driver 33764* [#8932](https://github.com/apache/nuttx/pull/8932) risc-v: espressif: Add Hardware RNG support 33765* [#8931](https://github.com/apache/nuttx/pull/8931) risc-v: espressif: Add support for System Reset 33766* [#8769](https://github.com/apache/nuttx/pull/8769) risc-v: espressif: Fix unwanted flush in the SPI slave driver 33767* [#8222](https://github.com/apache/nuttx/pull/8222) risc-v: espressif: Stabilize MCUboot support on Espressif chips 33768* [#8912](https://github.com/apache/nuttx/pull/8912) risc-v: espressif: Update revision of esp-hal-3rdparty 33769* [#8529](https://github.com/apache/nuttx/pull/8529) risc-v: mpfs: add athena irq defines 33770* [#8701](https://github.com/apache/nuttx/pull/8701) risc-v: mpfs: clear i2c ints before the transfer starts 33771* [#8700](https://github.com/apache/nuttx/pull/8700) risc-v: mpfs: clear spi int before the transfer starts 33772* [#8191](https://github.com/apache/nuttx/pull/8191) risc-v: mpfs: Make selection of SBI boot or direct boot run-time configu… 33773* [#8368](https://github.com/apache/nuttx/pull/8368) risc-v: litex: Add GPIO driver. 33774* [#8233](https://github.com/apache/nuttx/pull/8233) risc-v: litex: Allow custom peripheral memory mapping and IRQ. 33775* [#8225](https://github.com/apache/nuttx/pull/8225) risc-v: litex: System clock frequency selectable from Kconfig. 33776* [#8393](https://github.com/apache/nuttx/pull/8393) risc-v: litex: watchdog: fix Kconfig typo 33777 33778* [#7855](https://github.com/apache/nuttx/pull/7855) sim: add hostfs support for windows 33779* [#8354](https://github.com/apache/nuttx/pull/8354) sim: add toolchain library libm 33780* [#8143](https://github.com/apache/nuttx/pull/8143) sim: bug fix when open CONFIG_SIM_WALLTIME_SIGNAL 33781* [#8468](https://github.com/apache/nuttx/pull/8468) sim: Fix bugs on sim 33782* [#8519](https://github.com/apache/nuttx/pull/8519) sim: fix build break on visual studio 33783* [#8850](https://github.com/apache/nuttx/pull/8850) sim: Fix iic/spi bus open failed 33784* [#8031](https://github.com/apache/nuttx/pull/8031) sim: Fix make tool doesn't rebuild dependencies of the libboard target 33785* [#8489](https://github.com/apache/nuttx/pull/8489) sim: fix nuttx consumes much CPU time 33786* [#8255](https://github.com/apache/nuttx/pull/8255) sim: fix sim_x11events calls but sim_x11initialize() hasn't ready 33787* [#7936](https://github.com/apache/nuttx/pull/7936) sim: Fix small video bugs 33788* [#8497](https://github.com/apache/nuttx/pull/8497) sim: fix vfork report error 33789* [#8254](https://github.com/apache/nuttx/pull/8254) sim: init events field when send ack/dack 33790* [#7905](https://github.com/apache/nuttx/pull/7905) sim: Minor improvement for sim serial driver 33791* [#8076](https://github.com/apache/nuttx/pull/8076) sim: move some i2c,spi configs from board to arch 33792* [#8469](https://github.com/apache/nuttx/pull/8469) sim: realize sim timer tickless 33793* [#7911](https://github.com/apache/nuttx/pull/7911) sim: Refine arch/sim implementation 33794* [#7946](https://github.com/apache/nuttx/pull/7946) sim: remove unused variale in sim_saveusercontext() 33795* [#8849](https://github.com/apache/nuttx/pull/8849) sim: sim_linuxi2c: fix snprintf parameter 33796* [#8472](https://github.com/apache/nuttx/pull/8472) sim: sim_saveusercontext & sim_fullcontextrestore update 33797* [#7928](https://github.com/apache/nuttx/pull/7928) sim: take timer irq as real timer with WALL_SIGNAL 33798* [#8390](https://github.com/apache/nuttx/pull/8390) sim: alsa: add audio offload capture support. 33799* [#7927](https://github.com/apache/nuttx/pull/7927) sim: alsa: don't let switch out when do poweroff & alsa mixer open 33800* [#8251](https://github.com/apache/nuttx/pull/8251) sim: alsa: Minor improvement for sim alsa 33801* [#8377](https://github.com/apache/nuttx/pull/8377) sim: alsa: support streaming data when offload playback. 33802* [#7925](https://github.com/apache/nuttx/pull/7925) sim: fb: remove the lpwork in fb, merge to looper task 33803* [#8423](https://github.com/apache/nuttx/pull/8423) sim: hcisocket: correct teardown device index 33804* [#8078](https://github.com/apache/nuttx/pull/8078) sim: posix: sim_linuxspi.c: fix select not work and incorrect behaviour 33805* [#8348](https://github.com/apache/nuttx/pull/8348) sim: rpserver/rpproxy: remove colon from syslog prefix 33806* [#8470](https://github.com/apache/nuttx/pull/8470) sim: uart: add uart dma mode & use work instead of loop 33807* [#8408](https://github.com/apache/nuttx/pull/8408) sim: uart: do uart_xmitchars() when tty_txint enabled 33808* [#7926](https://github.com/apache/nuttx/pull/7926) sim: uart: fix printf error when use irq mode 33809* [#8834](https://github.com/apache/nuttx/pull/8834) sim: uart: return -ENOTTY for cmd which don't support 33810* [#8646](https://github.com/apache/nuttx/pull/8646) sim: Usb: add sim usb device and host driver 33811* [#7898](https://github.com/apache/nuttx/pull/7898) sim: video: call validate_buf when set_buf 33812 33813* [#7786](https://github.com/apache/nuttx/pull/7786) xtensa: Add support for touch pad polling on ESP32 33814* [#8672](https://github.com/apache/nuttx/pull/8672) xtensa: Fix Xtensa interrupt stack context restore issue 33815* [#8372](https://github.com/apache/nuttx/pull/8372) xtensa: modify timer interrupt level large to XCHAL_IRQ_LEVEL level 33816* [#8711](https://github.com/apache/nuttx/pull/8711) xtensa: Perform some build system cleanups 33817* [#8121](https://github.com/apache/nuttx/pull/8121) xtensa: toolchain: add -Wno-atmoic-alignment flags 33818* [#7762](https://github.com/apache/nuttx/pull/7762) xtensa: esp32: Add esp32_himem_chardev.c 33819* [#8046](https://github.com/apache/nuttx/pull/8046) xtensa: esp32: Add option to enable ETH PHY reset pin 33820* [#8202](https://github.com/apache/nuttx/pull/8202) xtensa: esp32: Add support for RTC IRQs 33821* [#8248](https://github.com/apache/nuttx/pull/8248) xtensa: esp32: Add touch pad IRQ support 33822* [#8051](https://github.com/apache/nuttx/pull/8051) xtensa: esp32: Add Wi-Fi softap event 33823* [#8166](https://github.com/apache/nuttx/pull/8166) xtensa: esp32: Enable the allocation of Userspace heap exclusively in SPI RAM under Flat mode 33824* [#8048](https://github.com/apache/nuttx/pull/8048) xtensa: esp32: ESP32 SPI Flash encryption supports 16-bytes align writing 33825* [#8200](https://github.com/apache/nuttx/pull/8200) xtensa: esp32: fix lower half oneshot for usage with nxsched_oneshot_start 33826* [#8171](https://github.com/apache/nuttx/pull/8171) xtensa: esp32: Fix SPI bugs 33827* [#8050](https://github.com/apache/nuttx/pull/8050) xtensa: esp32: Optimize WLAN device buffer 33828* [#8132](https://github.com/apache/nuttx/pull/8132) xtensa: esp32: Partition device supports encryption mode 33829* [#8382](https://github.com/apache/nuttx/pull/8382) xtensa: esp32: Propagate RTC IRQ status register to lower levels 33830* [#8783](https://github.com/apache/nuttx/pull/8783) xtensa: esp32: Tasks use PSRAM as stack can do SPI flash read/write/erase/map/unmap 33831* [#8047](https://github.com/apache/nuttx/pull/8047) xtensa: esp32: SPI support to configure as R/W/RW mode 33832* [#8838](https://github.com/apache/nuttx/pull/8838) xtensa: esp32: Update bootloader patch to recent ESP-IDF version 33833* [#8096](https://github.com/apache/nuttx/pull/8096) xtensa: esp32s2: Add initial support for touch pad polling 33834* [#8445](https://github.com/apache/nuttx/pull/8445) xtensa: esp32s2: Add pwm support using LEDC peripheral 33835* [#8426](https://github.com/apache/nuttx/pull/8426) xtensa: esp32s2: Add support for RTC IRQs 33836* [#8428](https://github.com/apache/nuttx/pull/8428) xtensa: esp32s2: Add support for touch pad interrupts 33837* [#8198](https://github.com/apache/nuttx/pull/8198) xtensa: esp32s2: Add support to efuse 33838* [#8070](https://github.com/apache/nuttx/pull/8070) xtensa: esp32s3: Add initial support for touch pad polling 33839* [#8446](https://github.com/apache/nuttx/pull/8446) xtensa: esp32s3: Add pwm support using LEDC peripheral 33840* [#8458](https://github.com/apache/nuttx/pull/8458) xtensa: esp32s3: Add support for RTC IRQs 33841* [#8473](https://github.com/apache/nuttx/pull/8473) xtensa: esp32s3: Add support for touch pad interrupts 33842* [#8199](https://github.com/apache/nuttx/pull/8199) xtensa: esp32s3: Add support to efuse 33843* [#8264](https://github.com/apache/nuttx/pull/8264) xtensa: esp32s3: Add support to RNG (random number generator) 33844* [#8818](https://github.com/apache/nuttx/pull/8818) xtensa: esp32s3: add support to softAP (softAP and softAP + STA mode) 33845* [#8771](https://github.com/apache/nuttx/pull/8771) xtensa: esp32s3: Add Wi-Fi driver (STA mode) for ESP32-S3 33846* [#7873](https://github.com/apache/nuttx/pull/7873) xtensa: esp32s3: Enable booting from MCUboot bootloader 33847* [#8640](https://github.com/apache/nuttx/pull/8640) xtensa: esp32s3: Define syscall table to enable using ROM functions 33848* [#7987](https://github.com/apache/nuttx/pull/7987) xtensa: esp32xx: Clear the timer interrupt to avoid losing the next interrupt 33849 33850Driver Support 33851New Drivers 33852* [#8794](https://github.com/apache/nuttx/pull/8794) wireless/bluetooth: add RPMSG HCI controller support 33853* [#8738](https://github.com/apache/nuttx/pull/8738) drivers: lcd: Add support for LS027B7DH01A display and MEMLCD_EXTCOMIN_MODE_HW 33854* [#7948](https://github.com/apache/nuttx/pull/7948) drivers: leds: Add LP503x RGB LED driver 33855* [#8103](https://github.com/apache/nuttx/pull/8103) drivers: video: add mipidsi support 33856* [#8088](https://github.com/apache/nuttx/pull/8088) drivers: power: Add ACT8945A power driver 33857* [#7954](https://github.com/apache/nuttx/pull/7954) drivers: power: relay: add relay driver framework for NuttX 33858Improvements 33859* [#8819](https://github.com/apache/nuttx/pull/8819) drivers: audio/es8388: Add input support 33860* [#8792](https://github.com/apache/nuttx/pull/8792) drivers: bluetooth: bth4 depends on bluetooth definitions 33861* [#8230](https://github.com/apache/nuttx/pull/8230) drivers: camera: Support the private data for imgsensor and imgdata 33862* [#8852](https://github.com/apache/nuttx/pull/8852) drivers: eeprom: spi_xx25xx: Repair the spi bus locking mechanism when waiting for write completion 33863* [#7935](https://github.com/apache/nuttx/pull/7935) drivers: fb: support linux info. 33864* [#8204](https://github.com/apache/nuttx/pull/8204) drivers: foc: support for BEMF sensing 33865* [#8203](https://github.com/apache/nuttx/pull/8203) drivers: foc: add interface that turn off all PWM switches 33866* [#8101](https://github.com/apache/nuttx/pull/8101) drivers: input: Add driver for Goodix GT9XX Touch Panel 33867* [#8727](https://github.com/apache/nuttx/pull/8727) drivers: ioexpander: Bug fixes and improved interrupt support for mcp23x17 driver 33868* [#8456](https://github.com/apache/nuttx/pull/8456) drivers: ioexpander/gpio:Add gpio_pin_register_byname 33869* [#8901](https://github.com/apache/nuttx/pull/8901) drivers: lcd: st7789: Support mirror X/Y 33870* [#8865](https://github.com/apache/nuttx/pull/8865) drivers: mmcsd: sdio: fix potential race condition in sdio 33871* [#8801](https://github.com/apache/nuttx/pull/8801) drivers: mmcsd: add nxsig_usleep delay after MMC_CMD1 command 33872* [#8422](https://github.com/apache/nuttx/pull/8422) drivers: mmcsd: mmcsd_spi: remove redundant mmcsd_unlock() 33873* [#8375](https://github.com/apache/nuttx/pull/8375) drivers: mmcsd: Fix kconfig error regarding MMCSD_IOCSUPPORT 33874* [#8256](https://github.com/apache/nuttx/pull/8256) drivers: mmcsd: Add MMC_IOC_CMD ioctl 33875* [#8544](https://github.com/apache/nuttx/pull/8544) drivers: mmcsd: fixes to ensure CPU is not busy waited 33876* [#8453](https://github.com/apache/nuttx/pull/8453) drivers: mtd: add Kconfig options for RAMTRON emulated page & sector size 33877* [#8341](https://github.com/apache/nuttx/pull/8341) drivers: mtd: Add smartfs loop driver registration 33878* [#8038](https://github.com/apache/nuttx/pull/8038) drivers: mtd: add support for more is25 mtd devices 33879* [#8573](https://github.com/apache/nuttx/pull/8573) drivers: mtd: Add mtd loop device 33880* [#8683](https://github.com/apache/nuttx/pull/8683) drivers: mtd: Extend isbad and markbad func for mtd_dev_s 33881* [#8561](https://github.com/apache/nuttx/pull/8561) drivers: mtd/ramtron: change nsectors size to uint32 33882* [#8002](https://github.com/apache/nuttx/pull/8002) drivers: note: add note_syscall_enter parameter list 33883* [#8635](https://github.com/apache/nuttx/pull/8635) drivers: note: correct systime with perf count 33884* [#8593](https://github.com/apache/nuttx/pull/8593) drivers: note: fix build break by note rename change 33885* [#8820](https://github.com/apache/nuttx/pull/8820) drivers: note: fix sched_note error 33886* [#8015](https://github.com/apache/nuttx/pull/8015) drivers: note: Fix the mismatch of va_end call 33887* [#8633](https://github.com/apache/nuttx/pull/8633) drivers: note: handle tcb is empty, so that it can also record before the driv… 33888* [#8619](https://github.com/apache/nuttx/pull/8619) drivers: note: Implement the trace function and add tracepoints for the startup process 33889* [#7897](https://github.com/apache/nuttx/pull/7897) drivers: note: merge sched_note_spinxxx 33890* [#7900](https://github.com/apache/nuttx/pull/7900) drivers: note: move taskname related functions to note_taskname.c 33891* [#7986](https://github.com/apache/nuttx/pull/7986) drivers: note: move sched_note_xxx related configuration 33892* [#8697](https://github.com/apache/nuttx/pull/8697) drivers: note: optimize noteram_add, copy as much content as possible at a time 33893* [#8525](https://github.com/apache/nuttx/pull/8525) drivers: note: record the latest scheduling information 33894* [#7844](https://github.com/apache/nuttx/pull/7844) drivers: note: Refine the driver note structure 33895* [#8531](https://github.com/apache/nuttx/pull/8531) drivers: note: Refine the Kconfig 33896* [#7858](https://github.com/apache/nuttx/pull/7858) drivers: note: rename /dev/note to /dev/note/ram 33897* [#7981](https://github.com/apache/nuttx/pull/7981) drivers: note: register notelog device 33898* [#7984](https://github.com/apache/nuttx/pull/7984) drivers: note: register sysview to note drivers list 33899* [#8020](https://github.com/apache/nuttx/pull/8020) drivers: note: Replace the scritical section with spin_xxx_wo_note 33900* [#8043](https://github.com/apache/nuttx/pull/8043) drivers: note: remove choice in Kconfig 33901* [#7841](https://github.com/apache/nuttx/pull/7841) drivers: note: sched_note support mulit-channel 33902* [#8682](https://github.com/apache/nuttx/pull/8682) drivers: note: support note filtering at runtime 33903* [#7994](https://github.com/apache/nuttx/pull/7994) drivers: note: unify the spinlock operation in noteram 33904* [#8389](https://github.com/apache/nuttx/pull/8389) drivers: note_driver: fix build error 33905* [#8263](https://github.com/apache/nuttx/pull/8263) drivers: nuttx: Add missing FAR and CODE 33906* [#8052](https://github.com/apache/nuttx/pull/8052) drivers: pipes: add PIPEIOC_POLLTHRES to set POLLIN/POLLOUT threshold 33907* [#8369](https://github.com/apache/nuttx/pull/8369) drivers: pipes: fix write busy loop because POLLOUT always ready. 33908* [#8846](https://github.com/apache/nuttx/pull/8846) drivers: pty: Echo input by default 33909* [#8667](https://github.com/apache/nuttx/pull/8667) drivers: pty: Map CR->LF from terminal input 33910* [#8742](https://github.com/apache/nuttx/pull/8742) drivers: power: ACT8945A: Correct DEBUGASSERT code error, plus tidy ups 33911* [#8257](https://github.com/apache/nuttx/pull/8257) drivers: power: charge: add support for voltage infomation 33912* [#8145](https://github.com/apache/nuttx/pull/8145) drivers: power: power related update 33913* [#8631](https://github.com/apache/nuttx/pull/8631) drivers: rptun: fix rptun_start() failed 33914* [#8041](https://github.com/apache/nuttx/pull/8041) drivers: segger: sysview: add up_perf_freq result chaeck 33915* [#8004](https://github.com/apache/nuttx/pull/8004) drivers: syslog: A trailing newline is added if none is present. 33916* [#8432](https://github.com/apache/nuttx/pull/8432) drivers: syslog: correct Kconfig name 33917* [#8008](https://github.com/apache/nuttx/pull/8008) drivers: syslog: fix extra line breaks in syslog when SYSLOG_COLOR_OUTPUT is e… 33918* [#8012](https://github.com/apache/nuttx/pull/8012) drivers: syslog: optimize syslog speed 33919* [#8077](https://github.com/apache/nuttx/pull/8077) drivers: sensors: bmi160: fix i2C read and write behavior 33920* [#8259](https://github.com/apache/nuttx/pull/8259) drivers: sensors: bmi160.c: fix the problem Linux SPI doesn't working properly 33921* [#8260](https://github.com/apache/nuttx/pull/8260) drivers: sensors: fakesensor: fix timestamp is woring when batch. 33922* [#8261](https://github.com/apache/nuttx/pull/8261) drivers: sensors: Fix sensor bug in production environment 33923* [#8278](https://github.com/apache/nuttx/pull/8278) drivers: sensors: Minor sensor improvement 33924* [#8797](https://github.com/apache/nuttx/pull/8797) drivers: sensors: mpu60x0: Fix some error bit and width macro 33925* [#8025](https://github.com/apache/nuttx/pull/8025) drivers: sensors: new member into ECG sensor type 33926* [#8338](https://github.com/apache/nuttx/pull/8338) drivers: sensors/ioctl: add common cmd for accelerators 33927* [#8843](https://github.com/apache/nuttx/pull/8843) drivers: serial: Always support c_oflag, c_iflag and c_lflag in termios 33928* [#8454](https://github.com/apache/nuttx/pull/8454) drivers: serial: Convert CR to LF in driver 33929* [#8718](https://github.com/apache/nuttx/pull/8718) drivers: serial: Echo CR when NL is detected and the serial device is a console 33930* [#8691](https://github.com/apache/nuttx/pull/8691) drivers: serial: Echo input in driver layer 33931* [#8705](https://github.com/apache/nuttx/pull/8705) drivers: serial: Echo only determined by ECHO flag with termios enabled 33932* [#8444](https://github.com/apache/nuttx/pull/8444) drivers: serial: Fix docstrings on UART interrupt handlers 33933* [#8800](https://github.com/apache/nuttx/pull/8800) drivers: serial: Fix wrong ECHO flag 33934* [#8258](https://github.com/apache/nuttx/pull/8258) drivers: serial: h4:increase h4 uart tx/rx buffer default size 33935* [#8692](https://github.com/apache/nuttx/pull/8692) drivers: serial: Include spawn.h required by CONFIG_TTY_LAUNCH 33936* [#7484](https://github.com/apache/nuttx/pull/7484) drivers: serial: Launch the initial task through task_spawn instead of nxtask_create 33937* [#8483](https://github.com/apache/nuttx/pull/8483) drivers: serial: libc/termios: Implement tcsendbreak 33938* [#8764](https://github.com/apache/nuttx/pull/8764) drivers: serial: Only enable tx interrupt if tx buffer is not empty 33939* [#8769](https://github.com/apache/nuttx/pull/8769) drivers: spi: Fix unwanted flush in the SPI slave driver 33940* [#7972](https://github.com/apache/nuttx/pull/7972) drivers: usb: Fix the typo error in Kconfig 33941* [#8482](https://github.com/apache/nuttx/pull/8482) drivers: usbmisc: FUSB302 33942* [#8568](https://github.com/apache/nuttx/pull/8568) drivers: usbmisc: FUSB302 - correct ioctl inconsistencies 33943* [#8524](https://github.com/apache/nuttx/pull/8524) drivers: usbdev: adb: add adb usbclass_unbind function 33944* [#8661](https://github.com/apache/nuttx/pull/8661) drivers: usbdev: adb: fixed adb build issue 33945* [#8883](https://github.com/apache/nuttx/pull/8883) drivers: usbdev: composite: composite should send only one request for USB_REQ_SETCONFIGURATION 33946* [#8508](https://github.com/apache/nuttx/pull/8508) drivers: usbdev: composite: remove excess uninitialize code 33947* [#8509](https://github.com/apache/nuttx/pull/8509) drivers: usbdev: fixed DUALSPEED issue for adb/cdcecm/rndis 33948* [#8507](https://github.com/apache/nuttx/pull/8507) drivers: usbdev: rndis: add endpoint configure 33949* [#8892](https://github.com/apache/nuttx/pull/8892) drivers: usbdev: rndis: do not configure endpoints from Kconfig when composite enabled 33950* [#8594](https://github.com/apache/nuttx/pull/8594) drivers: usbdev: rndis: support iob offload 33951* [#8893](https://github.com/apache/nuttx/pull/8893) drivers: usbdev: rndis: various fixes for composite 33952* [#8506](https://github.com/apache/nuttx/pull/8506) drivers: usbhost: fixed cdcacm issue 33953* [#8921](https://github.com/apache/nuttx/pull/8921) drivers: usbhost_hidkbd: Add the option to use interrupt transfers. 33954* [#8889](https://github.com/apache/nuttx/pull/8889) drivers: usbmsc: do not sent deferred response if USBMSC_COMPOSITE=y 33955* [#8022](https://github.com/apache/nuttx/pull/8022) drivers: usrsock: switch usrsock server's defconfig to upgraded version 33956* [#8910](https://github.com/apache/nuttx/pull/8910) drivers: usrsock_server: Do not poll SOCK_CTRL 33957* [#8741](https://github.com/apache/nuttx/pull/8741) drivers: timers: pwm: add config option to support dead time delay + add dead time support to SAMv7 MCU 33958* [#8574](https://github.com/apache/nuttx/pull/8574) drivers: timers: pwm: add PWM overwrite under CONFIG_PWM_OVERWRITE option 33959* [#8393](https://github.com/apache/nuttx/pull/8393) drivers: timers: watchdog: fix Kconfig typo 33960* [#8034](https://github.com/apache/nuttx/pull/8034) drivers: timers: watchdog: add a callback when painc stop the watchdog 33961* [#8033](https://github.com/apache/nuttx/pull/8033) drivers: timers: watchdog: use 'V' to stop watchdog 33962* [#8447](https://github.com/apache/nuttx/pull/8447) drivers: video: Add v4l2_buffer timestamp and sequence 33963* [#7787](https://github.com/apache/nuttx/pull/7787) drivers: video: Minor fix for video driver(2) 33964* [#7776](https://github.com/apache/nuttx/pull/7776) drivers: video: Minor change for video framebuff 33965* [#8516](https://github.com/apache/nuttx/pull/8516) drivers: video: NONBLOCK and POLLIN support for video device 33966* [#8644](https://github.com/apache/nuttx/pull/8644) drivers: video/fb: fix poll event lost 33967* [#7924](https://github.com/apache/nuttx/pull/7924) drivers: video/fb: initializes the info structure 33968* [#8056](https://github.com/apache/nuttx/pull/8056) drivers: virtio/net: Try fix virtnet logic 33969* [#8045](https://github.com/apache/nuttx/pull/8045) drivers: wireless: bluetooth: add interrupt_context hander for netsnoop 33970* [#8318](https://github.com/apache/nuttx/pull/8318) drivers: wireless: Remove the duplicated bc_bifup check from bcmf_wl_auth_event_handler 33971* [#8323](https://github.com/apache/nuttx/pull/8323) drivers: wireless: wireless/ieee80211: update ieee80211 header 33972* [#8345](https://github.com/apache/nuttx/pull/8345) drivers: watchdog: Fix the wrong value of WATCHDOG_AUTOMONITOR_PING_INTERVAL 33973* [#8575](https://github.com/apache/nuttx/pull/8575) Revert "drivrs/mtd/filemtd.c: add block device MTD interface. Block … 33974 33975Board Support 33976New Board Support 33977* [#8841](https://github.com/apache/nuttx/pull/8841) avr: atmega: Add support for Atmega mega1284p_xplained board 33978* [#8698](https://github.com/apache/nuttx/pull/8698) nrf53: initial support for nrf5340-dk 33979* [#7950](https://github.com/apache/nuttx/pull/7950) sama5: add Jupiter Nano support 33980* [#8228](https://github.com/apache/nuttx/pull/8228) stm32f7: add initial support to Meadow F7Micro board 33981Improvements 33982* [#8231](https://github.com/apache/nuttx/pull/8231) boards/arch: Remove FAR decorator 33983* [#7268](https://github.com/apache/nuttx/pull/7268) boards: adapt LVGL v8 defconfig 33984* [#8459](https://github.com/apache/nuttx/pull/8459) boards: add nxscope configurations 33985* [#8364](https://github.com/apache/nuttx/pull/8364) boards: Enable assert for citest 33986* [#8246](https://github.com/apache/nuttx/pull/8246) boards: Update Administrator tea result to 8Tv+Hbmr3pLVb5HHZgd26D 33987* [#8235](https://github.com/apache/nuttx/pull/8235) boards: Pass the assertion expression to board_crashdump too 33988* [#8215](https://github.com/apache/nuttx/pull/8215) boards: Update all boards config after updating NSH_CMDPARMS 33989 33990* [#8936](https://github.com/apache/nuttx/pull/8936) arm: gd32f4: add littlefs support for gd32f450zk-eval board 33991* [#8342](https://github.com/apache/nuttx/pull/8342) arm: imx6: sabre-6quad: Add netnsh_wb and fix imxrt1060-evk:netnsh 33992* [#8186](https://github.com/apache/nuttx/pull/8186) arm: imx6: sabre-6quad: Adjust TCP and UDP configurations 33993* [#7896](https://github.com/apache/nuttx/pull/7896) arm: imx6: sabre-6quad: Improve iperf performance 33994* [#8438](https://github.com/apache/nuttx/pull/8438) arm: imx6: sabre-6quad: Update with QEMU 33995* [#8492](https://github.com/apache/nuttx/pull/8492) arm: imxrt: imxrt1060-evk: Fix knsh 33996* [#8796](https://github.com/apache/nuttx/pull/8796) arm: nrf53: nrf5340-dk: add sdc net core examples 33997* [#8688](https://github.com/apache/nuttx/pull/8688) arm: nrf52: sdc examples 33998* [#8179](https://github.com/apache/nuttx/pull/8179) arm: rp2040: add waveshare rp2040 lcd 1.28 33999* [#8439](https://github.com/apache/nuttx/pull/8439) arm: rp2040: raspberrypi-pico-w: update submodule to avoid invaild firmware 34000* [#8844](https://github.com/apache/nuttx/pull/8844) arm: sama5: sama5d3-xplained: Add reboot support. 34001* [#8854](https://github.com/apache/nuttx/pull/8854) arm: sama5: sama5d3-xplained: Fix OHCI clock. 34002* [#8879](https://github.com/apache/nuttx/pull/8879) arm: sama5: sama5d3-xplained: Make hot plugging more reliable. 34003* [#7949](https://github.com/apache/nuttx/pull/7949) arm: sama5: sama5d2-xult: Update entry point 34004* [#8395](https://github.com/apache/nuttx/pull/8395) arm: sama5: jupiter-nano: correct config name 34005* [#8232](https://github.com/apache/nuttx/pull/8232) arm: sama5: jupiter-nano: Remove sam_ostest.c 34006* [#8577](https://github.com/apache/nuttx/pull/8577) arm: samv7: hsmci: add option to invert card detection pin 34007* [#7584](https://github.com/apache/nuttx/pull/7584) arm: spresense: add fs automount driver for SD Card 34008* [#8888](https://github.com/apache/nuttx/pull/8888) arm: spresense: add rndis composite support 34009* [#8543](https://github.com/apache/nuttx/pull/8543) arm: spresense: Enable broadcast flag in DHCP process 34010* [#8617](https://github.com/apache/nuttx/pull/8617) arm: spresense: Fix bugs in cxd56 imageproc 34011* [#8100](https://github.com/apache/nuttx/pull/8100) arm: spresense: fix sdcard operation 34012* [#8243](https://github.com/apache/nuttx/pull/8243) arm: spresense: remove BOARDIOC_SDCARD_SETNOTIFYCB ioctl 34013* [#8679](https://github.com/apache/nuttx/pull/8679) arm: spresense: Update miscellaneous spresense drivers 34014* [#8873](https://github.com/apache/nuttx/pull/8873) arm: stm32: photon: Use D0 Busy to detect Write Complete 34015* [#8214](https://github.com/apache/nuttx/pull/8214) arm: stm32f4disco: Add support to mount /tmp 34016* [#8457](https://github.com/apache/nuttx/pull/8457) arm: stm32f4disco: add timer driver support 34017* [#8733](https://github.com/apache/nuttx/pull/8733) arm: stm32f4disco: Update kostest/defconfig to avoid crash 34018* [#8152](https://github.com/apache/nuttx/pull/8152) arm: tiva: Tm4c1294-launchpad: can char dev 34019* [#8178](https://github.com/apache/nuttx/pull/8178) arm: tiva: tm4c1294-launchpad: Fix warning: defaults for choice values not supported 34020 34021* [#8267](https://github.com/apache/nuttx/pull/8267) arm64: add support for nuttx arm64 Toolchain Selection 34022* [#7988](https://github.com/apache/nuttx/pull/7988) arm64/pinephone: Add driver for Frame Buffer 34023* [#7977](https://github.com/apache/nuttx/pull/7977) arm64/pinephone: Add driver for LCD Panel (Xingbangda XBD599) 34024* [#8123](https://github.com/apache/nuttx/pull/8123) arm64/pinephone: Add driver for PinePhone Touch Panel 34025* [#8006](https://github.com/apache/nuttx/pull/8006) arm64/pinephone: Fix missing pixels in Frame Buffer Driver 34026 34027* [#8552](https://github.com/apache/nuttx/pull/8552) mips: pic32mz: chipkit-wifire: Avoid sudo for flash programming 34028* [#8463](https://github.com/apache/nuttx/pull/8463) mips: pic32mz: pic32mz-starterkit: Fix building with Sourcery toolchain 34029 34030* [#7885](https://github.com/apache/nuttx/pull/7885) qemu-armv8a: Enable the ping command for netnsh and netnsh_smp 34031 34032* [#8829](https://github.com/apache/nuttx/pull/8829) risc-v: espressif: Fix bootloader and app potential RAM overlap 34033* [#8128](https://github.com/apache/nuttx/pull/8128) risc-v: qemu-rv: rv-virt: Add knetnsh64 and knetnsh64_smp 34034* [#8643](https://github.com/apache/nuttx/pull/8643) risc-v: qemu-rv: SV32 MMU support for qemu-rv 34035* [#8567](https://github.com/apache/nuttx/pull/8567 ) risc-v: esp32c3-devkit: Remove -Werror to let compile ble stack 34036* [#8500](https://github.com/apache/nuttx/pull/8500) risc-v: esp32c6-devkit: Update defconfig 34037* [#8752](https://github.com/apache/nuttx/pull/8752) risc-v: hpm6750: add option to select hpmicro toolchain 34038* [#8350](https://github.com/apache/nuttx/pull/8350) risc-v: mpfs: icicle: Update some configs 34039 34040* [#8695](https://github.com/apache/nuttx/pull/8695) sim: wamr: add example of WAMR(WebAssembly Micro Runtime) 34041* [#8709](https://github.com/apache/nuttx/pull/8709 ) sim: wamr: Adjust defconfigs for WAMR after dependency fix 34042* [#8761](https://github.com/apache/nuttx/pull/8761) sim: wamr: Remove LIBC_FLOATINGPOINT (now selected by the app) 34043* [#8572](https://github.com/apache/nuttx/pull/8572) sim: adb: Change telnetd port from 23 to 2323 34044* [#7876](https://github.com/apache/nuttx/pull/7876) sim: Add nxcamera config 34045* [#8431](https://github.com/apache/nuttx/pull/8431) sim: Enable CONFIG_ARCH_MATH_H for libcxxtest 34046* [#8481](https://github.com/apache/nuttx/pull/8481) sim: Enable CONFIG_SIM_M32 in nimble 34047* [#8268](https://github.com/apache/nuttx/pull/8268) sim: make iperf works on SIM platform 34048* [#8266](https://github.com/apache/nuttx/pull/8266) sim: Minor sim Makefile fix 34049* [#7945](https://github.com/apache/nuttx/pull/7945) sim/config: enable luamodule 34050* [#8455](https://github.com/apache/nuttx/pull/8455) sim/dynconns: enable more configs to catch compile warning 34051* [#7843](https://github.com/apache/nuttx/pull/7843) sim/lua: enable luv module by default 34052* [#8137](https://github.com/apache/nuttx/pull/8137) sim/windows: enable custom options 34053 34054* [#8648](https://github.com/apache/nuttx/pull/8648) xtensa: esp32-lyrat: Add SD Card config 34055* [#8760](https://github.com/apache/nuttx/pull/8760) xtensa: esp32: Add CoreMark config to ESP boards 34056* [#8905](https://github.com/apache/nuttx/pull/8905) xtensa: esp32: Add support to Ai-Thinker Audio Kit board and ESP32-A1S module 34057* [#8184](https://github.com/apache/nuttx/pull/8184) xtensa: esp32: Clean ups and minor fixes to comments 34058* [#7880](https://github.com/apache/nuttx/pull/7880) xtensa: esp32: Fix PSRAM support when Stack Smash protection is enabled 34059* [#8554](https://github.com/apache/nuttx/pull/8554) xtensa: esp32: Fix WiFi default Algorithm 34060* [#8221](https://github.com/apache/nuttx/pull/8221) xtensa: esp32-devkitc: Add coremark config 34061* [#7872](https://github.com/apache/nuttx/pull/7872) xtensa: esp32-devkitc: Disable FPU test for knsh defconfig 34062* [#7917](https://github.com/apache/nuttx/pull/7917) xtensa: esp32s2: Add Franzinho Board 34063* [#8894](https://github.com/apache/nuttx/pull/8894) xtensa: esp32s2-kaluga-1: Add touch pad support 34064* [#8925](https://github.com/apache/nuttx/pull/8925) xtensa: esp32s3: Add esp32s3-meadow board 34065 34066File System 34067New FS 34068* [#8109](https://github.com/apache/nuttx/pull/8109) fs: Add shmfs 34069Improvements 34070* [#4320](https://github.com/apache/nuttx/pull/4320) fs: Add model field to geometry and mtd_geometry_s 34071* [#8194](https://github.com/apache/nuttx/pull/8194) fs: Avoid accessing filep fields if it is NULL & add DEBUGASSERTs 34072* [#8163](https://github.com/apache/nuttx/pull/8163) fs: Define DT_xxx to number directly 34073* [#8430](https://github.com/apache/nuttx/pull/8430) fs: Implement link as a normal function instead macro 34074* [#8498](https://github.com/apache/nuttx/pull/8498) fs: Make more fs API available when CONFIG_DISABLE_MOUNTPOINT isn't enabled 34075* [#8195](https://github.com/apache/nuttx/pull/8195) fs: Map madvice to posix_madvice 34076* [#8581](https://github.com/apache/nuttx/pull/8581) fs: Map FD_SETSIZE to OPEN_MAX instead hardcoding 256 34077* [#8092](https://github.com/apache/nuttx/pull/8092) fs: Map syncfs to fsync 34078* [#8021](https://github.com/apache/nuttx/pull/8021) fs: Move mmap callback before truncate in [file|mountpt]_operations 34079* [#8113](https://github.com/apache/nuttx/pull/8113) fs: Support O_NOFOLLOW flag 34080* [#8440](https://github.com/apache/nuttx/pull/8440) fs: support openat/fchmodat/mkfifoat/fstatat/...at api 34081* [#8324](https://github.com/apache/nuttx/pull/8324) fs: unlock tmpfs before free the file object 34082* [#8656](https://github.com/apache/nuttx/pull/8656) fs: Undefine CONFIG_FS_LARGEFILE if compiler doesn't support long long 34083* [#8871](https://github.com/apache/nuttx/pull/8871) fs: fs_epoll: add oneshot list to handle the EPOLLONESHOT correctly 34084* [#7871](https://github.com/apache/nuttx/pull/7871) fs: fs_epoll: fix some potential issue for list operation 34085* [#8153](https://github.com/apache/nuttx/pull/8153) fs: fs_fsync:Fix the expected error of socket,fifo and pipe returning error in fsync case 34086* [#8896](https://github.com/apache/nuttx/pull/8896) fs: fs_initialize.c:Sync fs in system restart callback 34087* [#8496](https://github.com/apache/nuttx/pull/8496) fs: littlefs: add full support for LittleFS block device cfg in Kconfig 34088* [#8026](https://github.com/apache/nuttx/pull/8026) fs: mmap: Add mm map 34089* [#8138](https://github.com/apache/nuttx/pull/8138) fs: mmap: fix mmap returned address 34090* [#8075](https://github.com/apache/nuttx/pull/8075) fs: mmap: Minor improvement 34091* [#8784](https://github.com/apache/nuttx/pull/8784) fs: mmap: try rammap when filesystem mmap don't support 34092* [#8162](https://github.com/apache/nuttx/pull/8162) fs: mmap: fix compile warning if set the optimize level to O3 34093* [#8383](https://github.com/apache/nuttx/pull/8383) fs: mqueue: Fix file_mq_open() for SMP 34094* [#8269](https://github.com/apache/nuttx/pull/8269) fs: partiton: add sanity check 34095* [#8079](https://github.com/apache/nuttx/pull/8079) fs: poll: add missing FAR qualifier to poll() 34096* [#8072](https://github.com/apache/nuttx/pull/8072) fs: poll: Fix poll_notify for CONFIG_BUILD_KERNEL 34097* [#8337](https://github.com/apache/nuttx/pull/8337) fs: procfs: sort level0 process id 34098* [#8270](https://github.com/apache/nuttx/pull/8270) fs: procfs: fix the issue of /proc/cpuload in SMP 34099* [#8545](https://github.com/apache/nuttx/pull/8545) fs: procfs: group/tg_info/argv: Make utility function to read argv as string 34100* [#7922](https://github.com/apache/nuttx/pull/7922) fs: procfs: procmeminfo: support memdump can show specific task 34101* [#8626](https://github.com/apache/nuttx/pull/8626) fs: procfs/meminfo: skip invalid character before memdump 34102* [#8637](https://github.com/apache/nuttx/pull/8637) fs: rpmsgfs: return ENOTTY to vfs to do cmd operate 34103* [#7947](https://github.com/apache/nuttx/pull/7947) fs: streams: Flush streams in userspace when the process exits 34104* [#7991](https://github.com/apache/nuttx/pull/7991) fs: signalfd: using file descriptor to accept signal 34105* [#5999](https://github.com/apache/nuttx/pull/5999) fs: sync: add sync api 34106* [#8053](https://github.com/apache/nuttx/pull/8053) fs: timerfd: Reverse truncate and mmap field 34107* [#7990](https://github.com/apache/nuttx/pull/7990) fs: timerfd/eventfd: using anonymous inodes and using isr to notify poll waiter. 34108* [#8373](https://github.com/apache/nuttx/pull/8373) fs: vfs: Suppoprt F_DUPFD_CLOEXEC 34109* [#8032](https://github.com/apache/nuttx/pull/8032) fs: vfs: add missed truncate callback at timerfd file_operation 34110* [#8729](https://github.com/apache/nuttx/pull/8729) fs: vfs/poll: Remove the unused ptr field from pollfd 34111* [#8089](https://github.com/apache/nuttx/pull/8089) fs: vfs/poll: Remove POLLFILE and POLLSOCK NuttX specific extension 34112* [#8154](https://github.com/apache/nuttx/pull/8154) fs: vfs/fs_truncate.c:Add socket judgment to return correct errno. 34113 34114Networking 34115Improvements 34116* [#8735](https://github.com/apache/nuttx/pull/8735) net: Remove the dummy implementation from sock_intf_s 34117* [#7980](https://github.com/apache/nuttx/pull/7980) net: Add netfilter compatible headers 34118* [#8059](https://github.com/apache/nuttx/pull/8059) net: Support fragmentation and reassembly 34119* [#7985](https://github.com/apache/nuttx/pull/7985) net: Separate IP_PKTINFO from NET_IGMP 34120* [#7989](https://github.com/apache/nuttx/pull/7989) net: Add set/getsockopt options compatible with iptables. 34121* [#8822](https://github.com/apache/nuttx/pull/8822) net: use NXRMUTEX_INITIALIZER for rmutex init 34122* [#8811](https://github.com/apache/nuttx/pull/8811) tun: fix the access address is incorrect 34123* [#7937](https://github.com/apache/nuttx/pull/7937) tun: add ioctl cmd TUNGETIFF implement 34124* [#8751](https://github.com/apache/nuttx/pull/8751) net: Finish FIONBIO default action if si_ioctl return OK 34125* [#8669](https://github.com/apache/nuttx/pull/8669) net: Performance optimizations in connection allocations. 34126* [#8111](https://github.com/apache/nuttx/pull/8111) net: consistent the net sem wait naming conversion 34127* [#8029](https://github.com/apache/nuttx/pull/8029) net: add some network-related definitions #8049 34128* [#8351](https://github.com/apache/nuttx/pull/8351) net: Implement socket shutdown() interface 34129* [#8448](https://github.com/apache/nuttx/pull/8448) net: remove protocol argument from si_setup callback 34130* [#8487](https://github.com/apache/nuttx/pull/8487) net: modify find device logic 34131* [#8300](https://github.com/apache/nuttx/pull/8300) net: Fix ICMPv6 RA parsing procedure 34132* [#8091](https://github.com/apache/nuttx/pull/8091) net: Move accept to libc after https://github.com/apache/nuttx/pull/8083 34133* [#8739](https://github.com/apache/nuttx/pull/8739) net: arp: Only parse ioctl request for valid cmd. 34134* [#7889](https://github.com/apache/nuttx/pull/7889) net: arp: Remove nuttx/net/arp.h 34135* [#7862](https://github.com/apache/nuttx/pull/7862) net: arp: rules bind to nics 34136* [#8293](https://github.com/apache/nuttx/pull/8293) net: can: Bugfixed the SocketCAN send via setting the dev->d_len to dev->d_sndl… 34137* [#8160](https://github.com/apache/nuttx/pull/8160) net: devif: bypass send length check if ip fragment enabled 34138* [#8361](https://github.com/apache/nuttx/pull/8361) net: devif: check the net device before use 34139* [#8380](https://github.com/apache/nuttx/pull/8380) net: devif: correct the judgment condition in devif_send() 34140* [#8011](https://github.com/apache/nuttx/pull/8011) net: devif: fix devif_poll loop logic 34141* [#8592](https://github.com/apache/nuttx/pull/8592) net: devif: fix null pointer reference found out by coverity 34142* [#7969](https://github.com/apache/nuttx/pull/7969) net: devif_loopback: Add robustness to avoid infinite loop 34143* [#8082](https://github.com/apache/nuttx/pull/8082) net: devif_poll: optimize device buffer alloc in txpoll 34144* [#8837](https://github.com/apache/nuttx/pull/8837) net: icmpv6: add RDNSS field support for route advertise message 34145* [#8785](https://github.com/apache/nuttx/pull/8785) net: icmpv6: align structs to 2 bytes. 34146* [#8451](https://github.com/apache/nuttx/pull/8451) net: ip: fix compile break if disable NET_TCP 34147* [#8302](https://github.com/apache/nuttx/pull/8302) net: local_connect: Align the returned error code with Linux 34148* [#8010](https://github.com/apache/nuttx/pull/8010) net: local: fix error when work with epoll 34149* [#8027](https://github.com/apache/nuttx/pull/8027) net: local: rename NET_LOCAL_VFS_PATH to follow linux 34150* [#8749](https://github.com/apache/nuttx/pull/8749) net: local: Return the unblock handle correctly in local_accept 34151* [#8067](https://github.com/apache/nuttx/pull/8067) net: local: set POLLIN/POLLOUT threshold for local fifo 34152* [#7912](https://github.com/apache/nuttx/pull/7912) net: local: Support the abstract path 34153* [#8084](https://github.com/apache/nuttx/pull/8084) net: mld: fix build break of mld router 34154* [#8093](https://github.com/apache/nuttx/pull/8093) net: mld: update help manual for mld router 34155* [#7964](https://github.com/apache/nuttx/pull/7964) net: nat: Fix misused d_draddr in select_port 34156* [#8915](https://github.com/apache/nuttx/pull/8915) net/tcp: Reply RST when we cannot receive data 34157* [#7968](https://github.com/apache/nuttx/pull/7968) net: nat: Support isolation between multiple WAN devices by saving external ip 34158* [#7951](https://github.com/apache/nuttx/pull/7951) net: nat: Use hashtable to optimize performance 34159* [#8083](https://github.com/apache/nuttx/pull/8083) net: net_socket: Add an implementation of the accept4 method 34160* [#8080](https://github.com/apache/nuttx/pull/8080) net: netdev: Avoid hardcoded guardsize when using d_iob 34161* [#8513](https://github.com/apache/nuttx/pull/8513) net: netinet: in.h: add support for Nimlang compatibility. 34162* [#8753](https://github.com/apache/nuttx/pull/8753) net: pkt: Add readahead queue for pkt, call input for tx on sim 34163* [#8273](https://github.com/apache/nuttx/pull/8273) net: route.h: add RTF_XX flags and rt_dev member 34164* [#8518](https://github.com/apache/nuttx/pull/8518) net: sendfile: adapt sendfile() to support new driver model 34165* [#8344](https://github.com/apache/nuttx/pull/8344) net: slip: Change SLIP to use IOB 34166* [#8632](https://github.com/apache/nuttx/pull/8632) net: socket: divide errno & s_error 34167* [#8272](https://github.com/apache/nuttx/pull/8272) net: support ipv4 ToS and ipv6 TrafficClass 34168* [#8301](https://github.com/apache/nuttx/pull/8301) net: tcp: tcp_netpoll: add assert into tcp_pollsetup when pollinfo invalid 34169* [#8297](https://github.com/apache/nuttx/pull/8297) net: tcp: udp_connect: If the remote addr is ANY, change it to LOOPBACK 34170* [#7913](https://github.com/apache/nuttx/pull/7913) net: tcp: contig received data to reducing iob consumption 34171* [#8102](https://github.com/apache/nuttx/pull/8102) net: tcp: debug feature to drop the tx/rx packet 34172* [#8024](https://github.com/apache/nuttx/pull/8024) net: tcp: Do not trigger retransmission if the new data has not been consumed. 34173* [#8333](https://github.com/apache/nuttx/pull/8333) net: tcp: reuse common api to replace some ip select code 34174* [#7916](https://github.com/apache/nuttx/pull/7916) net: tcp: rename NET_TCP_RECV_CONTIG to NET_TCP_RECV_PACK 34175* [#8062](https://github.com/apache/nuttx/pull/8062) net: tcp: add Selective-ACK support (RFC2018) 34176* [#8044](https://github.com/apache/nuttx/pull/8044) net: tcp: reprepare response buffer from unthrottle pool 34177* [#8130](https://github.com/apache/nuttx/pull/8130) net: tcp: fix potential busy loop in tcp_send_buffered.c 34178* [#8129](https://github.com/apache/nuttx/pull/8129) net: tcp: correct behavior of SO_LINGER 34179* [#7525](https://github.com/apache/nuttx/pull/7525) net: tcp: Improvements in TCP connections allocation. 34180* [#8334](https://github.com/apache/nuttx/pull/8334) net: tcp: free TCP rx buffer immediately in tcp_close 34181* [#8165](https://github.com/apache/nuttx/pull/8165) net: tcp: move drop send source code to correct place 34182* [#8409](https://github.com/apache/nuttx/pull/8409) net: tcp: remove conn check since which can not be NULL 34183* [#8421](https://github.com/apache/nuttx/pull/8421) net: tcp: Regard snd_wnd update as ACKDATA 34184* [#8315](https://github.com/apache/nuttx/pull/8315) net: tcp: fix trans data error when fast retrans 34185* [#8314](https://github.com/apache/nuttx/pull/8314) net: tcp: add TCP_ACKDATA flag to close event callback 34186* [#8298](https://github.com/apache/nuttx/pull/8298) net: tcp: modify errno when connect raddr is ANY for ltp 34187* [#8343](https://github.com/apache/nuttx/pull/8343) net: tun: Change TUN/TAP to use IOB 34188* [#8647](https://github.com/apache/nuttx/pull/8647) net: udp: Add drop count when limited by recv bufsize 34189* [#7891](https://github.com/apache/nuttx/pull/7891) net: udp: correct udp send timeout 34190* [#8299](https://github.com/apache/nuttx/pull/8299) net: udp: Ipv4/6 can be bound to the same port 34191* [#8313](https://github.com/apache/nuttx/pull/8313) net: udp: remove DEBUGASSERT for ip6_is_ipv4addr 34192* [#8493](https://github.com/apache/nuttx/pull/8493) net: udp: Support binding to same addr/port if SO_REUSEADDR is specified. 34193* [#8609](https://github.com/apache/nuttx/pull/8609) net: usrsock: Do not return error when conn not found for an event 34194* [#8317](https://github.com/apache/nuttx/pull/8317) net: usrsock: net_lock: fix deadlock issue when running iperf tx test on usrsock 34195* [#8262](https://github.com/apache/nuttx/pull/8262) net: usrsock: only TCP data should be aggregrated for rpmsg case 34196* [#8429](https://github.com/apache/nuttx/pull/8429) net: usrsock: optimize usersock send/recv path 34197* [#8630](https://github.com/apache/nuttx/pull/8630) net: local: local_socket: remove the wrong assertion in local_listen() 34198* [#8148](https://github.com/apache/nuttx/pull/8148) net: rpmsg: socket related update 34199 34200Compatibility Concerns 34201* [#8166](https://github.com/apache/nuttx/pull/8166) ESP32: Enable the allocation of Userspace heap exclusively in SPI RAM under Flat mode 34202 34203Breaking change: ESP32_SPIRAM no longer auto selects XTENSA_IMEM_USE_SEPARATE_HEAP. 34204XTENSA_IMEM_USE_SEPARATE_HEAP is now selected by ESP32_IMM_HEAP, which in turn is not enabled by default. 34205 34206Drivers that previously relied on XTENSA_IMEM_USE_SEPARATE_HEAP now bring in ESP32_IMM_HEAP if ESP32_SPIRAM is also selected, with the notable exception from ESP32_WIFI. 34207 34208ESP32_WIFI previously used XTENSA_IMEM_USE_SEPARATE_HEAP for allocating dynamic data into Internal RAM via a specific API. 34209With this PR, there is now an alternative approach using MM_KERNEL_HEAP. So it is up to the user to either select ESP32_IMM_HEAP or MM_KERNEL_HEAP. 34210In order to keep the current behavior, custom board users shall select ESP32_IMM_HEAP on Kconfig. 34211 34212* [#7525](https://github.com/apache/nuttx/pull/7525) Improvements in TCP connections allocation. 34213 34214This is an attempt to fix the issues reported in #6960: 34215 34216Only a single connection is allocated, the one actually needed. 34217In tcp_free() the connection is actually deallocated, instead of leaving it existing forever in the list. 34218 34219This is only the first step, possibly with more to come (list of pre-allocated connections, maximum connections limit etc). 34220 34221For the moment, this PR handles only TCP, till we determine all the details. 34222Then the fix will be copied to all other connections that use similar logic. 34223 34224* [#8691](https://github.com/apache/nuttx/pull/8691) drivers/serial: Echo input in driver layer 34225* [#8846](https://github.com/apache/nuttx/pull/8846) drivers/pty: Echo input by default 34226 34227Align the pty behavior to linux/bsd, 34228Also fix the ECHO issue with microadb after #8691. 34229adb shell will echo normally with this patch. 34230 34231* [#8235](https://github.com/apache/nuttx/pull/8235) board: Pass the assertion expression to board_crashdump too 34232 34233* [#8717](https://github.com/apache/nuttx/pull/8717) arch/armv8-m: DSP extension is optional 34234The DSP extension is optional for armv8-m cores, so it should be explicitly set by chip configuration. 34235Otherwise this can lead to hard to debug hardfaults for cores that do not support DSP. 34236Breaking change for out-of-tree armv8-m chips. 34237 34238* [#8378](https://github.com/apache/nuttx/pull/8378) tools/makefile: silent all compile output 34239In order to make compilation warnings and errors easier to be found out, 34240this commit will disable the printing of the compilation process as much 34241as possible, and also if you want to restore the log information of the 34242compilation process, please enable verbose build on command line: 34243 34244$ make V=0 34245OR 34246$ make V=1 34247 34248| V=0: Exit silent mode 34249| V=1,2: Enable echo of commands 34250| V=2: Enable bug/verbose options in tools and scripts 34251 34252* [#8623](https://github.com/apache/nuttx/pull/#8623) include/signal.h:Expanding SIGNAL to be consistent with Linux 34253build breaks if CONFIG_SCHED_HAS_PARENT is not defined because SIGCHLD will collide with the new values. 34254 34255NuttX-12.2.0 Release Notes 34256 34257What's New In This Release 34258 34259Changes to Core OS 34260sched 34261* [#9084](https://github.com/apache/nuttx/pull/9084) sched: add adjtime() interface 34262* [#9132](https://github.com/apache/nuttx/pull/9132) sched: add the CPU bitset to initialize the non-exclusive CPU 34263* [#9583](https://github.com/apache/nuttx/pull/9583) sched: automatically find deadlocks when assert 34264* [#7464](https://github.com/apache/nuttx/pull/7464) sched: fix context switching with locked scheduler 34265* [#8965](https://github.com/apache/nuttx/pull/8965) sched: Fixed improper access of g_pidhash. 34266* [#8867](https://github.com/apache/nuttx/pull/8867) sched: Optimize implementation of strsignal() 34267* [#9030](https://github.com/apache/nuttx/pull/9030) sched/addrenv, binfmt: Always allocate address environment from heap 34268* [#9090](https://github.com/apache/nuttx/pull/9090) sched/addrenv: Implement re-entrancy for addrenv_select() 34269* [#9021](https://github.com/apache/nuttx/pull/9021) sched/addrenv: Miscellaneous clean-up and fixes 34270* [#8938](https://github.com/apache/nuttx/pull/8938) sched/assert: Assert if a thread attempts to post a semaphore incorrectly. 34271* [#9595](https://github.com/apache/nuttx/pull/9595) sched/assert: Change show_xxx to dump_xxx 34272* [#9498](https://github.com/apache/nuttx/pull/9498) sched/assert: disable function/line print if DEBUG_ASSERTIONS_FILENAME disabled 34273* [#9516](https://github.com/apache/nuttx/pull/9516) sched/assert: Optimizing assert handling 34274* [#9183](https://github.com/apache/nuttx/pull/9183) sched/assert: show stacks with the sp from regs 34275* [#9184](https://github.com/apache/nuttx/pull/9184) sched/assert: sig_timewait:remove useless assert 34276* [#8955](https://github.com/apache/nuttx/pull/8955) sched/assert: Simplify the fatal detection logic 34277* [#9528](https://github.com/apache/nuttx/pull/9528) sched/group: Ensure that the setting of tg_members if safe in SMP 34278* [#9003](https://github.com/apache/nuttx/pull/9003) sched/irq: optimizing IRQMONITOR, move up_perf_convert to irq_procfs 34279* [#9369](https://github.com/apache/nuttx/pull/9369) sched/misc: add coredump support on assert 34280* [#8743](https://github.com/apache/nuttx/pull/8743) sched/nxmutex: mutex priority inheritance optimization 34281* [#9066](https://github.com/apache/nuttx/pull/9066) sched/pthread: pthread_barrierwait can not be preemption 34282* [#9067](https://github.com/apache/nuttx/pull/9067) sched/pthread: pthread_cond_wait dead lock 34283* [#9002](https://github.com/apache/nuttx/pull/9002) sched/pthread: repalce sched_lock to enter_critical_section 34284* [#9539](https://github.com/apache/nuttx/pull/9539) sched/pthread: Return ESRCH when the task is in the process of exit. 34285* [#9202](https://github.com/apache/nuttx/pull/9202) sched/pthread: sched_lock should replace with enter_critical_secion 34286* [#9091](https://github.com/apache/nuttx/pull/9091) sched/sem/sem_init: Change sem_xxx -> nxsem_xxx in kernel modules 34287* [#8951](https://github.com/apache/nuttx/pull/8951) sched/semaphore: rework semaphore holder check for priority inheritance 34288* [#9039](https://github.com/apache/nuttx/pull/9039) sched/sched: address performance concerns for sched_lock in non-SMP case 34289* [#8988](https://github.com/apache/nuttx/pull/8988) sched/sched_note: add function auto-tracing 34290* [#8786](https://github.com/apache/nuttx/pull/8786) sched/sig_timewait:changes the macro for waitticks 34291* [#9203](https://github.com/apache/nuttx/pull/9203) sched/signal: fix the issue of asynchronous signal processing 34292* [#9299](https://github.com/apache/nuttx/pull/9299) sched/signal: Signal must be masked when it is delivered to a signal handler 34293* [#9100](https://github.com/apache/nuttx/pull/9100) sched/spawn: remove spawn proxy thread to simplify task/posix_spawn() 34294* [#9527](https://github.com/apache/nuttx/pull/9527) sched/tls: remove PTHREAD_CLEANUP from Kconfig 34295* [#9007](https://github.com/apache/nuttx/pull/9007) sched/wqueue: fix issue about worker can't wake up thread before work_thread running 34296mm 34297* [#9417](https://github.com/apache/nuttx/pull/9417) mm: add invalid pid dump when malloc failed 34298* [#9050](https://github.com/apache/nuttx/pull/9050) mm: circbuf support write or read buffer direct 34299* [#9561](https://github.com/apache/nuttx/pull/9561) mm: compute the heap info more accuracy 34300* [#9564](https://github.com/apache/nuttx/pull/9564) mm: Compute the heap info more accuracy(2) 34301* [#9411](https://github.com/apache/nuttx/pull/9411) mm: Correct the callsite of mm_mallinfo 34302* [#9435](https://github.com/apache/nuttx/pull/9435) mm: Dump all memory blocks on allocation failure 34303* [#9555](https://github.com/apache/nuttx/pull/9555) mm: mm leak dump build error fix and memory foreach optimization 34304* [#9601](https://github.com/apache/nuttx/pull/9601) mm: mm_lock.c: reformat preprocessor 34305* [#9151](https://github.com/apache/nuttx/pull/9151) mm: memory allocations return valid pointer when request 0 size 34306* [#9563](https://github.com/apache/nuttx/pull/9563) mm: Rename PID_MM_INVALID to PID_MM_LEAK 34307* [#9560](https://github.com/apache/nuttx/pull/9560) mm: Rename mm_memdump_s to malltask 34308* [#9335](https://github.com/apache/nuttx/pull/9335) mm: Support memdump can show increased memory 34309* [#9476](https://github.com/apache/nuttx/pull/9476) mm/kmm_map: add missing FAR qualifiers 34310* [#9368](https://github.com/apache/nuttx/pull/9368) mm/kmm_map: add support to dynamically map pages into kernel virtual 34311* [#9055](https://github.com/apache/nuttx/pull/9055) mm/mm_map: give the mm_map as parameter to the mm_map functions 34312* [#9488](https://github.com/apache/nuttx/pull/9488) mm/mempool: allocate a chunk for multiple mempool avoid memory fragmentation 34313* [#9051](https://github.com/apache/nuttx/pull/9051) mm/mempool: fix bug, use incorrect free in mempool init 34314* [#9418](https://github.com/apache/nuttx/pull/9418) mm/mempool: fix bug read out of bounds when realloc 34315* [#9337](https://github.com/apache/nuttx/pull/9337) mm/mempool: fix bug when calculating mempool delta 34316* [#9052](https://github.com/apache/nuttx/pull/9052) mm/mempool: fix memory consumption double counting issue 34317* [#9433](https://github.com/apache/nuttx/pull/9433) mm/mempool: fix seqnumber statistics error in memdump 34318* [#9474](https://github.com/apache/nuttx/pull/9474) mm/mempool: remove nexpend and totalsize from mempool_s 34319* [#9336](https://github.com/apache/nuttx/pull/9336) mm/mempool: support when malloc failed dump mempool info 34320* [#9416](https://github.com/apache/nuttx/pull/9416) mm/mempool: Support when malloc failed dump mempool info 34321libs 34322* [#9284](https://github.com/apache/nuttx/pull/9284) libc: add regex implementation 34323* [#9148](https://github.com/apache/nuttx/pull/9148) libc: Add setbuffer to stdio. 34324* [#9062](https://github.com/apache/nuttx/pull/9062) libc: cleanup per-thread resource in exit/quick_exit 34325* [#8958](https://github.com/apache/nuttx/pull/8958) libc: correct config define of arch functions 34326* [#9480](https://github.com/apache/nuttx/pull/9480) libc: fix build break on kernel mode 34327* [#9181](https://github.com/apache/nuttx/pull/9181) libc: fixed armv7-m strcmp build issue 34328* [#9580](https://github.com/apache/nuttx/pull/9580) libc: lib_strftime: Fix %I to avoid printing 00:xx AM/PM 34329* [#9557](https://github.com/apache/nuttx/pull/9557) libc: lib_syslograwstream: fix bug when iob alloc failed 34330* [#9106](https://github.com/apache/nuttx/pull/9106) libc: memcpy M-profile PACBTI-enablement 34331* [#9543](https://github.com/apache/nuttx/pull/9543) libc: netdev/upper: Optimize on quota related operations 34332* [#8946](https://github.com/apache/nuttx/pull/8946) libc: print error code for unknown errors in strerror/gai_strerror 34333* [#9585](https://github.com/apache/nuttx/pull/9585) libc: Support gcc FORTIFY_SOURCE features 34334* [#9513](https://github.com/apache/nuttx/pull/9513) libc: Prefer to implement memfd on top of shm 34335* [#9193](https://github.com/apache/nuttx/pull/9193) libc/armv8-m: fix build break if MVE is disabled 34336* [#9497](https://github.com/apache/nuttx/pull/9497) libc/fdcheck: add fdcheck module 34337* [#9536](https://github.com/apache/nuttx/pull/9536) libc/fdcheck: compatibility enhancement 34338* [#9547](https://github.com/apache/nuttx/pull/9547) libc/fdcheck: Fix undefined reference to `getppid' 34339* [#9405](https://github.com/apache/nuttx/pull/9405) libc/fdsan: add fdsan protection for all file pointers 34340* [#9496](https://github.com/apache/nuttx/pull/9496) libc/fdsan: keep f_tag unchanged 34341* [#9384](https://github.com/apache/nuttx/pull/9384) libc/libc.csv: Correct type of return value for strstr 34342* [#8802](https://github.com/apache/nuttx/pull/8802) libc/locale: support iconv_open,iconv,iconv_close 34343* [#9260](https://github.com/apache/nuttx/pull/9260) libc/misc: add Fdsan module 34344* [#9076](https://github.com/apache/nuttx/pull/9076) libc/mm: fix files can not be compiled incrementally 34345* [#9534](https://github.com/apache/nuttx/pull/9534) libc/netdb/dns: fix dns wrong response ID error 34346* [#9238](https://github.com/apache/nuttx/pull/9238) libc/pthread: fix nxstyle errors 34347* [#9199](https://github.com/apache/nuttx/pull/9199) libc/pthread: fixed pthread incorrect return values 34348* [#9207](https://github.com/apache/nuttx/pull/9207) libc/qsort: fix invalid-pointer-pair if enable detect_invalid_pointer_pairs=2 34349* [#9456](https://github.com/apache/nuttx/pull/9456) libc/regex: provide a separate kconfig for regex 34350* [#9365](https://github.com/apache/nuttx/pull/9365) libc/stream/hexdump: add hexdump stream to dump binary to syslog 34351* [#9138](https://github.com/apache/nuttx/pull/9138) libc/string: select arch's libc for kernel/userspace optionally 34352* [#9605](https://github.com/apache/nuttx/pull/9605) libc/unistd: add getpgrp function 34353* [#9448](https://github.com/apache/nuttx/pull/9448) libc/wchar: Implement vswprintf 34354* [#9487](https://github.com/apache/nuttx/pull/9487) libdsp: Add average filter 34355* [#9061](https://github.com/apache/nuttx/pull/9061) libm/newlib: add newlib/libm support 34356* [#9083](https://github.com/apache/nuttx/pull/9083) libm/openlibm: add math library openlibm support. 34357* [#9125](https://github.com/apache/nuttx/pull/9125) libm/libmcs: add math library libmcs support 34358* [#9044](https://github.com/apache/nuttx/pull/9044) libxx: remove redundant code #9158 libelf: Support prioritized init and fini arrays 34359Misc 34360* [#9610](https://github.com/apache/nuttx/pull/9610) binfmt: Always include arch/elf.h in include/nuttx/elf.h 34361* [#9395](https://github.com/apache/nuttx/pull/9395) binfmt/elf: Support loading fully linked executables. 34362* [#9426](https://github.com/apache/nuttx/pull/9426) binfmt/elf/coredump: alignment stack buffer to 64 to match gdb request 34363* [#9376](https://github.com/apache/nuttx/pull/9376) binfmt/elf/coredump: add sanity checks for stack pointer 34364* [#9366](https://github.com/apache/nuttx/pull/9366) binfmt/elf/coredump: add support of dump task stack without memory segments 34365* [#9318](https://github.com/apache/nuttx/pull/9318) binfmt/elf/coredump: correct register offset after xcp.regs update 34366* [#9099](https://github.com/apache/nuttx/pull/9099) binfmt/execmodule: correct destroy flow 34367* [#9568](https://github.com/apache/nuttx/pull/9568) Debug:support python script auto debug nuttx kernel 34368* [#9600](https://github.com/apache/nuttx/pull/9600) Fix assertion of free a wrong heap 34369* [#9307](https://github.com/apache/nuttx/pull/9307) Fix windows compile errors because of double quotes in config 34370* [#9147](https://github.com/apache/nuttx/pull/9147) include/err: Enforce c linkage for err and warn functions. 34371* [#9459](https://github.com/apache/nuttx/pull/9459) include/nuttx/spi.h Fix SPIDEVID_TYPE macro definition 34372* [#8956](https://github.com/apache/nuttx/pull/8956) Let BOARDIOC_SOFTRESETCAUSE_ASSERT equals to the default value of BOARD_ASSERT_RESET_VALUE 34373* [#9274](https://github.com/apache/nuttx/pull/9274) modify type of numbytes in audio_buf_desc_s from uint16_t to apb_samp_t 34374* [#9348](https://github.com/apache/nuttx/pull/9348) openamp: decoupling the transport layer and virtio device layer 34375* [#9406](https://github.com/apache/nuttx/pull/9406) openamp: virtio.h add version field in device id table struct 34376* [#9553](https://github.com/apache/nuttx/pull/9553) Openamp/Kconfig: add cache and debug config for openamp 34377* [#9149](https://github.com/apache/nuttx/pull/9149) Remove #warning in the unnecessary places 34378* [#9594](https://github.com/apache/nuttx/pull/9594) Replace $(INCDIR) and ${DEFINE} with $(INCDIR_PREFIX) and $(DEFINE_PREFIX) 34379* [#8726](https://github.com/apache/nuttx/pull/8726) Replace the unsafe function(strcat, sprintf) with the safe one(strlcat, snprintf) 34380* [#9509](https://github.com/apache/nuttx/pull/9509) sdcard: update sdcard detection to avoid 0xff asignment to bool type 34381* [#9424](https://github.com/apache/nuttx/pull/9424) semantic/parser: fix compile warning found by sparse 34382* [#9142](https://github.com/apache/nuttx/pull/9142) signal: add macro NSIG 34383* [#9201](https://github.com/apache/nuttx/pull/9201) system/signal: in interrupting the context, regs modify logic error 34384 34385Changes to the Build System 34386Improvements 34387* [#9400](https://github.com/apache/nuttx/pull/9400) tools: Add way to get current defconfig name on runtime 34388* [#9572](https://github.com/apache/nuttx/pull/9572) tools: Fix CONFIG_BASE_DEFCONFIG generation 34389* [#9107](https://github.com/apache/nuttx/pull/9107) tools: Fix some error in Windows native build 34390* [#9462](https://github.com/apache/nuttx/pull/9462) tools: Support string upper/lower case in make 34391* [#9334](https://github.com/apache/nuttx/pull/9334) tools/mkallsyms: add exception handle 34392* [#9069](https://github.com/apache/nuttx/pull/9069) tools/mksymtab: Fix a compilation warning 34393* [#9210](https://github.com/apache/nuttx/pull/9210) tools/nuttx-gdbinit/armv7-a: reorder and synchronization registers of save/restore 34394* [#9198](https://github.com/apache/nuttx/pull/9198) tools/nuttx-gdbinit: improve experience of gdb backend scripts 34395* [#9234](https://github.com/apache/nuttx/pull/9234) tools/nuttx-gdbinit/armv7-a: add fpu support 34396* [#9211](https://github.com/apache/nuttx/pull/9211) tools/Unix: treat kconfig warning as failure 34397* [#9231](https://github.com/apache/nuttx/pull/9231) tools/refresh.sh: Add option to refresh all archs or all chips 34398 34399Architectural Support 34400New Architectures 34401* [#9465](https://github.com/apache/nuttx/pull/9465) initial FPU support for ARMv8R AARCH32 34402* [#9443](https://github.com/apache/nuttx/pull/9443) Support for ARMv8R AARCH32 34403 34404Improvements 34405* [#9115](https://github.com/apache/nuttx/pull/9115) arch: Return directly when arch not support interrupt context save 34406 34407* [#8823](https://github.com/apache/nuttx/pull/8823) arch: add more dependent header file 34408* [#9296](https://github.com/apache/nuttx/pull/9296) arch: Save sigdeliver into xcp in the case of signal self delevery 34409* [#9131](https://github.com/apache/nuttx/pull/9131) arch/assert: Distinguish between assert and exception 34410* [#8948](https://github.com/apache/nuttx/pull/8948) arch/boards: fix stm32f411-mininum:nsh compilation failure 34411* [#9343](https://github.com/apache/nuttx/pull/9343) arch/all: in smp pthread_cancel occasionally deadlock except for arm64 34412* [#9313](https://github.com/apache/nuttx/pull/9313) arch/arm: Add a "cc" flag 34413* [#8814](https://github.com/apache/nuttx/pull/8814) arch/arm: Add armv7m assembly strcpy. 34414* [#9019](https://github.com/apache/nuttx/pull/9019) arch/arm: change up_saveusercontext to assembly code 34415* [#8863](https://github.com/apache/nuttx/pull/8863) arch/arm: enable eoimode only select CONFIG_XXX_GIC_EOIMODE 34416* [#9338](https://github.com/apache/nuttx/pull/9338) arch/arm: Fix Kconfig style and texts 34417* [#9072](https://github.com/apache/nuttx/pull/9072) arch/arm: relax compiler check for workaround with "GCC 12.2" 34418* [#9085](https://github.com/apache/nuttx/pull/9085) arch/arm: Resolving warnings for assembly instructions 34419* [#9310](https://github.com/apache/nuttx/pull/9310) arch/arm: set arm_testset to weak function 34420* [#9018](https://github.com/apache/nuttx/pull/9018) arch/arm: update running task when context switch occurred 34421* [#9048](https://github.com/apache/nuttx/pull/9048) arch/arm/{armv7a/armv7r}l2cc: Don't repeat disabling the cache when the cache is already disabled 34422* [#8930](https://github.com/apache/nuttx/pull/8930) arch/armv7-r: add armv7-r smp support 34423* [#9311](https://github.com/apache/nuttx/pull/9311) arch/armv8-m: add ARMV8M_TRUSTZONE_HYBRID feature 34424* [#9458](https://github.com/apache/nuttx/pull/9458) arch/armv8-r: Fix warning when configuring fvp-armv8r:nsh_smp 34425* [#9478](https://github.com/apache/nuttx/pull/9478) arch/arm/backtrace: validate PC register before process unwind 34426* [#9121](https://github.com/apache/nuttx/pull/9121) arch/arm/unwind: EABI unwind needs frame pointer support 34427 34428* [#9034](https://github.com/apache/nuttx/pull/9034) arch/arm/cxd56: Add lowerhalf interface to keep power when cold sleep 34429 34430* [#9469](https://github.com/apache/nuttx/pull/9469) arch/arm/gd32f4: add sdio driver for GD32F4 34431* [#9493](https://github.com/apache/nuttx/pull/9493) arch/arm/gd32f4/Fixed Kconfig options for obsolete tickless systick options. 34432 34433* [#9325](https://github.com/apache/nuttx/pull/9325) arch/arm/imxrt: Base address missing from imxrt_flexio_get_shifter_buffer_address returned address 34434* [#9607](https://github.com/apache/nuttx/pull/9607) arch/arm/imxrt: Fix implicit function declaration 34435* [#9024](https://github.com/apache/nuttx/pull/9024) arch/arm/imxrt: FlexIO support 34436* [#9324](https://github.com/apache/nuttx/pull/9324) arch/arm/imxrt: Wrong dlastsga or slast setting if doff or soff larger than one 34437 34438* [#9026](https://github.com/apache/nuttx/pull/9026) arch/arm/imx6: with ar8031 34439 34440* [#9346](https://github.com/apache/nuttx/pull/9346) arch/arm/kinetis: s32k1/s32k3:edma {s|d}last needs to be total xfer size 34441* [#9001](https://github.com/apache/nuttx/pull/9001) arch/arm/kinetis/s32k3xx: EMAC MCAST support 34442 34443* [#9402](https://github.com/apache/nuttx/pull/9402) arch/arm/{nrf52|nrf53}: fix IN endpoint completion logic 34444* [#9508](https://github.com/apache/nuttx/pull/9508) arch/arm/{nrf52|nrf53}: various fixes to improve USB stability 34445* [#9444](https://github.com/apache/nuttx/pull/9444) arch/arm/{nrf52|nrf53}: validate if EasyDMA transfer is possible 34446* [#9431](https://github.com/apache/nuttx/pull/9431) arch/arm/nrf52: add MCUboot support 34447* [#9008](https://github.com/apache/nuttx/pull/9008) arch/arm/nrf52: add QSPI support 34448* [#9387](https://github.com/apache/nuttx/pull/9387) arch/arm/nrf53: add QSPI support 34449* [#8795](https://github.com/apache/nuttx/pull/8795) arch/arm/nrf53: add support for RPMSG HCI 34450* [#9359](https://github.com/apache/nuttx/pull/9359) arch/arm/nrf53: add USBD support 34451* [#8827](https://github.com/apache/nuttx/pull/8827) arch/arm/nrf52: nvmc and flash should depends on ALLOW_BSD_COMPONENTS=y 34452* [#9340](https://github.com/apache/nuttx/pull/9340) arch/arm/nrf53: add I2C support ported from nrf52 34453* [#9442](https://github.com/apache/nuttx/pull/9442) arch/arm/nrf53: add MCUboot support 34454* [#9351](https://github.com/apache/nuttx/pull/9351) arch/arm/nrf53: add SPI support ported from nrf52 34455* [#9356](https://github.com/apache/nuttx/pull/9356) arch/arm/nrf53: correct text config I2C3 Master 34456 34457* [#9252](https://github.com/apache/nuttx/pull/9252) arch/arm/sama5: add ATSAMA5D2/D4 Secure Fuse Controller (SFC) driver 34458* [#9377](https://github.com/apache/nuttx/pull/9377) arch/arm/sama5: Add touchscreen calibration IOCTLs, structs, and implement for ATSAMA5D2 34459* [#9215](https://github.com/apache/nuttx/pull/9215) arch/arm/sama5: Fix OHCI SchedulingOverrun interrupt storm. 34460* [#9390](https://github.com/apache/nuttx/pull/9390) arch/arm/sama5: improve LCD support and correct minor errors 34461* [#9286](https://github.com/apache/nuttx/pull/9286) arch/arm/sama5: Make EHCI work with slow devices. 34462* [#9357](https://github.com/apache/nuttx/pull/9357) arch/arm/samv7: remove alignment check that is not needed 34463* [#9112](https://github.com/apache/nuttx/pull/9112) arch/arm/sama5: SAMA5D2 Class D 34464* [#9341](https://github.com/apache/nuttx/pull/9341) arch/arm/sama5: SAMA5D2 SPI DMA fix and Performance Enhancements 34465* [#9157](https://github.com/apache/nuttx/pull/9157) arch/arm/sama5: Use a recursive mutex to fix OHCI deadlock. 34466 34467* [#9604](https://github.com/apache/nuttx/pull/9604) arch/arm/stm: Fix duplicate include guard 34468* [#8992](https://github.com/apache/nuttx/pull/8992) arch/arm/stm32: Remove GPIO_{SPEED|MODE}_xxx and provide a legacy path for lazy migration 34469* [#9491](https://github.com/apache/nuttx/pull/9491) arch/arm/stm32: Removed unused STM32_TICKLESS_SYSTICK Kconfig option. 34470* [#8976](https://github.com/apache/nuttx/pull/8976) arch/arm/stm32/otg: rasie an assertion if IN request is not possible to transfer 34471* [#8943](https://github.com/apache/nuttx/pull/8943) arch/arm/stm32/stm32_eth: Added error handling for abnormal interrupts. 34472* [#8975](https://github.com/apache/nuttx/pull/8975) arch/arm/{stm32f7,stm32h7,stm32l4}/sdmmc: callback support requires HPWORK 34473* [#9228](https://github.com/apache/nuttx/pull/9228) arch/arm/stm32h7: sdmmc It is not an error if no wait was needed 34474* [#8945](https://github.com/apache/nuttx/pull/8945) arch/arm/stm32h7/otg: support for OTG HS external ULPI 34475* [#8969](https://github.com/apache/nuttx/pull/8969) arch/arm/stm32h7/otgdev: FS transceiver must be enabled if OTGFS enabled 34476* [#9006](https://github.com/apache/nuttx/pull/9006) arch/arm/stm32h7/rcc: make VOS0 configurable from board.h 34477* [#9088](https://github.com/apache/nuttx/pull/9088) arch/arm/stm32_f7/h7_eth: Added error handling for abnormal interrupts. 34478* [#9218](https://github.com/apache/nuttx/pull/9218) arch/arm/stm32f0l0g0: Fix stm32f0l0g0 GPIO definitions 34479 34480* [#9216](https://github.com/apache/nuttx/pull/9216) arch/arm/tiva: Fix i2c message buffer error 34481* [#9441](https://github.com/apache/nuttx/pull/9441) arch/arm/tiva: start FPU before GPIO config 34482 34483* [#9515](https://github.com/apache/nuttx/pull/9515) arch/arm64: save FPU context when a context switch occurs in SMP mode 34484* [#9464](https://github.com/apache/nuttx/pull/9464) arch/arm64: use adrp instead of adr in bss init code 34485* [#9333](https://github.com/apache/nuttx/pull/9333) arch/arm64: support more interfaces for gicv3 34486* [#9023](https://github.com/apache/nuttx/pull/9023) arch/arm64: Support tickless mode 34487* [#9332](https://github.com/apache/nuttx/pull/9332) arch/arm64: Each core initializes its own idle stack in SMP 34488* [#9315](https://github.com/apache/nuttx/pull/9315) arch/arm64: Support unalign cache clean. 34489* [#9243](https://github.com/apache/nuttx/pull/9243) arch/arm64: Add support for Multiple UART Ports 34490* [#9227](https://github.com/apache/nuttx/pull/9227) arch/arm64: merge serial_pl011.c and qemu_serial.c 34491* [#8994](https://github.com/apache/nuttx/pull/8994) arch/arm64: fixed arm64 backtrace issue 34492* [#8990](https://github.com/apache/nuttx/pull/8990) arch/Arm64: arm64 pmu supported 34493* [#8876](https://github.com/apache/nuttx/pull/8876) arch/arm64: fixed cache issue and add more cache interface 34494* [#9098](https://github.com/apache/nuttx/pull/9098) arch/arm64: Updating ARCH_EARLY_PRINT support 34495* [#9065](https://github.com/apache/nuttx/pull/9065) arch/arm64: in smp pthread_cancel occasionally deadlock 34496* [#9330](https://github.com/apache/nuttx/pull/9330) arch/arm64: .bss initialization using assembly language 34497* [#9220](https://github.com/apache/nuttx/pull/9220) arch/arm64: preprocess link script to make configure more flexibly 34498* [#8799](https://github.com/apache/nuttx/pull/8799) arch/arm64: Support for FPU profile with procfs 34499 34500* [#9118](https://github.com/apache/nuttx/pull/9118) arch/risc-v: Add option for selecting coherent DMA. 34501* [#9114](https://github.com/apache/nuttx/pull/9114) arch/risc-v: change up_saveusercontext to assembly code 34502* [#9123](https://github.com/apache/nuttx/pull/9123) arch/risc-v: Fix save/load FPU macros 34503* [#9103](https://github.com/apache/nuttx/pull/9103) arch/risc-v: Fixed FPU register error 34504* [#9597](https://github.com/apache/nuttx/pull/9597) arch/risc-v: litex/gpio: Fix incorrect declaration name. 34505* [#9279](https://github.com/apache/nuttx/pull/9279) arch/risc-v: Remove riscv_copystate.c as it is not used a… 34506* [#9485](https://github.com/apache/nuttx/pull/9485) arch/risc-v: Store user context into the kernel stack 34507* [#9248](https://github.com/apache/nuttx/pull/9248) arch/risc-v/addrenv: Create utility function for dynamic mappings 34508* [#9481](https://github.com/apache/nuttx/pull/9481) arch/risc-v/backtrace: correct stack pointer if enable ARCH_KERNEL_STACK 34509* [#9538](https://github.com/apache/nuttx/pull/9538) arch/risc-v/barrier: Define more granular memory barriers 34510* [#8787](https://github.com/apache/nuttx/pull/8787) arch/risc-v/kernel mode: Add a stripped down, native version of SBI for NuttX 34511* [#9526](https://github.com/apache/nuttx/pull/9526) arch/risc-v/vfork: Replace jal with call for long jump 34512* [#9192](https://github.com/apache/nuttx/pull/9192) arch/risc-v/litex: Fix emac driver compilation when only IPv6 is used. 34513* [#9586](https://github.com/apache/nuttx/pull/9586) arch/risc-v/espressif: Add full GPIO support 34514* [#8957](https://github.com/apache/nuttx/pull/8957) arch/risc-v/espressif: Add support for Periodic and Oneshot Timers 34515* [#8980](https://github.com/apache/nuttx/pull/8980) arch/risc-v/espressif: Add support for RTC subsystem 34516* [#8953](https://github.com/apache/nuttx/pull/8953) arch/risc-v/espressif: Add support for Tickless mode 34517* [#8954](https://github.com/apache/nuttx/pull/8954) arch/risc-v/espressif: Panic if CPU interrupt allocation fails 34518* [#9545](https://github.com/apache/nuttx/pull/9545) arch/risc-v/espressif: Update esp-hal-3rdparty library 34519* [#8971](https://github.com/apache/nuttx/pull/8971) arch/risc-v/espressif: Use spinlock APIs for defining critical sections 34520 34521* [#8973](https://github.com/apache/nuttx/pull/8973) arch/risk-v/k210: Fix k210 timer on QEMU 6.1 or later 34522 34523* [#9548](https://github.com/apache/nuttx/pull/9548) arch/risc-v/mpfs: add CoreMMC support 34524* [#9439](https://github.com/apache/nuttx/pull/9439) arch/risc-v/mpfs: Add CoreSPI driver for Polarfire SoC 34525* [#9440](https://github.com/apache/nuttx/pull/9440) arch/risc-v/mpfs: Add mpfs_vbus_detect 34526* [#9419](https://github.com/apache/nuttx/pull/9419) arch/risc-v/mpfs: add support for CoreI2C fpga driver 34527* [#9489](https://github.com/apache/nuttx/pull/9489) arch/risc-v/mpfs: Enable KMM_MAP for knsh 34528* [#9212](https://github.com/apache/nuttx/pull/9212) arch/risc-v/mpfs: Fix some logic errors in the driver 34529* [#9430](https://github.com/apache/nuttx/pull/9430) arch/risc-v/mpfs: Modify mpfs_i2c.c to support arbitrary number o… 34530* [#9461](https://github.com/apache/nuttx/pull/9461) arch/risc-v/mpfs: Minor fixes / tweaks to the driver 34531* [#9503](https://github.com/apache/nuttx/pull/9503) arch/risc-v/mpfs: Remove MMU mappings and flush TLB upon boot 34532 34533* [#9081](https://github.com/apache/nuttx/pull/9081) arch/rv-virt/knsh64: increase proxy stack size to avoid overflow 34534* [#9075](https://github.com/apache/nuttx/pull/9075) arch/rv-virt/nsh64: enable CONFIG_BCH to support block device access 34535 34536* [#9312](https://github.com/apache/nuttx/pull/9312) arch/xtensa: only cmp fpu coprocessor for fpu test 34537* [#8977](https://github.com/apache/nuttx/pull/8977) arch/xtensa: Remove FAR qualifier for Xtensa-specific files 34538* [#9401](https://github.com/apache/nuttx/pull/9401) arch/xtensa/esp32: Add missing SPI Flash ROM functions 34539* [#8993](https://github.com/apache/nuttx/pull/8993) arch/xtensa/esp32: Add support for universal mac addresses 34540* [#9082](https://github.com/apache/nuttx/pull/9082) arch/xtensa/esp32: BLE Bugfix 34541* [#9078](https://github.com/apache/nuttx/pull/9078) arch/xtensa/esp32: enable LIBC_ARCH_ATOMIC 34542* [#9020](https://github.com/apache/nuttx/pull/9020) arch/xtensa/esp32: ESP32 not use IMEM in user heap mode 34543* [#9408](https://github.com/apache/nuttx/pull/9408) arch/xtensa/esp32: Fix build issues for SoftAP mode 34544* [#9236](https://github.com/apache/nuttx/pull/9236) arch/xtensa/esp32: Fix himem driver crash in SMP mode 34545* [#8926](https://github.com/apache/nuttx/pull/8926) arch/xtensa/esp32: fix signal deliver when task is running on ther CPU 34546* [#8963](https://github.com/apache/nuttx/pull/8963) arch/xtensa/esp32: Fix Wi-Fi driver parameter settings 34547* [#8974](https://github.com/apache/nuttx/pull/8974) arch/xtensa/esp32: Make asprintf and lib_free corresponding 34548* [#9077](https://github.com/apache/nuttx/pull/9077) arch/xtensa/esp32: Ssd1306 34549* [#9475](https://github.com/apache/nuttx/pull/9475) arch/xtensa/esp32: Support multiple PHY init data bin 34550* [#9242](https://github.com/apache/nuttx/pull/9242) arch/xtensa/esp32[s2]: Define syscall table to enable using ROM functions 34551* [#9542](https://github.com/apache/nuttx/pull/9542) arch/xtensa/esp32s2: Fix SPI DMA implementation 34552* [#9361](https://github.com/apache/nuttx/pull/9361) arch/xtensa/esp32s3: add dedicated interrupt stack for ESP32-S3 by default 34553* [#9110](https://github.com/apache/nuttx/pull/9110) arch/xtensa/esp32s3: Add RTC support 34554* [#9156](https://github.com/apache/nuttx/pull/9156) arch/xtensa/esp32s3: add support to WPA3 on Station Mode 34555* [#9525](https://github.com/apache/nuttx/pull/9525) arch/xtensa/esp32s3: Add USB OTG device driver 34556* [#8979](https://github.com/apache/nuttx/pull/8979) arch/xtensa/esp32s3: call softAP callback when Wi-Fi driver TX is done 34557* [#9367](https://github.com/apache/nuttx/pull/9367) arch/xtensa/esp32s3: pause other CPU before SPI flash operations 34558* [#9549](https://github.com/apache/nuttx/pull/9549) arch/xtensa/esp32s3: SPI support quad I/O mode 34559* [#9502](https://github.com/apache/nuttx/pull/9502) arch/xtensa/esp32s3: Support 32MB SPI flash 34560* [#9380](https://github.com/apache/nuttx/pull/9380) arch/xtensa/esp32s3: Support 32MB PSRAM 34561* [#9136](https://github.com/apache/nuttx/pull/9136) arch/xtensa/esp32s3: Support octal lines mode SPIRAM 34562* [#9397](https://github.com/apache/nuttx/pull/9397) arch/xtensa/esp32s3: SPI slave driver 34563* [#9232](https://github.com/apache/nuttx/pull/9232) arch/xtensa/esp32s3: use wapis init config to save Wi-Fi data 34564* [#9255](https://github.com/apache/nuttx/pull/9255) arch/xtensa/esp32xx: Workaround to avoid printing serial trash character 34565 34566* [#9190](https://github.com/apache/nuttx/pull/9190) arch/sim: do not free memory of zero-length reallocation 34567* [#9070](https://github.com/apache/nuttx/pull/9070) arch/sim: Implement text heap 34568* [#9079](https://github.com/apache/nuttx/pull/9079) arch/sim: Move up_textheap_xxx to common place 34569* [#9071](https://github.com/apache/nuttx/pull/9071) arch/sim: multi netdevice forward issue when ll_guardsize not 14 34570* [#9472](https://github.com/apache/nuttx/pull/9472) arch/sim: Replace uart_[xmit|recv]chars_dma with uart_dma[txavail|rxfree] 34571* [#9533](https://github.com/apache/nuttx/pull/9533) arch/sim: Support more sockopts on native socket 34572* [#9208](https://github.com/apache/nuttx/pull/9208) arch/sim/asan: disable detect_invalid_pointer_pairs/detect_stack_use_after_return 34573* [#8997](https://github.com/apache/nuttx/pull/8997) arch/sim/hostfs: pass flag O_BINARY to host 34574* [#9186](https://github.com/apache/nuttx/pull/9186) arch/sim/lsan: disable fast-unwind by default 34575* [#9468](https://github.com/apache/nuttx/pull/9468) arch/sim/ostest: enable priority inheritance testing 34576* [#9291](https://github.com/apache/nuttx/pull/9291) arch/sim/posix/backtrace: process host backtrace with critical section 34577* [#9518](https://github.com/apache/nuttx/pull/9518) arch/sim/posix/sim_hostusrsock: process host network syscall with critical… 34578* [#9308](https://github.com/apache/nuttx/pull/9308) arch/sim/sim_alsa: modify buffer_size in GET_BUFFERINFO when offload capture. 34579* [#8961](https://github.com/apache/nuttx/pull/8961) arch/sim/sim_x11eventloop: fix X11 event accumulation 34580* [#9109](https://github.com/apache/nuttx/pull/9109) arch/sim/usbdev: fix unpaired critical_section() 34581* [#8996](https://github.com/apache/nuttx/pull/8996) arch/sim/win/hostuart: only read key event from console 34582* [#8995](https://github.com/apache/nuttx/pull/8995) arch/sim/win/hosttime: calculate sec/ms independently to avoid overflow 34583 34584Driver Support 34585New Drivers 34586* [#9189](https://github.com/apache/nuttx/pull/9189) drivers/audio: add support for the ES8311 codec 34587* [#8775](https://github.com/apache/nuttx/pull/8775) drivers/audio: add audio_dma device driver. 34588* [#9372](https://github.com/apache/nuttx/pull/9372) drivers/lcd: add JD9851 driver 34589* [#8982](https://github.com/apache/nuttx/pull/8982) drivers/sensors: add support of InvenSense MPU-9250 sensor 34590* [#9452](https://github.com/apache/nuttx/pull/9452) drivers/sensors: add BMI270 IMU support 34591* [#9453](https://github.com/apache/nuttx/pull/9453) drivers/sensors: add bh1749nuc color sensor support 34592* [#9258](https://github.com/apache/nuttx/pull/9258) drivers/virtio: add virtio-mmio-blk driver Audio Support 34593 34594Improvements 34595* [#9027](https://github.com/apache/nuttx/pull/#9027) drivers/audio: Add audio underrun notice and support it in cxd56 audio driver 34596* [#9609](https://github.com/apache/nuttx/pull/#9609) drivers/can/can.c: Fix nested loops with same variable 34597* [#9450](https://github.com/apache/nuttx/pull/#9450) drivers/can/mcp2515.c add missing spi configuration in mcp2515_r… 34598* [#9399](https://github.com/apache/nuttx/pull/#9399) drivers/can/mcp2515.c Fix Configure Spi Bus on every bus lock 34599* [#9393](https://github.com/apache/nuttx/pull/#9393) drivers/can/mcp2515.c Fix Missing Chipselect de-assert before bus unl… 34600* [#9427](https://github.com/apache/nuttx/pull/#9427) drivers/can/mcp2515.c Use SPIDEV_CANBUS(config->devid) instead of SP… 34601* [#8773](https://github.com/apache/nuttx/pull/#8773) drivers/dma: support dma driver model 34602* [#8922](https://github.com/apache/nuttx/pull/#8922) drivers/emmc: eMMC driver support 34603* [#9529](https://github.com/apache/nuttx/pull/#9529) drivers/ioexpander/pca9555: fix const correctness of pin set parameters 34604* [#9398](https://github.com/apache/nuttx/pull/#9398) drivers/input/tsc2007: Rename touchscreen ioctls for clarity 34605* [#8398](https://github.com/apache/nuttx/pull/#8398) drivers/lcd/st7789: Dynamic adjustment of the orientation, switch orientation on the fly 34606* [#9463](https://github.com/apache/nuttx/pull/#9463) drivers/modem/alt1250: Update alt1250 driver 34607* [#9119](https://github.com/apache/nuttx/pull/#9119) drivers/misc: fix missing instantiation of return value in rwb_mediaremoved. 34608* [#9556](https://github.com/apache/nuttx/pull/#9556) drivers/misc/rpmsg: add fdsan support for rpmsg dev/mtd/blk 34609* [#9436](https://github.com/apache/nuttx/pull/#9436) drivers/mtd: check args for nvs read 34610* [#9011](https://github.com/apache/nuttx/pull/#9011) drivers/mtd: fix uninit data in mtd_config_fs 34611* [#9492](https://github.com/apache/nuttx/pull/#9492) drivers/mtd: mtd_config name len max changed to NAME_MAX 34612* [#9342](https://github.com/apache/nuttx/pull/#9342) drivers/mtd/gd25: Flash memory - performance enhancements 34613* [#9500](https://github.com/apache/nuttx/pull/#9500) drivers/mtd/is25xp: Enable usage of several chips on the same spi bus 34614* [#9154](https://github.com/apache/nuttx/pull/#9154) drivers/mtd/nand: Return -EUCLEAN when the bit error happen but fixed by ecc 34615* [#9281](https://github.com/apache/nuttx/pull/#9281) drivers/mtd/w25qxxxjv: add dual die support for 1 Gbit flash 34616* [#9272](https://github.com/apache/nuttx/pull/#9272) drivers/mtd/w25qxxxjv: fix STATUS2_QE_ENABLED bitfield write 34617* [#9396](https://github.com/apache/nuttx/pull/#9396) drivers/net/slip: Switch to poll based design 34618* [#8987](https://github.com/apache/nuttx/pull/#8987) drivers/note: fix note_drivers error 34619* [#9130](https://github.com/apache/nuttx/pull/#9130) drivers/pipe: fix blocking file_pipe 34620* [#8985](https://github.com/apache/nuttx/pull/#8985) drivers/pipe: make pipe and named pipe (mkfifo) POSIX-compliant (blocking open) 34621* [#9505](https://github.com/apache/nuttx/pull/#9505) drivers/ptmx: Fix a potential buffer overflow 34622* [#9554](https://github.com/apache/nuttx/pull/#9554) drivers/rptun: rptun and rptun_dump bug fix 34623* [#9592](https://github.com/apache/nuttx/pull/#9592) drivers/segger: Change the default value of SEGGER_RTT_MAX_NUM_DOWN_BUFFERS to SEGGER_RTT_MAX_NUM_UP_BUFFERS 34624* [#9012](https://github.com/apache/nuttx/pull/#9012) drivers/sensors/APDS9922: 34625* [#9608](https://github.com/apache/nuttx/pull/#9608) drivers/sensors/apds9960: Fix use after free 34626* [#9004](https://github.com/apache/nuttx/pull/#9004) drivers/sensors/Kconfig: Fix bmi160 help texts in Kconfig 34627* [#9013](https://github.com/apache/nuttx/pull/#9013) drivers/sensors/Kconfig: Fix bmp280 texts in Kconfig 34628* [#9589](https://github.com/apache/nuttx/pull/#9589) drivers/sensors/mpu60x0: add IOCTL support 34629* [#8999](https://github.com/apache/nuttx/pull/#8999) drivers/sensors/mpu60x0: Fix the error when reset mpu60x0 in SPI case 34630* [#9305](https://github.com/apache/nuttx/pull/#9305) drivers/serial: Fix coverity issue 34631* [#9292](https://github.com/apache/nuttx/pull/#9292) drivers/serial: fix race condition in multi-thread write 34632* [#9219](https://github.com/apache/nuttx/pull/#9219) drivers/serial: fix update local flags for the pty device attribute 34633* [#9049](https://github.com/apache/nuttx/pull/#9049) drivers/serial: support tty c_cc VMIN & VTIME 34634* [#9354](https://github.com/apache/nuttx/pull/#9354) drivers/serial/16550: dma support 16550 uart 34635* [#9473](https://github.com/apache/nuttx/pull/#9473) drivers/serial/16550: Include nuttx/clk/clk.h 34636* [#9283](https://github.com/apache/nuttx/pull/#9283) drivers/serial/16550: serial output can cause deadlock 34637* [#9105](https://github.com/apache/nuttx/pull/#9105) drivers/spi/spi_bitbang: Add private data on spi_bitbang 34638* [#9102](https://github.com/apache/nuttx/pull/#9102) drivers/spi/spi_bitbang: Fix build warnings 34639* [#9404](https://github.com/apache/nuttx/pull/#9404) drivers/syslog: add mutex to syslog_default_write 34640* [#9591](https://github.com/apache/nuttx/pull/#9591) drivers/syslog: Add sc_write_force callback 34641* [#9176](https://github.com/apache/nuttx/pull/#9176) drivers/syslog: add syslog option definition 34642* [#9364](https://github.com/apache/nuttx/pull/#9364) drivers/syslog: use internal buffer to decoupling syslog with iob 34643* [#8950](https://github.com/apache/nuttx/pull/#8950) drivers/telnet: Remove TELNET_CHARACTER_MODE 34644* [#9133](https://github.com/apache/nuttx/pull/#9133) drivers/telnet: Refused to enter character mode 34645* [#9541](https://github.com/apache/nuttx/pull/#9541) drivers/usbdev/cdcacm.c: register console only for device with minor number 0 34646* [#9331](https://github.com/apache/nuttx/pull/#9331) drivers/usbhost: Can now handle multiple interface descriptors. 34647* [#9245](https://github.com/apache/nuttx/pull/#9245) drivers/usbhost: Fix function address generation for multi-port root hubs. 34648* [#9287](https://github.com/apache/nuttx/pull/#9287) drivers/usbhost: Make unplugging hubs more reliable. 34649* [#9223](https://github.com/apache/nuttx/pull/#9223) drivers/usbhost/usbhost_cdcacm.c: fix warning 34650* [#9257](https://github.com/apache/nuttx/pull/#9257) drivers/usbhost/usbhost_hub: Prevent crash when the last hub port is used. 34651* [#9479](https://github.com/apache/nuttx/pull/#9479) drivers/usrsock/dns: add sanity check before send dns event 34652* [#9520](https://github.com/apache/nuttx/pull/#9520) drivers/usrsock/rpmsg_server: fix poll recursive when revent POLLHUP or POLLERR 34653* [#9581](https://github.com/apache/nuttx/pull/#9581) drivers/usrsock/usrsock_server: fix incomplete received data error 34654* [#9261](https://github.com/apache/nuttx/pull/#9261) drivers/usrsock/usrsock_server: fix issues with usrsock_rpmsg_sendto_handler 34655* [#8949](https://github.com/apache/nuttx/pull/#8949) drivers/video: passthrough unknown ioctl commands for customized scenarios in fb driver 34656* [#9045](https://github.com/apache/nuttx/pull/#9045) drivers/video: Support spot position setting 34657* [#9221](https://github.com/apache/nuttx/pull/#9221) drivers/video/fb: adapt to fbmem dynamic update. 34658* [#8907](https://github.com/apache/nuttx/pull/#8907) drivers/video/fb: add vsync offset support 34659* [#9101](https://github.com/apache/nuttx/pull/#9101) drivers/video/fb: fix pollnotify calling crash in advance 34660* [#9328](https://github.com/apache/nuttx/pull/#9328) drivers/video/fb_driver: add fb_open and fb_close 34661* [#9388](https://github.com/apache/nuttx/pull/#9388) drivers/video/vnc_server: Fix that vnc_updater thread exited caused by readed a null data 34662* [#9329](https://github.com/apache/nuttx/pull/#9329) drivers/video/vnc_server: set touch.maxpoint to 1 for circbuf_init 34663* [#9447](https://github.com/apache/nuttx/pull/#9447) drivers/virtio: Fix virtnet_transmit() in virtio-mmio-net.c 34664* [#9457](https://github.com/apache/nuttx/pull/#9457) drivers/virtio: Fix virtio-mmio-net 34665* [#9582](https://github.com/apache/nuttx/pull/#9582) drivers/virtio: Use one dscriptor for RX in virtio-mmio-net.c 34666* [#9134](https://github.com/apache/nuttx/pull/#9134) drivers/wireless: Fix mtu info for gs2200m 34667 34668Audio Support 34669Improvements 34670* [#9381](https://github.com/apache/nuttx/pull/9381) audio: add channels range 34671* [#9152](https://github.com/apache/nuttx/pull/9152) audio/pcm_decode: fix warnings regarding unused functions and vars 34672 34673Board Support 34674New Board Support 34675* [#9322](https://github.com/apache/nuttx/pull/9322)boards/nrf52: add initial support for Thingy:52 board 34676* [#9323](https://github.com/apache/nuttx/pull/9323)boards/nrf53: add initial support for Thingy:53 board 34677 34678Improvements 34679* [#8964](https://github.com/apache/nuttx/pull/8964) boards: define boardioc_softreset_subreason_e in CONFIG_BOARDCTL_RESET 34680* [#9512](https://github.com/apache/nuttx/pull/9512) boards: Enable md5 to test virtio 34681* [#9167](https://github.com/apache/nuttx/pull/9167) boards: Fix CONFIG_[START_DATE,START_MONTH] cannot start with 0 34682* [#8962](https://github.com/apache/nuttx/pull/8962) boards: refresh boards that use usbmsc 34683* [#8942](https://github.com/apache/nuttx/pull/8942) boards: Replace open/pread with file_open/file_pread 34684* [#8941](https://github.com/apache/nuttx/pull/8941) boards/boardctl: Add BOARDIOC_SOFTRESETCAUSE_ENTER_BOOTLOADER reset cause 34685* [#9217](https://github.com/apache/nuttx/pull/9217) boards/boardctl: add BOARDIOC_SOFTRESETCAUSE_RESTORE_FACTORY_INQUIRY 34686* [#9535](https://github.com/apache/nuttx/pull/9535) boards/arm/cxd56xx/spresense: Fix boards implements for supporting PM System 34687* [#9056](https://github.com/apache/nuttx/pull/9056) boards/arm/cxd56xx/drivers/sensors/Kconfig: Fix bmp280 texts in Kconfig 34688* [#9358](https://github.com/apache/nuttx/pull/9358) boards/arm/nrf5x: introduce common folder for nrf52 and nrf53 34689* [#9403](https://github.com/apache/nuttx/pull/9403) boards/arm/nrf52840-dongle: add usb support and usbnsh example 34690* [#9451](https://github.com/apache/nuttx/pull/9451) boards/arm/nrf52-feather: fix typo in I2C1 initialization 34691* [#9321](https://github.com/apache/nuttx/pull/9321) boards/arm/nrf53: cosmetics 34692* [#8840](https://github.com/apache/nuttx/pull/8840) boards/arm/sam34: make userleds work on Arduino Due 34693* [#9571](https://github.com/apache/nuttx/pull/9571) boards/arm/samv7: add lower level IOCTL handler to sam_gpio_enc driver 34694* [#9415](https://github.com/apache/nuttx/pull/9415) boards/arm/samv7: add type member to mtd_partition_s structure 34695* [#8952](https://github.com/apache/nuttx/pull/8952) boards/arm/stm32: add composite device configurations 34696* [#9559](https://github.com/apache/nuttx/pull/9559) boards/arm/stm32/stm32 tickless: stop assertion when calling up_timer_gettime 34697* [#9089](https://github.com/apache/nuttx/pull/9089) boards/arm/stm32/tm4c1294-launchpad: Add reboot support. 34698* [#9383](https://github.com/apache/nuttx/pull/9383) boards/arm/stm32/Update stm32l562e-dk:nsh 34699* [#9373](https://github.com/apache/nuttx/pull/9373) boards/arm/stm32f0l0g0: rework boards to not use legacy pinmap 34700* [#9164](https://github.com/apache/nuttx/pull/9164) boards/arm/stm32f4/nucleo-f429zi: update CONFIG define to keep up with the CONFIG in arch/stm32 34701* [#9593](https://github.com/apache/nuttx/pull/9593) boards/arm/stm32f4/stm32f429i-disco: Register the BUTTON driver 34702* [#8906](https://github.com/apache/nuttx/pull/8906) boards/arm/stm32f4/stm32f411: MiniF4 peripherals support improvements 34703* [#9409](https://github.com/apache/nuttx/pull/9409) boards/arm/stm32f7: DIR/Complementary PWM possible on PE08 and PE10 34704* [#9247](https://github.com/apache/nuttx/pull/9247) boards/arm/stm32f7: rework boards to not use legacy pinmap 34705* [#9230](https://github.com/apache/nuttx/pull/9230) boards/arm/stm32f7/nucleo-144: Modifications for the EMB control board 34706* [#9562](https://github.com/apache/nuttx/pull/9562) boards/arm/stm32f7/stm32f777zit6-meadow: Fix external RAM pinout and add board profile 34707* [#9250](https://github.com/apache/nuttx/pull/9250) boards/arm/stm32h7: rework boards to not use legacy pinmap 34708* [#9224](https://github.com/apache/nuttx/pull/9224) boards/arm/stm32h7/nucleo-h743zi: fix usb host example 34709* [#9233](https://github.com/apache/nuttx/pull/9233) boards/arm/tiva: bmp280 driver binding to tm4c1294 34710* [#9206](https://github.com/apache/nuttx/pull/9206) boards/arm/tiva: mpu6050 driver binding to TM4C1294 34711* [#9054](https://github.com/apache/nuttx/pull/9054) boards/arm/tiva/lm3s6432-s2e: reduce size of NSH configuration binary 34712* [#8929](https://github.com/apache/nuttx/pull/8929) boards/arm/tiva/tm4c1294-launchpad: Use bmi160 driver for boostxl-sensors. 34713* [#9150](https://github.com/apache/nuttx/pull/9150) boards/sim: Add defconfigs for testing the RTP Tools on Simulator and ESP32-LyraT board and relevant documentation about it 34714* [#8772](https://github.com/apache/nuttx/pull/8772) boards/sim: Add sim:toywasm config 34715* [#9197](https://github.com/apache/nuttx/pull/9197) boards/sim: Enable more sanitizer check when enable 34716* [#8972](https://github.com/apache/nuttx/pull/8972) boards/sim/ostest: Enabled KASAN, UBSAN & assertions. 34717* [#9015](https://github.com/apache/nuttx/pull/9015) boards/xtensa/esp32: Add ESP32-PICO-KIT support 34718* [#9141](https://github.com/apache/nuttx/pull/9141) boards/xtensa/esp32/esp32-devkitc: substitute ramtest to mm on defconfigs 34719* [#9567](https://github.com/apache/nuttx/pull/9567) boards/xtensa/esp32/esp32-devkitc/wamr_wasi_debug: Bump WAMR version 34720* [#9096](https://github.com/apache/nuttx/pull/9096) boards/xtensa/esp32/esp32s2-kaluga-1: Add support for LCD displays 34721* [#9565](https://github.com/apache/nuttx/pull/9565) boards/xtensa/esp32/esp32s3: Add usbnsh for all ESP32S3 boards 34722* [#9551](https://github.com/apache/nuttx/pull/9551) boards/xtensa/esp32/esp32s3-devkit: Revert NSH defconfig deletion 34723* [#9524](https://github.com/apache/nuttx/pull/9524) boards/xtensa/k210: Use 8 byte align in linker script #9135 boards: remove unnecessary FAR 34724* [#8781](https://github.com/apache/nuttx/pull/8781) boards/risc-v: Add MPU60x0 IMU sensors support for ESP32C3 34725* [#8762](https://github.com/apache/nuttx/pull/8762) boards/risc-rv/qemu-vr: Support for Kernel build with vexriscv-smp. 34726* [#9514](https://github.com/apache/nuttx/pull/9514) boards/risc-rv/rv-virt: Add netnsh64_smp to test virtio 34727 34728File System 34729Improvements 34730* [#9063](https://github.com/apache/nuttx/pull/9063) fs: Add g_ prefix to file_operations and mountpt_operations 34731* [#8939](https://github.com/apache/nuttx/pull/8939) fs: Flush the file system cache in BOARDIOC_POWEROFF too 34732* [#9521](https://github.com/apache/nuttx/pull/9521) fs: move memset to upper lever for statfs and add f_fsid field 34733* [#9558](https://github.com/apache/nuttx/pull/9558) fs: some minor changed about the fs 34734* [#9060](https://github.com/apache/nuttx/pull/9060) fs/cromfs: Fix faulty DEBUGASSERT() check 34735* [#9000](https://github.com/apache/nuttx/pull/9000) fs/hostfs: align operation flags define with fcntl.h 34736* [#8868](https://github.com/apache/nuttx/pull/8868) fs/hostfs: switch working directory 34737* [#9550](https://github.com/apache/nuttx/pull/9550) fs/fdcheck: Let FDCHECK depend on SCHED_HAVE_PARENT 34738* [#9009](https://github.com/apache/nuttx/pull/9009) fs/inode: Fixes in asprintf usage. 34739* [#9093](https://github.com/apache/nuttx/pull/9093) fs/inode: when searching for nextname skip "/" and "./" 34740* [#9037](https://github.com/apache/nuttx/pull/9037) fs/littlefs: littlefs shouldn't be used without C99 BOOL 34741* [#9120](https://github.com/apache/nuttx/pull/9120) fs/littlefs: Add patch for littlefs to use kmm_malloc/free on kernel with MMU. Upgrade to latest littlefs 34742* [#9140](https://github.com/apache/nuttx/pull/9140) fs/mtd: add support for MTDIOC_ERASESECTORS ioctl 34743* [#9146](https://github.com/apache/nuttx/pull/9146) fs/mtd: Implement MTDIOC_ERASESTATE and MTDIOC_ERASESECTORS 34744* [#9144](https://github.com/apache/nuttx/pull/9144) fs/mtd: minor fix for mtd/nand driver 34745* [#9145](https://github.com/apache/nuttx/pull/9145) fs/mtd/nand: Add nand_raw_initialize to skip the probing 34746* [#9347](https://github.com/apache/nuttx/pull/9347) fs/partition: register partition device if caller doesn't provide handler 34747* [#9394](https://github.com/apache/nuttx/pull/9394) fs/procfs: add cpuinfo 34748* [#8991](https://github.com/apache/nuttx/pull/8991) fs/procfs: add total time running time of task 34749* [#9073](https://github.com/apache/nuttx/pull/9073) fs/procfs: fix readdir loss last character 34750* [#9540](https://github.com/apache/nuttx/pull/9540) fs/vfs: Proper use of sigisemptyset 34751* [#9205](https://github.com/apache/nuttx/pull/9205) fs/vfs: Zero file struct field with memset 34752* [#9385](https://github.com/apache/nuttx/pull/9385) fs/vfs/fs_poll: Fix wrong return value in CONFIG_BUILD_KERNEL 34753* [#9576](https://github.com/apache/nuttx/pull/9576) fs/vfs/sendfile: Fixed behavior of sendfile when count is set to zero. 34754 34755Networking 34756Improvements 34757* [#9423](https://github.com/apache/nuttx/pull/9423) net: Fix task block when devif_send fails. 34758* [#9265](https://github.com/apache/nuttx/pull/9265) net: move ttl field into socket_conn_s struct 34759* [#9237](https://github.com/apache/nuttx/pull/9237) net: remove conn-related casts 34760* [#9254](https://github.com/apache/nuttx/pull/9254) net: Support to PMTUD 34761* [#9180](https://github.com/apache/nuttx/pull/9180) net/can: control msg support multi-attribute return 34762* [#9111](https://github.com/apache/nuttx/pull/9111) net/can: fix can mssage corruption if enable NET_TIMESTAMP 34763* [#9160](https://github.com/apache/nuttx/pull/9160) net/can: Remove the unnecessary "ret = OK;" in can_getsockopt 34764* [#9169](https://github.com/apache/nuttx/pull/9169) net/ethernet: add ETHERTYPE define 34765* [#9483](https://github.com/apache/nuttx/pull/9483) net/icmp: Save poll device in icmp_poll_s 34766* [#9174](https://github.com/apache/nuttx/pull/9174) net/icmp6: add icmp6-related definition 34767* [#9222](https://github.com/apache/nuttx/pull/9222) net/icmp6/in.h: add SOL_IPV6 protocol-level socket options IPV6_RECVHOPLIMIT 34768* [#9195](https://github.com/apache/nuttx/pull/9195) net/icmpv6: add SOCK_RAW type support 34769* [#9177](https://github.com/apache/nuttx/pull/9177) net/if: add net device type 34770* [#9178](https://github.com/apache/nuttx/pull/9178) net/ip: add iphdr definition 34771* [#9171](https://github.com/apache/nuttx/pull/9171) net/if_arp: add arphdr definition 34772* [#9519](https://github.com/apache/nuttx/pull/9519) net/inet_addr: return INADDR_NONE(-1) when input string is invalid 34773* [#9179](https://github.com/apache/nuttx/pull/9179) net/ip6: add ip6-related definition 34774* [#9266](https://github.com/apache/nuttx/pull/9266) net/ipv6: support SOL_IPV6 options IPV6_UNICAST_HOPS and IPV6_MULTICAST_HOPS 34775* [#9269](https://github.com/apache/nuttx/pull/9269) net/ipv6_setsockopt: Merge similarity logic 34776* [#9196](https://github.com/apache/nuttx/pull/9196) net/ipforward: copy iob when broadcast forward 34777* [#9043](https://github.com/apache/nuttx/pull/9043) net/ipforward: limit the forwarding range of broadcast packets 34778* [#9244](https://github.com/apache/nuttx/pull/9244) net/local: fix blocking local sockets 34779* [#9295](https://github.com/apache/nuttx/pull/9295) net/net: Add the check that socket domain is equal to bound address type, when do bind. 34780* [#9162](https://github.com/apache/nuttx/pull/9162) net/net: Simplify the tcp/udp existence check 34781* [#8610](https://github.com/apache/nuttx/pull/8610) net/netdev: Add upper half of netdev and simplify sim driver 34782* [#9517](https://github.com/apache/nuttx/pull/9517) net/netdev: remove ASSERT when ifindex is invalid 34783* [#9543](https://github.com/apache/nuttx/pull/9543) net/netdev/upper: Optimize on quota related operations 34784* [#9293](https://github.com/apache/nuttx/pull/9293) net/netdev_upper: Protect quota by spin lock to allow netpkt_xxx be called in interrupt context 34785* [#9522](https://github.com/apache/nuttx/pull/9522) net/netfilter: add NF_IP_xxx definition 34786* [#9188](https://github.com/apache/nuttx/pull/9188) net/netinet/include: header file definition changed to nuttx format 34787* [#8864](https://github.com/apache/nuttx/pull/8864) net/netlink: add RTM_NEWADDR, RTM_DELADDR and RTM_GETADDR 34788* [#9175](https://github.com/apache/nuttx/pull/9175) net/netlink: convert lltype to device type 34789* [#9116](https://github.com/apache/nuttx/pull/9116) net/procfs: Support to show MTU in netdev statistics 34790* [#9170](https://github.com/apache/nuttx/pull/9170) net/route: add struct in6_rtmsg definition 34791* [#9290](https://github.com/apache/nuttx/pull/9290) net/rpmsg: initialize semaphore count before wait 34792* [#9042](https://github.com/apache/nuttx/pull/9042) net/rpmsg: Set family for rpaddr in ns_bind 34793* [#9374](https://github.com/apache/nuttx/pull/9374) net/socket: Fix send() / recv() in BUILD_KERNEL 34794* [#9588](https://github.com/apache/nuttx/pull/9588) net/socket/recvfrom: Fix buffer copy direction when using BUILD_KERNEL. 34795* [#9074](https://github.com/apache/nuttx/pull/9074) net/tcp_input: drop SYN when no free node in the backlog 34796* [#9187](https://github.com/apache/nuttx/pull/9187) net/tcp_monitor: start_monitor return OK when connect closed by peer 34797* [#9414](https://github.com/apache/nuttx/pull/9414) net/tcp: Add flag for tcp_close to avoid double free 34798* [#9262](https://github.com/apache/nuttx/pull/9262) net/tcp: Add NewReno congestion control. 34799* [#8782](https://github.com/apache/nuttx/pull/8782) net/tcp: add TCP_MAXSEG support 34800* [#9041](https://github.com/apache/nuttx/pull/9041) net/tcp: Fix clear condition in ofoseg input 34801* [#9172](https://github.com/apache/nuttx/pull/9172) net/udp: add udphdr definition #9173 if_ether: add ether_arp definition 34802* [#9214](https://github.com/apache/nuttx/pull/9214) net/udp: change PKTINFO flag to socket_conn_s struct 34803* [#9194](https://github.com/apache/nuttx/pull/9194) net/udp: Remove wrong check in udp_readahead 34804* [#8947](https://github.com/apache/nuttx/pull/8947) net/usrsock_server: Improvement on sendto errors 34805* [#9139](https://github.com/apache/nuttx/pull/9139) wireless: add IW_AUTH_WPA_VERSION_WPA3 flag to support WPA3 34806* [#9113](https://github.com/apache/nuttx/pull/9113) wireless/bluetooth: Initialize private bt_driver_s member. 34807* [#9068](https://github.com/apache/nuttx/pull/9068) wireless/bluetooth: Fix the Unexpected ACL flags error 34808* [#9087](https://github.com/apache/nuttx/pull/9087) wireless/bluetooth: Fix build error when BT_GATT_CCC is used. 34809* [#9471](https://github.com/apache/nuttx/pull/9471) wireless/bluetooth: Add a generic access service. 34810* [#9166](https://github.com/apache/nuttx/pull/9166) wireless/bluetooth: Support removable bluetooth modules. 34811 34812Compatibility Concerns 34813* [#8827](https://github.com/apache/nuttx/pull/8827) arch/nrf52: nvmc and flash should depends on ALLOW_BSD_COMPONENTS=y 34814 34815Users using nvmc and flash must allow BSD components (CONFIG_ALLOW_BSD_COMPONENTS=y). 34816 34817* [#8992](https://github.com/apache/nuttx/pull/8992) stm32: Remove GPIO_{SPEED|MODE}_xxx and provide a legacy path for lazy migration 34818 34819All boards board.h should be migrated using tools/stm32_pinmap_tool.py 34820`tools/stm32_pinmap_tool.py --pinmap arch/arm/src/stm32h7/hardware/stm32h7x3xx_pinmap_legacy.h --addall --suffix _0 --report /include/board.h 34821it will output 2 sections that should be used to update the board.h. 34822 34823* [#9527](https://github.com/apache/nuttx/pull/9527) sched/tls: remove PTHREAD_CLEANUP from Kconfig 34824 34825use PTHREAD_CLEANUP_STACKSIZE to enable or disable interfaces pthread_cleanup_push() and pthread_cleanup_pop(). 34826Same as TLS_TASK_NELEM - It is no need to use two variables. Make the reserved entries more explicit 34827 34828* [#8985](https://github.com/apache/nuttx/pull/8985) drivers/pipe: make pipe and named pipe (mkfifo) POSIX-compliant (blocking open) 34829 34830It would be a possible breaking change if any application was written specifically to expect an open for write-only 34831(and O_NONBLOCK cleared, of course) to be non-blocking even if there are no readers. 34832Being able to port POSIX-compliant applications that expect open to block when opening for write-only with no readers 34833would enhance NuttX's objective of "to achieve a high degree of standards compliance. The primary governing standards 34834are POSIX and ANSI standards". That is the case for RTP Tools, for instance. 34835