Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding NUCLEO_WB55RG support #9814

Merged
merged 38 commits into from
Apr 4, 2019
Merged

Commits on Mar 29, 2019

  1. NUCLEO_WB55RG: add SDK files

    - Contains files from STM32Cube_FW_WB_V1.0.0
    bcostm authored and LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    81f9854 View commit details
    Browse the repository at this point in the history
  2. NUCLEO_WB55RG: update mbed_rtx.h

    bcostm authored and LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    4547fa3 View commit details
    Browse the repository at this point in the history
  3. NUCLEO_WB55RG: IAR, ARM and GCC linker files alignment

    Align all scatter BLE shared memory declarations.
    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    baf7a12 View commit details
    Browse the repository at this point in the history
  4. NUCLEO_WB55RG: update STM common files

    - Include RTC ll file from hal as in other families
    - STM32WB: update Flash API driver
    bcostm authored and LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    beab697 View commit details
    Browse the repository at this point in the history
  5. NUCLEO_WB55RG: HAL API updates to get SLEEP, RTC and LPTICKER OK

    - astyle OK
    - file alignment with other families
    - HSE, MSI, HSI clock support
    - LPTICKER with RTC and LPTIM tested
    jeromecoutant authored and LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    ea86e8e View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    e8a49e9 View commit details
    Browse the repository at this point in the history
  7. NUCLEO_WB55RG: WB Transport Layer Cube files modifications

    - Need to force ARM packed redefinition
    - Configure LL stack in LL mode only
    - Remove warning in shci_tl.c (PLACE_IN_SECTION)
    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    16ed109 View commit details
    Browse the repository at this point in the history
  8. NUCLEO_WB55RG: add Cordio HCI and Transport Layer driver

    The STM32WB Coridio driver includes:
    - the Cordio HCI driver handling the reset sequence. During reset sequence
    the TX POWER level is set and the BD address is defined if found in OTP
    or option bytes. The rest of the sequence is based on the standard CORDIO
    HCI driver example.
    - The Transport Layer part handles sending and receiving messages to the
    WB controller running on cortex-M0 of the STM32WB target. The messages
    are shared through shared memory and mailboxes system based on IPCC HW.
    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    6234b35 View commit details
    Browse the repository at this point in the history
  9. NUCLEO_WB55RG: update targets.json

    bcostm authored and LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    96ecd48 View commit details
    Browse the repository at this point in the history
  10. NUCLEO_WB55RG: Rework Clock and sleep support

    - move hw_conf.h file to targets/TARGET_STM/TARGET_STM32WB directory as
    this is used also out of BLE feature.
    - create a dedicated hal_deepsleep function as the behavior in WB is a lot
    different from other existing STM32 targets
    - update clock tree configuration to directly clock the entire tree @ 32MHz
    out of HSE. This is needed as we want to let the M0 core running without
    any change on M0-side of clocks when M4 enters /exits deep sleep.
    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    27e7e4d View commit details
    Browse the repository at this point in the history
  11. STM32WB: Move STM32WB utilies from FEATURE_BLE to targets folder

    These files are not BLE specific, but also needed for some clock setting
    for instance.
    
    In order to compile an MBED2 application, we need to move the files.
    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    5871a71 View commit details
    Browse the repository at this point in the history
  12. STM32WB: FIX LL RTC warning

    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    22f9ac6 View commit details
    Browse the repository at this point in the history
  13. STM: fix minor warnings

    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    5aa609b View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    d9c17ad View commit details
    Browse the repository at this point in the history
  15. STM32WB: Add missing analogin_pinmap

    This is required since PR ARMmbed#9449
    commit
    "Add HAL API for analog in pinmap"
    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    e2cdb19 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    bb2aea4 View commit details
    Browse the repository at this point in the history
  17. STM32WB: Adapt I2C timings

    for now based on L4+ cubeMX inputs
    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    f9b4f11 View commit details
    Browse the repository at this point in the history
  18. STM32WB: Fix ARM link error in mbed2

    In case of mbed2, BLE feature is not built.
    
    As there is a MAPPING_TABLE in BLE feature which is not compiled in case
    of mbed2, the linker reported the below error
    
    [ERROR] "C:/Data/Workspace/mbed/BUILD/test/NUCLEO_WB55RG/ARM/MBED_2/
    .link_script.sct", line 65 (column 6): Error: L6236E:
    No section matches selector - no section to be FIRST/LAST.
    
    Solution is to check whether BLE is enabled.
    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    f2580c1 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    08965e1 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    e925bd7 View commit details
    Browse the repository at this point in the history
  21. STM32WB: ARM linker script update

    There is no need to add FIRST attribute to MAPPING_TABLE as the default
    ordering is alphabetical order.
    
    With this change, we don't have any warning with MBED2 and the sections
    are properly ordered anyway in BLE cases.
    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    002f40d View commit details
    Browse the repository at this point in the history
  22. STM32WB55RG: Add board declaration in tools

    In travis build and in SW4STM32 exporter
    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    7afad64 View commit details
    Browse the repository at this point in the history
  23. STM32WB55RG: temporarily remove device_name property in targets.json

    Until the CMSIS pack device name is officially deployed.
    
    then we'll the name as can be found in Keil CMSIS pack
    
           <!-- *************************  Device 'STM32WB55RG'  ***************************** -->
            <device Dname="STM32WB55RGVx">
              <memory id="IROM1"                           start="0x08000000" size="0x001000000" startup="1" default="1" />
              <memory id="IRAM1"                           start="0x20000000" size="0x000040000" init="0"    default="1" />
              <algorithm name="CMSIS/Flash/STM32WB_M4.FLM" start="0x08000000" size="0x001000000"             default="1" />
    
              <feature type="QFP" n="68"/>
            </device>
    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    536c37f View commit details
    Browse the repository at this point in the history
  24. STM32WB: Update headers

    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    c53021b View commit details
    Browse the repository at this point in the history
  25. STM32WB: remove duplicate file

    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    3ebf7c9 View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    740e296 View commit details
    Browse the repository at this point in the history
  27. STM32WB: Add SPDX identifier to new files

    also update the copyright year when needed
    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    6caa4d4 View commit details
    Browse the repository at this point in the history
  28. STM32WB: move HCI driver to target specific folder

    Need to move stm32wb_HCIDriver.cpp to target specific folder otherwise
    it could mess up with other STM targets.
    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    fd6f12f View commit details
    Browse the repository at this point in the history
  29. STM32WB: handle extended reset

    as suggested during review, apply same sequence as in:
    paul-szczepanek-arm@b96c0ac
    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    9b2acb2 View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    c72b0e7 View commit details
    Browse the repository at this point in the history
  31. STM32WB: Handle re-init case of transport layer

    Issue was seen when running BLE_GAP example from
    mbed-os-example-ble.
    
    In STM32WB, the M0 core cannot be reset except if the whole target
    is reset. So in case of re-initialization of the BLE stack, the
    transport layer should not be initialized again. The HCI reset
    command will do the job.
    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    6336e4b View commit details
    Browse the repository at this point in the history
  32. Configuration menu
    Copy the full SHA
    71c396c View commit details
    Browse the repository at this point in the history
  33. STM32WB: Add TRNG HW Semaphore

    Because TRNG is a shared resource between the 2 STM32WB cores, SW needs
    to acquire HW Semaphore before using the resource.
    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    14ee4a1 View commit details
    Browse the repository at this point in the history
  34. STM32WB: Add FLASH HW Semaphore

    Because FLASH is a shared resource between the 2 STM32WB cores, SW needs
    to acquire HW Semaphore before using the resource.
    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    b21110d View commit details
    Browse the repository at this point in the history
  35. STM32WB: update deep sleep sequence

    Review HSE clock initialization to match with latest CUBE firmware.
    Also there is no need to set the full clock tree again after deep sleep exit.
    
    With this change we get a stable deep sleep mode (when allowed by CORDIO stack).
    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    718b165 View commit details
    Browse the repository at this point in the history
  36. STM32WB: disable debug lines when not needed

    When doing so, do not disbale GPIO clocks as they may be used by other
    drivers !
    
    As a result, debug will be disabled by default, but can be enabled by
    either modifying code or selecting MBED debug profile.
    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    a744343 View commit details
    Browse the repository at this point in the history
  37. STM32WB: Only configure default peripherals in SetSysClock

    Typically the RTC clock is configured by RTC driver itself.
    
    RNG on the other hand is shared with M0+ core and it is expected that
    M4 turns it on at boot time.
    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    c627798 View commit details
    Browse the repository at this point in the history
  38. STM32WB: ADC INTERNAL CHANNEL reset after read

    Internal channels use is enabling ADC "internal path" which needs
    to be disabled after measurement.
    
    Same applied here for WB family as was done for others in ARMmbed#10143.
    LMESTM committed Mar 29, 2019
    Configuration menu
    Copy the full SHA
    b0f4815 View commit details
    Browse the repository at this point in the history