* M2354: Update TF-M import document
For Nuvoton M2354, this updates document to be consistent with
TF-M import.
* M2354: Pre-create cmake target mbed-m2354-tfm for custom_targets
For M2354 custom target, there is dilemma on cmake target mbed-m2354-tfm:
1. mbed-m2354-tfm is created in mbed-os M2354 cmake listfile, but may be used
in custom_targets M2354 cmake listfile in advance.
2. Build system requires add_subdirectory(custom_targets) be placed in front of
add_subdirectory(mbed-os).
To overcome above, mbed-m2354-tfm is pre-created on request and as singleton,
E.g.:
if(NOT TARGET mbed-m2354-tfm)
add_library(mbed-m2354-tfm INTERFACE)
endif()
* Start on fixing some unintentionally skipped tests
* Add standard upload method variables
* pyocd works now!!
* Revert "Start on fixing some unintentionally skipped tests"
* Don't require memory banks if not using an upload method
* Oops remove duplicate serial number
* Fix build of CYTFM_064B0S2_4343W
* Fix docstring
* Build all target families in a CI job
Try and reenable if
Full send
Fixing build errors and warnings: round 1 of 100000000
Fix Cypress targets to use new form factor names as the old FF was producing #defines that clashed with USB code
Fix some GD32 legacy pin name issues
More Cypress build errors
Rename USB variables
Oops typo
Fix STM32F0 DMA interrupts
Fix some issues with mesh network code building
Add MCU description for MIMXRT1176
Fix H745ZI_Q target name
Add missing cypress secure requirement
Fix every Cypress target trying to write to the same hex file in post build
Missing add_subdirectory
Augh typo
Fix incorrect path to renesas Eth driver
That toshiba target doesn't have CMake build scripts O_O
Add missing add_subdirectory()
Remove noneexistant include
Fix incorrect check for define
Check for both types
* STM32F7: add missing casts
* Begin modernizing memap, add parsing of start address and symbol names
* Memap can now process and print memory bank info!
* Rename symbols back to modules, it was correct before
* Remove trailing whitespace
* Add type hints to modernized functions
* Apply suggestions from code review
Co-authored-by: VictorWTang <33789988+VictorWTang@users.noreply.github.com>
* Remove else
Co-authored-by: VictorWTang <33789988+VictorWTang@users.noreply.github.com>
* Clarify statement
---------
Co-authored-by: Victor Tang <me@victorwtang.dev>
Co-authored-by: VictorWTang <33789988+VictorWTang@users.noreply.github.com>
"target.boot-stack-size" can expand to MBED_CONF_TARGET_BOOT_STACK_SIZE
or legacy MBED_BOOT_STACK_SIZE. Though MBED_BOOT_STACK_SIZE is unsupported
in Mbed CE, make its preprocess consistent in linker scripts by prioritizing
MBED_CONF_TARGET_BOOT_STACK_SIZE, then MBED_BOOT_STACK_SIZE for being
compatible.
* New version of memory bank information system
* Start upconverting linker scripts and target definitions
* Augh my script was being gitignored
* Add tests, update Cypress and STM32 linker scripts and target definitions
* Fix some CI issues
* Fix warning spam on LPC1768
* Fix STM32H745 family compile failure due to failure to include cmsis_nvic.h
* Respond to easy comments
* Break up function into pieces
* Improve type hints, don't write out a JSON file as a side effect
* Two more comments
* fix PWM pin map in context of Timer change
* Note about DAC on Nucleo-H503RB
* Add ADC and DAC for STM32H5
* Copyright fix
* Add I2C for STM32H5
* fix I2C related code
* ADC/DAC fix
* Enable I2C API
* Copyright fix
* Add SPI for STM32H5
* Modification of stm spi API for h5 family
* fix I2C device
* fix I2C ASYNCH macro
* fix revert back the stop variable position
* Fix clock for SPI
* fix some details
* Rename startup_stm32h563xx.s to startup_stm32h563xx.S
* Rename startup_stm32h503xx.s to startup_stm32h503xx.S
---------
Co-authored-by: Jan Kamidra <odiin@windowslive.com>
* M2354: Fix compile error with TF-M
In CMake, mbed-psa moves out of mbed-core, its library type changing to
STATIC from INTERFACE. Following this modification, the platform TF-M
code relying on mbed-psa needs to explicitly specify the dependency
through target_link_libraries().
* M2354: Enable OUTPUT_EXT set to either bin or hex
Update post-build script to enable OUTPUT_EXT can be set to "bin" or
"hex" in targets.json5.
* NUVOTON: Locate correct python3 command path across platforms
shutil.which("python3") can locate incorrect path when there are multiple
python3 installations. Instead, follow the link below, use sys.executable.
https://docs.python.org/3/library/sys.html#sys.executable
* fix PWM pin map in context of Timer change
* Note about DAC on Nucleo-H503RB
* Add ADC and DAC for STM32H5
* Copyright fix
* ADC/DAC fix
---------
Co-authored-by: Jan Kamidra <odiin@windowslive.com>
* Update DSPI driver to latest version from NXP
* Other updates to SDK files
* Fix double DMA transactions, improve dummy byte support
* Simplify dummy byte setting
* Also fix SPI driver bug
* Fix infinite hang with interrupt SPI
* Better fix for SPI hang
* Remove earlier fix
* 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>
* Enable PwmOut API
* remove pins with LpTimer
* Prepare for H563
* Change source of us ticker from TIM2 to TIM3
---------
Co-authored-by: Jan Kamidra <odiin@windowslive.com>
* add targets H503xB and H563xI
* add STM32H5 basic stettings and drivers
* Necessary modification in STM32 family drivers for STM32H5 family
* targets.json5 modified for STM32H503xB and STM32H563xI
* Prototype Upload methods for Nucleo boards of STM32H5 family
* fix typo
* typo fix
* Add images for H5 targets
* cmsis_mcu_desc fix
* targets.json fix
* merge all clock files to one
* Enable Mbed upload method
* fix mcu_family_target
* fix for clock settings
* move - device remove list to family level
* fix targets.json
---------
Co-authored-by: Jan Kamidra <odiin@windowslive.com>
* Refactor Cypress WHD wifi & bluetooth drivers to work better with CMake and be vendor agnostic
* Fix some missed changes that belong in the other branch
* Fix build of Cypress targets that use the RTOS adapter. Make it possible to build Cypress targets in baremetal mode via CMake.
* Try and fix check failures
* Fix a couple unintentional changes
* Remove unavailable and EOLed target boards - STM32
* Make CI detect any missing MCU descriptions
* Oops fix CI syntax
* Aaand add those MCUs
* Also remove "orphaned" cellular modem COMPONENTs
* Start adding images to each target in targets.json5
* Fix a few errors
* Assign images to lots more stm32 MCUs
* Moar image URLs
* Reorganize EFM32 targets
* Add images for nrf devices
* Images for Cypress and (most) Nuvoton targets
* Fix incorrect property name
* All images added!
* Start adding CMSIS MCU description tool
* Add 'add-missing'
* Switch MCU descriptions to JSON5
* Add new MCU after rebase
* Use virtualenv instead of APT for installing packages
* Also remove apt requirements files
* Wrong command!
* Check if index file exists before checking update time
* Respond to comments
* Make must_exist keyword only
---------
Co-authored-by: Victor Tang <me@victorwtang.dev>
* LPC1768: Fix I2C pins not being open drain, fix destroying and recreating I2C making transactions fail
* bus -> peripheral
* LPC1768: Support static pinmaps
* Update ARCH_PRO pin names header to pass muster
* 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