* 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
* 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
* 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
* 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
* Make it so that SPI::select() works correctly with async stuff
* Add more overloads for SPI functions, make sure that SPI::abort_transfer() correctly toggles CS
* SPI: Implement reference counting so that DMA channels get freed properly
* Fix initialization of SPI peripheral structures
* Update docs a bit
* Use a mutex to protect SPI::_peripherals instead of a critical section, because spi_free() may not be ISR safe
* Style fixes
* 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.
* 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>
* 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
* Initial attempt at rethinking the STM32 I2C v2 HAL. Makes single-byte work properly and adds a new 'state' variable to track what the hardware is doing.
* Fix some initial test failures
* Fix incorrect logic
* Fix more incorrect logic
* Tabs to spaces
* Fix repeated starts with single-byte API
* Fix race condition causing stop() after nacked address to sometimes break things
* Fix missed i2c structs that should have been removed
* Fix doing a repeated start from single-byte to transaction API causing I2C peripheral to lock up
* Fix xferOperation being set wrong for repeated starts, causing the peripheral to hang
* Fix race condition with repeated start after single-byte operation
* Fix compilation for targets that use I2C IP v1
* Fix initialization of XferOperation for API v1, optimize stop()
* Remove unneeded line
* Add docs for I2C events
* Lots of usability improvements for the I2C API. Better docs and new top-level functions.
* Document frequencies
* Tabs to spaces
* More style fixes
* Run astyle
* Clean up docs
* Add note about addressing, change 10 bit to 11 bit
* Fix spellcheck
* Fix paste error
* Oops, fix accidental change
The HAL gpio_irq_api stores object IDs, which serve as a form of context
for the dispatch of the interrupt handler in the drivers level
InterruptIn Class. The way this is achieved is that the InterruptIn
Class casts its address to uint32_t, which is stored as the ID.
This results in compilation failure when the size of an object pointer
is greater than uint32_t, for example when building on a PC for unit
testing.
In order to allow Unit Testing of the InterruptIn Class, we replace the
use of uint32_t with uintptr_t (type capable of holding a pointer),
which allows portability and expresses intentions more clearly.
In aid of this latter goal, we also replace the use of the name "id"
with "context", to improve clarity - these are addresses of the context
related to that callback.
The HAL can_api stores an array of IDs in order to dispatch interrupts
to the correct CAN object. The drivers level CAN Class casts a pointer
to itself to an uint32_t, which is stored as the ID and then cast back
to a CAN * in order to call the correct handler. This results in
compilation failure when the size of an object pointer is greater than
uint32_t, for example when building on a PC for unit testing.
In order to allow Unit Testing of the CAN Class, we replace the use of
uint32_t with uintptr_t (type capable of holding a pointer), which
allows portability and expresses intentions more clearly. In aid of this
latter goal, we also replace the use of the name "id" with "context",
to improve clarity. These are addresses of the context related to that
callback.
Currently there are no stub implementations of the analogin_api.c
functions. As the AnalogIn class makes use of these functions, these
stub definitions are required in order to build AnalogIn.cpp and
generate .gcno files to be used to generate code coverage metrics.