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.