Skip to content

Conversation

@Wenn0101
Copy link
Contributor

Summary of changes

We would like to collect some feedback on the following changes we have been working on.

Add support for Ambiq Micro AMA3B1KK (Apollo3)
Add support for SparkFun Boards which use AMA3B1KK:
-SparkFun Artemis ATP
-SparkFun Artemis DK
-SparkFun Artemis Nano
-SparkFun Artemis Thing Plus
-SparkFun Edge
-SparkFun Edge2

We know that we aren't quite ready for approval, but we are looking for feedback now so that we can make changes. We have been working on this very independently and would appreciate any comments from the Arm Mbed Team.

Things we know we have to change/complete before approval:
-rewrite commit history to meet contribution standards
-troubleshoot 2 failed test cases

Open Questions:
Supported toolchains - Right now we only support GCC_ARM toolchain on this target, do other toolchains need to be added to complete PR?

Impact of changes

Migration actions required

Documentation

MCU Datasheet - https://cdn.sparkfun.com/assets/d/a/7/c/d/Apollo3_Blue_MCU_Data_Sheet_v0_9_1.pdf
Sparkfun product information - https://www.sparkfun.com/artemis


Pull request type

[X] Patch update (Bug fix / Target update / Docs update / Test update / Refactor)
[] 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)
[X] Covered by existing mbed-os tests (Greentea or Unittest)
[] Tests / results supplied as part of this PR
target platform_name test suite result elapsed_time (sec) copy_method
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-feature_ble-targets-target_cordio-tests-cordio_hci-driver OK 16.95 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-feature_ble-targets-target_cordio-tests-cordio_hci-transport OK 16.68 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-frameworks-utest-tests-unit_tests-basic_test OK 15.84 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-frameworks-utest-tests-unit_tests-basic_test_default OK 15.64 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-frameworks-utest-tests-unit_tests-case_async_validate OK 17.51 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-frameworks-utest-tests-unit_tests-case_control_async OK 22.88 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-frameworks-utest-tests-unit_tests-case_control_repeat OK 17.82 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-frameworks-utest-tests-unit_tests-case_selection OK 15.55 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-frameworks-utest-tests-unit_tests-case_setup_failure OK 16.38 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-frameworks-utest-tests-unit_tests-case_teardown_failure OK 16.33 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-frameworks-utest-tests-unit_tests-control_type OK 16.41 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-frameworks-utest-tests-unit_tests-minimal_async_scheduler OK 16.5 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-frameworks-utest-tests-unit_tests-minimal_scheduler OK 17.18 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-frameworks-utest-tests-unit_tests-test_assertion_failure_test_setup OK 15.36 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-frameworks-utest-tests-unit_tests-test_setup_case_selection_failure OK 15.48 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-frameworks-utest-tests-unit_tests-test_setup_failure OK 15.53 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-frameworks-utest-tests-unit_tests-test_skip OK 15.64 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-storage-tests-blockdevice-buffered_block_device OK 15.74 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-storage-tests-blockdevice-flashsim_block_device OK 15.47 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-storage-tests-blockdevice-general_block_device OK 14.99 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-storage-tests-blockdevice-heap_block_device OK 17.7 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-storage-tests-blockdevice-mbr_block_device OK 16.62 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-storage-tests-blockdevice-util_block_device OK 16.39 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-storage-tests-kvstore-static_tests OK 29.53 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-features-storage-tests-kvstore-tdbstore_whitebox OK 20.43 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-events-queue OK 24.61 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-events-timing OK 76.61 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_drivers-buffered_serial TIMEOUT 58.33 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_drivers-c_strings OK 16.66 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_drivers-crc OK 17.07 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_drivers-dev_null OK 17.13 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_drivers-echo OK 17.14 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_drivers-generic_tests OK 16.1 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_drivers-lp_ticker OK 21.57 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_drivers-lp_timeout OK 51.76 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_drivers-lp_timer OK 20.78 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_drivers-race_test OK 16.67 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_drivers-stl_features OK 16.67 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_drivers-ticker OK 41.52 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_drivers-timeout OK 51.85 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_drivers-timer OK 21.99 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_drivers-timerevent OK 17.36 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_drivers-unbuffered_serial SYNC_FAILED 39.81 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_functional-callback OK 17.67 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_functional-callback_big OK 17.32 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_functional-callback_small OK 17.32 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_hal-common_tickers OK 21.09 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_hal-common_tickers_freq OK 34.97 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_hal-critical_section OK 15.7 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_hal-gpio OK 15.25 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_hal-lp_ticker OK 15.8 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_hal-minimum_requirements OK 15.71 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_hal-mpu OK 16.6 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_hal-pinmap OK 15.61 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_hal-rtc_time OK 19.62 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_hal-rtc_time_conv OK 34.45 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_hal-stack_size_unification OK 15.52 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_hal-ticker OK 30.95 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_hal-us_ticker OK 15.37 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_platform-atomic OK 30.66 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_platform-circularbuffer OK 21.98 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_platform-critical_section OK 17.53 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_platform-error_handling OK 16.08 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_platform-filehandle OK 17.95 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_platform-minimal-printf OK 21.22 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_platform-sharedptr OK 16.04 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_platform-singletonptr OK 15.56 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_platform-stream OK 17.01 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_platform-system_reset OK 16.05 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_platform-transaction OK 16.31 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbed_platform-wait_ns OK 17.77 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbedmicro-mbed-attributes OK 17.9 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbedmicro-mbed-call_before_main OK 15.41 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbedmicro-mbed-cpp OK 15.91 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbedmicro-mbed-div OK 15.39 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbedmicro-mbed-static_assert OK 15.21 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbedmicro-rtos-mbed-basic OK 25.18 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbedmicro-rtos-mbed-condition_variable OK 16.11 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbedmicro-rtos-mbed-event_flags OK 19.42 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbedmicro-rtos-mbed-heap_and_stack OK 16.91 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbedmicro-rtos-mbed-kernel_tick_count OK 18.18 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbedmicro-rtos-mbed-mail OK 20.28 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbedmicro-rtos-mbed-malloc OK 37.49 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbedmicro-rtos-mbed-memorypool OK 23.45 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbedmicro-rtos-mbed-mutex OK 19.84 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbedmicro-rtos-mbed-queue OK 18.87 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbedmicro-rtos-mbed-semaphore OK 21.4 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbedmicro-rtos-mbed-signals OK 28.07 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbedmicro-rtos-mbed-systimer OK 16.59 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbedmicro-rtos-mbed-threads OK 27.47 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbedtls-multi OK 16.98 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-mbedtls-selftest OK 29.38 default
ARTEMIS_DK-GCC_ARM ARTEMIS_DK mbed-os-tests-network-l3ip OK 15.59 default

Reviewers


Owen L - SFE and others added 30 commits January 21, 2020 09:21
While the SERAIL API allows you to define this it would appear that the ASYNCH_SERIAL API defines its own serial_t, which simply includes a serial_s member that is user-defined.
While the SERAIL API allows you to define this it would appear that the ASYNCH_SERIAL API defines its own serial_t, which simply includes a serial_s member that is user-defined.
idea--list and others added 3 commits August 30, 2020 13:38
…utton

In Ambiq SDK (TARGET_SFE_ARTEMIS_THING_PLUS/bsp/am_bsp_pins.h) the pin for the on-board user button is already defined.
However in TARGET_SFE_ARTEMIS_THING_PLUS/PinNames.h there are no pin definitions for the on-board button, as a consequence in mbed-os we can not reference it by the name.

Following mbed-os pin naming conventions buttons have a pin name like SW1 (not like BUTTON1).
This PR adds a name reference to TARGET_SFE_ARTEMIS_THING_PLUS/PinNames.h so that we can use SW1 in mbed-os as an alias for the pin definition defined in the corresponding bsp.

I think currently other Artemis boards also lack the mbed pin definition for the on-board button that already exists in the bsp.
@0xc0170 0xc0170 reopened this Sep 2, 2020
@0xc0170
Copy link
Contributor

0xc0170 commented Sep 2, 2020

@Wenn0101 I reopened this PR. The branch ambiq-apollo3-dev at sparkfun should be rebased. As you noted, it has not been updated.

If you are having still problem with updating this branch ,we can close this pull request and you can create a new pull request (possibly from different branch or the same one as here). Whatever works for you.

@0xc0170
Copy link
Contributor

0xc0170 commented Sep 2, 2020

I tried to rebase this locally, it is non trivial for myself as there are conflicts in targets.json and BLE. Let me know if you got any issues with rebasing or recreating this on top of the latest master (it might be easier).

@Wenn0101
Copy link
Contributor Author

Wenn0101 commented Sep 2, 2020

Hello @0xc0170 The branch was updated 14 days ago. A rebase of master into this feature branch is truly non-trivial since we have >100 commits on the branch. A merge of master into the feature branch is much easier but could complicate the eventual revision history. I have created a new branch that squashed all of our commits to a single commit on this feature branch.

Would this approach be preferrable? I am still checking to make sure i didn't break anything with this change.

@Wenn0101
Copy link
Contributor Author

Wenn0101 commented Sep 3, 2020

merged changes from master into this branch.

Created new PR from a branch that contains a single commit which contains all changes in this PR.

@0xc0170
Copy link
Contributor

0xc0170 commented Sep 10, 2020

Created new PR from a branch that contains a single commit which contains all changes in this PR.

Thanks, I'll close this one

@0xc0170 0xc0170 closed this Sep 10, 2020
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.

6 participants