Newer
Older
12001
12002
12003
12004
12005
12006
12007
12008
12009
12010
12011
12012
12013
12014
12015
12016
12017
12018
12019
12020
12021
12022
12023
12024
12025
12026
12027
12028
12029
12030
12031
12032
12033
12034
12035
12036
12037
12038
12039
12040
12041
12042
12043
12044
12045
12046
12047
12048
12049
12050
12051
12052
12053
12054
12055
12056
12057
12058
12059
12060
12061
12062
12063
12064
12065
12066
12067
12068
12069
12070
12071
12072
12073
12074
12075
12076
12077
12078
12079
12080
12081
12082
12083
12084
12085
12086
12087
12088
12089
12090
12091
12092
12093
12094
12095
12096
12097
12098
12099
12100
12101
12102
12103
12104
12105
12106
12107
12108
12109
12110
12111
12112
12113
12114
12115
12116
12117
12118
12119
12120
12121
12122
12123
12124
12125
12126
12127
12128
12129
12130
12131
12132
12133
12134
12135
12136
12137
12138
12139
12140
12141
12142
12143
12144
12145
12146
12147
12148
12149
12150
12151
12152
12153
12154
12155
12156
12157
12158
12159
12160
12161
12162
12163
12164
12165
12166
12167
12168
12169
12170
12171
12172
12173
12174
12175
12176
12177
12178
12179
12180
12181
12182
12183
12184
12185
12186
12187
12188
12189
12190
12191
12192
12193
12194
12195
12196
12197
12198
12199
12200
12201
12202
12203
12204
12205
12206
12207
12208
12209
12210
12211
12212
12213
12214
12215
12216
12217
12218
12219
12220
12221
12222
12223
12224
12225
12226
12227
12228
12229
12230
12231
12232
12233
12234
12235
12236
12237
12238
12239
12240
12241
12242
12243
12244
12245
12246
12247
12248
12249
12250
12251
12252
12253
12254
12255
12256
12257
12258
12259
12260
12261
12262
12263
12264
12265
12266
12267
12268
12269
12270
12271
12272
12273
12274
12275
12276
12277
12278
12279
12280
12281
12282
12283
12284
12285
12286
12287
12288
12289
12290
12291
12292
12293
12294
12295
12296
forks from the main repositories, albeit with many interruptions.
The completion of this wireless feature will postponed until at
least NuttX-7.19.
Bugfixes. Only the most critical bugfixes are listed here (see the
ChangeLog for the complete list of bugfixes and for additional, more
detailed bugfix information):
* Core OS:
- Explicitly initialize the group tg_exitsem with sem_init(). The
existing logic worked because the correct initialization value is
all zero, but it is better to initialize the semaphore explicitly.
- The TCB nchildren field should not be incremented when pthreads are
created.
- Move fields related to parent/child task relationship out of TCB
into group structure where they belong. Child is a group, not a
thread.
- mq_send() was not setting the errno value on certain failures to
allocate a message.
- Define 'group' even if HAVE_GROUPID is not set. From Mateusz
Szafoni.
- Vector table should have dimension NR_IRQS, not NR_IRQS+1. From
Sagitta Li.
- pthreads: When a pthread is started, there is a small bit
of logic that will run on the thread of execution of the new
pthread. In the case where the new pthread has a lower
priority than the parent thread, then this could cause both the
parent thread and the new pthread to be blocked at the priority of
the lower priority pthread (assuming that CONFIG_PRIORITY_INHERITANCE
is not selected). This change temporarily boosts the priority of the
new pthread to at least the priority of the new pthread to at least
the priority of the parent thread. When that bit of logic has
executed on the thread of execution of the new pthread, it will then
drop to the correct priority (if necessary) before calling into the
new pthread's entry point.
* File System/Block Drivers/MTD Drivers:
- FAT performance improvement. In large files, seeking to a
position from the beginning of the file can be very time consuming.
ftell does lssek(fd, 0, SET_CURR). In that case, that is wasted
time since we are going to seek to the same position. This fix
short-circuits fat_seek() in all cases where we attempt to seek to
current position. Suggested by Nate Weibley.
- MTD: Fixed cloned typos in several FLASH drivers. From Aleksandr
Vyhovanec.
- mount: Corrects a bad assertion noted by Pierre-noel Bouteville.
Also fixes a reference counting problem in an error condition:
When the mountpoint inode is found but is not an appropriate
mountpoint, the reference count on the inode was not being
decremented.
* Common Drivers:
- Various serial drivers: Fix FIONWRITE and add FIONSPACE. All
implementations of FIONWRITE were wrong. FIONWRITE should return
the number of bytes waiting in the outgoing send queue, not the free
space. Rather, FIONSPACE should return the free space in the send
queue.
- Add missing prototype for btn_lower_initialize().
- Make DAC sample structure packed. From Marc Rechté.
* Networking:
- TCP: tcp_ipvX_bind() not actually using the port selected with
port==0. Also removes duplicate call to pkt_input(). Issues noted
by Pascal Speck.
- drivers/net: NET_TUN=y => NET_MULTIBUFFER=y. From Vladimir
Komendantskiy.
- slip driver: Fix calculations using MSEC_PER_TICK. If
USEC_PER_TICK is less than 1000, then MSEC_PER_TICK will be
zero. It will be inaccurate in any case.
* Atmel SAM3/4 Drivers:
- SAM3/4 GPIO: Enable peripheral clock for GPIO port when GPIO is
configured as input. The value of a GPIO input is only sampled when
the peripheral clock for the port controller the GPIO resides in is
enabled. Therefore we need to enable the clock even when polling a
GPIO. From Wolfgang Reissnegger.
- All SAM Ethernet Drivers: Add support so that the drivers can be
built with CONFIG_NET_MULTIBUFFER=y.
- SAM3/4: Fix GPIO pull-up/down code. Enabling the pull-down resistor
while the pull-up resistor is still enabled is not possible. In this
case, the write of PIO_PPDER for the relevant I/O line is discarded.
Likewise, enabling the pull-up resistor while the pull-down resistor
is still enabled is not possible. In this case, the write of
PIO_PUER for the relevant I/O line is discarded. From Wolfgang
Reißnegger.
* Atmel SAMV7 Drivers:
- All SAM Ethernet Drivers: Add support so that the drivers can be
built with CONFIG_NET_MULTIBUFFER=y.
- SAM GPIO: Apply Wolfgang's change for SAM3/4 to SAMA5 and SAMV7.
* Atmel SAMA5:
- Add missing oneshot max_delay method.
- All SAM Ethernet Drivers: Add support so that the drivers can be
built with CONFIG_NET_MULTIBUFFER=y.
- SAM GPIO: Apply Wolfgang's change for SAM3/4 to SAMA5 and SAMV7.
* NXP Freescale LPC43xx Drivers:
- LPC43xx serial: Fix typos in LPC43 serial driver. Found by Vytautas
Lukenskas.
- LPC43xx Serial: There are some small problems in LPC43xx RS485 mode
configuration. In particular: (1) UART0,2,3 do not have DTR pins
(different from UART1), so, Kconfig needs to be adjusted. (2)
lpc43_uart.c in RS485 mode only configures DIR pin, but doesn't
enable pin output for UART0,2,3. (3) should be option to reverse DIR
control pin output polarity. (4) lpc43xx/chip/lpc43_uart.h doesn't
have USART3 definitions. NOTE: I didn't modified and didn't tested
USART1, as it has different hardware. From Vytautas Lukenskas.
From Vytautas Lukenskas.
* SiLabs EFM32 Drivers:
- EFM32 SPI drivers adopted incompatible conventions (See STM32 for
details of the issue).
* STMicro STM32 Drivers:
- STM32, STM32 L4, and EFM32 SPI drivers adopted incompatible
conventions somewhere along the line. They set the number of bits
to negative when calling SPI_SETBITS which had the magical side-
effect of setting LSB first order of bit transmission. This is not
only a hokey way to pass control information but is supported by no
other SPI drivers. This change three things: (1) It adds
HWFEAT_LSBFIRST as a new H/W feature. (2) It changes the
implementations of SPI_SETBITS in the STM32 and EFM32 drivers so
that negated bit numbers are simply errors and it adds the
SPI_HWFEATURES method that can set the LSB bit order, and
(3) It changes all calls with negative number of bits from all
drivers: The number of bits is now always positive and
SPI_HWFEATURES is called with HWFEAT_LSBFIRST to set the bit order.
- Add missing SPI2 and SPI3 support for STM32F3F3. Add STM32F37XX DMA
channel configuration. For STM32F37XX, SYSCFG_EXTICR_PORTE defined
twice. From Alan Carvalho de Assis.
- STM32: Make stm32_pwr_enablebkp thread safe. From Max Neklyudov.
- Fix bad pllmul values for STM32F1XX connectivity line. STM32F1XX
connectivity line supports only x4, x5, x6, x7, x8, x9 and x6.5
values. From Michal Lyszczek.
- STM32F3 SPI: Fix the number of bit setting for the F3. That and
data packing work differently on the STM32F3 than for other STM32
parts.
- STM32 and STM32 L4: Enabling SPI DMA loses other bits in CR2.
- STM32F3 SPI: Cannot write always 16-bit value to DR register
because of how the F3 implements data packing.
- STM32F411 and STM32F446 map i2c2_sda_4 to different alternate
function numbers. From Konstantin Berezenko.
- STM32 DMA Fix: Change stm32 adc dma callback to send channel
number instead of index. From Konstantin Berezenko.
- STM32 OTGFS device: Fix for lost first word from FIFO
1) Do not overwrite Reserved Bits in GINTSTS (per ref manual)*
2) Acknowledge all pending int on entry to ISR that are Only rc_w1*
3) Do not disable RXFVL*
4) Loop until RXFVL is cleared*
5) 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)
Changed marked *are just driver clean up and ensure ints are not lost. The bug fix is #5
Test 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
Set Line Coding DATA1: 4B | 00 c2 01 00 00 00 08 | c8 1B
Get Line Coding DATA1: 4B | .. .. .. .. 00 00 08 c8 .. 00 00 07 | 7a 72
From David Sidrane.
- STM32 L4 OTGFS device: Apply stm32 fix to stm32l4. From Sebastien
Lorquet.
- STM32 F7: Remove duplicate call to pkt_input from Ethernet driver.
Issues noted by Pascal Speck.
- STM32 L4: Add support for USART3-USART5. For STM32L4 parts, the
higher number USART ports supported varies. Add the HAVE_USARTx
definitions to the configuration to allow enabling the higher
numbered USART ports. From Jim Wylder.
- STM32 USB: Set USB address to avoid a failed assertion. From
Pierre-noel Bouteville.
- STM32 L4 and L7 USB: Pierre's assertion-avoidance change should
also be applied to STM32 F7 and L4.
- STM32, L4, and F7: Remove GPIO_ETH_RMII_TX_CLK. TX_CLK is not
present in RMII. Mateusz Szafoni.
- STM32 Ethernet: Correct typo in conditional logic. From Neil
Hancock.
- STM32 L4 USB Device: Fixed L4 USB Driver by avoiding SETUPDONE and
EPOUT_SETUP. From David Sidrane.
- STM32 SPI: stm32_modifycr2 should be available on all platforms if
DMA is enabled.
- STM32 DMA2D: fix an error in up_dma2dcreatelayer where an invalid
pointer was returned when a certain underlying function failed.
From Jens Gräf.
* TI Tiva Drivers:
- Fix two bugs of tiva pwm lower-half driver implementation. From
Young.
- Tiva Ethernet: Needs support for CONFIG_NET_MULTIBUFFER=y.
* C Library/Header Files:
- lib_dumpbuffer() now prints a large on-stack buffer first to avoid
problems when the syslog output is prefixed with time. From
Pierre-noel Bouteville.
- libc/math: This fixes the following libc/math issues: (1) asin[f l]()
use Newtons method to converge on a solution. But Newtons method
converges very slowly (> 500,000 iterations) for values of x close to
1.0; and, in the case of asinl(), sometimes fails to converge (loops
forever). The attached patch uses an trig identity for values of
x > sqrt(2). The resultant functions converge in no more than 5
iterations, 6 for asinl(). (2) The NuttX erf[f l]() functions are
based on Chebyshev fitting to a good guess. The problem theres a
bug in the implementation that causes the functions to blow up with
x near -3.0. This patch fixes that problem. It should be noted that
this method returns the error function erf(x) with fractional error
less than 1.2E-07 and thats fine for the float version erff(), but
the same method is used for double and long double version which
will yield only slightly better precision. This patch doesn't
address the issue of lower precision for erf() and erfl(). (3) a
faster version of copysignf() for floats is included. From David S.
Alessio.
- strtod() was not returning endptr on error conditions.
- libc/math: floor(), floorf(), and floorl(): Fix logic error. Was
not correctly handling negative integral value.
- isatty() should be prototyped in unstid.h, not termios.h. From
Sebastien Lorquet.
- nxglib: Fix handling of near-horizontal lines of width 1 in
nxgl_splitline(). Missing handling for degenerate condition caused
width 1 lines such as (0, 0) - (100, 10) to have gaps in the
drawing. From Petteri Aimonen.
* Build/Configuration System:
- Top-Level Makefiles: Fix a chicken-and-egg problem. In the menuconfig
target, the context dependency was executed before kconfig-mconf. That
was necessary because the link at apps/platform/board needed to be set
up before creating the apps/Kconfig file. Otherwise, the platform
Kconfig files would not be included. But this introduces the chicken-
and-egg problem in some configurations. In particular: (1) An NX
graphics configuration is used that requires auto-generation of
source files using cpp, (2) the configuration is set for Linux, but
(3) we are running under Cygwin with (4) a Windows native toolchain.
In this case, POSIX-style symbolic links are set up but the Windows
native toolchain cannot follow them. The reason we are running
'make menuconfig' is to change from Linux to Cygwin, but the target
fails. During the context phase, NX runs CPP to generate source files
but that fails because the Windows native toolchain cannot follow
the links. Checkmate. This was fixed by changing all of the make
menuconfig (and related) targets. They no longer depend on context
being run. Instead, they depend only on the dirlinks target. The
dirlinks target only sets up the directory links but does not try
to run all of the context setup; the compiler is never invoked; no
code is autogenerated and things work.
- CXXFLAGS: add -fcheck-new whenever -fno-exceptions is used. From
Beat Küng.
* Tools
- tools/refresh.sh: Recent complexities added to apps/ means that
configuration needs the correct Make.defs file in place in order to
configure properly.
- tools/kconfig2html.c: Update to handle absolute paths when sourcing
Kconfig files.
- tools/mkfsdata.pl was still generating the old-style apps/include
inclusion paths.
* Application Build/Configuration System:
- Add DIRLINK and DIRUNLINK tool definitions to apps/Make.defs.
* apps/nshlib:
- Fix FIFO_SIZE vs PIPE_SIZE.
- Fix hex representation of IP address in Kconfig. Noted by Michal
Lyszczek.
- nsh_syscmds.c: missing semicolon. From Mateusz Szafoni.
- In system command, don't try to flush output streams if stdio
buffered I/O is not supported.
* apps/canutils:
- libuavcan: Under certain circumstances, DELIM is not be defined in
Makefile.
- Add definition for APPNAME in apps/canutils/canlib. From Sebastien
Lorquet.
* apps/gpsutils:
- Fix an error minmea. From Aleksandr Vyhovanec.
* apps/examples:
- apps/examples/oneshot: If the requested delay is > max_delay, then
break the delay up into several pieces.
12297
12298
12299
12300
12301
12302
12303
12304
12305
12306
12307
12308
12309
12310
12311
12312
12313
12314
12315
12316
12317
12318
12319
12320
12321
12322
12323
12324
12325
12326
12327
12328
12329
12330
12331
12332
12333
12334
12335
12336
12337
12338
12339
12340
12341
12342
12343
12344
12345
12346
12347
12348
12349
12350
12351
12352
12353
12354
12355
12356
12357
12358
12359
12360
12361
12362
12363
12364
12365
12366
12367
12368
12369
12370
12371
12372
12373
12374
12375
12376
12377
12378
12379
12380
12381
12382
12383
12384
12385
12386
12387
12388
12389
12390
12391
12392
12393
12394
12395
12396
12397
12398
12399
12400
12401
12402
12403
12404
12405
12406
12407
12408
12409
12410
12411
12412
12413
12414
12415
12416
12417
12418
12419
NuttX-7.19 Release Notes
------------------------
The 119th release of NuttX, Version 7.19, was made on December 26, 2016,
and is available for download from the Bitbucket.org website. Note
that release consists of two tarballs: nuttx-7.19.tar.gz and
apps-7.19.tar.gz. These are available from:
https://bitbucket.org/nuttx/nuttx/downloads
https://bitbucket.org/nuttx/apps/downloads
Both may be needed (see the top-level nuttx/README.txt file for build
information).
Additional new features and extended functionality:
* Core OS:
- sched/semaphore, sched/phread/, libc/semaphore, libc/pthread: Add
pthread_mutexattr_get/set_protocol and non-standard
sem_get/set_protocol. These may use to enable or disable priority
inheritance on a single semaphore.
- Spinlocks: Added capability to provide architecture-specific memory
barriers.
- SMP: Add spin_trylock(). Use this in conditions where other CPUs need
to stopped but we cannot call enter_critical_section().
- sched note: Extend OS instrumentation to include some SMP events.
Also add spinlock instrumentation; In SMP configurations, add a
filter mask to log only notes from certain CPUs.
- sched note: Permit spinlock and critical section notes in in-memory
buffer iff sched_not_get() interfaces is disabled.
- sched note: Add additional note to see if/when CPU is started in SMP
mode.
- sched note: Record ID enumeration now results on constant values; ID
values do not change with configuration. This makes writing post-processing software much easier.
- boardctl: Add new boardctl() command, BOARDIOC_NX_START, to start the
NX server as a kernel thread.
- pthreads: Add pthread_cleanup_push() and pthread_cleanup_pop().
- pthreads: Added pthread_setcanceltype() and pthread_testcancel().
- pthreads: Add support for cancellation points.
- task_delete() now obeys all cancellation point semantics.
- Add task_setcancelstate(), task_setcanceltype(), and
task_testcancel(). These are non-standard interfaces analogous to the
correponding pthread_ interfaces that provide cancellation controls
for tasks.
* Graphics/Display Drivers:
- boardctl: Add new boardctl() command, BOARDIOC_NX_START, to start the
NX server as a kernel thread.
* Networking/Network Drivers:
- Network drivers: Add option to use low-priority work queue to all
Ethernet and MAC level drivers.
- Network Drivers: Adapt all Ethernet (and other MAC) drivers to work
as though CONFIG_NET_MULTIBUFFER were set. Remove all references to
CONFIG_NET_MULTIBUFFER.
- Eliminate CONFIG_NO_NOINTS. There is no longer any support for
interrupt level processing of the network stack. Lots of files changed.
* Other Common Device Drivers:
- Vishay VEML6070: Add Vishay VEML6070 driver. From Alan Carvalho de
Assis.
* ARMv7-A
- ARMv7-A/i.MX6: Add SCU register definitions. Add some controls to
enable SMP cache coherency in SMP mode. Makes no difference, however
-- cache still incoherent on i.MX6.
- ARMv7 GIC: SGIs are non-maskable but go through the same path as
other, maskable interrupts. Added logic to serialize SGI processing
when necessary.
* Atmel SAM3/4:
- SAM3/4: Add SMP support for the dual-core SAM4CM. From Masayuki
Ishikawa.
* Atmel SAM3/4 Drivers:
- Add support for the SAM5CMP-DB board. From Masayuki Ishikawa.
* Atmel SAM3/4 Boards:
- SAM4CMP-DB: Add support for the Atmel SAM4CMP-DB board running in an
SMP configuration. From Masayuki Ishikawa.
- SAM4CMP-DB: Add hooks to auto-mount the procfs file system on startup
in board bring-up logic.
* Atmel SAMV7 Drivers:
- SAMv7: Register the watchdog device at the configured device path
CONFIG_WATCHDOG_DEVPATH vs. hard-coded /dev/wdt. From Frank Benkert.
* Calypso
- Calyps: Remove all Calypso board configurations. Remove Calypso
architecture support and support for Calypso SERCOMM driver.
* Misoc LM32:
- Misoc LM32: Adds basic support for the Misoc procoessors and the LM32
in particular. From Ramtin Amin.
- Misoc LM32: Add signal handling logic. From Ramtin Amin.
- Misoc LM32: Add logic to flush/invalidate caches. From Ramtin Amin.
* Misoc LM32 Drivers:
- Misoc LM32 Serial: Add interrupting Misoc serial driver. From Ramtin
Amin.
- Misoc LM32 Timer: Add timer driver. From Ramtin Amin.
- Misoc LM32: Add Misoc Ethernet driver From Ramtin Amin.
* Misoc LM32 Boards:
- Misoc LM32 Qemu: Board support for testing Misoc LM32 with Qemu. From
Ramtin Amin.
- Misoc LM32 Qemu: Integrate network support into configs/misoc/hello.
From Ramtin Amin.
- Misoc LM32 Qemu: Remove configs/misoc/include/generated directory. I
Gregory Nutt
committed
suppose the intent now is that this is a symbolic link? DANGER!
12421
12422
12423
12424
12425
12426
12427
12428
12429
12430
12431
12432
12433
12434
12435
12436
12437
12438
12439
12440
12441
12442
12443
12444
12445
12446
12447
12448
12449
12450
12451
12452
12453
12454
12455
12456
12457
12458
12459
12460
12461
12462
12463
12464
12465
12466
12467
12468
12469
12470
12471
12472
12473
12474
12475
12476
12477
12478
12479
12480
12481
12482
12483
12484
12485
12486
12487
12488
12489
12490
12491
12492
12493
12494
12495
12496
12497
12498
12499
12500
12501
12502
12503
12504
12505
12506
12507
12508
12509
12510
12511
12512
12513
12514
12515
12516
12517
12518
12519
12520
12521
12522
12523
12524
12525
12526
12527
12528
12529
12530
12531
12532
12533
12534
12535
12536
12537
12538
12539
12540
12541
12542
12543
12544
12545
12546
12547
12548
12549
12550
12551
12552
12553
12554
12555
12556
12557
12558
12559
12560
12561
12562
12563
12564
12565
12566
12567
12568
12569
12570
12571
12572
12573
12574
12575
12576
12577
12578
12579
12580
12581
12582
12583
12584
12585
12586
12587
12588
12589
12590
12591
12592
12593
12594
12595
12596
12597
12598
12599
12600
12601
12602
12603
12604
12605
12606
12607
12608
12609
12610
12611
12612
12613
12614
12615
12616
12617
12618
12619
12620
12621
12622
12623
12624
12625
12626
12627
12628
12629
12630
12631
12632
12633
12634
12635
12636
12637
12638
12639
12640
12641
12642
12643
12644
12645
12646
12647
12648
12649
12650
12651
12652
12653
12654
12655
12656
12657
12658
12659
12660
12661
12662
12663
12664
12665
12666
12667
12668
12669
12670
12671
12672
12673
12674
12675
12676
12677
12678
12679
12680
12681
12682
12683
12684
12685
12686
12687
12688
12689
12690
12691
12692
12693
12694
12695
12696
12697
12698
12699
12700
12701
12702
12703
12704
12705
12706
12707
12708
12709
12710
12711
12712
12713
12714
12715
12716
12717
12718
12719
12720
12721
12722
12723
12724
12725
12726
12727
12728
12729
12730
12731
12732
12733
12734
12735
12736
12737
12738
12739
12740
12741
12742
12743
12744
12745
12746
12747
12748
12749
12750
12751
12752
12753
12754
12755
12756
12757
12758
12759
12760
12761
12762
12763
12764
12765
12766
12767
12768
12769
12770
12771
12772
12773
12774
12775
12776
12777
12778
12779
12780
12781
12782
12783
12784
12785
12786
12787
12788
12789
12790
12791
12792
12793
12794
12795
12796
12797
12798
12799
12800
12801
12802
12803
12804
12805
12806
12807
12808
12809
12810
12811
12812
12813
12814
12815
12816
12817
12818
12819
12820
12821
12822
12823
12824
12825
12826
12827
12828
12829
12830
12831
12832
12833
12834
12835
12836
12837
12838
12839
12840
12841
12842
12843
12844
12845
12846
12847
12848
12849
12850
12851
12852
12853
12854
12855
12856
12857
12858
12859
12860
12861
12862
12863
12864
12865
12866
12867
12868
12869
12870
12871
12872
12873
12874
12875
12876
12877
12878
12879
12880
12881
12882
12883
12884
12885
12886
12887
12888
12889
12890
12891
12892
12893
12894
12895
12896
12897
12898
12899
12900
12901
12902
12903
12904
12905
12906
12907
12908
12909
12910
12911
12912
12913
12914
12915
12916
12917
12918
12919
12920
12921
12922
12923
12924
12925
12926
12927
12928
12929
12930
12931
12932
12933
12934
12935
12936
12937
12938
12939
12940
12941
12942
12943
12944
12945
12946
12947
12948
12949
12950
12951
12952
12953
12954
12955
12956
12957
12958
12959
12960
12961
12962
12963
12964
12965
12966
12967
12968
12969
12970
12971
12972
12973
12974
12975
12976
12977
12978
12979
12980
12981
12982
12983
12984
12985
12986
12987
12988
12989
12990
12991
12992
12993
12994
12995
12996
12997
12998
12999
13000
This means that you cannot compile this code with first generating
these files a providing a symbolic link to this location! There is a
sample directory containing generated sources. This is really only
useful for performing test builds. You really must generate the Misoc
architecture for a real-life build. From Ramtin Amin.
* NXP Freescale i.MX6 Drivers:
- i.MX6: Add an untested SPI driver taken directly from the i.MX1 port.
* NXP Freescale Kinetis:
- Kinetis: Added missing headers. Kinetis broke out SPI to
kinetis/kinetis_spi.h. Broke out DMA to use the modern Nuttx chip
inclusion - still STUBS. Add Kinetis support for ARMV7-M Common
Vector and FPU. Allow CONFIG_ARMV7M_CMNVECTOR,
CONFIG_STACK_COLORATION, CONFIG_ARCH_FPU. Fix i2c driver offset
swapped for value in kinetis_i2c_putreg. From David Sidrane.
* NXP Freescale Kinetis Drivers:
- Kinetis: Add UID Unique ID. From Neil Hancock.
* NXP Freescale Kinetis Boards:
- Freedom-K64F board: Add support for UID Unique ID. From Neil Hancock.
* NXP Freescale LPC17xx Boards:
- Olimex-LPC1766-STK: Enable procfs in NSH configuration. Automount
/proc on startup.
* NXP Freescale LPC43xx Drivers:
- LPC43xx: Add timer driver: From Alan Carvalho de Assis.
- LPC43xx GPDMA driver: The GPDMA block is basically the same as the
LPC17xx. Only the clock configuration is different and LPC43xx has
four different DMA request sources, where LPC17xx has only two. From
Alan Carvalho de Assis.
* NXP Freescale LPC43xx Boards:
- Bambino 200E: Add basic support to Micromint Bambino 200E board.
This includes contributions from Jim Wolfman. From Alan Carvalho de
Assis.
- Bambino 200E: Add support for timer driver. From Alan Carvalho de
Assis.
* RGMP:
- Remove RGMP and RGMP drivers.
* RISC-V:
- RISC-V: Add support for the RISC-V architecture and
configs/nr5m100-nexys4 board. The board support on this is pretty
thin, but it seems like maybe a good idea to get the base RISC-V stuff
in since there are people interested in it. From Ken Pettit.
* STMicro STM32 Drivers:
- STM32 F3: Implemention of the STM32 F37xx SDADC module. There are
also changes to ADC, DAC modules. SDADC has only been tested in DMA
mode and does not support external TIMER triggers. This is a work in
progress. From Marc Rechté.
- STM32 F3: Add PWM driver support for STMF37xx. The changes have been
tested successfuly for TIM4 and TIM17 (different IPs). From Marc
Rechté.
- STM32 F4: Support oversampling by 8 for the STM32 F4. From David
Sidrane.
- STM32 F4: Added Timers 2-5 and control of SAI and I2S PLLs. Added
support for stmf469 SAI and I2S PLL configuration and STM446 fixes.
From David Sidrane.
- STM32 F4: Expanded OTGFS support to stm32F469 and stm32f446. Added
missing bit definitions, Used stm32F469 and stm32f446 bit
definitions, Removed unsed header file. From David Sidrane.
- STM32 F4: Allow dma in 1 bit mode in STM32F4xxx. From David Sidrane.
- STM32 F7: Allow the config to override the clock edge setting. From
David Sidrane.
- STM32 L4: Support Complementary PWM outputs on STM32L4. From
Sebastien Lorquet.
- STM32 L4: Add implementation of dumpgpio for stm32l4, was required
for pwm debug. From Sebastien Lorquet.
* STMicro STM32 Boards:
- STM32F103 Minimum: Add button support. From Alan Carvalho de Assis.
- STM32F103 Minimum: Add support to PWM on STM32F103-Minimum board.
From Alan Carvalho de Assis.
- STM32F103 Minimum: Add RGB LED support on STM32F103 Minimum board.
From Alan Carvalho de Assis.
- STM32F103 Minimum: Add Vishay VEML6070 driver support to the
STM32F103-Minimum board. From Alan Carvalho de Assis.
- Nucleo-F303RE: Add STM32 F303RE hello configuration. From Marc
Rechté.
- Nucleo-L476: Support PWM testing on board Nucleo L476. From
Sebastien Lorquet.
- Nucleo L476: Add support for timers to Nucleo L476. From Sebastien
Lorquet.
- Hymini STM32v: Enable CONFIG_RTC in the hymini-stm32v/nsh2
(kitchensink) config. From Maciej Wójcik.
- Olimex STM32-p407: Add support for the Olimex STM32 P407 board.
* TI Tiva Drivers:
- Tiva PWM: Support PWM_PULSECOUNT feature for TI tiva. From Young.Mu.
* Xtensa/ESP32
- Xtensa ESP32: Basic architectural support for Xtensa processors and
the Expressif. ESP32 added.
- Xtensa ESP32: Add EXPERIMENTAL hooks to support lazy Xtensa
co-processor state restore in the future.
- Xtensa ESP32: Basic port is function in both single CPU and dual CPU
SMP configurations. There is an NSH configuration for each CPU
configuration. Outstanding issues include missing clock configuration
logic, missing partition tables to support correct configuration from
FLASH, and some serial driver pin configuration issues.
- Xtensa ESP32: Add stack checking logic.
* Xtensa/ESP32 Boards:
- ESP32 Core v2: Basic support for Expressif ESP32 Core v2 board
added. The initial release includes an NSH and an SMP test
configuration.
- ESP32 Core v2: Add configuration to support linking NuttX for
execution out of IRAM.
- ESP32 Core v2: Automatically mount /proc at start-up.
- ESP32 Core v2: Add an OS test to verify the port.
* C Library/Header Files:
- libc/locale: Add a dummy setlocale() function to avoid drawing the
function from newlib. Add clocale header file.
- include/locale.h: Modify locale.h to add localeconv() and lconv
structure. From Alan Carvalho de Assis.
- libc/locale: Allows c++ code to compile with or without
CONFIG_LIBC_LOCALE and will generate a link error if
CONFIG_LIBC_LOCALE is not defined and setlocale is referenced. With
CONFIG_LIBC_LOCALE defined setlocale will act as if MB string is not
supported and return "C" for POSIX. C and "". From David Sidrane.
- libc/wchar: Add wcslen, wmemchr, wmemcmp, wmemcpy wmemset, btowc,
mbrtowc, mbtowc, wcscmp, wcscoll, and wmemmove to NuttX. From Alan
Carvalho de Assis.
- libc/wctype: Add functions wcrtomb, wcslcpy, wcsxfrm, wctob, wctomb,
wctype, localeconv, strcoll, strxfrm, swctype, towlower, towupper and
wcsftime. Add wctype.h; Move lib_wctype.c to libc/wctype. From Alan
Carvalho de Assis.
- include/ctype.h : Add isblank() macro to ctype.h. From Alan Carvalho
de Assis.
- lic/stdlib: Add strtof() and strtold() as simply a copy of strtod
with types and limits changed.
- sscanf(): Use strtof() instead of strtod() if a short floating point
value was requested. The should help performance with MCUs with
32-bit FPU support with some additional code size.
- sscanf(): Add scansets to the scanf function. Enabled
CONFIG_LIBC_SCANSET option. From Aleksandr Vyhovanec.
- include/inttypes.h: Add architecture-specific inttypes.h. From Paul
A. Patience.
- C Library: Allow option to enable IP address conversions even when
the IP address family is not supported.
* Build/Configuration System:
- The Smoothie project needs to compile C++ inside config/boardname/src/
to use with High Priority Interruption, then I modified the board
configs Makefile to support it. It works fine for the first time
compilation, but if we execute "touch config/boardname/src/Pin.cxx"
and execute "make" it will not detect that Pin.cxx was modified. I
think there is some other place I should modify, but I didn't find
it. From Alan Carvalho de Assis.
* Tools:
- tools/: Add tools/showsize.sh.
* NSH: apps/nshlib:
- NSH: dd command will show statistics. From Masayuki Ishikawa.
* Applications: apps/system:
- apps/system/sched_note: Extend to include additions to instumentation
for SMP.
- apps/system/sched_note: Add support for spinlock notes.
- apps/system/sched_note: Add support for new scheduler instrumentation.
* Platforms: apps/platform:
- ESP32 Core v2: Add platform support for the ESP32 core v2 board.
- Olimex STM32-p407: Add platform support for the Olimex STM32 P407.
* Graphics: apps/graphics
- graphics/traveler/tcledit and libwld: Add an X11 Tcl/Tk tool that can
be used to edit Traveler world files.
- Graphics: Remove all NX server taks. Instead, call boardctl() to the
NX server kernel thread.
* Applications: apps/examples:
- examples/buttons: Add a new buttons example that uses the button
character driver instead of the architecture buttons directly. From
Alan Carvalho de Assis.
- examples/cctype: Add an example to verify cctype functions.
- Remove RGMP example.
- examples/ostest: Extend the pthread cancellation test to exercise
pthread_cleanup_push() (and pthread_cleanup_pop() indirectly via
pthread_cancel() and pthread_exit().
- examples/ostest: enhance pthread cancellation test some.
Works-In-Progress:
* IEEE802.14.5/6LowPAN. Hooks and framework for this effort were
introduced in NuttX-7.15. Work has continued on this effort on
forks from the main repositories, albeit with many interruptions.
The completion of this wireless feature will postponed until at
least NuttX-7.20.
Bugfixes. Only the most critical bugfixes are listed here (see the
ChangeLog for the complete list of bugfixes and for additional, more
detailed bugfix information):
* Core OS:
- sched/semaphore: Within the OS, when a thread obtains a semaphore
count it must call sem_addholder() if CONFIG_PRIORITY_INHERITANCE is
enabled. If a count is available, then sem_wait() calls
sem_addholder(), otherwise it waited for the semaphore and called
sem_addholder() when it eventually received the count. This caused a
problem when the thread calling sem_wait() was very low priority.
When it received the count, there may be higher priority threads
"hogging" the CPU that prevent the lower priority task from running
and, as a result, the sem_addholder() may be delayed indefinitely.
The fix was to have sem_post() call sem_addholder() just before
restarting the thread waiting for the semaphore count. This problem
was noted by Benix Vincent who also suggested the solution.
- Many files: Make sure that priority inheritance is not enabled for
semaphores whose primary use is signaling (vs locking of resources) by
calling sem_setprotocol().
- sched/semaphore: sem_trywait() no longer modifies the errno value
UNLESS an error occurs. This allows these functions to be used
internally without clobbering the errno value. From Freddie Chopin.
- sched/clock: Correct clock initialization. The correct range for the
month is 0-11 but is entered as 1-12 in the .config file. Add ranges
to START_YEAR, MONTH, and DAY in sched/Kconfig.
- sched/clock: Correct calculation for the case of Tickless mode with a
32-bit timer. In that case, the calculation was returning millisecond
accuracy. That is not good when the timer accuracy is < 1 msec. From
Rajan Gill.
- Work Queue: When queuing new LP work, don't signal any threads if
they are all busy. From Heesub Shin.
- Work Queue: Signal sent from work_signal() may interrupt the low
priority worker thread that is already running. For example, the
worker thread that is waiting for a semaphore could be woken up by the
signal and break any synchronization assumption as a result. It also
does not make any sense to send signal if it is already running and
busy. This change fixes it. From Heesub Shin.
- Fix DEBUGASSERT() in group_signal.c. From Masayuki Ishikawa.
- Eliminate bad boardctl() commands: Remove all references to
BOARDIOC_PWMSETUP and board_pwm_setup(). Remove all references to
BOARDIOC_ADCSETUP and board_adc_setup(). Remove
BOARDIOC_CAN_INITIALIZE. CAN initialization is now done in the board
initialization logic just like every other device driver.
- pthreads: Fix an error in pthread_mutex_destroy(). An error could
occur while destroying a mutex after a pthread has been canceled while
holding the mutex.
- task_restart: Make sure new task starts with pre-emption disabled and
not in a critical section.
- Enter/leave Critical Sections. Major redeign to
enter/leave_critical_section logic to deal with the case where
interrupts are disabled only on the local CPU. In this case, some
rather complex spinlocks must be used to maintain the critical section
accross all CPUs.
- SMP Critical Sections: Fixes for the SMP case: (1) Change order for
SMP case in enter_critical_section: (1) Disable local interrupts
BEFORE taking spinlock and (2) If SMP is enabled, if any interrupt
handler calls enter_critical_section(), it should take the spinlock.
- SMP wdogs: Wdog timers use a tasking interface that to manipulate
wdogs, and a different interface in the timer interrupt handling logic
to manage wdog expirations. In the single CPU case, this is fine.
Since the tasking level code calls enter_critical_section, interrupts
are disabled and no conflicts can occur. But that may not be the case
in the SMP case. Most architectures do not permit disabling
interrupts on other CPUs so enter_critical_section must work
differently: Locks are required to protect code. this change adds
locking (via enter_critical section) to wdog expiration logic for the
the case if the SMP configuration.
- SMP vfork(): Fix a race condition in the SMP case. Existing logic
depended on the fact that the child would not run until waitpid was
called because the child had the same priority as the parent. BUT in
the SMP case that is not true... the child may run immediately on a
different CPU.
- SMP: This change adds a new internal interfaces and fixes a problem
with three APIs in the SMP configuration. The new internal interface
is sched_cpu_pause(tcb). This function will pause a CPU if the task
associated with 'tcb' is running on that CPU. This allows a different
CPU to modify that OS data stuctures associated with the CPU. When
the other CPU is resumed, those modifications can safely take place.
The three fixes are to handle cases in the SMP configuration where one
CPU does need to make modifications to TCB and data structures on a
task that could be running running on another CPU. Those three cases
are task_delete(), task_restart(), and execution of signal handlers.
In all three cases the solutions is basically the same: (1) Call
sched_cpu_pause(tcb) to pause the CPU on which the task is running,
(2) perform the necessary operations, then (3) call up_cpu_resume() to
restart the paused CPU.
- SMP: Add logic to avoid a deadlock condition when CPU1 is hung waiting
for g_cpu_irqlock with interrupts interrupts and CPU0 is waiting for
g_cpu_paused.
- SMP: Enforce this rule: Tasks which are normally restored when
sched_unlock() is called must remain pending (1) if we are in a
critical section, i.e., g_cpu_irqlock is locked , or (2) other CPUs
still have pre-emption disabled, i.e., g_cpu_schedlock is locked. In
those cases, the release of the pending tasks must be deferred until
those conditions are met.
* File System/Block Drivers/MTD Drivers:
- AT24XX EEPROM MTD driver: Added EEPROM timeout. Fromo Aleksandr
Vyhovanec.
- fs/procfs: Fix procfs status for SMP case.
* Graphics/Graphic Drivers:
- Fonts: Correct some default font IDs. From Pierre-Noel Bouteville.
* Common Drivers:
- usbhost/enumerate: Fix possible buffer overwrite. From Janne Rosberg.
- usbhost/composite: Fix compile; missing semicolons. From Jann Rosberg.
- syslog: Fixes required for file syslog output. From Max Kriegleder.
- SPI configuration: Fix Kconfig warning. This change moves the
ARCH_HAVE_SPI options outside the check for SPI. Those options don't
depend on SPI, and Kconfig files in arch/ enable them even if SPI
isn't enabled. Source the driver's Kconfig in drivers/Kconfig only
if support for the driver is enabled prevents us from defining these
ARCH_HAVE options in the driver's Kconfig. We should probably remove
the other checks in drivers/Kconfig and check if the drivers are
enabled only in their Kconfig. From Paul A. Patience.
- drivers/timer: Remove the timer driver TIOC_SETHANDLER IOCTL call.
This calls directly from the timer driver into application code. That
is non-standard, non-portable, and cannot be supported. Instead, add
timer driver hooks to support signal notification of timer
expiration. Signal notification logic added by Sebastien Lorquet.
- All timer lower half drivers. Port Sebastien's changes to all other
implementations of the timer lower half.
- USB MSC Device: Fix length of mode6 sense reply packet. From
Wolfgang Reißnegger.
- USB Composite Host: Fix end offset in usbhost_copyinterface(). From
Janne Rosberg.
- USB CDC/ACM Host: Add CDC_SUBCLASS_ACM and CDC_PROTO_ATM to
supported class and proto. From Janne Rosberg.
- SSD1306: Fix errors in SPI mode configuration. From Gong Darcy.
- CDC/ACM Device Class: uart_ops_s portion of cdcacm will not be
initalized with correct functions if CONFIG_SERIAL_DMA is selected.
* Networking/Network Drivers:
- drivers/net/tun.c: Fix bug in TUN interface driver. From Max Nekludov.
* ARMv7-A:
- ARMv7-A SMP: Add SMP logic to signal handling.
* ARMv7-M:
- ARMv7-M: Fix double allocation of MPU region in mmu.h.
* ARMv7-R:
- ARMv7-R: Fix compilation error. This change fixes compilation errors
on MPU support for ARMv7-R. From Heesub Shin.
- ARMv7-R: fix invalid drbar handling. In ARMv7-R, [31:5] bits of DRBAR
is physical base address and other bits are reserved and SBZ. Thus,
there is no point in passing other than the base address. From Heesub
Shin.
- ARMv7-R: Remove the redundant update on SCTLR. mpu_control() is
invoking cp15_wrsctlr() around SCTLR update redundantly. From Heesub
Shin.
- ARMv7-R: add new Kconfig entries for d/i-cache. Unlike in ARMv7-A/M,
Kconfig entries for data and instruction caches are currently missing
in ARMv7-R. This change adds those missing Kconfig entries. Actual
implmenetation for those functions will be added in the subsequent
patches. From Heesub Shin.
- ARMv7-R: Add cache handling functions. This change adds functions for
enabling and disabling d/i-caches which were missing for ARMv7-R.
From Heesub Shin.
- ARMv7-R: Fix typo in mpu support. s/ARMV7M/ARMV7R/g. From Heesub Shin.
- ARMv7-R: Fix CPSR corruption after exception handling. A sporadic
hang with consequent crash was observed when booting. It seemed to be
caused by the corrupted or wrong CPSR restored on return from
exception. NuttX restores the context using code like this: msr spsr,
r1. GCC translates this to: msr spsr_fc, r1. As a result, not all
SPSR fields are updated on exception return. This should be: msr
spsr_fsxc, r1. On some evaluation boards, spsr_svc may have totally
invalid value at power-on-reset. As it is not initialized at boot, the
code above may result in the corruption of cpsr and thus unexpected
behavior. From Heesub Shin.
- ARMv7-R: Fix to restore the Thumb flag in CPSR. Thumb flag in CPSR is
not restored back when the context switch occurs while executing thumb
instruction. From Heesub Shin.
* Atmel SAM3/4 Drivers:
- SAM3/4 UDP: Add delay between setting and clearing the endpoint RESET
bit in sam_ep_resume(). We need to add a delay between setting and
clearing the endpoint reset bit in SAM_UDP_RSTEP. Without the delay
the USB controller will (may?) not reset the endpoint. If the
endpoint is not being reset, the Data Toggle (DTGLE) bit will not to
be cleared which will cause the next transaction to fail if DTGLE is
1. If that happens the host will time-out and reset the bus. Adding
this delay may also fix the USBMSC_STALL_RACEWAR in usbmsc_scsi.c,
however this has not been verified yet. From Wolfgang Reißnegger.
- SAM3/4: Remove unused 'halted' flag from UDP driver. From Wolfgang
Reißnegger.
- SAM3/4: Remove 'stalled' flag from the UDP driver. This flag is not
necessary because the state of the endpoint can be determined using
'epstate' instead. From Wolfgang Reißnegger.
* Atmel SAM3/4 Boards:
- SAM4S Xplained Pro: Configuration uses old, improper timer interface.
CONFIG_TIMER disabled in configuration. Remove obsolete timer
initialization logic.
* Atmel SAMV7 Drivers:
- SAMv7 USBDEVHS: A problem occurred with the SAMV7 USBDEVHS driver if
the USB cable is unplugged while a large amount of data is send over
an IN endpoint using DMA. If the USB cable is plugged in again after a
few seconds it is not possible to send data over this IN endpoint
again, all other endpoints work as expected. The problem occurs
because if the USB cable is unplugged while an DMA transfer is in
flight the transfer is canceled but the register SAM_USBHS_DEVDMACTRL
is left in an undefined state. The problem was fixed the problem by
resetting the register SAM_USBHS_DEVDMACTRL to a known state.
Additionally all pending interrupts are cleared. From Stefan Kolb.
- SAMV7 MCAN: Prevent Interrupt-Flooding of ACKE when not connected to
CAN-BUS. An Acknowledge-Error will occur every time no other CAN Node
acknowledges the message sent. This will also occur if the device is
not connected to the can-bus. The CAN-Standard declares, that the Chip
has to retry a given message as long as it is not sent successfully
(or it is not cancelled by the application). Every time the chip tries
to resend the message an Acknowledge-Error-Interrupt is generated. At
high baud rates this can lead in extremely high CPU load just for
handling the interrupts (and possibly the error handling in the
application). To prevent this Interrupt-Flooding we disable the ACKE
once it is seen as long we didn't transfer at least one message
successfully. From Frank Benkert.
- SAMV7 MCAN: Make delete_filter functions more robust. From Frank
Benkert.
* Atmel SAMA5 Drivers:
- SAMA5 PWM: Driver does not build when executing from SDRAM before
board frequencies are not constant. Rather, the bootloader configures
the clocking and we must derive the clocking from the MCK left by the
bootloader. This means lots more computations. This is untested on
initial change because I don't have a good PWM test setup right now.
* Misoc LM32:
- Misoc LM32: Corrects a bug that never occured in qemu on simulation or
real fpga. The error was that the r1 register was being modified out
of context switching and not restoring it. From Ramtin Amin
* NXP Freescale i.MX6:
- i.MX6 interrupt handling: Additional logic needed to handle nested
interrupts when an interrupt stack is used. Nesting can occur because
SGI interrupts are non-maskable.
* NXP Freescale LPC43xx Drivers:
- LPC43xx serial: Fix a typo in ioctl TIOCSRS485 ioctl. From Vytautas
Lukenskas.
- LPC43xx serial: Restore RS485 mode on serial port open (if RS485 is
enabled via menuconfig). From Vytautas Lukenskas.
- LPC43xx SD/MMC: Correct some definitions on SMMC control register in
lpc43_sdmmc.h. From Alan Carvalho de Assis.
- LPC43xx SD card: Correct pin configuration options needed for SD card
pins. From Alan Carvalho de Assis.
* SiLabs EFM32:
- EFM32: Fix a compilation error. From Pierre-noel Bouteville.
* STMicro STM32 Drivers:
- STM32 CHxN channels are always outputs. From Sebastien Lorquet.
- STM32 DAC: Fix shift value whenever there are is a DAC2 and, hence,
up to three interfaces. From Marc Rechté.
- STM32 F1: Add TIM8 to STM32F103V pinmap. From Maciej Wójcik.
- STM32 F1: Fix for F1 RTC Clock, tested on F103. From Maciej Wójcik.
- STM32 F3: STM32F303xB and STM32F303xC chips have 4 ADCs. From Paul
A. Patience.
- STM32 F4: A new implementation of the STM32 F4 I2C bottom half. The
common I2C as this did not handled correctly in the current
implementation (see also https://github.com/PX4/NuttX/issues/54). The
changes almost exclusively affect the ISR. From Max Kriegleder.
- STM32 F4 OTGHS Host: If STM32F446 increase number of channels to
16. From Janne Rosberg.
- STM32 F4: I think, that Size is (highest address+1 - Base address).
Base address has been removed and if address+count >= size we are
outside of the Flash. From David Sidrane.
- STM32 F4: Fix ADC compilation error when DMA isn't enabled. From Paul
A. Patience.
- STM32 F4: STM32F427 was rebooting. Over reached family. From David
Sidrane.
- STM32 F4: Added STM32F469 RAM size and deliberated STM32F446 size.
From David Sidrane.
- STM32 F4: Typo in stm32f76xxxx_pinmap.h edited online with
Bitbucket. From David Sidrane.
- STM32 F7: stm32_i2c.c Dejavu. Fixes a bug previously found in the
F4. From David Sidrane.
- STM32 F7: OTGDEV fixed typo. From David Sidrane.
- STM32 F7: Fix to SPI-Master driver. Without this the chip select
decoding feature will not work properly. From Michael Spahlinger.
- STM32 F7: STM32F7 SD/MMC driver depends on CONFIG_SDIO_DMA which is
only defined in stm32/Kconfig. Changed to CONFIG_STM32F7_SDMMC_DMA
and defined in stm32f7/Kconfig.
- STM32 F7: Fix some STM32F7 copy paste errors. From David Sidrane.
- STM32 L4: Complementary PWM outputs on STM32L4" (1) too many
parentheses when calculating max chan count and (2) channel 4 does not
have a complementary output. From Sebastien Lorquet.
- STM32 L4: Fix I2C devices RCC registers. From Sebastien Lorquet.
- STM32 L4: Enable and renaming for 32l4 UARTs 4 and 5. From Sebastien
Lorquet.
- STM32 L4: Change the way to configure quadrature encoder prescalers.
From Sebastien Lorquet.
- STM32 L4: Correct USART1/2 definitions. Use default mbed UART4
settings. From Sebastien Lorquet.
* STMicro STM32 Boards:
- STM32F103 Minimum: Fix Timers 2 to 7 clock frequencies. From Alan
Carvalho de Assis.
- Nucleo-F303RE: Remove duplicate setting from board.h. From Marc
Rechté.
- Nucleo F303RE: Various fixes to get the ADC configuration building
again after PR. Refresh all configurations.
- Nucleo L476RG: Add better selection of timer.
* TI Tiva Boards:
- DK-TM4C129x: Typo fix. From Wolfgang Reißnegger.
* Xtensa ESP32:
- ESP32 core v2: Flush the UART TX buffer in the esp32 serial shutdown
routine. The ROM bootloader does not flush the FIFO before handing
over to user code, so some of this output is not currently seen when
the UART is reconfigured in early stages of startup. From Angus
Gratton.
- Xtensa ESP32: Corrects a problem with dispatching to signal
handlers: Cannot vector directly to the signal handling function as
in other ABIs under the Xtensa Window ABI. In that case, we need to
go through a tiny hook when performs the correct window call (call4)
otherwise registers will be scrambled in the signal handler.
* Xtensa ESP32 Boards:
- ESP32 core v2: Changes the openocd config file's default flash
voltage from 1.8V to 3.3V. This is not necessary right now, but may
save some hard-to-debug moments down the track (3.3V-only flash
running at 1.8V often half-works and does weird things...). From
Angus Gratton.
* C Library/Header Files:
- libc/stdio: Fixes sscanf() %sn where strlen(data) < n. From David
Sidrane.
- libc/stdio: Include wchar.h in lib_libvsprintf.c to fix compilation
error. From Alan Carvalho de Assis.
- include/sys/time.h: timersub macro modified per recommendations of
phreakuencies.
- include/ctype.h and cxx/cctype: Implement ctype.h functions as inline
if possible. cctype can then properly select namespace.
- include/: Fix a number of header files with mismatched 'extern C {'