Newer
Older
14001
14002
14003
14004
14005
14006
14007
14008
14009
14010
14011
14012
14013
14014
14015
14016
14017
14018
14019
14020
14021
14022
14023
14024
14025
14026
14027
14028
14029
14030
14031
14032
14033
14034
14035
14036
14037
14038
14039
14040
14041
14042
14043
14044
14045
14046
14047
14048
14049
14050
14051
14052
14053
14054
14055
14056
14057
14058
14059
14060
14061
14062
14063
14064
14065
14066
14067
14068
14069
14070
14071
14072
14073
14074
14075
14076
14077
14078
14079
14080
14081
14082
14083
14084
14085
14086
14087
14088
14089
14090
14091
14092
14093
14094
14095
14096
14097
14098
14099
14100
14101
14102
14103
14104
14105
14106
14107
14108
14109
14110
14111
14112
14113
14114
14115
14116
14117
14118
14119
14120
14121
14122
14123
14124
14125
14126
14127
14128
14129
14130
14131
14132
14133
14134
14135
14136
14137
14138
14139
14140
14141
14142
14143
14144
14145
14146
14147
14148
14149
14150
14151
14152
14153
14154
14155
14156
14157
14158
14159
14160
14161
14162
14163
14164
14165
14166
14167
14168
14169
14170
14171
14172
14173
14174
14175
14176
14177
14178
14179
14180
14181
14182
14183
14184
14185
14186
14187
14188
14189
14190
14191
14192
14193
14194
14195
14196
14197
14198
14199
14200
14201
14202
14203
14204
14205
14206
14207
14208
14209
14210
14211
14212
14213
14214
14215
14216
14217
14218
14219
14220
14221
14222
14223
14224
14225
14226
14227
14228
14229
14230
14231
14232
14233
14234
14235
14236
14237
14238
14239
14240
14241
14242
14243
14244
14245
14246
14247
14248
14249
14250
14251
14252
14253
14254
14255
14256
14257
14258
14259
14260
14261
14262
14263
14264
14265
14266
14267
14268
14269
14270
14271
14272
14273
14274
14275
14276
14277
14278
14279
14280
14281
14282
14283
14284
14285
14286
14287
14288
14289
14290
14291
14292
14293
14294
14295
14296
14297
14298
14299
14300
14301
14302
14303
14304
14305
14306
14307
14308
14309
14310
14311
14312
14313
14314
14315
14316
14317
14318
14319
14320
14321
14322
14323
14324
14325
14326
14327
14328
14329
14330
14331
14332
14333
14334
14335
14336
14337
14338
14339
14340
14341
14342
14343
14344
14345
14346
14347
14348
14349
14350
14351
14352
14353
14354
14355
14356
14357
14358
14359
14360
14361
14362
14363
14364
14365
14366
14367
14368
14369
14370
14371
14372
14373
14374
14375
14376
14377
14378
14379
14380
14381
14382
14383
14384
14385
14386
14387
14388
14389
14390
14391
14392
14393
14394
14395
14396
14397
14398
14399
14400
14401
14402
14403
14404
14405
14406
14407
14408
14409
14410
14411
14412
14413
14414
14415
14416
14417
14418
14419
14420
14421
14422
14423
14424
14425
14426
14427
14428
14429
14430
14431
14432
14433
14434
14435
14436
14437
14438
14439
14440
14441
14442
14443
14444
14445
14446
14447
14448
14449
14450
14451
14452
14453
14454
14455
14456
14457
14458
14459
14460
14461
14462
14463
14464
14465
14466
14467
14468
14469
14470
14471
14472
14473
14474
14475
14476
14477
14478
14479
14480
14481
14482
14483
14484
14485
14486
14487
14488
14489
14490
14491
14492
14493
14494
14495
14496
14497
14498
14499
14500
14501
14502
14503
14504
14505
14506
14507
14508
14509
14510
14511
- apps/platform: Create gnu/ subdirectory that contains the one and
only GNU C++ initialization function. Remove all other C++
initialization functions.
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:
- Priority inheritance: When CONFIG_SEM_PREALLOCHOLDERS==0, there is
only a single, hard-allocated holder structure. This is problem
because in sem_wait() the holder is released, but needs to remain in
the holder container until sem_restorebaseprio() is called. The call
to sem_restorebaseprio() must be one of the last things the
sem_wait() does because it can cause the task to be suspended. If in
sem_wait(), a new task gets the semaphore count then it will fail to
allocate the holder and will not participate in priority
inheritance. This fix is to add two hard-allocated holders in the
sem_t structure: One of the old holder and one for the new holder.
- Priority inheritance: sem_holder sem_findholder missing
inintalization of pholder. sem_findholder would fail and code
optimization covered this up. From David Sidrane.
- Partial Fix priority inheritance CONFIG_SEM_PREALLOCHOLDERS=0. From
David Sidrane.
- Priority inheritance: sem_boostholderprio prevent overrun of
pend_reprios. The second case rtcb->sched_priority <=
htcb->sched_priority did not check if there is sufficient space in
the pend_reprios array. From David Sidrane.
- lp_worker: Guard from pend_reprios overlow. From David Sidrane.
- Priority inheritance: Fixes improper restoration of base_priority in
the case of CONFIG_SEM_PREALLOCHOLDERS=0. The call to
sem_restorebaseprio_task context switches in the
sem_foreachholder(sem, sem_restoreholderprioB, stcb); call prior to
releasing the holder. So the running task is left as a holder as is
the started task. Leaving both slots filled thus failing to perform
the boost/or restoration on the correct tcb. This PR fixes this by
releasing the running task slot prior to reprioritization that can
lead to the context switch. To faclitate this, the interface to
sem_restorebaseprio needed to take the tcb from the holder prior to
the holder being freed. In the failure case where sched_verifytcb
fails it added the overhead of looking up the holder. There is also
the additional thunking on the foreach to get from holer to
holder->tcb. An alternate approach could be to leve the interface
the same and allocate a holder on the stack of sem_restoreholderprioB
copy the sem's holder to it, free it as is done in this pr and and
then pass that address sem_restoreholderprio as the holder. It could
then get the holder's tcb but we would keep the same sem_findholder
in sched_verifytcb. From David Sidrane.
- Priority inheritance: Fixes improper restoration of base_priority.
From David Sidrane.
- sem_holder: Indexing error. From David Sidrane.
if (sem->holder[0].htcb != NULL || sem->holder[**1**].htcb != NULL)
- realloc(): When realloc() has to fall back to calling malloc(), size
including overhead was being provided to malloc(), causing a slightly
larger allocation than needed. Noted by initialkjc@yahoo.com.
- scheduler: Fix tg_flags check with GROUP_FLAG_NOCLDWAIT. From Masayuki
Ishikawa.
- scheduler: Fix CHILD_FLAG_EXITED in include/nuttx/sched.h. From
Masayuki Ishikawa.
- binfmt/elf: Fix offset value when calling elf_read() in
elf_symname(). From Masayuki Ishikawa.
- binfmt/elf: Fix offset value when calling elf_read() in
elf_sectname(). From Masayuki Ishikawa.
- There can be a failure in IOB allocation to some asynchronous
behavior caused by the use of sem_post(). Consider this scenario:
(1) Task A holds an IOB. There are no further IOBs. The value of
semcount is zero. Task B calls iob_alloc(). Since there are not
IOBs, it calls sem_wait(). The value of semcount is now -1. (2)
Task A frees the IOB. iob_free() adds the IOB to the free list and
calls sem_post() this makes Task B ready to run and sets semcount to
zero NOT 1. There is one IOB in the free list and semcount is zero.
When Task B wakes up it would increment the sem_count back to the
correct value. (3) But an interrupt or another task runs occurs
before Task B executes. The interrupt or other tak takes the IOB off
of the free list and decrements the semcount. But since semcount is
then < 0, this causes the assertion because that is an invalid state
in the interrupt handler. So I think that the root cause is that
there the asynchrony between incrementing the semcount. This change
separates the list of IOBs: Currently there is only a free list of
IOBs. The problem, I believe, is because of asynchronies due
sem_post() post cause the semcount and the list content to become out
of sync. This change adds a new 'committed' list: When there is a
task waiting for an IOB, it will go into the committed list rather
than the free list before the semaphore is posted. On the waiting
side, when awakened from the semaphore wait, it will expect to find
its IOB in the committed list, rather than free list. In this way,
the content of the free list and the value of the semaphore count
always remain in sync.
- binfmt: Fix .dtor memory allocation. From Masayuki Ishikawa.
* File System/Block and MTD Drivers:
- SmartFS: If whence is SEEK_END, the file offset shall be set to the
size of the file plus offset. Noted by eunb.song@samsung.com.
- mtd/progmem: Fix incorrect target address calculation.
progmem_read/write() is incorrectly calculating the target address,
expecting the offset argument is given in a block number. This is
completely wrong and as a result invalid flash region is accessed.
Byte-oriented read/write interfaces of mtd device accept the target
address in a byte offset, not a block number. From Heesub Shin.
- procfs: Fix wrong member IDs are displayed when 'cat
/proc/<pid>/group/status'. From Nobutaka Toyoshima.
- procfs: Fix incorrect uptime with CONFIG_SYSTEM_TIME64. From
Masayuki Ishikawa.
- vfs/poll: round timeout up to next full tick. Calling poll() with
timeout less than half tick (thus MSEC2TICK(timeout) => 0) caused
returning error with EAGAIN. Instead of rounding timeout down, value
should be rounded up. Open Group spec for poll says:
"Implementations may place limitations on the granularity of timeout
intervals. If the requested timeout interval requires a finer
granularity than the implementation supports, the actual timeout
interval will be rounded up to the next supported value." From Jussi
Kivilinna.
- mtd/config: erase block between block read and write. From Juha
Niskanen.
- mtd: Build RAMTRON and AT45DB drivers only if selected. From Juha
Niskanen.
- mtd/config: Fix byte read interface test. From Juha Niskanen.
- mtd: Fix some unallocated and NULL pointer issues. rwb->wrflush and
rwb->wrmaxblocks in rwbuffer could get unallocated values from
ftl_initialize() in some configurations. Also fixes related assert:
up_assert: Assertion failed at file:rwbuffer.c line: 643
that can happen with the following configuration:
CONFIG_FTL_WRITEBUFFER=y
CONFIG_DRVR_WRITEBUFFER=y
# CONFIG_FS_WRITABLE is not set
These problems are caused by CONFIG variable differences between the
buffer layers. TODO: This is not a perfect solution. readahead
support has similar issues. From Juha Niskanen.
- net procfs: Fix buffer corruption and refactor netdev_statistics.c.
From Masayuki Ishikawa.
- FAT: Fix 'Missing unlock' in fs_fat32.c. From Masayuki Ishikawa.
- VFS fdopen: Add missing file stream flags clearing. Clear file
stream structure regardless of config options. Structure clearing is
needed as previous use of stream list entry might leave fs_flags
set. From Harri Luhtala.
- mtd/smart: Fix use of uninitialized variable. From Jussi Kivilinna.
- mtd/w25.c: Enable short delay after sector/chip erase. From Jussi
Kivilinna.
- mtd/config: Add some error checks for I/O errors. From Juha
Niskanen.
* Graphics/Graphic Drivers:
- net procfs: Some long lines were being generated that cause buffer-
related problems and corrupted output.
* Networking/Network Drivers:
- Fixed wrong assert on udp dgram send. From Pascal Speck.
- TCP/IPv6: Fix a compile issue when IPv6, but not IPv4 is enabled.
- net/socket/accept: Fix building with CONFIG_NET_LOCAL_STREAM. From
Jussi Kivilinna.
- Argument of network device IOCTL should be unsigned long, just as
will all other IOCTL methods.
- net/socket: Fix cloning of local and raw sockets. From Jussi
Kivilinna.
- TCP: Wait for 3-Way Handshare before accept() returns. From Simon
Piriou.
- TCP: Send RST if applicaiton 'unlistens()' before we complete the
connection sequence.
- TCP: An RST received during the 3-way handshake requires a little
more clean-up.
- IPv6: Fix net_ipv6_pref2mask(). From Masayuki Ishikawa.
- network IOCTL commands: The only place in net/netdev/netdev_ioctl.c
where the interface state should change is for SIOCSIFFLAGS. The
other ones .. SIOCSIFADDR, SIOSLIFADDR, SIODIFADDR .. should not
change the link state. From Sebastien Lorquet.
- TCP: Fix tcp_findlistner() in dual stack mode. From Masayuki
Ishikawa.
* Common Drivers:
- Fix as5048b by adding missing frequency parameter. From Andreas
Bihlmaier.
- multiple fixes in nrf24l01 driver: (1) signal POLLIN if there is
already data in the FIFO, (2) send ETIMEDOUT to userspace after 2
seconds if TX IRQ was not received, (3) handle FIFO overflow, (4)
handle invalid pipes/empty FIFO, and (5) multiple cosmetics (missing
static, duplicate define, missing \n). From Leif Jakob.
- input/mxt: Prevent overriding i2c transfer return value.
put_reg/get_reg function was overriding i2c transfer error code with
i2creset return value, that lead to OK status although actual
transfer failed. From Juha Niskanen.
- drivers/audio/wm8904: WM8904 has same problem as that fixed by Juha
Niskanen in the MaxTouch driver.
- UART 16550: Missing left parenthesis in function prototype. This is
Bitbucket Issue #41.
- USBMSC: Fix a wrong lun number issue. From Masayuki Ishikawa.
- drivers/i2c: Fix compile issues if CONFIG_DISABLE_PSEUDOFS_OPERATIONS
is enabled.
- drivers/serial: I discovered a problem in the file
drivers/serial/serial.c concerning the function uart_close(
). In the
case that a serial device is opened with the flag O_NONBLOCK the
function uart_close(
) blocks until all data in the buffer is
transmitted. The function close(
) called on an handle opened with
O_NONBLOCK should not block. The problem occurred with a CDC/ACM
device. From Stefan Kolb.
- drivers: Fix some bad NULL checks. From Juha Niskanen.
- drivers: Rename newly introduced up_i2creset to I2C_RESET. From
Juha Niskanen.
- drivers/bch: BCH character driver bch_ioctl() always returns -ENOTTY
for DIOC_GETPRIV command. It should returns OK if DIOC_GETPRIV
command succeeds. From EunBong Song.
- Replace sprintf() with snprintf() in pipe.c. From Nobutaka Toyoshima.
- drivers/bch: Fix 'Missing Unlock' in bchdev_driver.c. From Masayuki
Ishikawa.
- button_upper: Fix interrupt enabling for poll-events. From Jussi
Kivilinna.
- drivers/{sensors,usbmisc}: Fix uninitialized I2C frequency. From
Juha Niskanen.
* ARM:
- Set EABI stack alignment for all ARM architectures (remove OABI
code). From David Cabecinhas.
- Remove redundant interrupt stack coloring and OABI code. From David
Cabecinhas.
- Fix off-by-one interrupt stack allocation in 8-byte aligned
architectures. From David Cabecinhas.
* ARMv6-M:
- CONFIG_DEBUG_HARDFAULT should be available for Cortex-M0 too.
* Microchip/Atmel SAM3/4 Drivers:
- SAM3/4: Fixed configurations for TWI master. Obviously an
incomplete port from SAMA5.
* Microchip/Atmel SAMv7 Drivers:
- SAMV7: Watchdog: Fix Forbidden Window Value. According the Datasheet
the WDD Value is the lower bound of a so called Forbidden Window and
to disable this we have to set the WDD Value greater than or equal to
the WDV Value. This seems to be a bug in the datasheet. It looks
like we have to set it to a greater value than the WDV to really
disable this Thing. When triggering the Watchdog faster than the
(very slow) clock source of the Watchdog fires, this Forbidden Window
Feature resets the System if WDD equals to WDV. This Changeset
disables the Forbidden Window by setting the WDD Value to the Maximum
(0xfff) Value possible. From Frank Benkert.
- SAMV7 EMAC: Add conditional logic to account the fact that the
SAMV71 has 6 rather than 3 queues after version 1. From Ian McAfee.
* NXP/Freescale Kinetis Drivers:
- Kinetis: Fixed GPIO _PIN_OUTPUT_LOWDRIVE swapped with
_PIN_OUTPUT_OPENDRAIN. From David Sidrane.
- Ensure interrupts are back on BEFORE running code dependant on
clock_systimer. From David Sidrane.
- Kinetis k66, k64, k60, k40, k20: Pin mux configure all I2C signals as
Open Drain. The output structure of the GPIO for I2C needs to be
open drain. When left at the default, one can observe on a scope the
slave contending with the push-pull during the ACK. From David
Sidrane.
- Kinetis K66: Fixed TMP2_CH1 definition. From David Sidrane.
- Kinetis K66: Define ALT1 to match ref manual. From David Sidrane.
- Kinetis K66: GPIO and pin mux cleanup. From David Sidrane.
- Kinetis ADC: Various corrections and updates. From David Sidrane.
* NXP/Freescale LPC43xx:
- Add missing PINCONF_INBUFFER in several places of
lpc4310203050_pinconfig.h. From Andreas Bihlmaier.
- Fix logic in preprocessor checks and correct arguments to
lpc43_pin_config initialization. From Andreas Bihlmaier.
* NXP/Freescale LPC43xx Drivers:
- Fix logic error in lpc43_adc. From Andreas Bihlmaier.
- Use correct macro for irqid (fortunately both point to
LPC43_IRQ_EXTINT+18). From Andreas Bihlmaier.
- Actually write modified value to register. From Andreas Bihlmaier.
- Increase number of supported PWM channels from 4 to 6. From Andreas
Bihlmaier.
* Silicon Labs EFM32 Drivers:
- EFM32 I2C: Fix timeout calculation. From Masayuki Ishikawa.
* STMicro STM32:
- As discovered by dcabecinhas. This fix assume the 8 byte alignment
options for size stack size or this will overwrite the first word
after TOS. See
https://github.com/PX4/Firmware/issues/6613#issuecomment-285869778.
From David Sidrane.
- STM32 F7: In stm32_allocateheap.c There are 5 not 4 configurations.
From David Sidrane.
* STMicro STM32 Drivers:
- STM32, STM32 F7, STM32 L4: OTG host drivers: Do not do data toggle
if interrupt transfer is NAKed. Sugested by webbbn@gmail.com.
- Save elapsed time before handling I2C in stm32_i2c_sem_waitstop().
This change follows the same logic as in previous fix to
stm32_i2c_sem_waitdone(). It is possible that a context switch
occurs after I2C registers are read but before elapsed time is saved
in stm32_i2c_sem_waitstop(). It is then possible that the registers
were read only once with "elapsed time" equal 0. When scheduler
resumes this thread it is quite possible that now "elapsed time" will
be well above timeout threshold. In that case the function returns
and reports a timeout, even though the registers were not read
"recently". Fix this by inverting the order of operations in the loop
- save elapsed time before reading registers. This way a context
switch anywhere in the loop will not cause an erroneous "timeout"
error. From Freddie Chopin.
- STM32, STM32 F7, and STM32 L4: Clone Freddie Chopin's I2C change to
similar STM32 I2C drivers. From David Sidrane.
- STM32: OTG host implementations of stm32_in_transfer() must obey the
polling interval for the case of isochronous and interrupt endpoints.
- STM32: Fix erase sector number for microcontrolers with more than 11
sectors. Erase a sector from the second bank cause the bit 4 of SNB
being set but never unsed, so trying to erase a sector from the first
bank was acually eraseing a sector from the second bank. From José
Roberto de Souza.
- STM32: Make up_progmem thread safe. Writing to a flash sector while
starting the erase of other sector have a undefined behavior so lets
add a semaphore and syncronize access to Flash registers. But for
the semaphore to work it needs to be initialized so each board needs
call stm32_flash_initialize() on initialization, so to avoid runtime
problems it is only using semaphore and making it thread safe if
initialized, after all boards starts to call stm32_flash_initialize()
we can remove the boolean and the check. From José Roberto de Souza.
- STM32: Add workaround for flash data cache corruption on
read-while-write. This is a known hardware issue on some STM32 see
the errata of your model and if you make use of both memory banks you
should enable it. From José Roberto de Souza.
- STM32 Flash fixes. From José Roberto de Souza.
- STM32 Flash: Missing unlock on F1 HSI off path. From David Sidrane.
- STM32 F4 I2C: I needed to use DS3231, I remember that in past it
worked ok, but now for stm32f4xx is used another driver (chip
specific, stm32f40xxx_i2c.c) and DS3231 driver doesn't work. After
investigating a problem I found that I2C driver (isr routine) has a
few places there it sends stop bit even if not all messages are
managed. So, e.g., removing stm32_i2c_sendstop (#1744) and adding
stm32_i2c_sendstart after data reading helps to make DS3231 working.
From Alexander Oryshchenko; verified by David Sidrane.
- STM32 F7 Serial: Serial fix for dropped data: (1) Revert the
inherited dma bug from the stm32. see
https://bitbucket.org/nuttx/nuttx/commits/df9ae3c13fc2fff2c21ebdb098c520b11f43280d
for details. And (2) Most all CR1-CR3 settings can not be configured
while UE is true. Threfore we make all operation atomic and disable
UE and restore it's originalstate on exit. From David Sidrane.
- STM32 L1: Fix IWDG and WWDG debug mode stop for STM32L15XX. From
Juha Niskanen.
- STM32 F7: Fix UART7 and UART8 IFLOWCONTROL options. From Jussi
Kivilinna.
- STM32 F7: Add warning for RXDMA + IFLOWCONTROL combination.
Combination of RXDMA + IFLOWCONTROL does not work as one might
expect. Since RXDMA uses circular DMA-buffer, DMA will always keep
reading new data from USART peripheral even if DMA buffer underruns.
Thus this combination only does following: RTS is asserted on USART
setup and deasserted on shutdown and does not perform actual RTS
flow-control. Data loss can be demonstrated by doing long up_mdelay
inside irq critical section and feeding data to RXDMA+IFLOWCONTROL
UART. From Jussi Kivilinna.
- STM32 F7 Serial: Do not stop processing input in SW flow-control
mode. From Jussi Kivilinna.
- STM32 L4 DMA: Correct bad channel definition. From Sebastien Lorquet.
- STM32 F7: Warn if no DMA2 configured when using ADC with DMA. Also
correct ADC channel numbers that DMA callback passes to upper half
driver. From Juha Niskanen.
- STM32 F7 ADC: Do not override ADCPRE_DIV when measuring
internal voltage. From Juha Niskanen.
- STM32 L4: Don't think these chips have DPFPU, DTCM or ITCM. From
Juha Niskanen.
- STM32 F7 Flash: macro naming errors, there is no FLASH_CONFIG_F for
F7. From Juha Niskanen.
- STM32 L4: stm32l4x6xx_pinmap: Update I2C4 and DCMI pins. From Juha
Niskanen.
- STM32 L4: stm32l4_i2c: change wrong macro to CONFIG_I2C_POLLED. From
Juha Niskanen.
- Fix STM32F7 I2C interrupt handler. From Jussi Kivilinna.
- STM32: Serial Allow configuring Rx DMA buffer size. From David
Sidrane.
- STM32 CAN: I had the problem that the transmit FIFO size (= actual
elements in FIFO) was slowly increasing over time, and was full after
a few hours. The reason was that the code hit the line
"canerr("ERROR: No available mailbox\n");" in stm32_cansend, so
can_xmit thinks it has sent the packet to the hardware, but actually
has not. Therefore the transmit interrupt never happens which would
call can_txdone, and so the size of the FIFO size does not decrease.
The reason why the code actually hit the mentioned line above, is
because stm32can_txready uses a different (incomplete) condition than
stm32can_send to determine if the mailbox can be used for sending,
and thus can_xmit forwards the packet to stm32can_send.
stm32can_txready considered mailboxes OK for sending if the mailbox
was empty, but did not consider that mailboxes may not yet be used if
the request completed bit is set - stm32can_txinterrupt has to
process these mailboxes first. Note that I have also modified
stm32can_txinterrupt - I removed the if condition, because the CAN
controller retries to send the packet until it succeeds. Also if the
condition would not evaluate to true, can_txdone would not be called
and the FIFO size would not decrease also. From Lederhilger Martin.
- STM32 Serial: Fix freezing serial port. Serial interrupt
enable/disable functions do not disable interrupts and can freeze
device when serial interrupt is received while execution is at those
functions. Trivially triggered with two or more threads write to
regular syslog stream and to emergency stream. In this case, freeze
happens because of mismatch of priv->ie (TXEIE == 0) and actually
enabled interrupts in USART registers (TXEIE == 1), which leads to
unhandled TXE interrupt and causes interrupt storm for USART. From
Jussi Kivilinna.
- STM32 I2C: Make private symbols static. From Juha Niskanen.
- STM32 L4 GPIO: Put back EXTI line source selection. From Juha
Niskanen.
- STM32 L4 RTC: Store RTC MAGIC to backup reg, not to address zero.
From Juha Niskanen.
* STMicro STM32 Boards:
- Disable serial console on stm32f103-minimum usbnsh example project
config. Devices enumerate after this change. From Bob Ryan.
- Nucleo-144: Default for choice in Kconfig was not one of the
possible choices.
- Nucleo-F4X1RE User LEDS: Issue #51 reports compilation problems with
stm32_userled.c. Reported by Gappi92.
* TI Tiva Drivers:
- Tiva I2C: Correct an error in conditional compilation.
- Tiva SSI: Resolves issue 52 'Copy-Paste error in
tiva_ssibus_initialize()' submitted by Aleksandr Kazantsev.
* C Library/Header Files:
- C Library vsnprintf(): Fix precision for string formatting. Fixes
use of format precision to truncate input string. From Jussi
Kivilinna.
- C Library vsnprintf(): If size is zero, then vsnprintf() should
return the size of the required buffer without writing anything.
From Jussi Kivilinna.
- C Library netdb: in dns_query_callback, ret != -EADDRNOTAVAIL
condition consumes error returns including EAGAIN in this case,
dns query retransmission doesn't work. From Ritajina.
- C Library netdb: Fix time info in lib_dnscache.c. From Masayuki
Ishikawa.
- C Library netdb: Fix bugs in lib_gethostbynamer.c. This fix sets
h_name in struct hostent returned by gethostbyname(). From Masayuki
Ishikawa.
- C Library Defect Workaround: replace '%6.6u' format with an
equivalent '%06u'. From Tomasz Wozniak.
* Tools
- Fix mksyscall host binary name. From Alan Carvalho de Assis.
* Applications (apps/)
- Fix some calls to task_create(): argv[0] is the first parameter, not
the name of the task.
- Bitbucket Issue 5: I found an unexpected behavior in apps/
configuration generation. Adding external symbolic link in apps/
directory and using Make.defs for Kconfig generation, Kconfig file
has a wrong path in the source argument. It contains original dir
path outside of the source tree instead path to sub-directory in
apps/. The problem is connected with make/system symbolic link path
resolution. Corrected by a patch submitted by Artur Madrzak with
Issue 5.
- apps/: Make more globals static to avoid name clashes. From Juha
Niskanen.
* NSH: apps/nshlib:
- NSH library: In nsh_argexand(), if CONFIG_NSH_ARGCAT is defined but
CONFIG_NSH_CMDPARMS defined and/or CONFIG_DISABLE_ENVIRON not
defined, then there is a situation that causes an infinite loop in
the parser. Noted by Freddie Chopin.
- NSH library: Fix building when CONFIG_NET_USRSOCK enabled with other
link-layers. From Jussi Kivilinna.
- NSH library: Fix some warnings about integer/pointer casts of
different sizes (probably only effects 64-bit simulation).
- NSH library: Fix open flags in nsh_codeccmd.c. From Masayuki
Ishikawa.
- I need to look at the registers that are at or around 0xe000ef90.
Using mw and xd, I see that nsh does not support pointers greater
than 0x7fffffff. A quick look at the source shows that the pointers
for those two commands are set with calls to strtol() rather than
strtoul(). Changing the two pointer-setting instances to strtoul()
fixes the problem, at least for my architecture/config. From Ian
McAfee.
- NSH library: Fix a resource leak in cmd_hexdump(). From Nobutaka
Toyoshima.
* Examples/Tests: apps/examples:
- apps/examples/hidkbd: Remove call to arch_usbhost_initialize().
That is violation of the OS interfacing rules and will no longer be
supported. USB host should be initialized as part of the normal
board bring-up logic as with any other devices and should not involve
illegal calls from applications into the OS.
- apps/examples/usbterm: Removed because it is not very useful and
because it can be configured to use an illegal call into the OS.
- examples/mm: Fix Makefile. Built-in was not being registered.
- examples/hidkbd: Add some missing configuration settings.
- examples/random: Avoid stack overflows. From Juha Niskanen.
- examples/nettest: Fix an error in pre-processor expression.
- examples/mtdpart: Prevent part array overflow. mtdpart examples
create partions and allocate from 1 index not a 0 index to part[]
array. This cause buffer overflow for part array. This change fixes
this problem. From EunBong Song.
- examples/can: Fix can example app to print data when
CONFIG_EXAMPLES_CAN_READ is defined. From Alan Carvalho de Assis.
* Network Utilies: apps/netutils:
14515
14516
14517
14518
14519
14520
14521
14522
14523
14524
14525
14526
14527
14528
14529
14530
14531
14532
14533
14534
14535
14536
- Not a clean fix, but at least makes DHCP working with
CONFIG_NETDEV_MULTINIC. From Andreas Bihlmaier.
- Ensure netlib will not be broken when setip will not bring the
network up anymore. From Sebastien Lorquet.
* CAN Utilies: apps/canutils:
- Fix libcanard github download link to get it compiling correctly.
From Alan Carvalho de Assis.
- Fix to use the new canardInit() function. From Alan Carvalho de
Assis.
* System Unitilities (apps/system)
- system/dhcpc: Add missing argument of fprintf.
* Tools (apps/tools):
- The dedicated windows tool at tools/mkkconfig.bat uses $APPSDIR,
which is not a windows shell variable, and is left uninitialized, but
in fact should be the current directory. From Sebastien Lorquet.
14537
14538
14539
14540
14541
14542
14543
14544
14545
14546
14547
14548
14549
14550
14551
14552
14553
14554
14555
14556
14557
14558
14559
14560
14561
14562
14563
14564
14565
14566
14567
14568
14569
14570
14571
14572
14573
14574
14575
14576
14577
14578
14579
14580
14581
14582
14583
14584
14585
14586
14587
14588
14589
14590
14591
14592
14593
14594
14595
14596
14597
14598
14599
14600
14601
14602
14603
14604
14605
14606
14607
14608
14609
14610
14611
14612
14613
14614
14615
14616
14617
14618
14619
14620
14621
14622
14623
14624
14625
14626
14627
14628
14629
14630
14631
14632
14633
14634
14635
14636
14637
14638
14639
14640
14641
14642
14643
14644
14645
14646
14647
14648
14649
14650
14651
14652
14653
14654
14655
14656
14657
14658
14659
14660
14661
14662
14663
14664
14665
14666
14667
14668
14669
14670
14671
14672
14673
14674
14675
14676
14677
14678
14679
14680
14681
14682
14683
14684
14685
14686
14687
14688
14689
14690
14691
14692
14693
14694
14695
14696
14697
14698
14699
14700
14701
14702
14703
14704
14705
14706
14707
14708
14709
14710
14711
14712
14713
14714
14715
14716
14717
14718
14719
14720
14721
14722
14723
14724
14725
14726
14727
14728
14729
14730
14731
14732
14733
14734
14735
14736
14737
14738
14739
14740
14741
14742
14743
14744
14745
14746
14747
14748
14749
14750
14751
14752
14753
14754
14755
14756
14757
14758
14759
14760
14761
14762
14763
14764
14765
14766
14767
14768
14769
14770
14771
14772
14773
14774
14775
14776
14777
14778
14779
14780
14781
14782
14783
14784
14785
14786
14787
14788
14789
14790
14791
14792
14793
14794
14795
14796
14797
14798
14799
14800
14801
14802
14803
14804
14805
14806
14807
14808
14809
14810
14811
14812
14813
14814
14815
14816
14817
14818
14819
14820
14821
14822
14823
14824
14825
14826
14827
14828
14829
14830
14831
14832
14833
14834
14835
14836
14837
14838
14839
14840
14841
14842
14843
14844
14845
14846
14847
14848
14849
14850
14851
14852
14853
14854
14855
14856
14857
14858
14859
14860
14861
14862
14863
14864
14865
14866
14867
14868
14869
14870
14871
14872
14873
14874
14875
14876
14877
14878
14879
14880
14881
14882
14883
14884
14885
14886
14887
14888
14889
14890
14891
14892
14893
14894
14895
14896
14897
14898
14899
14900
14901
14902
14903
14904
14905
14906
14907
14908
14909
14910
14911
14912
14913
14914
14915
14916
14917
14918
14919
14920
14921
14922
14923
14924
14925
14926
14927
14928
14929
14930
14931
14932
14933
14934
14935
14936
14937
14938
14939
14940
14941
14942
14943
14944
14945
14946
14947
14948
14949
14950
14951
14952
14953
14954
14955
14956
14957
14958
14959
14960
14961
14962
14963
14964
14965
14966
14967
14968
14969
14970
14971
14972
14973
14974
14975
14976
14977
14978
14979
14980
14981
14982
14983
14984
14985
14986
14987
14988
14989
14990
14991
14992
14993
14994
14995
14996
14997
14998
14999
15000
NuttX-7.22 Release Notes
------------------------
The 122nd release of NuttX, Version 7.22, was made on September 9, 2017,
and is available for download from the Bitbucket.org website. Note
that release consists of two tarballs: nuttx-7.22.tar.gz and
apps-7.22.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:
- pthreads: Move functions from sched/pthreads to libc/pthreads. These
functions just coordinate other OS interface calls but are not a
fundamental OS interfaces and, hence, do not belong within the OS:
pthread_yield(), pthread_once(), pthread_cond_init(),
pthread_cond_destroy(), pthread_barrier_init(),
pthread_barrier_destroy(), and pthread_barrier_wait().
- Add power-related debug output.
* File Systems/Block and MTD Drivers
- RAMTRON: Add support for splitting block writes in chunks. Some
Re-RAMs like MB85AS4MT have a write buffer size limitation. From
Boris Astardzhiev.
- MTD: Add driver for Macronix QuadSPI flash memory. From Simon Piriou.
* Graphics/Display Drivers:
- SSD1306 LCD Driver: (1) Separate lcd_dev_s setup to separate object.
g_oleddev takes 1 KiB because framebuffer and was allocated to .data
section because of lcd_dev_s function pointer setup. Move lcd_dev_s
setup out, so that g_oleddev goes to .bss and avoid wasting ROM. (2)
Fix memory corruption caused by ssd1306_getrun(). ssd1306_getrun was
writing one extra byte (with value 0) past target buffer when pixlen
is multiple of 8. When pixlen was not multiple of 8, last byte of
buffer was fully cleared, instead of modifying only the (pixlen % 8)
bits of last byte. (3) Add support for board power control.
ThingseeOne has regulator for controlling display power on/off. Patch
adds support for board based power control to SSD1306 driver. (4) Add
DD-12864WO-4A/SSD1309 support to SSD1306 driver. From Jussi Kivilinna.
* Networking/Network Drivers:
- Sockets: Support listening sockets in the getsockname() function.
From Roland Takacs.
- IP Forwading: At the IP level, network may be configured to forward
IP packets that are not destined for the target through a different
network device, decrementing the packet TTL.
- IP forwarding: Add optional support to forward broadcast and
multicast packets. Add missing ICMP support.
- ICMPv6: Add 6LoWPAN and IP forwarding support.
- ICMPv6: Support source link-layer address option in RA. From
Masayuki Ishikawa.
- TUN Driver: Add definitions that will permit TUN-only networking.
- Socket I/F: Created a socket interface used to provide socket support.
Each address family has an interface that describes how to perform
socket operations on that address family. Currently only a couple of
methods are defined in the socket interface call table
- Remove CONFIG_NET_MULTILINK. This increases code size by a little,
but greatly reduces the complexity of the network code.
- Network procfs: Add support for routing tables at proc/net/route.
- Network procfs: Add support for network procfs statistics for the
PF_IEEE802154 address family.
- Network Driver Backlog: Remove driver based backlog support. This
affects the entire network, but is used by only one driver. The only
supported RX backlog is now via common read-ahead buffering.
* Wireless Networking/Wireless Drivers:
- IEEE 802.15.4 MAC / MRF234j60 Driver: Extensive updates for
association/beacon-enabled networks. From Anthony Merlino.
- IEEE 802.15.4 MAC / MRF234j60 Driver: Hook in setdevmode from newly
added radio attribute setting. From Anthony Merlino.
- IEEE 802.15.4 MAC: Supports get request for coordinator address. From
Anthony Merlino.
- IEEE 802.15.4 MAC: Notify radio layer of changes in devmode. From
Anthony Merlino.
- IEEE 802.15.4: Add special attribute that can be used to perform a
regdump of the radio. From Anthony Merlino.
- IEEE 802.15.4 loopback driver: Better simulation addressing: short
and extended addresses, panid, and IP address conversion.
- IEEE 802.15.4 Network Driver: Add logic to setup the network mask,
update the MAC-based IPv6 addressing when the network is brought up.
The idea is that addressing changes are supposed to occur only while
the network is down but won't take effect until the network is up
again.
- PktRadio: Add an infrastructure to support networking on generic
(non-IEEE 802.15.4) packet radios.
- PktRadio Loopback Driver: Add a PktRadio loopback network driver to
testing testing with 6LoWPAN and PktRadios on the simulator.
- Spirit Network Driver: The Spirit1 radio (SPSGRF-915) is the first
generic PktRadio Network driver. Based on STMicros STack packets
with 8-bit addressing. We need to use the STack packets in order to
provide the source address and automatic ACKing.
- Network procfs: Fix so that PktRadio address are shown correctly.
- Networking: Add support for some packet radio IOCTL commands.
- 6LoWPAN: Added handling for TCP and ICMPv6 packets.
- 6LoWPAN: Add configurable support for 6LoWPAN star topology. With
this change, the endpoints which are the 'points' of the star will
forward all traffic to the coordinator. The coordinator is assumed to
be the 'hub' of the star. This function also used IPv6 forwarding.
- 6LoWPAN: The original, Contiki-based design used only a single buffer
for reassemblying larger packets. This could be a problem issue for
hub configurations which really need the capability concurrently
reassemble multiple incoming streams concurrently. These was also a
design issue in that the reassembly buffer could be corrupted by
outgoing packets. The design was extended to support multiple
reassembly buffers, each associated with the reassembly tag and source
address. This assures that there can be be no corruption of the
reassembly once it has started.
- 6LoWPAN PktRadio: Now radio agnostic. All IEEE 802.15.4 dependencies
have been removed or isolated so that 6LoWPAN can be used with any
kind of packet radio. This involved things like: (1) generalizing
the representation of radio MAC meta-data, (2) changes to handle
variable-length radio addresses, (3) removal of all explicit IEEE
802.15.4 types, references, and interfaces, (4) a new radio driver
interface to return 'capabilities' of the drvier.
- ICMPv6: Update so that ICMPv6 can be used with 6LoWPAN.
- IPv6 Neighbor: Update table format to support IEEE 802.15.4 MAC
addresses.
- PF_IEEE802154 Address Family: Add support for the PF_IEEE802154
address family socket type. This socket is similar to the PF_PACKET,
"raw" packet address family except that: (1) it supports only
SOCK_DRAM, not SOCK_RAW, and (2) works only with IEEE 802.15.4
MAC-based radios. This address family permits simple access to IEEE
802.15.4 IOCTLs and frame-level network transfers.
* Other Common Device Drivers:
- Dynamically configurable USB composite devices: We developed a huge
Changeset over a year ago to make USB Composite configuration
dynamical and be able to instantiate the CDC/ACM multiple times inside
this device. We use this feature to switch between one in typical USB MSC + CDC/ACM configuration and up to three CDCACMs dynamically.
I've changed the interface for some USB-Functions to receive also the
dynamic configuration. From Frank Benkert.
- Franks' change remained on a branch until all issues were resolved.
the current version in Master is complete and ready for use.
- power: battery_charger: add ioctl for charging input current. From
Juha Niskanen.
- SMPS driver: Add generic upper-half driver for SMPS. From Mateusz
Szafoni.
- LED Driver: Add support for inverted LEDS. From Jeff.
- LED Driver: Add lightness correction for RGB LED driver. From Jeff.
- LTC4151 Driver: Add driver for LTC4151 current and voltage monitor.
From Giorgio Groß.
- Serial TERMIOS: tcdrain() implementation based on a new term ioctl.
From Sebastien Lorquet.
- Serial TERMIOS: Add support for TCFLUSH. From Sebastien Lorquet.
- syslog: Add option to use the CLOCK_MONOTONIC for time stamping. From
Jussi Kivilinna.
- HC-SR04 Driver: Add support to HC-SR04 distance sensor. From Alan
Carvalho de Assis.
- COMP Driver: Add poll support. From Pekka Ervasti.
- BQ2429X Driver: add driver for TI BQ2429X battery charger. From Juha
Niskanen.
- ADC Driver: Add poll support. From Juha Niskanen.
- BCH Driver: Add poll support. From Jussi Kivilinna.
- RTC Driver: Extend the RTC framework with an alarm read ioctl
(RTC_RD_ALARM). Through it consumer could get configuration settings
about previously scheduled hardware alarms (active status, hours,
minutes, seconds). From Boris Astardzhiev.
* Simulation
- sim/ipforward: Add an IP forwarding configuration using TUN devices
and apps/examples/tun.
- Console: Add non blocking read to devconsole driver. From Simon
Piriou.
- Networking: Poll for TX frames to speed up driver. From Simon Piriou.
- pf_ieee802154: Add configuration for testing PF_IEEE802154 address
family sockets.
- ARM Simulator: Adds necessary functionality to build Simulator under
ARM Linux. Tested only on Raspberry3. Currently setjmp/longjmp do not
save/restore floating point registers. From Nickolay Semyonov.
* MicroChip/Atmel SAML21 Drivers:
- SAML21 I2C driver. Developed for and contributed with permissin from
Filament company. From Alan Carvalho de Assis.
- SAMD/L21 USB Driver: Add a USB driver. Developed for Filament Inc.
by Offcode, LTD. From Janne Rosberg.
* MicroChip/Atmel SAMv7 Boards:
- SAMV71-XULT: Add support for the MRF24J40 radio and create a
mrf24j40-starhub configuration.
- SAME70-Xplained: Add MRF24J40 support.
* NXP Freescale Kinetis Drivers:
- Kinetis USB Improvements: usbdev clean up ensuring proper use of HW.
Rework suspend and resume logic so they perform properly. Made attach
and detach functions optional. As they do not make sense for a bus
powered device. From David Sidrane.
- Kinetis SPI driver: From David Sidrane.
- Kinetis: I2C driver added I2C3, reference counting and reset.
Refactored the driver to support reference counting and reset added
I2C3. From David Sidrane.
- Kinetis RTC: Implementation of the alarm read function.
* NXP Freescale Kinetis Boards:
- configs/teensy-3.x USB: Define USBOTG-FS Read from FLASH access in
board config. Allow the board config to define the USBOTG-FS to have
Read access to FLASH. From David Sidrane.
- configs/teensy-3.x: Removed call to khci_usbattach. The call is not
need by the driver if CONFIG_USBDEV_BUSPOWERED=y. On a USB powered device if we are running we are attached. From David Sidrane.
- freedom-k66f: Use SPI driver. Initalize SPI1 on connector J6. No
real use, as of yet. From David Sidrane.
* NXP Freescale LPC43xx:
- LPC43xx: Modify up_allocate_(k)heap() to support PROTECTED mode. From
Alan Carvalho de Assis.
* NXP Freescale LPC4xx Boards:
- configs/Bambino: Add protected mode configuration to Bambino board.
From Alan Carvalho de Assis.
* On Semiconductor LC823450
- LC823450: Initial support for ON Semiconductor LC823450. From Masayuki
Ishikawa.
- LC823450: eMMC/SD and USB support for LC823450. From Masayuki Ishikawa.
* On Semiconductor LC823450 Boards
- LC823450-XGEVK: LC823450-XGEVK board support. From Masayuki
Ishikawa.
- LC823450-XGEVK: Add eMMC/SD and USB support. From Masayuki Ishikawa.
* STMicro STM32:
- STM32 L4: Add support for the STM32L475 family.
- STM32 L4 RCC: Enable ADC clock source. From Juha Niskanen.
- STM32: Allow clock frequencies > 168 Mhz on stm32f427/429. We need
to enable the power overdrive for this case. This change allows the
required bits to be set in proper sequence. It also modifies the
local register access operations to allow more than 16-bit registers.
From Sebastien Lorquet .
- STM32 F4: Add support for STM32F433RC. From Alan Carvalho de Assis.
- STM32 F7: Add new configuration option for enabling flash ART
Accelerator and flash prefetcher. From Jussi Kivilinna.
* STMicro STM32 Drivers:
- STM32 TIM: Add the set counter function for stm32 timers. From
Sergey Ustinov.
- STM32 HRTIM: Update HRTIM definitions. Add HRTIM driver. From
Mateusz Szafoni.
- STM32 HRTIM: Add HRTIM character driver. From Mateusz Szafoni.
- STM32 HRTIM: Fix DAC triggers configuration, Add missing master timer
logic, enable DAC triggering. From Mateusz Szafoni.
- STM32 HRTIM: Add DMA configuration. From Mateusz Szafoni.
- STM32 HRTIM: Add burst mode configuration. From Mateusz Szafoni.
- STM32 RTC: Port Boris Astardzhiev's RTC change for STM32L4 to STM32.
- STM32 DAC: Add support for HRTIM triggering. Separate dma buffer
configuration for channels. From Mateusz Szafoni.
- STM32 DAC: Conditional logic for timer triggering, fix TSEL
configuration when HRTIM, DMA request remapping, Add DMA buffers
initialization logic. From Mateusz Szafoni.
- STM32 DAC: Support external triggering for DMA transfer. From Mateusz
Szafoni.
- STM32 L1 TIM: Add base address for TIM11. From Juha Niskanen.
- STM32 F4 FLASH: Enable/disable the flash write protection on any
sector. I have verified it to work on the STM32 F427. From Sebastien
Lorquet.
- STM32 F4 Clocking: To use an external oscillator module (not just a
crystal) with the STM32F4, one needs to enable the HSEBYP bit in the
RCC_CR register. This change allows an integrator to define
STM32_RCC_CR_HSEBYP in their board.h file if they want this
configuration. From Jeff.
- STM32 F4 USB: I'm working on bringing up USB full-speed support on
STM32F405. My board does not include a USB power switch, VBus
sensing, over current detection, or ID pin. This commit add a
config STM32_OTGFS_VBUS_ CONTROL which lets us selectively disable
VBus sensing and control. I also sneaked in a change to disable the
configgpio call for the ID pin, which is only used in OTG mode which
isn't supported yet. The only pins that need to be initialized should
be OTGFS_DP and OTGFS_DM. From Jeff.
- STM32 FLASH: Add CONFIG_STM32_STM32F469 support. From David Sidrane.
- STM32 COMP: Add default INM configuration and some missing COMP
1,3,5,7 code. From Mateusz Szafoni.
- STM32 F33: Add missing SYSCFG CFGR3 definitions. From Mateusz Szafoni.
- STM32 L4 Serial: Allow configuring Rx DMA buffer size. From Juha
Niskanen.
- STM32 L4 COMP: Input minus pin extended selection. From Juha Niskanen.
- STM32 L4 COMP: Bind to upper half comp driver. From Pekka Ervasti.
- STM32 L4 DAC: Port from STM32. Add ADC register definitions. From
Juha Niskanen.
- STM32 L4 DAC: Add option for routing DAC output to ADC. Actually
write something to the DAC DMA buffer. From Juha Niskanen.
- STM32 L4 DAC: Separate DMA buffer configuration for channels. From
Juha Niskanen.
- STM32 L4 ADC: Implement peripheral. From Juha Niskanen.
- STM32 F7: Definitions for I2C4, SDMMC2. Adapted RAM start / size to
- STM32 F7 I2C4: I2C4_SDA can also be on GPIO PB7. From Titus von
Boxberg.
internal SRAM. From Titus von Boxberg.
- STM32 F7 LTDC: Option for DSI output, inconsistency: the stm32f746
does not feature a DSI interface. compilable with LTDC_INTERFACE and
LTDC_USE_DSI. From Titus von Boxberg.
- STM32 F7 Clocking: Added functions for DSI clock source selection.
From Titus von Boxberg.
- STM32 F7 Clocking: Enable APB2 DSI clock. From Titus von Boxberg.
- STM32 F7 LTDC: No board specific dithering values used; corrected
dithering init. Corrected LIPOS/LIPCR calculation. Change only
polarity bits in LTDC_GCR. From Titus von Boxberg.
- STM32 F7 Reset: Added function for reset. From Titus von Boxberg.
- STM32 F7 DMA: DMA add dcache alignment check in stm32_dmacapable. In
the case dcache write-buffed mode is used (not write-through) buffer
alignment is required for DMA transfers because a)
arch_invalidate_dcache could lose buffered writes data and b)
arch_flush_dcache could corrupt adjacent memory if the maddr and the
mend+1, the next next address are not on ARMV7M_DCACHE_LINESIZE
boundaries. From David Sidrane.
- STM32 F7 SDMMC: SDMMC remove widebus limitation on DMA. There is no
documantation for the STM32F7 that limits DMA on 1 bit vrs 4 bit
mode. From David Sidrane.
- STM32 F7 SDMMC: SDMMC add dcache alignment check in
dma{recv|send}setup. In the case where CONFIG_SDIO_PREFLIGHT is not
used.
- STM32 F7 RTC: Port Boris Astardzhiev's RTC change for STM32L4 to
STM32F7.
* STMicro STM32 Boards:
- STM32F103-Minimum: Add GPIO device driver example. From Alan
Carvalho de Assis.
- STM32F103-Minimum: Add small hello example for STM32F103-Minimum
board. From Alan Carvalho de Assis.
- STM32F103-Minimum: Add support for SmartFS on Winbond W25 SPI NOR
Flash. From Alan Carvalho de Assis.
- STM32F103-Minimum: (1) Enable CONFIG_MTD_PARTITION in Kconfig if flash
partition is enabled and (2) Update the README.txt file with info
needed to get SmartFS working. From Alan Carvalho de Assis.
- Nucleo-F334R8: Add HRTIM initialization. From Mateusz Szafoni.
- Nucleo-F334R8: UART2 is default serial port (STLINK Virtual Port).
From Mateusz Szafoni.
- Clicker2-STM32: Add a configuration that was used with the MRF24J60
for 6loWPAN testing.
- Clicker2-STM32: Allow both IEEE 802.15.4 MAC character and network
devices to be registered.
- Clicker2-STM32: Add configurations to support the endpoint and hub
roles in a star topology.
- Clicker2-STM32: Add support for per-function-call stack checking.
From Anthony Merlino.
- Clicker2-STM32: Configure EDBG SPI CS just to make that it is
disabled.
- STM32F4 Discovery: Add logic to register the button driver and the
user led driver if so configured. From Jan Pobrislo.
- STM32F4-Discovery: Add a configuration for testing libc++. From Alan
Carvalho de Assis.
- B-L475E-IOT01A: Add support for the STMicro B-L475E-IOT01A board.
From Simon Piriou.
- B-L475E-IOT01A: Add support for the SPSRGF/Spirit1 radio module. Add
a configuration for testing sprit radio.
- B-L475E-IOT01A: Add configurations to support a star topology.
- B-L475E-IOT01A: add basic support for external Macronix QuadSPI flash
memory. From Simon Piriou.
- B-L475E-IOT01A: Enable UDP broadcast test in the spirit-starhub
configuration.
- STM32F334-DISCO: Add STM32F334-DISCO basic support. From Mateusz
Szafoni.
- STM32F746-Disco: Add ADC3 support. From Ivan Ucherdzhiev.
- STM32L476-Disco: Add a knsh configuration that may be used to test
the PROTECTED build mode.
- STM32F769I-DISCO: Initial port to STM32F769I-DISCO. From Titus von
Boxberg.
* C Library/Header Files:
- Move TUN ioctl command to include/nuttx/net/ioctl.h so that it will
always be unique.
- Math Library: Port gamma() and lgamma() from FreeBSD to NuttX. From
Alan Carvalho de Assis.
- C++: Compilation with recent C++ compiler needs an overloaded delete
operator that includes a size_t size argument. New sized delete
operators are only for C++14 and above.
* Build/Configuration System:
- Initial clang compile. From Goran Mekic.
- Add CLANG definitions in Kconfig and Toolchain.defs.
- drivers/wireless/ieee802154: Moved radios to individual
sub-directories. From Anthony Merlino.
- Makefile.unix: Add savedefconfig target. From Gwenhael Goavec-Merou.
- Add Gwenhael's change to Makefile.win and update README.txt to
described the new make target.
- All defconfig files are now in the compressed format created with
'make savedefconfig.' The original .config file can be reconstituted
using 'make olddefconfig.'
- Build System: It is no longer necessary to have a unique Make.defs
file for each configuration. A board may share a common Make.defs
file in the scripts directory. Duplicate Make.defs files removed;
common Make.defs file moved to the scripts/ sub-directory for each
board.
- Networking: Move INET socket interface out of net/sockets to its own
directory net/inet.
* Tools:
- testbuild.sh: Added -x to fail build on errors for continous
integration (CI). On CI we want to know ASAP of a failure. From
David Sidrane.
- Improve configure.sh behavior: (1) enable to call from top directory.
(2) enable to designate direct path for config. (3) install .gdbinit
if the target has. From Hidetaka Takano.
- Update tools/configure.c to same functionality as configure.sh. Add
an array of optional file names. Currently, .gdbinit is the only
optional file but other things like IDE-specific project files might
need to be copied as well.
- tools/configure.sh will now copy Eclipse project files if they are
present in the board directory file.
- Update configure.sh, configure.bat, configure.c: With compressed
format, part of the installation requires that we run 'make
olddefconfig' to restore the uncompressed defconfig format. Also,
while I was at it, I also added options to select host platform on
configure command line.
- tools/refresh.sh: Now runs make savedefconfig before copying the new
defconfig file in place; Also, added a new option --defaults. Since
the number of defaults that you now have to answer is so large, the
option lets you just accept the default values. So it works just like
--silent but still prompts you for the decision to save or discard the
new defconfig file.
- tools/refresh.sh: Update so that it can find the Make.defs file in
the new location.
* NSH: apps/nshlib:
- NSH Library: Add a Telnetd command. This is needed when network
initialization is deferred. In that case, telnet daemon cannot be
started until the network is finally initialized. The telnetd command
was added just for that case: So that the telnet daemon can be
started from the NSH command line after the network is configured.
- NSH Library: Misc changes needed for PktRadio support.
- NSH Library: Extend ifconfig command so that it can set variable
length packet radio addresss.
- NSH Library: Update addroute and delroute command. The would support either
IPv4 or IPv6, but not both. Allow expression of the netmask in IPv4 CIDR or
IPv6 slash notation. This really reduces the pain of using the commands,
especially for IPv6.
- NSH Library: Add a route command that will dump the content of routing table.
* Examples/Tests: apps/examples:
- examples/udp: Add configurable network device name; Add option to
suppress network initialization which is not needed if started by NSH
or for 6LoWPAN.
- examples/udp: Fix registration as a built-in program; Change some
naming to make room for a second target. Current one endpoint is the
target and one is the host. This will (eventually) allow two targets
to be both endpoints of the test. Change build so that both server
and client can be on a target, rather than one on the target one on
the host PC. Server IP address may not be provided on the command line.