• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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/socketxx31495* [#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