Skip to content

Conversation

@multiplemonomials
Copy link
Contributor

Summary of changes

This PR adds support for Arduino Nicla Sense ME. Arduino sent me a free test unit a while back so figured I may as well give it a shot. This one ended up actually being pretty easy to work with because, unlike most Arduinos, it has a standard Mbed CMSIS-DAP interface chip on it, no weird bootloader hijinks needed. Basically just had to add the PinNames.h, the CMake file, and the targets.json definition.

Impact of changes

Migration actions required

Documentation

TODO

Pull request type

[] Patch update (Bug fix / Target update / Docs update / Test update / Refactor)
[X] Feature update (New feature / Functionality change / New API)
[] Major update (Breaking change E.g. Return code change / API behaviour change)

Test results

[] No Tests required for this change (E.g docs only update)
[] Covered by existing mbed-os tests (Greentea or Unittest)
[X] Tests / results supplied as part of this PR

I ran the full set of Greentea tests on the nicla and they all passed except for test-mbed-hal-trng. This one is failing because they didn't connect the MCU reset line to the CMSIS DAP interface, so it can't reset the CPU when it tries to. Not sure what the best way to fix this is at this point...

Reviewers


multiplemonomials and others added 30 commits September 14, 2022 00:25
… command line directly. Fixes some issues with build commands on my machine, and makes it a lot easier to view the make VERBOSE=1 output.
- Fix some logic errors in top level cmakelists related to building greentea tests
- Fix mbed_create_distro() for OBJECT libraries
…fused about them. They weren't really needed anyway for the CMake build.
Jamie Smith and others added 28 commits November 2, 2023 20:16
* 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
* Fix STM32 I2C v2 async transfer not doing a repeated start

* Clarify docs
… SPI issues on STM32H7 (#199)

* Handle cache alignment in DMA SPI driver

* Fix build on cache-less devices

* Fix a couple things I missed

* Run formatter, improve CacheAlignedBuffer docs

* Add missing license identifiers to source files

* Make CacheAlignedBuffer heap-allocatable, try and add exclusion for Nordic license in scancode_evaluate.py

* Formatting, docs, revert accidental change

* Update code blocks to pass spell checker
add lfsv2 to storage/kvstore/kv_config link libs
* Enable RPi Pico's optimized ROM floating point routines

* Add license header
…I_IOT2A (#204)

* Fix issues with new async SPI changes that broke compiling for B_U585I_IOT2A

* Few more incorrect nullptrs

* Fix style
* Various changes for Arduino core support

* Apply Arduino Mbed TLS patches

* Apply linker script patch, add missing CXX standard

* Fix SDBlockDevice compile error, fix "no rule to make mbed-target-config.h"

* Fix missing source file for RPi Pico

* Fix missing licenses
…#203)

* Attempt to increase RPi Pico PWM range and resolution to the max supported

* Fix copyright for pwmout_api.c

* Fix ADC implementation so it works!  Fixes incorrect return type, adds +1 to top_count, fixes missing pwm_config_set_wrap() call.

* Revert printf change in this PR
* Add upload methods for NUCLEO_H723ZG

* Oops fix comment

* Also fix another comment
Protection against using python version older than python3+
…cleanups (#210)

* RTC related cleanups, including not resetting the RTC time from gettimeofday()

* Update readme about STM32 clocking

* Oops, fix git issue
* Definition added for hse and msi pll

* Updating rom and ram size

* Adding target MCU_STM32U575xG
* 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
* 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
* 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
… get non-public targets (#247)

* Add a way to get target attributes for non public targets

* Document all WiFi and LoRa modules

* Fix some errors

* Fix another CMake error
#250)

* Update app.cmake

Add possibility to use upload config also for custom targes

* Update app.cmake
* 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
* 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
…263)

* Fix STM32H7 LPUART clock source incorrect for higher baudrates

* Add comment
…265)

* 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 some issues with building on K64F, add K64F upload methods

* Add Mbed upload method

* Fix pin validate test

* Also install json5

* Fix incorrect COMPONENT_SD config
@multiplemonomials
Copy link
Contributor Author

Oh gosh dang it I clicked the wrong repo, sorry!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants