* Update cmsis_mcu_descr.py for custom targets
the fetch-missing is scanning also custom_target.json5 file if exist in project, for help not solve missing memory banks
* Update cmsis_mcu_descr.py for auto search custom_targets.json file
* Update cmsis_mcu_descr.py - rework for remove global var
* Update cmsis_mcu_descr.py - fix
The purpose of mbed_adjust_upload_debug_commands() is to adjust
first version of MBED_UPLOAD_LAUNCH_COMMANDS. For multiple executalbe
cmake targets, MBED_UPLOAD_LAUNCH_COMMANDS becomes not fresh and may
cause error. To overcome this, one new cmake cache variable
MBED_UPLOAD_LAUNCH_COMMANDS_BAK is introduced to save first version of
MBED_UPLOAD_LAUNCH_COMMANDS.
memory_bank_config can be defined in targets.json or custom_targets.json
per-target, but cannot by application. This enables this override by
adding "target.memory_bank_config" config in target_overrides section of
mbed_app.json as usual.
* Upload: PyOCD: Halt device after UPLOAD_LAUNCH_COMMANDS
For pyocd debug, it appears the device under debug must be halted after
UPLOAD_LAUNCH_COMMANDS, or debugger will become abnormal.
* Convert output to Intel HEX format unconditionally in post-build
This converts output to Intel HEX format unconditionally but to BIN
format just on demand for the following reasons:
1. Most flash programming tools support Intel HEX format, e.g. GDB
load command.
2. Output can have large holes in addresses which BIN format cannot
handle and can generate very large file.
* Upload: Support adjustment of debug commands for debug launch
This gives chance to adjust GDB commands MBED_UPLOAD_LAUNCH_COMMANDS
or MBED_UPLOAD_RESTART_COMMANDS for debug launch by implementing
mbed_adjust_upload_debug_commands cmake function.
* Upload: Change GDB load command to flash post-build processed image
With this adjustment, GDB load command changes to "load <app>.hex" from
just "load":
1. "Load" will load <app>.elf and is inappropriate for targets like
bootloader or TF-M enabled which need to post-build process images.
2. "load <app>.bin" is not considered because GDB load command doesn't
support binary format.
* Upload: Generate GDB command line gdbinit for multiple application
This enables generating GDB command line gdbinit file for single project
multiple application scenario. The gdbinit file name would be <app>.gdbinit
for distinct among multiple applications.
* 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
* 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>
PyOCD debug restart can be failed without this somehow. It appears the device
under debug must be halted after MBED_UPLOAD_RESTART_COMMANDS, but this is
broken. Change to "monitor reset halt" to fix it.
mbed-os and mbed-baremetal library targets both are created, so we cannot
use if(TARGET mbed-os) or if(TARGET mbed-baremetal) to determine which one
the application target links to. Instead, determine by checking application
target's LINK_LIBRARIES property.
* 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
Change signature from:
function(gen_upload_target TARGET_NAME BIN_FILE HEX_FILE)
To:
function(gen_upload_target TARGET_NAME BINARY_FILE)
If OUTPUT_EXT is undefined or defined to "bin", BINARY_FILE is .bin file,
otherwise .hex file.
The update applies to all UploadMethodXxx files.
In OpenOCD flash, if OUTPUT_EXT is defined in targets.json5, use image
file with this extension <target>.<OUTPUT_EXT> for flash, or default
to <target>.elf.
In Mbed flash, if OUTPUT_EXT is defined in targets.json5, use image
file with this extension <target>.<OUTPUT_EXT> for flash, or default
to <target>.bin.
* 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>
* 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 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>
* 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
* Various updates to support targets & drivers site generation
* Add regression test for python code, add links to README
* Don't need to duplicate device_name
* Fix typo and some extra commas
* Rephrase docs
* Fix NUCLEO_H743ZI clock config not enabling overdrive mode
* Update most STM32H7 devices to new clocking configuration
* Fix ADC clock for old chip revs
* Fix CAN clock, finish clocking for 280MHz devices
* Fix a few typos and such
* A few more targets.json tweaks
* Fix comma
* Use a virtual environment for Python packages by default
* Install python3-venv in CI
* Don't use sudo
* Oops missed a "STATUS"
* Fix second build dir not using venv
* Update FindSTLINKTools.cmake for STM32CubeCLT
STM32CubeCLT
* correction
* line 7 reverted
* Lines 28-29 rewritten to lowercase letters
* Update for Linux
* Change file name for Windows
* revert back components names
* change file name also for Linux
* Fix USB instructions for Ubuntu, fix greentea compile failure for devices without TRNG
* Don't compile device key without COMPONENT_FLASHIAP
* Fix some upload issues for LPC1768
* Oops don't commit cmake variants
* Don't build connectivity-netsocket-tls without TRNG support
* Start on STM32 DMA SPI
* Update all objects.hs, add interrupt function
* Initial DMA code should be ready to test out...
* Fix SPI interrupt-mode IRQ handlers, add SPI::transfer_and_wait
* Fix CMake error when building for STM32WL processors
* Now builds on all STM devices!
* Properly support STM32U5 / DMA IP v3
* Start on STM32F4 support, fix hardfault on IP v1 and v3 due to incorrect indexing
* Fix Rx-only transfers, add abort code, fix incorrect channel assignments for DMA IP v1 devices
* Start on STM32H7 SPI DMA
* Fixes for H7: Correctly manage data cache, keep SPI ISR enabled
* Implement DMA SPI header constants for all remaining STM32 families. Also add support for freeing DMA channels
* Try and fix build on STM32G0
* Fix build on STM32G0
* Add SPI_32BIT_WORDS label, start on fixing SPI docs
* SPI: Implement reference counting so that DMA channels get freed properly
* Fix issue where SPI data could get corrupted (by TI mode turning on) depending on memory layout (if your spis pointer & 0x10 was nonzero)
* Mark DMA channels as unallocated when SPI bus is freed
* Simplify spi_abort_asynch()
* Fix some rebase issues, fix failing to allocate DMA channel on STM32U5
* Fix DMA getting stuck on STM32F4, F7, and F2
* Initial import of python packages
* Move tests to subfolder, use tests in generate_configuration.cmake
* Bring python packages into the source tree instead of needing to be installed separately
* Use python3
* Just use distro default python
* Install all the requirements with apt-get
* unittests is part of Python now
* Add appdirs, set python version
* Add some missing dependencies
* Add more packages
* Add requirements.apt.txt files, fix relative paths with scancode_evaluate.py
* Fix return code handling for license scan errors
* ok let's try that again, also improve error output from scancode evaluate
* Add missing license headers
* Refactor flash setup for MIMXRT105x devices, adds flash support for MIMXRT1062 EVK
* Remove commented code
* Use BOARD_FLASH_SIZE in boot headers
* Fix setting which should be disabled in run mode
* Remove old pico SDK, import latest version using new importer script
* Add new importer script, update CMakeLists
* Merge changes from newer SDK into init assembly and linker script
* Update pico hal code for new SDK version
* Clean up linker script a bit, revert ram size
* Fix accidental breakage of watchdog-reset test from warning fixing! Also better document USB setup procedure and disable reset as part of the test runner.
* Attempt to fix declaring an OSPIFBlockDevice as a global object
* Astyle format
* Add B_U585_IOT02A upload method support and default OSPIF mappings. Guard against incorrect case on upload method
* Also fix the same error in QSPIFBlockDevice
* Fix compile error for mbed-wifi
* Provide ScopedMutexLock for unittests mode
* Add PICO SDK
* Add RP2040 HAL implementation
* Add target Raspberry Pi Pico and its Upload method
* Modified PICO SDK-RTC because of conflict in name
* Use USB from boot, fix USB linking
* Try removing redundant init call
* Add SWD upload configuration, copy most init code from Pico SDK
* Fix RTC linking, fix ram size constant, fix test warning
* Add upload support for RPi Pico devices using Picotool
* Fix implementation of Tx IRQ for serial ports. BufferedSerial works now!
* Make PinNames.h pass pin validation
* Fix us ticker not working when debugging
* Fix us ticker double-init and manual fire interrupt function, us ticker tests now pass!
* Fix writing to rtc and rtc double-init, RTC tests now pass (except rtc-reset)
* Fix panic() not working from a critical section or ISR
* Fix compile failure due to extra LED1 definition
* Fix style
* Fix flash_api detection of invalid parameters, fix reset_reason to advertise the correct capabilities and implement them correctly
* Fix watchdog test warnings, fix broken hal_watchdog_get_reload_value(), fix missing frequency field in watchdog features
* Fix watchdog_reset failing to compile on some devices
* Fix us ticker fire_interrupt() not being callable from an ISR
* Fix incorrect license header
---------
Co-authored-by: Johnk1987 <odiin@seznam.cz>