Newer
Older
- STM32F334-DISCO: Add powerled example configuration. From Mateusz
16003
16004
16005
16006
16007
16008
16009
16010
16011
16012
16013
16014
16015
16016
16017
16018
16019
16020
16021
16022
16023
16024
16025
16026
16027
16028
16029
16030
16031
16032
16033
16034
16035
16036
16037
16038
16039
16040
16041
16042
16043
16044
16045
16046
Szafoni.
- STM32F334-DISCO: Add lower-half driver for SMPS (buck-boost onboard
converter). From Mateusz Szafoni
- Nucleo-F334R8: Add logic for zero latency high priority interrupts
example. From Mateusz Szafoni.
- Nucleo-F334R8: Add highpri example configuration. From Mateusz
Szafoni.
- STM32 F4 Discovery: Added support for the LIS3DSH accelerometer on
the STM32F4 Discovery rev. C boards. From Florian Olbrich.
- STM32 F4 Discovery: ROMFS for STM32F4 Discovery board. From Tomasz
Wozniak.
- STM32 F4 Discovery: Add a USB MSC configuration. From Alan Carvalho
de Assis.
- STM32 F4 Discovery: RNDIS support on STM32F4Discovery + DM-STF4BB.
NOTE: MAC address for the host side starts 0xaa. This assignment
scheme should be fixed later. From Masayuki Ishikawa.
- STM32 F4 Discovery: Add STM32F4 Discovery board support for
Nunchuck joystick. From Alan Carvalho de Assis.
- STM3240G-EVAL: Add a configuration for testing the Framebuffer
character driver using the LCD framebuffer front.
- STM3240G-EVAL: Mount procfs if enabled.
- STM3240G-EVAL: Add support for pdcurses and the pdcurses demo
programs in the 'fb' configuration.
- Clicker2-STM32: Adds SD card, automount, and syslog file
support and fixes a few minor issues. From Anthony Merlino.
- Clicker2-STM32: Adds support for USB RNDIS device. From Anthony
Merlino.
- Olimex STM32-H407: Add serial support on the on-board UEXT
connector. Add USART6 for UEXT connector. Add nsh_uext
configuration and README update. From Jan Pobríslo.
- Nucleo-F410RB: Add support for the nucleo-F410RB board. From
Gwenhael Goavec-Merou.
- STM32F429i-DISCO: Add framebuffer driver initialization. Add a
framebuffer (fb) configuration.
- STM32F429i-DISCO: Add logic to auto-mount procfs. Enable procfs in
all configurations that use NSH.
- STM32F429i-DISCO: Enable support for the STMPE811 touchscreen
controller. Enable touchscreen and also the touchscreen testa at
apps/examples/touchscreen in the fb configuration.
- STM32F429i-DISCO: Convert NxWM configuration to use LTDC
framebuffer driver instead of SPI serial. Also reduce number of
layers from 4 to 1 in fb configuration. Only one layer is used.
- STM32L476-MDK: Add support for the on-board LEDs.
- Nucleo-L496ZG: Add DFSDM initialization. From Juha Niskanen
- Nucleo-L496ZG: Add support for SDMMC driver. From Miha Vrhovnik.
- Nucleo-L496ZG: Enable I2C4 bus with i2ctool in NSH configuration.
From Jussi Kivilinna.
- Nucleo-L496ZG: Make HSE on Nucleo-L496ZG default to enable USB.
From Miha Vrhovnik.
- Nucleo-F746ZG: Use the serial console over /dev/ttyACM0 by default.
The Nucleo-F746ZG doesn't come with Arduio RS-232 shield, then it is
better to use the serial over the /dev/ttyACM0 that is created
automatically when the board is plugged in the computer. From Alan
Carvalho de Assis.
- Nucleo-144: Adds support for the Nucleo-144 boards with
STM32F722ZE. From Bob Feretich.
16059
16060
16061
16062
16063
16064
16065
16066
16067
16068
16069
16070
16071
16072
16073
16074
16075
16076
16077
16078
16079
16080
* ZiLOG Z80
- z80/include: compiler.h, limits.h, types.h: Update SDCC/z80 files
to include support for long long, inline, __FILE__, and __func__.
* C Library/Header Files:
- include/: Add stdnoreturn.h. Holds definitions for the C11
noreturn keyword. Applies to C too.
- include/netinet/tcp.h: Add trivial standard tcp.h header file.
- libc: Add support for readv() and writev().
- libc: Adds tcflow().
- libc: Add support for sigwait().
- libnx: Changes to allow the font subsystem to be built without
enabling the entire graphics system (CONFIG_NX). Adds
CONFIG_NXFONTS and CONFIG_NXGLIB. Needed to duplicate some Kconfig
setting for NXFONTs if it can be configured and built independently
of NX.
* Tools:
- tools/configure.sh: Add special support so that you can start with a
16082
16083
16084
16085
16086
16087
16088
16089
16090
16091
16092
16093
16094
16095
16096
16097
16098
16099
16100
16101
16102
16103
16104
16105
16106
16107
16108
16109
16110
16111
16112
16113
16114
16115
16116
16117
16118
16119
16120
16121
16122
16123
16124
16125
16126
16127
16128
16129
16130
16131
16132
16133
16134
16135
16136
16137
16138
16139
16140
16141
16142
16143
windows native configuration and install on a different host (and
vice versa).
- tools/configure.c: Duplicate new functionaity added to configure.sh.
- tools/configure.sh: This commit adds a -m option for macOS. For
anyone not aware, Apple renamed OSX to macOS recently; thus the 'm'
instead of 'o'. This does not change the other uses of *_OSX to
macOS. From jeditekunum.
- tools/configure.c: Update functionality to match last change to
tools/configure.sh.
* NSH: apps/nshlib:
- apps/nshlib: mount command no long uses the non-standard OS
interface foreach_mountpoint(). Now simply cats /proc/fs/mount
when there are no arguments to the mount command.
- apps/nshlib: df command no long uses the non-standard OS interface
foreach_mountpoint(). Now simply cats /proc/fs/blocks or
/proc/fs/usage.
- apps/nshlib: The free commands no longer used mallinfo() to get
the state of the use heap. Two reasons: That is not useful
information in the kernel build. And (2) there are other memory
resources of interest in other configurations such as the Kernel
heap in PROTECTED and KERNEL builds, and the prog mem uses when
FLASH is used to hold modifiable data. The free command has been
extended to just dump the content of procfs entries and to include
all of these other memory resources of the procfs entries are
available.
* Examples/Tests: apps/examples:
- apps/examples/fb: Add a simple test for the framebuffer character
driver..
- apps/examples/ostest: sem_open() now returns SEM_FAILED in the
event of a failure.
- examples/ostest: Extend cancellation test to make sure that
cancelable threads waiting on a message queue or on a signal can be
canceled.
- Added a simple reader example for the LIS3DSH acceleration sensor
on STM32F4Discovery. From Florian Olbrich.
- apps/examples/apa102: Add a Rainbow example for APA102 LED Strip.
From Alan Carvalho de Assis.
- apps/examples/flowc: Add a simple test of serial hardware flow
control.
- Add powerled driver example. From Mateusz Szafoni.
- apps/examples/ina219: A simple infinite loop that polls the INA219
sensor and displays the measurements. From Sebastien Lorquet.
- apps/examples/alarm: Add options for reading alarm value and
canceling it. From Juha Niskanen.
- Add -n samples to lm75 app and replace Centigrade with Celsius.
From Alan Carvalho de Assis.
- apps/examples/adps9960: Add ADPS-9960 example. From Alan Carvalho
de Assis.
- apps/examples/obd2: Add OBD2 example application. From Alan
Carvalho de Assis.
- apps/examples/userfs: Add a test case for verifying UserFS.
- apps/examples/smps: add SMPS driver example. From Mateusz Szafoni.
- apps/examples/pdcurses: Bring in pdcurses demos and make them
conform to the NuttX coding style.
- apps/examples/pdcurses: Add a very simple example that just shows
the entire character set (7-bit only). It adapts to the size of
the framebuffer and, hence, can be used with very tiny displays.
In fact it looks really dumb on big displays.
- apps/examples/nunchuck: Add Nunchuck example application. From
Alan Carvalho de Assis.
* File System Utilities: apps/fsutils:
16148
16149
16150
16151
16152
16153
16154
16155
16156
16157
16158
16159
16160
16161
16162
16163
16164
16165
16166
16167
16168
16169
16170
16171
16172
16173
16174
16175
16176
16177
16178
16179
16180
16181
16182
16183
16184
16185
16186
16187
16188
16189
- apps/fsutils/mkfatfs: Move mkfatfs from the OS to here.
* Network Utilities: apps/netutils:
- apps/netutils/netlib: Add netlib_ipv6adaptor() and
netlib_ipv4adaptor().
- apps/netutils/netlib: Add helpers for reading the routing table:
netlib_read_ipv4route() and netlib_read_ipv6route().
- apps/netutils/netlib: Add new utilities netlib_ipv[4|6]router()
that can be used to determine the IP address of a router that would
be used some some destination IP address that is not locally
accessible.
- apps/netutils/ftpc: Adds support for IPv6 and fixes various
transfer issues. From Anthony Merlino.
* CANUtilities: apps/canutils:
- apps/canutils/libobd2: Add libobd2 for NuttX. From Alan Carvalho
de Assis.
* Graphics: apps/graphics:
- graphics/traveler: Convert to use the framebuffer driver.
- apps/graphics/pdcurs34: This commit brings the public domain
pdcurses library into NuttX. NuttX graphics support based on the
framebuffer character drivers has been integrated. Input is
currently limited to a discrete joystick driver.
* Wireless Utilities: apps/wireless:
- apps/wireless/ieee802154/i8sak: Adds socket interface support. You
can now use both socket or char driver to control the MAC layer.
From Anthony Merlino.
- apps/wireless/ieee802154/i8sak: Adds sniffer port option and a few
other get/set parameters. From Anthony Merlino.
- apps/wireless/ieee802154/i8sak: Changes 'notif' to 'primitive'
corresponding to the changes in the Kernel. From Anthony Merlino.
- apps/wireless/ieee802154/i8sak: Channel setting is now saved
locally, so when performing a startpan or assoc, the channel
previously set is still used, even though the MAC layer gets reset.
From Anthony Merlino.
- apps/wireless/ieee802154/i8sak: Adds ability to get/set rxonidle
16191
16192
16193
16194
16195
16196
16197
16198
16199
16200
16201
16202
16203
16204
16205
16206
16207
16208
16209
16210
16211
16212
16213
16214
16215
16216
16217
16218
16219
16220
16221
16222
16223
16224
16225
16226
16227
16228
16229
16230
16231
16232
16233
16234
16235
16236
16237
16238
16239
16240
16241
16242
16243
16244
16245
16246
16247
16248
16249
16250
16251
16252
16253
16254
16255
16256
16257
16258
16259
16260
16261
16262
16263
16264
16265
16266
16267
16268
16269
16270
16271
16272
16273
16274
16275
16276
16277
16278
16279
16280
16281
16282
16283
16284
16285
16286
16287
16288
16289
16290
16291
16292
16293
16294
16295
16296
16297
16298
16299
16300
16301
16302
16303
16304
16305
16306
16307
16308
16309
16310
16311
16312
16313
16314
16315
16316
16317
16318
16319
16320
16321
16322
16323
16324
16325
16326
16327
16328
16329
16330
16331
16332
16333
16334
16335
16336
16337
16338
16339
16340
16341
16342
16343
16344
16345
16346
16347
16348
16349
16350
16351
16352
16353
16354
16355
16356
16357
16358
16359
16360
16361
16362
16363
16364
16365
16366
16367
16368
16369
16370
16371
16372
16373
16374
16375
16376
16377
16378
16379
16380
16381
16382
16383
16384
16385
16386
16387
16388
16389
16390
16391
16392
16393
16394
16395
16396
16397
16398
16399
16400
16401
16402
16403
16404
16405
16406
16407
16408
16409
16410
16411
16412
16413
16414
16415
16416
16417
16418
16419
16420
16421
16422
16423
16424
16425
16426
16427
16428
16429
16430
16431
16432
16433
16434
16435
16436
16437
16438
16439
16440
16441
16442
16443
16444
16445
16446
16447
16448
16449
16450
16451
16452
16453
16454
16455
16456
16457
16458
16459
16460
16461
16462
16463
16464
16465
16466
16467
16468
16469
16470
16471
16472
16473
16474
16475
16476
16477
16478
16479
16480
16481
16482
16483
16484
16485
16486
16487
16488
16489
16490
16491
16492
16493
16494
16495
16496
16497
16498
16499
16500
16501
16502
16503
16504
16505
16506
16507
16508
16509
16510
16511
16512
16513
16514
16515
16516
16517
16518
16519
16520
16521
16522
16523
16524
16525
16526
16527
16528
16529
16530
16531
16532
16533
16534
16535
16536
16537
16538
16539
16540
16541
16542
16543
16544
16545
16546
16547
16548
16549
16550
16551
16552
16553
16554
16555
16556
16557
16558
16559
16560
16561
16562
16563
16564
16565
16566
16567
16568
16569
16570
16571
16572
16573
16574
16575
16576
16577
16578
16579
16580
16581
16582
16583
16584
16585
16586
16587
16588
16589
16590
16591
16592
16593
16594
16595
16596
16597
16598
16599
16600
16601
16602
16603
16604
16605
16606
16607
16608
16609
16610
16611
16612
16613
16614
16615
16616
16617
16618
16619
16620
16621
16622
16623
16624
16625
16626
16627
16628
16629
16630
16631
16632
16633
16634
16635
16636
16637
16638
16639
16640
16641
16642
16643
16644
16645
16646
16647
16648
16649
16650
16651
16652
16653
16654
16655
16656
16657
16658
16659
16660
16661
16662
16663
16664
16665
16666
16667
16668
16669
setting for MAC layer. From Anthony Merlino.
- apps/wireless/ieee802154/i8shark: Adds i8shark, a sniffer "adapter"
that captures all 802.15.4 traffic, packages it into a Wireshark ZEP
packet, and sends it to a host running Wireshark From Anthony
Merlino.
* System Utilities (apps/system)
- apps/system/ping and ping6: This commit removes the ping and ping6
commands from NSH and replaces then with the apps/system/ping and
apps/system/ping6 built-in commands. The NSH ping[6] commands had
to be removed because they violated the portable POSIX OS interface.
The apps/system/png and ping6 command uses the sem-standard
IPPROTO_ICMP and IPPROTO_ICMP6 socket interfaces.
* Platform-Specific Support (apps/platform)
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:
- Task Environment Creation: Fix an error in the duplication of the
child tasks environment in the special case where the parent's
environment was created, but then all of the variables were unset.
In that case, there is still an allocation in place but the size of
the allocation is zero. This case was not being handled correctly
when a child task attempts to create its environment and inherit the
zero-size partent environment. Noted by Anthony Merlino.
- timer_create(): Fix watchdog resource leak if cannot allocate a new
timer. From Bruno Herrera.
- OS Internal Functions: Internal OS functions should not return error
information via the user errno variable: This includes functions
like file_seek(), file_read(), file_write(), etc. The complete list
is too long to duplicate here (please refer to the ChangeLog for
details).
- OS Internal Functions: Not only should internal OS functions not
modify the errno variable, they should never introduce cancellation
points: psock_connect(), psock_listen(), psock_getsockopt(), etc.
The list is too long to duplicate here (please refer to the
ChangeLog for details).
- OS Internal Functions: Create OS internal versions of many
applications functions that were used by the OS. The new versions
differ from the application interfaces in that (1) they do not
return error information via the errno variable, and (2) they never
create cancellation points. This includes new internal interfaces
like nxsem_init() that is like sem_init(), etc. There are too many
to list here (see the ChangeLog for details).
- Task Exit: task_exithook.c fails to link if signals are disabled
because was unconditionally trying to send the SIGCHLD signal to the
parent in certain configurations. Noted by Jeongchan Kim.
- memalign(): Fix heap corruption caused by using unaligned chunk
size. Unaligned nodes generated by memalign later cause heap
corruptions when nodes are shrink further (for example, 24 bytes ->
8 bytes, when alignment is 16 bytes). From Jussi Kivilinna.
- SMP: In sched/sched/sched_cpuselect.c, in order to find the cpu
with the lowest priority thread, we have to remember the already
found lowest priority. Noted by Anonymous in Issue #75.
- spinlocks: Disable local interrupts in spin_setbit() and
spin_clrbit() in order to avoid a deadlock condition. From Masayuki
Ishikawa.
- atexit()/on_exit(): Clear atexit()/on_exit() function pointer
before calling it. On most archs, up_assert() calls exit() so
without this change, if atexit() function triggers an assertion we
are in endless loop. From Juha Niskanen.
* File System/Block and MTD Drivers:
- tmpfs: Fixed directory unlocking in tmpfs_opendir. From Dmitriy
Linikov.
- fcntl(): fcntl() did not return success fail for F_SETFL. Reported
by Jussi Kivilinna.
- tcdrain(): tcdrain() was recently added to the NuttX C library.
But there is a problem. The specification of tcdrain() requires
that it be a cancellation point. In order to do this, tcdrain was
moved from the C library into the OS and the addition cancellation
point hooks were added. In non-FLAT builds, access via system calls
is also now supported.
- FS FAT: Fix hard-fault when listing contents of FAT root. From
Jussi Kivilinna.
- procfs: Correct a problem that was causing an apparent directory to
be reported as a file instead of a directory by opendir. This
happened after adding these three new procfs entries: fs/block,
fs/mount, and fs/usage. Of course, there is no directory fs in this
case, only three files that have fs/ in their relative pathnames.
The logic was detecting that fs was the name of the enty to report,
but it was then declaring that fs was a file (because fs/block is of
type file). This was fixed by adding a check for matching lenghts.
i.e., if strlen(fs) != strlen(fs/block), then report fs as a
directory instead of a file.
- procfs: Fix uptime being clse to maximum 32-bit value in certain
config. From Juha Niskanen.
* Binary Loader:
- binfmt/: Don't schedule starthook if there are no constructors.
* Graphics/Display Drivers:
- LCD: ILI9341 initialize method not permitted to set errno.
* Networking/Network Drivers:
- Networking: net/netdev/netdev_ifconfig.c: Was not returning all of
the address info.
- Networking: In some cases, packets are still not sent behind the
router. I found that NuttX sends the ARP requests not to the router
but to the target. Mistake in file net/route/netdev_router.c. From
Aleksandr Kazantsev.
- SIOCGIFCONF and SIOCGLIFCONF IOCTL commands should only report on
network adatpors in the UP state.
- recvfrom(): Fix double leave_cancellation_point on error path.
From Jussi Kivilinna.
- send(): Verify that sock descriptor is valid. Fixes assertion when
using send on closed socket. From Jussi Kivilinna.
- sendto(): Remove assert check for null psock and buf input
pointers. Removes check as 'psock == NULL' altogether because that
checked for later in psock_send and psock_sendto. Change null check
for 'buf' so that it is handled same as in recvfrom.c (return
-EINVAL instead of assert). From Jussi Kivilinna.
- sockgetname() files need to include udp/udp.h and tcp/tcp.h or
otherwise NET_UDP_HAVE_STACK and NET_TCP_HAVE_STACK are undefined
and the logic is never compiled. Noted by Anthony Merlino.
- dup()/dup2(): There was a reference counting problem in the TPC
logic of net_clone(). net_clone() which is the common logic
underlying dup() and dup2() for sockets. When net_clone() calls
net_start_monitor() and net_start_monitor() returns a failure
(because the underlying TCP connection) then net_clone() must back
out the reference count on the structure. Problem noted by Pascal
Speck and this implementation of the solution is based on his
suggestion.
- close(): There was a possible recursion that could eventually
overflow the stack. The error occurred when closing the socket with
inet_close() while a socket callback was still queued. When the
socket callback was executed by devif_conn_event(), this resulted in
a call to psock_send_eventhandler() with TCP_CLOSE flag set which
then called tcp_lost_connection(). tcp_shutdown_monitor() then
called tcp_callback() again, which again called
psock_send_eventhandler(), and so on.... Noted by Pascal Speck.
Solution is also similar to a solution proposed by Pascal Speck.
- inet: Add check for protocol before handing out TCP and UDP sockets.
- IP Forwarding: Fixes typo that caused build error when IP
forwarding was enabled with CONFIG_NET_ICMPv6_NEIGHBOR enabled as
well. From Anthony Merlino.
- IP Forwarding: Do not add link layer header size to d_len inside
devif_forward(). From Anthony Merlino.
- TCP Networking: When CONFIG_NET_TCP_WRITE_BUFF=y there is a
situation where a NULL pointer may be dereferenced. In this
configuration, the TCP connection's 'semi-permanent' callback,
s_sndcb was nullified in tcp_close_disconnect. However, other logic
in tcp_lost_connection() attempt to use that callback reference
after it was nullifed. Fixed in tcp_lost_connectino() by adding a
NULL pointer change before the access. This was reported by Dmitriy
Linikov in Bitbucket Issue 72.
- UDP Broadcat: Fix some issues with regard to UDP broadcast
handling. This is Bitbucket Issue #77.
- ICMP: Fix an error in the poll logic. It was assumed that the
input parmeter pvconn was valid. It was not. Instead, the poll
logic must work like the sendto() and recvfrom() logic: It must
keep a copy of the conn structure in the private data.
- ICMPv6: Fixes several errors preventing icmpv6_radvertise.c from
being compiled. Fixes conversions to network byte order (namely
vlifetime, plifetime, mtu). IPv6 source address is set to
link-local IP address instead of the address in the netdev
structure. This is in compliance to RFC 4861. RA didn't work on
Linux before this change. Finally, router prefix and prefix length
are derived from the IPv6 address and netmask in the netdev
structure. This seems to make more sense than using a predefined,
separate prefix from the config. From Sakari Kapanen.
- ICMPV6: icmpv6_input() needs to set d_len to 0 after consuming echo
reply, otherwise, garbage will get sent out. From Anthony Merlino.
- ICMPV6: Fix an error in the poll logic. It was assumed that the
input parmeter pvconn was valid. It was not. Instead, the poll
logic must work like the sendto() and recvfrom() logic: It must
keep a copy of the conn structure in the private data.
- IGMPv2 Send: Fix incoming IGMP checksum calculation. From Louis
Mayencourt.
- ARP: Fix IGMP Ethernet address computation. From Louis Mayencourt.
* Wireless/Wireless Drivers:
- CC1101: CC1101 driver not permitted to set errno.
- 6LoWPAN: Correct an error in uncompressing multicast address.
- 6LoWPAN: Correct a bug in handling uncompressed frames (IPv6
dispatch). Adds a separate local variable, protosize, to keep track
of the size of thep protocol header.
- 6LoWPAN: Fix an endian-ness problem in 6LoWPAN address
decompression. From Anthony Merlino.
- 6LoWPAN: The logic that extracts interface identifier from the IP
address needs to be generalized to handle cases where the address is
not a link local address. From Anthony Merlino.
* Common Drivers:
- Serial: 16550 UART driver IOCTL method must not set errno; it must
return a negated errno value.
- LIS3DSH: Added the argument parameter (FAR void *arg) to the
interrupt handler provided by the LIS3DSH driver to fit the
definition for ISRs in xcpt_t. Changed the check for working queue
availability in lis3dsh interrupt handler to use work_available()
and not crash in case of an overrun. From Florian Olbrich.
- LIS2DH: Fixes for self-test. From Jussi Kivilinna.
- LIS2DH: Fix use of obsolete dbg macro. From Jussi Kivilinna.
- LIS331DL: LIS331DL driver not permitted to set errno.
- HTS221: Power-on sensor for loading calibration data. From Jussi
Kivilinna.
- MCP2515: Fix the MCP2515 Bit Rate Prescale calculation. Fix BRP
for SET_BITTIMING ioctl as well. From Alan Carvalho de Assis.
- STMPE811: Fix GPIO operation of STMPE811 driver.
1. STMPE811_GPIO_DIR was defined for register name and later was
redefined to be the pin direction mask for `stmpe811_gpioconfig`.
I decided to change register name to be STMPE811_GPIO_DIR_REG, and
keep pin direction mask STMPE811_GPIO_DIR, so that any external
code that already use this driver will be unchanged.
2. The STMPE811 register GPIO_DIR uses bit value 1 for output and 0
for input, but `stmpe811_gpioconfig` set the opposite.
3. The call to `stmpe811_gpiowrite` from inside of
`stmpe811_gpioconfig` leaded to deadlock.
From Dmitriy Linikov.
- BQ2429X: Add BATIO_OPRTN_SYSON for enabling BATFET after SYSOFF.
From Jussi Kivilinna.
* Simulation:
- Simulation: Serial and console drivers are not permitted to set
the errno.
* ARMv7-M:
- ARM Stack Check: Fix assert panic when both TLS and interrupt stack
are enable. From Jussi Kivilinna.
* Infineon XMC4xxx Drivers:
- XMC4 USIC: Kconfig was not selecting XMC4_USIC for USIC1. From Alan
Carvalho de Assis.
- XMC4 UART: Fix XMC4xxx USIC UART sginal to be high level when in idle.
From Alan Carvalho de Assis.
- XMC4 UART:xmc4_uart_configure() expects the channel# not uartbase as
an input parameter. From Alan Carvalho de Assis.
- XMC4 UART: Enable RX/TX status. From Alan Carvalho de Assis.
- XMC4 UART: The Alternative Receive Interrupt was not being
configured.
* Infineon XMC4xxx Boards:
- XMC4500-Relax: Setup max. freq. 120MHz and setup pull-up to UART
RXD pin. From Alan Carvalho de Assis.
* Microchip/Atmel SAMv7 Drivers:
- SAMv7: DAC and ADC drivers are not permitted to set the errno.
- SAMv7: Correct an error in RX DMA setup. From Manish Kumar Sharma.
- SAMv7 USB: It is necessary to disable pre-emption and interrupts
around a loop that copies TX data into the hardware in order to
avoid a TX data underrun condition. From Anthony Merlino.
* NXP/Freescale LPC31xx Drivers:
- LPC31xx: Serial and console drivers are not permitted to set
the errno.
* NXP/Freescale LPC43xx:
- lpc43xx: lpc43_adc.c was being selected by the build system wehn
DAC was selected.
* NXP/Freescale LPC43xx Drivers:
- LPC43xx Ethernet: Fix some backward logic setting full-duplex and
100mbps when autoconfiguration is disabled. Noted by Anonymous in
Issue #76.
- lpc43xx: UART_RX pins should be configured with input buffers
enabled. Otherwise it cannot be read. From Alexander Vasiljev.
* STMicro STM32:
- STM32 F2: Fixed build for STM32F20XX platforms when
CONFIG_STM32_DMACAPABLE is enabled. From Dmitriy Linikov.
- STM32 F4: Remove ltdc.h and dma2d.h. Those header files in that
location permitted inclusion into application space logic and,
hence, facilitated and encouraged calling into the OS and violating
the portable POSIX OS interface. The definitions in those header
files were move the appropriate location in the counterpart,
architecture specific files at arch/arm/src/stm32/dma2d.h and ltdc.h.
- STM32 L4: Build stm32l4_idle.c only if CONFIG_ARCH_IDLE_CUSTOM is
not enabled. From Jussi Kivilinna.
- STM32 F7: Remove ltdc.h and dma2d.h. Those header files in that
location permitted inclusion into application space logic and,
hence, facilitated and encouraged calling into the OS and violating
the portable POSIX OS interface. The definitions in those header
files were move the appropriate location in the counterpart,
architecture specific files at arch/arm/src/stm32f7/dma2d.h and
ltdc.h.
* STMicro STM32 Drivers:
- STM32: DAC and ADC drivers are not permitted to set the errno.
- STM32 ADC: Clear pending interrupts. From Mateusz Szafoni.
- STM32 CAN: Lower part of STM32 CAN driver
arch/arm/src/stm32/stm32_can.c uses all three hw tx mailboxes and
clears TXFP bit in the CAN_MCR register (it means transmission order
is defined by identifier and mailbox number).
This creates situation when order frames are put in upper part of
CAN driver (via can_write) and order frames are sent on bus can be
different (and I experience this in wild). Since CAN driver API
pretends to be "file like" I expect data to be read from fd the same
order it is written. So I consider described behaviour to be a bug.
Fixed by settin the TXFP bit in the CAN_MCR register (FIFO
transmit order). From comments by Alexey T, in Bitbucket Issue 73.
- STM32 HRTIM: Fix pclk calculation. From Mateusz Szafoni.
- STM32 HRTIM: Fix burst mode prescaler update. From Mateusz Szafoni.
- STM32 (alt) I2C: Ensure proper error handling. Injecting data
errors would cause the driver to continually reenter the isr with
BERR an RxNE. This fix allows the error to be cleared and
propagated to the waiting task. From David Sidrane.
- STM32: LTDC and DMA2D drivers are not permitted to set the errno.
- STM32 RTC: Workaround for potential subseconds race condition. In
all recent STM32 chips reading either RTC_SSR or RTC_TR is supposed
to lock the values in the higher-order calendar shadow registers
until RTC_DR is read. However many old chips have in their errata
this silicon bug (at least F401xB/C, F42xx, F43xx, L15xxE, L15xVD
and likely others): "When reading the calendar registers with
BYPSHAD=0, the RTC_TR and RTC_DR registers may not be locked after
reading the RTC_SSR register. This happens if the read operation is
initiated one APB clock period before the shadow registers are
updated. This can result in a non-consistency of the three
registers. Similarly, RTC_DR register can be updated after reading
the RTC_TR register instead of being locked."
- STM32 Serial: Do not stop processing input in SW flow-control
mode. From Juha Niskanen.
- STM32F33xxx ADC: Add some publicly visable interfaces and some
code to support injected channels. From Mateusz Szafoni.
- STM32F33xxx DMA: Add public interface to handle with DMA
interrupts. From Mateusz Szafoni.
- STM32F33xxx RCC: Fix CAN clock enable. From Mateusz Szafoni.
- stm32 F4 I2C: Ensure proper interrupt handling. Injecting data
errors that causes a STOP to be perceived by the driver, will
continually re-enter the isr with SB not set and BTF and RxNE set.
This changes allows the interrupts to be cleared and propagates a
I2C_SR1_TIMEOUT to the waiting task. From David Sidrane.
- STM32 L4 Serial: Do not stop processing input in SW flow-control
mode. From Juha Niskanen.
- STM32 F7: LTDC and DMA2D drivers are not permitted to set the errno.
- STM32 L4: DAC and ADC drivers are not permitted to set the errno.
- STM32 L4 DAC: Do not configure output pin if it is not used. From
Juha Niskanen.
- STM32 L4 RTC, PM: Small fixes to subseconds handling, ADC
power-management hooks
- STM32 F4 RTC: Fix reading alarm value that is more than 24h in
future. From Juha Niskanen
- STM32 L4 RTC: Fix reading alarm value that is more than 24h in
future. From Juha Niskanen
- STM32 L4 TIM: Fix compilation of timers with complementary outputs
when not PWM_MULTICHAN. From Juha Niskanen.
- STM32 L4 RCC: Restore backup-registers after backup-domain reset.
From Jussi Kivilinna.
- STM32 L4 RTC: Correct RTC_SSR and RTC_TR read ordering. In all
recent STM32 chips reading either RTC_SSR or RTC_TR is supposed to
lock the values in the higher-order calendar shadow registers until
RTC_DR is read. Change the register read ordering to match this and
don't keep a workaround for a hypothetical race condition (not in
any L4 errata, lets for once assume ST's silicon works as it is
documented...)
- STM32 L4 RTC: Init mode was never exited because nested locking in
rtc_synchwait() disabled backup domain access. From Juha Niskanen.
- STM32 L4 RTC: Use backup register magic value instead of INITS
bit. The INITS (bit 4) of RTC_ISR register cannot be used to
reliably detect backup domain reset. This is because we can operate
our device without ever initializing the year field in the RTC
calendar if our application does not care about correct date being
set. Hardware also clears the bit when RTC date is set back to year
2000. From Juha Niskanen.
- STM32 L4 RTC: Put back the SSR race condition workaround. ST has
confirmed that the issue has not been fixed, and that it applies to
STM32 L4 too (was not in errata sheets due to documentation bug) See
discussion: https://community.st.com/thread/43710-issue-with-rtc-maximum-time-resolution .
From Juha Niskanen.
- STM32 F7 BBSRAM: Avoid assert in stm32_bbsram_savepanic. If panic
happens before stm32_bbsram is initialized, stm32_bbsram_savepanic
caused additional assert panic. Function has null pointer check, so
drop DEBUGASSERT. From Jussi Kivilinna.
- STM32 F7 I2C: fix I2C_M_NORESTART handling. From Jussi Kivilinna.
- STM32 F7 I2C: Restore bus frequency after I2C reset. Copy
frequency restoration fix from STM32L4 I2C driver to STM32F7 I2C
driver. From Jussi Kivilinna.
- STM32 F7 RTC: Fix reading alarm value that is more than 24h in
future. From Juha Niskanen
* STMicro STM32 Boards:
- STM32F334-DISCO: Add missing ram_vectors configuration in linker
script. From Mateusz Szafoni.
- Nucleo-F334R8: Add missing ram_vectors configuration in linker
script. From Mateusz Szafoni.
- Nucleo-F334R8: Add Missing ADC trigger configuration tot he highpri
configuration. From Mateusz Szafoni.
- STM3240G-EVAL: The timer frequencies (BOARD_TIMx_FREQUENCY) are
incorrectly defined in board.h. Since the APB prescalers are set to
divide by 4 and 2 respectively, the frequencies should be "2xAPBx"
as said in the comment. The correct frequencies are already defined
but as STM32_APBx_TIMx_CLKIN. From Mattias Edlund.
- STM32F429i-DISCO: The ltdc configuration has been deleted because
it violated the portable POSIX OS interface. It used
apps/examples/ltdc and include ltdc.h and dma2d.h which were also
removed for the same reason.
* ZiLOG Z80
- configs/z80sim and xtrs: Serial driver lower halfs ioctl methods
should return a negated errno value, not set the errno variable.
- z80 Make.defs: Fixes dependency generation with newest SDCC
compiler.
- configs/z80sim: Fix a naming problem. Also, don't try to build the
serial driver if CONFIG_NFILE_DESCRIPTOR=0.
- Z80: Makefile fix for use with current SDCC.
* Build System
- configs/: All defconfig filess that include
CONFIG_NET_ICMPv6_SOCKET=y need to select CONFIG_SYSTEM_PING6=y and
deselect CONFIG_DISABLE_POLL.
- configs/: All NX configuration... Because of recent changes to
libnx/nxfonts, Supported bit per pixel must be separated specified
for NXFONTs too and need to match the select BPP for NX.
- Build system: Fix CONFIG_BUILD_KERNEL logic directories that have
ubin and kbin subdirectories. Conditional logic was fine for
CONFIG_BUILD_FLAT and CONFIG_BUILD_PROTECTED but generated useless
dependencies if CONFIG_BUILD_KERNEL.
* C Library/Header Files:
- libc/stdio: Build the lib_noflush() and lib_snoflush() stubs even
if CONFIG_FILE_DESCRIPTORS=0. They may still be needed.
- libc and libnx: When the libraries are built into two libraries, a
user space library and a OS space library (as in the PROTECTED and
KERNEL build). Then the user space library must not use the OS
internal interfaces; similarly, the OS must avoid using the
userspace interfaces so that it does not muck the errno value or
create spurious cancellation points.
- libc/match: Use of exp() vs expf() in logf() caused function to be
slow. From Alan Carvalho de Assis.
- libnx: Fixes a memory leak that is caused because the client message
queue is not unlinked after the client disconnects from the NX
server. From Masayuki Ishikawa.
- sscanf(): Fix sscanf() character conversion (%c): do not add '\0' at
the end as for strings, cause, for example, parsing one character
will fill two bytes: character itself and zero one '\0' after it, so
will overflow one byte variable argument and corrupt memory for
variables allocated after it. From Oleg Evseev.
* Tools
- tools/: configure.sh and configure.c should redirect stdout to
/dev/null but should not suppress stderr output.
* NSH: apps/nshlib:
- apps/nshlib/: Avoid truncating the strcmp result in the parser
into a unsigned char variable. nshlib/nsh_netcmds.c: Check for
valid hostip before using it. From Bruno Herrera.
- apps/nshlib/: Fix resouce leak in 'dd' commenad when 'if=' or
'of=' params are repeated in the command line. For example:
dd if=/dev/null if=/dev/zero of=/dev/null or
dd if=/dev/zero of=/dev/zero of=/dev/null. From Bruno Herrera.
- apps/nshlib: This commit eliminates the ping and ping6 commands
from NSH and replaces them with 'built-in' commands at
apps/system/ping and ping6. The original NSH version of ping[6]
commands violated the portable POSIX interface and, hence, had to
be removed. The new system/ping and ping6 built-in commands uses
the new IPPROTO_ICMP AF_INET and IPPROTO_ICMP6 AF_INET6 datagram
sockets to implement ping.
- apps/nshlib: Fix parsing of empty strings when CONFIG_NSH_CMDPARMS
is not defined. Problem noted by Juha Niskanen.
* Examples/Tests: apps/examples:
- All configurations that use NXIMAGE or NXHELLO must select
NX_MULTIUSER. All configurations that use examples/nxterm must
16671
16672
16673
16674
16675
16676
16677
16678
16679
16680
16681
16682
16683
16684
16685
16686
16687
16688
16689
16690
16691
16692
16693
16694
enable CONFIG_LIB_BOARDCTL.
- All configurations that use NXLINES must select NX_MULTIUSER. All
configurations that use the NX server need to have larger POSIX
messages.
- apps/examples/adc: Fix g_adcstate.count initialization. From
Masayuki Ishikawa.
- apps/examples/elf: Remove low-level interfaces and replace with
call to exec().
- apps/examples/nxflat: Remove low-level interfaces and replace with
call to exec().
- examples/ostest: Works around a bug in printf() when cancellation
points are enabled. printf() is a cancellation point because it
calls write(). This is correct according to OpenGroup.org.
However, printf holds the stdio library semaphore when it is
canceled and this leaves the semaphore in a bad state. No fix for
the printf bug yet.
- apps/examples/nx: The NX example no longer supports single user
mode.
- apps/examples/nxtext: The nxtext example no longer supports single
user mode.
- apps/examples/nxhello now supports only multiuser mode.
- apps/examples/nximage now supports only multiuser mode.
- examples/nxlines: Now supports only multiuser mode.
* Network Utilities: apps/netutils:
- apps/netutils/ftpc: Fix some crazy comparisons to determine is a
file is an absolute path. Noted by Anthony Merlino.
* System Utilities (apps/system)
- apps/system/i2ctool: Fixed i2ctool write operation in `no restart`
mode (flag `-n`). It seems that I2C driver has changed a bit since
i2ctool was written, so now i2ctool sends repeated start even if
16705
16706
16707
16708
16709
16710
16711
16712
16713
16714
16715
16716
16717
16718
16719
16720
16721
16722
16723
16724
16725
16726
16727
16728
16729
16730
16731
16732
16733
16734
16735
16736
16737
16738
16739
16740
16741
16742
16743
16744
16745
16746
16747
16748
16749
16750
16751
16752
16753
16754
16755
16756
16757
16758
16759
16760
16761
16762
16763
16764
16765
16766
16767
16768
16769
16770
16771
16772
16773
16774
16775
16776
16777
16778
16779
16780
16781
16782
16783
16784
16785
16786
16787
16788
16789
16790
16791
16792
16793
16794
16795
16796
16797
16798
16799
16800
16801
16802
16803
16804
16805
16806
16807
16808
16809
16810
16811
16812
16813
16814
16815
16816
16817
16818
16819
16820
16821
16822
16823
16824
16825
16826
16827
16828
16829
16830
16831
16832
16833
16834
16835
16836
16837
16838
16839
16840
16841
16842
16843
16844
16845
16846
16847
16848
16849
16850
16851
16852
16853
16854
16855
16856
16857
16858
16859
16860
16861
16862
16863
16864
16865
16866
16867
16868
16869
16870
16871
16872
16873
16874
16875
16876
16877
16878
16879
16880
16881
16882
16883
16884
16885
16886
16887
16888
16889
16890
16891
16892
16893
16894
16895
16896
16897
16898
16899
16900
16901
16902
16903
16904
16905
16906
16907
16908
16909
16910
16911
16912
16913
16914
16915
16916
16917
16918
16919
16920
`no restart` flag (-n) was passed to it. From Dmitriy Linikov.
NuttX-7.24 Release Notes
------------------------
The 124th release of NuttX, Version 7.24, was made on March 2, 2018,
and is available for download from the Bitbucket.org website. Note
that release consists of two tarballs: nuttx-7.24.tar.gz and
apps-7.24.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:
- SMP: Introduce spin_lock_irqsave() and spin_unlock_irqrestore().
These APIs are simplified version of enter_critical_section()
and leave_critical_section() to protect data (e.g. registers) in
SMP mode. By using these APIs inside drivers, performance will
be improved. From Masayuki Ishikawa.
- System Timer: Replace critical section APIs with spinlock APIs.
(64bit only). If SMP=n or SMP=y && SPINLOCK_IRQ=n, this works
in the same way as before. If SMP=y && SPINLOCK_IRQ=y, performance
will be improved. From Masayuki Ishikawa.
- POSIX Timers: Replace critical section APIs with spin lock APIs in
clock_gettime.c. This change will improve performance for SMP
systems but nothing changes for non-SMP systems. In SMP mode,
the running TCB is not always at the g_readytorun.head. From
Masayuki Ishikawa.
- SMP: Introduce spin_lock_wo_note() and spin_unlock_wo_note(). These
APIs are used in sched_note.c to protect instrumentation data. The
difference between these APIs to exsiting spin_lock() and
spin_unlock() is that they do not perform instrumentation to avoid
recursive call when SCHED_INSTRUMENTATION_SPINLOCKS=y. From
Masayuki Ishikawa.
- Interrupts: Add a configuration option to show interrupt
information via a procfs file.
* File Systems/Block and MTD Drivers
- VFS: Add support for truncate() and ftruncate().
- FAT, SmartFS, UserFS, UnionFS, TmpFS, NFS: Add truncate() support.
- FAT. Effectively handles the situation when a new file position is
within the current sector. Accelerates the work of the FS with a
multitude of operations to write small pieces of data within the
current sector. From Aleksandr Vyhovanec.
* Graphics/Display Drivers:
- HiletGo OLED: Add configuration support for HiletGo SSD1306 OLED.
- lcd/ft80x: This commit adds an FTDI/BridgeTek FT80x GUI driver. It
is untested (I don't even have hardware yet) and, hence, it is
marked as EXPERIMENTAL).
* Networking/Network Drivers:
- 6LoWPAN: Adds configuration options for specifying preloaded
address contexts for compression From Anthony Merlino.
- TCP: Introduce tcp receive window control based on I/O buffer.
NOTE: The algorithm is still experimental but useful for http
streaming. From Masayuki Ishikawa.
- UDP: Add an implementation of UDP write buffering.
- Routing Tables: Adding ftruncate() support eliminates an issue
in file-based routing table management system.
- Telnet: Add support for Telnet character mode From Masayuki
Ishikawa.
* Other Common Device Drivers:
- drivers/input/ft5x06.c: Add a driver for the FT5x06 capacitive,
multi-touch, touchscreen controller.
- drivers/input/ft5x06: Add a polled mode of operation for the FT5x06
in attempt to work around the fact that the LPCXpresso-LPC54628
chose a non-interrupt pin for the FT5x06 interrupt. Driver is still
not yet functional.
- drivers/power/bq2429x.c: Add trickle charging mode From Juha
Niskanen.
- drivers/sensors: Add support to MAX44009 ambient light sensor.
From Juha Niskanen.
- drivers/sensors: Added support for LIS3DH accelerometer sensor.
From Matt Thompson.
- drivers/eeprom: EEPROM driver for AT24xx compatible EEPROMs.
From Sebastien Lorquet.
* Simulation
- sim: Add support for a RAM MTD driver and initialization for use
with SmartFS.
- sim: Add support for testing NXFFS.
* ARM:
- ARMv7-A, ARMv7-R, ARMv7-M: Add atomic read-add-write and
read-subtract-write functions.
* Infineon XMC4xxx:
- XMC4xxx: Refactor PLL setup, refactored PLL/CLK config, easier,
checks for correctness, call go_os_start if STACK_COLORIZED, smarter
config of EXTCLK output freq. From David Alessio.
* Infineon XMC4xxx Boards:
- Add FPU to xmc4 ostest. Remove +x from makefiles, preserve
.gdbinit across make clean, add FPU support to ostest on xmc4,
add FPU test to ostest on xmc4 From David Alessio.
* Microchip/Atmel SAMD/L Drivers:
- SAMD: SAMD External Interrupt Controller (EIC) support From Matt
Thompson.
- SAMD/L: Added Analog Comparator basic initialization From Matt
Thompson.
- SAMD/L: Added FDPLL clock support. Fixed sequence of OSC32K
calibration setup. From Matt Thompson.
- SAMD/L: Added loading factory USB calibration data from NVRAM.
From Matt Thompson.
- SAMD/L: Added experimental DMA support to SPI driver. spi_exchange()
uses a pair of DMA channels for TX and RX. From Matt Thompson.
* Microchip/Atmel SAM3/4 Boards:
- Flip&Click SAM3X: Add board support for the Mikroe Flip&Click
SAM3X.
- Flip&Click SAM3X: Adds basic board support for the HiletGo OLED.
* Microchip PIC32MZ
- PIC32MZEF: Add architectural support for the PIC32MZEF family.
* Microchip PIC32MZ Boards
- Flip&Click PIC32MZ: Adds board support for the Mikroe Flip&Click
PIC32MZ board.
- Flip&Click PIC32MZ: Add board support for HiletGo OLED.
- Flip&Click PIC32MZ: Add an nxlines configuration for use in
testing the custom HiletGo Click board.
* NXP Freescale LPC43xx Drivers:
- LPC43xx: Adapt LPC176x RTC driver for the LPC43xx. From Gintaras
Drukteinis.
- LPC43xx: Add Windowed Watchdog Timer (WWDT) driver. Tested on
LPC4357 but should be compatible for all LPC43xx MCUs.
From Gintaras Drukteinis.
- Leverage the LPC54xx SD/MMC back to the LPC43xx (where it came from
originally).
* NXP Freescale LPC43xx Boards:
- Bambino-200e: Add LPC43 SDMMC board support to Bambino-200E. From
Alan Carvalho de Assis.
* NXP Freescale LPC54xx:
- LPC546xx: Added basic architectural support for the LPC546xx
family.
* NXP Freescale LPC54xx Drivers:
- LPC546xx: Basic NSH configuration includes support for UARTs,
SysTick timer, GPIOs, LEDs, and buttons
- LPC546xx: Additional drivers include EMC, I2C, Ethernet
- LPC546xx: Implement GPIO interrupt support.
- LPC546xx: And unverified SPI driver is included.
- LPC546xx: Ported LPC1788 LCD driver to use the LPC54xx pin.
- LPC546xx: Bring in LPC43xx SD/MMC driver from
https://github.com/Smoothieware/smoothie-nuttx/tree/master/nuttx/arch/arm/src/lpc43xx
and adapt for use with the LPC43xx
- LPC546xx: Add DMA driver ported from the LPC43xx GPDMA driver.
- LPC546xx: Bring in WWDT driver from LPC43.
- LPC546xx: Add an RTC driver and a RTC character driver lower half.
- LPC546xx: Add support for a random number generator.
- LPC546xx: Add an Ethernet driver.
* NXP Freescale LP54xx Boards:
- LCXpresso-LPC54628: Added support for the LPCXpresso-LPC54628
board. The initial bring-up used a basic NSH port.
- LCXpresso-LPC54628: On-board SDRAM is also supported
- LCXpresso-LPC54628: Add support for I2C2 and for the I2C tool to
the NSH configuration.
- LCXpresso-LPC54628: Add support for the USER button. Enable the
apps/examples/button test in the NSH configuration.
- LCXpresso-LPC54628: Add the fb configuration for testing the LCD.
- LCXpresso-LPC54628: Add support for the the FT5x06 touchscreen
controller. Enable the driver as well as the apps/examples
touchscreen test.
- LCXpresso-LPC54628: Add an NxWM configuration.
- LCXpresso-LPC54628: Add logic to bring up SDMMC.
- LCXpresso-LPC54628: Add logic to register the RTC character driver
if it is enabled. Enable the RTC and RTC character driver in the
NSH configuration.
- LCXpresso-LPC54628: Add a netnsh configuration that was be used to
test the Ethernet driver.
- LCXpresso-LPC54628: Add LittlevGL graphics demo configuration.
* On Semiconductor LC823450
- LC823450 SMP improvements: (1) Apply irq_spin APIs to
modifyregXX, (2) Do not use modifyreg32() to enable Mutex, (3)
Modify IRQ control for i2s. Apply irq_spin APIs to
dma/syscontrol/usbdev. From Masayuki Ishikawa.
- LC823450: LC823450 http streaming improvements: (1) Use spinlock
APIs in lc823450_gpio.c. (3) Fix a potential race condition in
up_enable_irq(), (3) Use spinlock APIs instead of critical section
APIs, (4) Enable HRT_TIMER in lc823450_timerisr.c. (5) Use spinlock
APIs instead of critical section APIs. (6) Fix race conditions in
dma/usbdev. From Masayuki Ishikawa.
- LC823450: Introduce DVFS. This version only supports manual mode
and Vdd1 is fixed to 1.2V. From Masayuki Ishikawa.
* On Semiconductor LC823450 Drivers
16924
16925
16926
16927
16928
16929
16930
16931
16932
16933
16934
16935
16936
16937
16938
16939
16940
16941
16942
16943
16944
16945
16946
16947
16948
16949
16950
16951
16952
16953
16954
16955
16956
16957
16958
16959
16960
16961
16962
16963
16964
16965
16966
16967
16968
16969
16970
16971
16972
16973
16974
16975
16976
16977
16978
16979
16980
16981
16982
16983
16984
16985
16986
16987
16988
16989
16990
16991
16992
16993
16994
16995
16996
16997
16998
16999
17000
- LC823450: Refactor timer driver. Add MTM timer APIs for DVFS.
Introduce up_rtc_gettime() for CONFIG_RTC_HIRES. Introduce idle
time calculation in DVFS. Also, DVFS autonomous mode based on CPU
idle time is supported. NOTE: voltage control is still disabled.
From Masayuki Ishikawa.
* On Semiconductor LC823450 Boards
- LC823450-XGEVK: I2S interrupt will be handled on CPU0 with this
change. Assign CPU1 to lpwork. This change will improve load
balancing for networking with RNDIS. From Masayuki Ishikawa.
- LC823450-XGEVK: Enable SPINLOCK_IRQ and NXPLAYER in rndis. From
Masayuki Ishikawa.
- LC823450-XGEVK: LC823450 http streaming improvements: (1) In SMP
mode, H/W interrupts should be handled on CPU0 to avoid deadlocks.
(2) Call up_enable_irq() to assign CPU0 for IRQ handling. (3)
Enable HRT_TIMER, LC823450_MTM0_TICK, SPINLOCK_IRQ, (4) Enable
NET_TCP_RWND_CONTROL, NXPLAYER_HTTP_STREAMING_SUPPORT (rndis only)
From Masayuki Ishikawa.
- LC823450-XGEVK: Enable DVFS in lc823450_bringup.c. Enable DVFS
in audio and rndis. Add Telnet character mode to rndis. From
Masayuki Ishikawa.
- LC823450-XGEVK: Explicitly assign I2S IRQ handling to CPU0. From
Masayuki Ishikawa.
- LC823450-XGEVK: Enable RTC_HIRES instead of RTC_DATETIME (audio/
rndis). Disable TCP_WRITE_BUFFERS and change SCHED_LPWORKPRIORITY
(rndis). Update SMP and DVFS related part. From Masayuki Ishikawa.
* STMicro STM32:
- STM32 F7: Add support for the STM32F72x/73x family. From Bob
Feretich.
* STMicro STM32 Drivers:
- STM32 HRTIM: Add interface to change outputs SET/RST configuration.
From Mateusz Szafoni.
- STM32 HRTIM: Add interface to get timer clock frequency,
calculation, add compare/capture registers significant bits
checking. From Mateusz Szafoni.
- STM32 HRTIM: Add interface to set timer frequency, fix slave timers
reset configuration, change POWER_INFO to TIMER_INFO From Mateusz
Szafoni.
- STM32 HRTIM: Add repetition support and fix enum overflow From
Mateusz Szafoni.
- STM32 HRTIM: Add HRTIM push-pull mode configuration. From
raiden00pl.
- STM32 FLASH: Add progmem support for STM32L15XX From Juha Niskanen.
* STMicro STM32 Boards:
- configs/photon: Adds BOARD_TIMn_FREQUENCY macros From Anthony
Merlino.
- configs/indium-f7: Adds support for the RAF Research Indium-F7
board. From Bob Feretich.
- Rename the configs/stm32f0discovery board directory to
configs/stm32f051-discovery. There are others stm32f0discovery
boards with different MCUs and different peripherals on the board.
From Alan Carvalho de Assis.
- configs/stm32f072b-discovery: Adds support for stm32f072b-disco
board. This is the board. I added the LEDs of this board and tested
the compilation. From Alan Carvalho de Assis.
- configs/stm32f103-minimum: Add AT24 EEPROM support on STM32F103-
Minimum board From Alan Carvalho de Assis.
- configs/stm32f103-minimum: Add support to BMP180 on BluePill
(stm32f103-minimum) board. From Alan Carvalho de Assis.
- configs/stm32f334-disco: Add buck converter and boost converter
logic. From Mateusz Szafoni.
- configs/stm32f103-minimum: Add zerocross support to STM32F103-
Minimum board From Alan Carvalho de Assis.
- configs/stm32f103-minimum: Add OLED SSD1306 support to
STM332F103-Minimum From Alan Carvalho de Assis.
- configs/stm32f103-minimum: Add board support to MAX6675 Thermocouple
sensor From Alan Carvalho de Assis.
- configs/stm32f746g-disco: Add stm32f746g-disco Ethernet configuration.
Add USART1 support (connected to the USB virtual serial port) From
Louis Mayencourt.