Skip to content

[BEETLE] Add BLE support #2079

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

Merged
merged 4 commits into from
Jul 4, 2016
Merged

[BEETLE] Add BLE support #2079

merged 4 commits into from
Jul 4, 2016

Conversation

fvincenzo
Copy link
Contributor

Add BLE support to Beetle.

@0xc0170
Copy link
Contributor

0xc0170 commented Jul 1, 2016

It would be helpful to provide more context for this PR. I can see there 73 files added, but don't have much info about why, how. There's a new section in the linker script, adding CORDIO_RO_2.1.o and TRIM_2.1.o for instance, can we share what is the intention with those 2 or it's written in the user guide? Why writel is renamed to FCache_Readl. this might seem trivial ,but for users or me it's not as I don't have enough details to understand this BLE addition.

TARGET_ARM_SSG/TARGET_BEETLE/cordio contains the stack is that correct?

What about the testing, how was this tested? Any results to be shared ?

cc @pan- About the BLE testing

@pan-
Copy link
Member

pan- commented Jul 1, 2016

I wonder if the wicentric stack should go here or in mbed-os, in one of the target of the ble feature.

@fvincenzo Is this integration specific to the beetle or the wicentric stack can be used on other targets ?

fvincenzo added 4 commits July 1, 2016 17:23
In Beetle systems eFlash and Cache Flash are always enabled by default.
This patch refines the interface of these drivers to match the
functionalities exposed by the platform.

This patch renames also writel/readl in these drivers to uppercase to follow
acros code convention.

Signed-off-by: Vincenzo Frascino <[email protected]>
This patch adds BLE Cordio support into CMSIS. It provides:
* A modification for the linker scripts for both ARMCC and GCC
  compilers that adds the cordio specific sections.
* A method to access the Flash stored MAC Address.

The CORDIO_RO_2.1.o and TRIM_2.1.o objects that rappresent the Cordio
firmware will be added by a future patch.

Signed-off-by: Vincenzo Frascino <[email protected]>
In Beetle systems eFlash and Cache Flash are always enabled by default.
This patch updates the Mbed SDK Init procedure to reflect the changes in
the eFlash and Cache Flash Drivers provided in a previous patch.

Signed-off-by: Vincenzo Frascino <[email protected]>
This patch adds BLE Cordio support into MBED HAL. It contains:
* Cordio and TRIM object files
* The Cordio stack header file
* The Cordio library for Beetle Systems precompiled for GCC and ARMCC

The BLE implementation will be provided in a future patch in the mbed-os
repository.

Signed-off-by: Vincenzo Frascino <[email protected]>
@fvincenzo
Copy link
Contributor Author

fvincenzo commented Jul 1, 2016

@pan The integration we made is specific for Beetle.

@0xc0170 I added all the requested details into the patch descriptions.
To test BLE, we created a test application that uses the stack and tested the functionality.
We also tested the new patches against the mbed standard tests to verify if they introduced any regression. Please find the results below (are the same we obtained before the patches application):

mbedgt: test suite report:
+------------------------+----------------+-----------------------------------------------------------------------------+---------+--------------------+-------------+
| target                 | platform_name  | test suite                                                                  | result  | elapsed_time (sec) | copy_method |
+------------------------+----------------+-----------------------------------------------------------------------------+---------+--------------------+-------------+
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-add_del                              | OK      | 30.16              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-close                                | OK      | 29.01              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-create                               | OK      | 38.98              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-example1                             | OK      | 29.52              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-example2                             | OK      | 28.82              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-example3                             | OK      | 28.99              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-example4                             | OK      | 28.61              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-example5                             | OK      | 28.69              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-find                                 | OK      | 30.07              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-find2                                | OK      | 28.75              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-flash                                | OK      | 28.51              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-flush                                | OK      | 28.99              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-flush2                               | OK      | 29.64              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-init                                 | OK      | 28.75              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-misc                                 | OK      | 30.49              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-open                                 | OK      | 34.38              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-read                                 | OK      | 29.33              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-features-storage-tests-cfstore-write                                | OK      | 29.26              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-basic_test                        | OK      | 27.4               | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-case_async_validate               | OK      | 29.29              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-case_control_async                | OK      | 35.24              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-case_control_repeat               | OK      | 29.37              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-case_selection                    | OK      | 27.36              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-case_setup_failure                | OK      | 27.9               | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-case_teardown_failure             | OK      | 27.92              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-control_type                      | OK      | 28.62              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-minimal_async_scheduler           | OK      | 28.19              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-minimal_scheduler                 | OK      | 28.59              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-test_assertion_failure_test_setup | OK      | 27.24              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-test_setup_case_selection_failure | OK      | 27.41              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-frameworks-utest-tests-unit_tests-test_setup_failure                | OK      | 27.31              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-integration-basic                                             | OK      | 26.48              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-integration-threaded_blinky                                   | OK      | 46.48              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-c_strings                                        | FAIL    | 29.39              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-callback                                         | OK      | 32.97              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-dev_null                                         | OK      | 30.5               | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-echo                                             | OK      | 38.29              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-generic_tests                                    | OK      | 28.26              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-rtc                                              | OK      | 38.68              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-stl_features                                     | OK      | 28.39              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-ticker                                           | OK      | 46.85              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-ticker_2                                         | OK      | 46.64              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-ticker_3                                         | OK      | 46.7               | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-timeout                                          | OK      | 46.65              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbed_drivers-wait_us                                          | OK      | 37.13              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-mbed-attributes                                     | OK      | 28.81              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-mbed-call_before_main                               | OK      | 27.16              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-mbed-cpp                                            | OK      | 27.26              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-mbed-div                                            | OK      | 27.26              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-rtos-mbed-basic                                     | OK      | 41.51              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-rtos-mbed-isr                                       | OK      | 32.29              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-rtos-mbed-mail                                      | OK      | 28.96              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-rtos-mbed-mutex                                     | OK      | 37.37              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-rtos-mbed-queue                                     | OK      | 28.82              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-rtos-mbed-semaphore                                 | OK      | 34.7               | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-rtos-mbed-signals                                   | OK      | 32.37              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-rtos-mbed-threads                                   | TIMEOUT | 67.12              | shell       |
| ARM_BEETLE_SOC-GCC_ARM | ARM_BEETLE_SOC | mbed-os-tests-mbedmicro-rtos-mbed-timer                                     | OK      | 41.46              | shell       |
+------------------------+----------------+-----------------------------------------------------------------------------+---------+--------------------+-------------+
mbedgt: test suite results: 1 FAIL / 56 OK / 1 TIMEOUT

@0xc0170
Copy link
Contributor

0xc0170 commented Jul 4, 2016

Thanks for fixing the commit messages and sharing the results.

@0xc0170 0xc0170 merged commit 5af16c9 into ARMmbed:master Jul 4, 2016
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.

3 participants