* remove stdio checks in serial init if no console is available
* STM32WL fix set preamble length to 8
* Add target support for XDOT_MAX32670
* TARGET_STM: only mask CAN rx interrupt after rx interrupt, not all CAN interrupts
* Sleep Radio in between DC scheduled
* Nuvoton HUSBD support endpoint write ZLP
* USBCDC: support ZLP
* Don't overlap STM32 FDCAN RAM sections
* allow to override antenna gain
* TFM: Fix undeclared function tfm_ns_interface_init
ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
* NUVOTON: CAN: Fix filter mask
NOTE: This fix only targets CAN (M453/M487), not CAN-FD (M467).
NOTE: NUC472 CAN doesn't support filter.
* NUVOTON: CAN: Fix Rx interrupt doesn't work
Major modifications:
1. Handle Rx interrupt based on Message Object interrupt (CAN_IIDR=0x0001~0x0020) instead of CAN_STATUS.RxOK
2. Also handle Tx interrupt following above for consistency
Other related modifications:
1. Fix signature type error in CAN_CLR_INT_PENDING_BIT()
2. Add CAN_CLR_INT_PENDING_ONLY_BIT() which doesn't clear NewDat flag so that user can fetch received message in thread context
NOTE: This fix only targets CAN (NUC472/M453/M487), not CAN-FD (M467).
* NUVOTON: CAN: Fix Message Object number for Tx and recognition of Rx interrupt
1. The same Message Object number cannot use for both Tx and Rx simultaneously.
For Tx, Message Object number 31 is reserved instead of 0.
For Rx, Message Object numbers 0~30 are used and for filters.
2. NewDat bit (CAN_IsNewDataReceived()) isn't exclusive to Rx.
Recognize Rx interrupt by Message Object number other than 31.
NOTE: This fix only targets CAN (NUC472/M453/M487), not CAN-FD (M467).
* NUVOTON: CAN: Fix filter mask being zero
On mask being zero, it means any match, not exact match.
NOTE: This fix only targets CAN (M453/M487), not CAN-FD (M467).
NOTE: NUC472 CAN doesn't support filter.
* Allow custom TCXO control parameter
Allow custom TCXO control parameter
* NUVOTON: EMAC: Fix undeclared function mbed_error_printf
ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
* NUVOTON: AnalogIn: Fix undeclared function gpio_set
ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
* NUVOTON: CAN: Fix undeclared function gpio_set
ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
* NUVOTON: AnalogOut: Fix undeclared function gpio_set
ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
* NUVOTON: SPI: Fix undeclared function gpio_set
ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
* NUVOTON: I2C: Fix undeclared function gpio_set
ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
* NUVOTON: Serial: Fix undeclared function gpio_set
ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
* Add separate flags for I2C slave transfer in progress
FixesARMmbed/mbed-os#15498
Adds 2 boolean flags to the STM32 `i2c_s` object
to indicate whether a transfer is in progress,
separate from the existing "transfer pending" flags.
`i2c_slave_write`, `i2c_slave_read` and their associated callbacks
are modified to use these flags in addition to the pending flags.
The original behavior of the pending flags is preserved.
* ESP8266: Fix accessing uninitialized variable
* Added missing delete
* Add ability to change number of status registers for macronix QSPIF devices
* correct scan parameters types
* skip CRC when initializing TDBStore
Problem: The build_ram_table() function of TDBStore loops over every entry, calculates the checksum and compares them to the stored checksum in the entry header to ensure integrity. For larger TDBStores (e.g. 8 MiB or more) in external single-SPI flash devices this check can take very long, thus rendering it unusable in some cases.
Solution: The suggested solution skips the time consuming CRC of the data. After reading the key and calculating its CRC, it sets next_offset to the beginning of the next entry, thereby skipping the data. While this skips the integrity check, it significantly reduces the initial building of the RAM table.
The data CRC can be enabled or disabled with a compiler flag.
Contribution is provided on behalf of BIOTRONIK.
* Added missing check for replay protection pointer before allocating new variable
Problem: If a key with write-once flag is being set in a SecureStore without rollback-protection store (i.e. _rbp_kv == NULL), additional memory will be allocated for the variable _ih->key. The memory will not be deleted, though, as the delete in line 434 only happens if a rollback-protection store exists (i.e. _rbp_kv != NULL)
Solution: Only allocate the memory if _rbp_kv != NULL
Contribution is provided on behalf of BIOTRONIK.
* Increase AT timeout to 10s in AT_CellularSMS::send_sms
For some devices sending can be slow (as an example see SIM800, it can be up to 60s), command is being run properly but default timeout is returning an invalid error.
See https://www.elecrow.com/wiki/images/2/20/SIM800_Series_AT_Command_Manual_V1.09.pdf
* Increase AT timeout to 10s in AT_CellularSMS::get_sms
When SMS list is big and baudrate is not fast enough, with default timeout we can suffer from timeout error while getting a sms because method is parsing the full list and this takes long.
* Fix AT_CellularSMS::list_messages breaking in text mode when CRLF is contained in SMS payload text
When parsing SMS, it can happen that we receive CRLF in the SMS payload (happened to me when receiving provider texts).
As an example, we can receive:
"""
Hello <CR><LF>
World!
"""
With previous implementation, second consume_to_stop_tag was stopping in <CR><LF> and rest of the code was failing for obvious reasons.
With this commit we consume the full payload as bytes.
* Add missing SPDX identifier to a bajillion Nuvoton source files + some others
* More license fixes, upgrade M451 legacy PinNames.h, add MCU description
* Fix some more legacy pin names
---------
Co-authored-by: Jost, Chris <79271064+chrJost@users.noreply.github.com>
Co-authored-by: Charles <hallard04@free.fr>
Co-authored-by: Leon Lindenfelser <llindenfelser@multitech.com>
Co-authored-by: Pavel Sorejs <sorejs@gmail.com>
Co-authored-by: cyliang tw <cyliang@nuvoton.com>
Co-authored-by: jmcloud <jmcloud@tesla.com>
Co-authored-by: Chun-Chieh Li <ccli8@nuvoton.com>
Co-authored-by: Adam Gausmann <adamg@esdemc.com>
Co-authored-by: Mingjie Shen <shen497@purdue.edu>
Co-authored-by: Matthias Goebel <matthias.goebel@biotronik.com>
Co-authored-by: danielzhang <danielzhang@mxic.com.cn>
Co-authored-by: Mathieu Camélique <mathieu.camelique@edu.hefr.ch>
Co-authored-by: David Alonso de la Torre <davidalto97@gmail.com>
* Fix PWM API for reading microseconds on LPC1768
* Fix semihosting related compile errors, fix pwm deinit
* Fix some mistakes, fix PWM frequency adjustment
* Fix a few more issues
* Fix teensy4 build
* Try and fix SCLK clock period issue for MIMXRT, add additional SPI pinmappings
* Add full UART pinmapping
* Make more robust to calling spi_format() after spi_frequency()
* Fix style
---------
Co-authored-by: Jamie Smith <jsmith@relativityspace.com>
* Start on documenting features and components
* Missed some renames
* Go through all cellular and 802.15.4 modules
* Fix build
* Fix style
* Update copyright year
* Fix null pointer dereferencing
Add null check for return values of functions that are mostly (but not
always) checked for null.
E.g., since 98% of calls to protocol_stack_interface_info_get_by_id
check for null, it is likely that the function can return null values in
some cases, and omitting the check could crash the program.
* Update MAX32660 peripheral drivers with final ones that use by SDK
* Apply MAX32660 delta
Update mbed hal function as per of SDK update
Signed-off-by: Sadik.Ozer <sadik.ozer@analog.com>
* M2354: Fix debug failure in Mbed Studio
In Mbed Studio, debugging, based on pyOCD, requires Mbed OS application code starting on the sector boundary.
Modification list:
1. Update TF-M import assets with MCUboot header padding to sector aligned
2. Following above, change header size argument (-H) in wrapper.py command line
3. Following below, fix min-write-size (--align) to 4 (per flash_area_align()) in wrapper.py command line
https://docs.mcuboot.com/design.html#image-trailer
Related issue:
https://github.com/ARMmbed/mbed-os/issues/15417
* Do not clear interrupt flag during initialization
This causes issue for repeaded initialization while using BufferedSerial mode
Signed-off-by: Sadik.Ozer <sadik.ozer@analog.com>
* MAX32660, MAX32670 UART performance improvement
Signed-off-by: Sadik.Ozer <sadik.ozer@analog.com>
* Handle negative values passed to close()
Calling close() with negative numbers causes out-of-bounds indexing of the filehandles array. For example, this can happen if open() returns an error and the value is later passed to close().
* Moved a { to the same line as if
Moved a { to the same line as if
* add nullpointer check in LWIP::socket_close
* Fix crash when using FDCAN3 RX IRQ on STM32G473 (and others)
* connectivity: drivers: Update Nuvoton M467 EMAC DMA_IE ctl
In IRQ Handler, to disable some interrupt type of DMA error.
It could avoid unexpected repeated interrupt.The masked bit of
DMA_IE could be recovered in next EMAC IRQ event.
Signed-off-by: cyliang tw <cyliang@nuvoton.com>
* Add workaround for G474 hardfault
* update drivers STM32WL CUBE V1.3.0
* Changed static to weak
* Fix: Do not disable SPI for manual drive mode during transaction setup
It has been reported that disabling SPI module causes glitch for manual SS drive mode
Signed-off-by: Sadik.Ozer <sadik.ozer@analog.com>
* make cellular event queue size configurable
update unit tests
---------
Signed-off-by: Sadik.Ozer <sadik.ozer@analog.com>
Signed-off-by: cyliang tw <cyliang@nuvoton.com>
Co-authored-by: Mingjie Shen <shen497@purdue.edu>
Co-authored-by: Ahmet Polat <Ahmet.Polat@maximintegrated.com>
Co-authored-by: Sadik.Ozer <sadik.ozer@analog.com>
Co-authored-by: Chun-Chieh Li <ccli8@nuvoton.com>
Co-authored-by: alrvid <126816223+alrvid@users.noreply.github.com>
Co-authored-by: Jost, Chris <79271064+chrJost@users.noreply.github.com>
Co-authored-by: Joseph Duchesne <joseph@avidbots.com>
Co-authored-by: cyliang tw <cyliang@nuvoton.com>
Co-authored-by: Maxim Markin <mak22223@ya.ru>
Co-authored-by: Charles <hallard04@free.fr>
Co-authored-by: Lukas Karel <lukas.karel@world-direct.at>
* fix STM32L1 FLASH_SIZE for cat.3 devices with DEV_ID 0x436
* Fix mesh connect semaphore not releasing causing blockage
* Add support of NSAPI_ICMP sockets in Nanostack
* STM32F1: add MCU_STM32F103xD support
* STM32F1: add MCU_STM32F103xG support
* test: Disable failing tests due to echo server
Some tests are failing as echo.mbedcloudtesting.com is not serving TLS
requests anymore.
Signed-off-by: Saheer Babu <saheer.babu@arm.com>
* Check CAN DLC length value
* Fix default interface ID only being used partially
If user sets the default interface ID for a socket (e.g. using setsockopt
with SOCKET_INTERFACE_SELECT), the default interface should take over
other interface selection mechanisms as a interface is bound to the socket.
This applies for both IPv6 local and global scopes for unicast messages
but not for multicast messages as these are bound to a multicast interface
using SOCKET_IPV6_MULTICAST_IF socket option.
* Targets: NXP: IMXRT: Fixed GCC_ARM lds syntax.
Signed-off-by: Yilin Sun <imi415@imi.moe>
* CAN: read only up to 8 bytes
If HAL implementation writes more than 8 bytes of data, error immediately.
CANMessage defines only 8 bytes of data, lenght cannot be > 8.
This fixes https://github.com/ARMmbed/mbed-os/issues/15361
Signed-off-by: Martin Kojtal <martin.kojtal@arm.com>
* STM32F303xC: add RAM_CCM in GCC linker script
* fix(drivers/emac): Remove incorrect RMII RX ER initialization
* fix(drivers/emac): Add missing SPDX indetifier to ST driver files
* fixed compiler inline issue
* Update Mbed version block
* removed HSE speed limitation for STM32G431RB
* Added HSE range validation for STM32g431xB
* added support for 4, 8 and 16MHz
* M487: Remove unused variable 'u32EscapeFrame'
Remove unused variable 'u32EscapeFrame' in BSP m480_ccap.h to avoid warnings
* force FIFO IRQ for FDCan RX on H7
* Add hardware CRC support to STM32G4
* add support for Nucleo-H745ZI
* Update MAX32670 peripheral drivers with final ones that use by SDK
Signed-off-by: Sadik.Ozer <sadik.ozer@analog.com>
* MAX32670 apply mbed required changes on peripheral drivers
Signed-off-by: Sadik.Ozer <sadik.ozer@analog.com>
* M467: Support CAN bus
1. Update BSP CANFD driver
2. Notes for implementation
(1) Each CANFD instance supports two IRQ lines. Use only line 0. Line 1 is not used.
(2) For Rx disabling multiple filter handles,
1) Map all filter handles to filter handle 0
2) Use Rx FIFO 0 for filter handle 0
(3) For Rx enabling multiple filter handles,
1) Use Rx FIFO 0 for filter handle 0
2) Use Rx FIFO 1 for filter handle through first invoking can_filter()
3) Use dedicated Rx Buffer for other filter handles
NOTE: H/W supports mask on Rx FIFO 0/1 but not on dedicated Rx Buffer.
(4) For Tx, use only dedicated Tx Buffer. BSP CANFD driver doesn't support Tx FIFO/Queue.
(5) Support no CAN FD.
* Fix 'new[]' array freed with 'delete'
The array _scratch_buf is allocated using new[] in line 761 of
mbed-os/storage/kvstore/securestore/source/SecureStore.cpp.
But it was freed using delete.
* Define default parameters of functions of derived class the same as the base class
The member function bringup() of class ThreadInterface redefines
parameter stack's default value to IPV6_STACK from the inherited default value
DEFAULT_STACK (in Interface).
The default value will be resolved statically, not by dispatch, so this
can cause confusion.
Similar arguments apply to LoWPANNDInterface and WisunInterface.
* Avoid calling virtual functions from constructors and destructors
Virtual functions are resolved statically (not dynamically) in
constructors and destructors for the same class. The call should be made
explicitly static by qualifying it using the scope resolution operator.
* Fix potentially overrunning write of sprintf
Format string "%d" requires 12 bytes (including the null terminator).
Also, use snprintf instead of sprintf to prevent buffer overflow.
* Fix system_clock.c location
Signed-off-by: Jasper Jonker <jasper.jonker@wingtra.com>
* Fix variable name
Signed-off-by: Jasper <jasper.jonker@wingtra.com>
* Change storage-class of secret_buf to static
Storing the address of a local variable (`secret_buf`)
in non-local memory (`prf_ptr->secret`) can cause a
dangling pointer bug if the address is used after the function returns.
* fix compiling errors of FATFileSystem when exFAT was enabled
* Add OSPI support for STM32H7
* Nuvoton: Enable extending sampling time for ADC/EADC
For all Nuvoton targets, enable extending sampling time in ADC/EADC clocks on per-pin basis.
---------
Signed-off-by: Saheer Babu <saheer.babu@arm.com>
Signed-off-by: Yilin Sun <imi415@imi.moe>
Signed-off-by: Martin Kojtal <martin.kojtal@arm.com>
Signed-off-by: Sadik.Ozer <sadik.ozer@analog.com>
Signed-off-by: Jasper Jonker <jasper.jonker@wingtra.com>
Signed-off-by: Jasper <jasper.jonker@wingtra.com>
Co-authored-by: caodd <caodd1993@qq.com>
Co-authored-by: YannCharbon <yann.charbon@ik.me>
Co-authored-by: Jerome Coutant <jerome.coutant@st.com>
Co-authored-by: Saheer Babu <saheer.babu@arm.com>
Co-authored-by: Martyx00 <martin.petran@protonmail.com>
Co-authored-by: Yilin Sun <imi415@imi.moe>
Co-authored-by: Martin Kojtal <martin.kojtal@arm.com>
Co-authored-by: akiroz <akiroz.vectis@gmail.com>
Co-authored-by: Charles <hallard04@free.fr>
Co-authored-by: Leonard Chiang <leochiang2002@gmail.com>
Co-authored-by: Chun-Chieh Li <ccli8@nuvoton.com>
Co-authored-by: jmcloud <jmcloud@tesla.com>
Co-authored-by: Augusto Zanellato <augusto.zanellato@gmail.com>
Co-authored-by: Sadik.Ozer <sadik.ozer@analog.com>
Co-authored-by: Mingjie Shen <shen497@purdue.edu>
Co-authored-by: Jasper Jonker <jasper.jonker@wingtra.com>
Co-authored-by: wdx04 <wdx04@outlook.com>
* Start working on fixing doxygen warnings
* Upgrade doxyfile to Doxygen 1.9.1
* Clean up some unmatched groups and add some exclusions
* Fix docs for rtos::ThisThread not showing up
* Fix up KV store docs
* Fix incorrect @files, some more incorrect groups
* Fix lots of broken links
* Start fixing mbedtls groups
* Fix more mbedtls docs
* Fix remaining mbedtls files with missing or incorrect grouping
* Fix a huge amount of PSA docs errors
* Fix a few more mbedtls docs errors
* Fix __cplusplus not defined for docs, clean up call in callback typedef, fix some docs errors
* Fix some broken doc links in HAL headers
* Fix more PSA doc errors
* Fix some doxygen errors in networking code
* Fix lots of network related doc errors
* Try and fix some CI failures
* Use Doxygen Action instead of doxygen in Mbed container to get the right version
* Try removing docs check
* Add first part of doxygen action
* Add next part of doxygen action
* Fix yaml syntax error
* Add in license check fix
* Try using verbose scancode
* Fix some more docs issues, workaround scancode-toolkit#3179
* Clean up the LoRaRadio get_state() function on each implementation. Also fix some other compile and doc errors.
* Fix all remaining doxygen errors
* Fix escaping, for realsies this time
* Remove Doxygen unsupported config options, fix some more get_status() declarations
* Fix some UNITTESTS build errors
* Fix one more compile error
* Another unittest error
* Add upload target for Arduino Nano 33 BLE, fix linker script preprocessing, add option for USB serial by default
* astyle error
* Use HINTS instead of PATHS so that the Arduino dir is searched first
* Enable OpenOCD and PyOCD for Nano 33 BLE in SWD mode
* Fix missing dependency for USB tests on Windows
* Add RAM defines for nrf52840
* Fix mbed-storage-kv-config depending on SD card library even if said library was not enabled
* Update dsrdtr value
* No longer need to modify linker script now that we aren't using whole-archive!
* Add OPENOCD_ADAPTER_SERIAL
* Add handling for cmsis dap
* Fix typo
* Fix weak symbol issue causing Bluetooth to not work. In this case, the weak implementation can simply be removed, because there's no legitimate case where it is used.
* First attempt at converting to OBJECT libraries. Not working due to more object library limitations
* Only compile the main libraries as OBJECT, because that's all that CMake can be made to do right now.
* Fix availability of target-specific flags
* Missed some usages
* Fix some STM32 ethernet stuff that was not linking correctly
* More fixes for STM32 ethernet and weak symbols
* Fix prebuilt object file linking for MUSCA_S1
* Fix STM32 eth init license headers
To actually get the filename in the error reporting struct instead of
the start of the path, let's use the MBED_FILENAME macro that MBED_ERROR
et al uses.
Full verbosity is adding a console line for each lock/unlock API call
- stats can be enabled with json config
- default configuration is full verbosity and add a console line for each lock/unlock command
- for STM32 targets, verbosity is reduced by default
When decimal_prec is 0 and the value is negative and needs rounding subtract 1, instead of adding 1
When decimal_prec > 0 round before printing the integer part, instead of after
PSA_ALG_AEAD_WITH_TAG_LENGTH has been replaced with
PSA_ALG_AEAD_WITH_SHORTENED_TAG upstream. We could just update
psa_util.h to use the new macro, but we still have some targets that
only support older versions of PSA, so we reinstate the removed macro.
We have added definitions that are needed by Mbed TLS's PSK key exchange
but missing from TF-M's PSA to `mbedtls_svc_key_id.h`. To pick up those
definitions, TF-M's `psa/crypto_values.h' needs to include
`mbedtls_svc_key_id.h`.
Include mbedtls_ecc_group_to_psa.h from crypto_extra.h so that clients
of PSA within Mbed OS do not need to behave differently depending on
which PSA implementation they are using.
This solution is not ideal as it makes it more difficult to update the
TF-M-provided psa/crypto_extra.h. We'll have to see what other options
we have for including additional headers based on the Mbed OS
configuration.
tfm_ns_interface.c is intended to be overriden by clients to support
different targets. We copy this file from upstream into the mbed-os
platform library. We also have a specific "strong" overridden version
for the NU_M2354 target, which is located in its target library.
Previously the implementations in the platform library were decorated
with __attribute__(weak), and we provided a strong definition for the
NU_M2354 target. This worked fine because of weak linking, the linker
will pick the first "strong" definition and use that, avoiding any ODR
violations. However, upstream have removed __attribute__(weak) from the
function definitions, which caused multiply defined symbol errors when
trying to build the NU_M2354 target.
To work around the above issue, we remove the common definition in the
platform library; instead we copy the file to the Musca B1 and Musca S1
target libaries. This means the appropriate tfm_ns_interface.c is only
included in the build when compiling for the specific target which uses
it.