Go to file
Jamie Smith 28815b13d3
DMA SPI support for STM32 devices (#162)
* 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
2023-11-02 20:16:45 -07:00
.github Allow Mbed config files to be json5 in addition to json (#194) 2023-10-26 09:48:33 -07:00
TESTS Move Mbed TLS self tests to a separate configuration 2021-06-15 10:50:14 +01:00
UNITTESTS Rename inconsistently named testing-related variables. Also fix STM32CUBE not working from application code. 2022-09-14 00:25:29 -07:00
cmsis Remove all source files exclusive to Arm Compiler and IAR (#159) 2023-05-15 08:23:01 -07:00
connectivity Reactivate some Network & Netsocket tests, Mbed TLS tests, Device Key test. Also fix lots of deprecation warnings (#189) 2023-10-01 15:23:59 -07:00
docker_images/mbed-os-env Fix dockerfile typo 2022-09-14 00:25:26 -07:00
docs github actions for mbed-os-env docker management 2021-08-03 16:28:14 +01:00
drivers DMA SPI support for STM32 devices (#162) 2023-11-02 20:16:45 -07:00
events mbed-ce@master + fixes + gcc 11 support (#135) 2023-02-21 09:04:34 -08:00
extern Add external greentea-client dependency 2021-07-07 14:29:14 +01:00
features Rethink STM32 I2C v2 HAL (#78) 2022-11-20 17:46:30 -08:00
hal DMA SPI support for STM32 devices (#162) 2023-11-02 20:16:45 -07:00
platform Synchronize changes with Mbed upstream: September 2023 edition (#185) 2023-09-24 23:37:28 -07:00
rtos Fix declaring OSPIFBlockDevice and QSPIFBlockDevice as globals, fix some STM32U585 issues (#167) 2023-07-17 19:52:38 -07:00
storage SDBlockDevice: revert HW CS support, add async support (#181) 2023-08-27 11:05:18 -07:00
targets DMA SPI support for STM32 devices (#162) 2023-11-02 20:16:45 -07:00
tools DMA SPI support for STM32 devices (#162) 2023-11-02 20:16:45 -07:00
.astylerc AStyle: fix indentation for longer lines 2018-05-24 14:15:52 +01:00
.codecheckignore .codecheckignore add STM mx_wifi files 2021-09-30 17:56:07 +02:00
.coveragerc Exclude libraries and tests from coverage numbers 2017-09-25 11:51:31 -05:00
.editorconfig Add .editorconfig file 2021-02-25 16:26:34 +01:00
.gitattributes Normalize line endings for IM880B startup files. 2019-07-15 14:56:22 +03:00
.gitignore Bring python packages into the mbed-os source (#192) 2023-10-10 09:54:53 -07:00
.gitmodules Add docs generation workflow (#45) 2022-09-26 08:15:30 -07:00
.lgtm.yml Rename inconsistently named testing-related variables. Also fix STM32CUBE not working from application code. 2022-09-14 00:25:29 -07:00
.mergify.yml mergify: fix needs work labels 2021-10-14 15:01:16 +01:00
.pylintrc Add pylint configuration file 2016-08-16 11:48:45 -05:00
CMakeLists.txt Refactor flash setup for MIMXRT105x devices, add flash API support for MIMXRT1062 EVK (#187) 2023-10-01 09:25:26 -07:00
CONTRIBUTING.md Fix links to documentation on https://os.mbed.com 2019-01-21 14:56:40 -08:00
DOXYGEN_FRONTPAGE.md Updating with new links and correct branding 2020-08-12 10:49:05 +01:00
Jenkinsfile Updated file comment 2018-08-20 12:31:40 +03:00
LICENSE-apache-2.0.txt license: rename to apache 2.0 txt file 2019-02-13 11:28:01 +00:00
LICENSE.md Update LICENSE.md 2021-08-05 14:13:57 +03:00
README.md Update for Doxygen 1.9.5 (#119) 2023-01-03 21:26:26 -08:00
doxyfile_options Update for Doxygen 1.9.5 (#119) 2023-01-03 21:26:26 -08:00
doxygen_options.json BLE: update doxygen exclusion pattern 2020-08-25 11:34:00 +01:00
logo.png Update readme to show that this is Mbed CE, and update templates to show that this is no longer an automated system 2022-09-14 00:25:30 -07:00
mbed.h Added Raw CAN (unlocked can read api) and updated the code for the 2021-06-29 12:46:21 +05:30

README.md

Mbed OS

Mbed OS Community Edition

Build status master

Arm Mbed OS is an open source embedded operating system designed specifically for the "things" in the Internet of Things. It includes all the features you need to develop a connected product based on an Arm Cortex-M microcontroller, including security, connectivity, an RTOS and drivers for sensors and I/O devices.

Mbed OS provides a platform that includes:

  • Security foundations.
  • Cloud management services.
  • Drivers for sensors, I/O devices and connectivity.

This is Mbed OS Community Edition (CE), a fork focused on improving the build system and tooling, fixing bugs, and keeping maintenance going after ARM's step back from the Mbed project.

License and contributions

The software is provided under the Apache-2.0 license. Contributions to this project are accepted under the same license. Please see contributing.md for more information.

This project contains code from other projects. The original license text is included in those source files. They must comply with our license guide.

Folders containing files under different permissive license than Apache 2.0 are listed in the LICENSE file.

Getting started for developers

To start a new project that uses Mbed CE, see the setup guide here.

We have a developer website for asking questions, engaging with others, finding information on boards and components, using an online IDE and compiler, reading the documentation and learning about what's new and what's coming next in Mbed OS.

Additionally, the discussions page on this repo can be used for proposing and discussing specific code changes.

Documentation

For more information about Mbed OS, please see the published Mbed OS documentation. It includes general overview information, step-by-step tutorials, porting information and background reference materials about our architecture and tools.

For the Mbed OS CE code-level documentation (Doxygen), see here