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

Update to sdk 8.1 #77

Merged
merged 4 commits into from
Nov 27, 2015
Merged

Update to sdk 8.1 #77

merged 4 commits into from
Nov 27, 2015

Conversation

LiyouZhou
Copy link
Contributor

  1. Bring the base of evey file in nordic_sdk up to nrf51-sdk 8.1.0.
  2. Reapply relevant changes we made.

@rgrover @andresag01 Please review.

@rgrover
Copy link
Contributor

rgrover commented Nov 26, 2015

thakns for this pull request. I'll review this shortly.

@@ -49,7 +49,7 @@
{ \
__asm( \
"svc %0\n" \
"bx r14" : : "I" ((uint32_t)number) : "r0" \

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems that this file is generating way too many warning of type -Wunused-function and -Wunused-parameter. Any ideas on how to modify this code to fix the problem?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a very old issue from SDK 5.2. See this post on the devzone. The cast to uint16_t works for me. https://devzone.nordicsemi.com/question/6950/upgrading-to-sdk-520-breaks-build/

Btw, this is still a known issue in SDK 10, see my answer here: https://devzone.nordicsemi.com/question/57411/what-are-nrf51-sdk-100-known-issues/?answer=58295#post-id-58295

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@andresag01 are these warnings new? I don't see any change in this PR to generate new warnings.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rgrover : they are not new. These are the same warnings generated using the previous version of the sdk. I suppose what I am asking is how feasible is to modify these files to fix this if they are meant to be easily replaceable...

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is there an easy fix to these warnings?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@metc I am not sure the uint16_t fix works anymore. I replaced the uint32_t by uint16_t in the file nrf_svc.h and I got the same warnings.

@rgrover
Copy link
Contributor

rgrover commented Nov 27, 2015

all this looks good to me. Since we've incorporated some changes to pstorage, it would be nice if we could re-test with the URI_Beacon (or any other demo which tries to use persistent storage).
I'll defer to @andresag01 for his OK. Let's try to avoid changes which add warning messages. Thanks @LiyouZhou

@rgrover
Copy link
Contributor

rgrover commented Nov 27, 2015

could you also confirm that we don't need to update our softdevice hex files to match this new SDK? I believe we're already taking our softdevice from SDK8.1, but I could be wrong about that.

@andresag01
Copy link

@rgrover @LiyouZhou : The softdevice files we are using are these ones. I am not sure how the versioning works but the file names say:

  • s130_nrf51_1.0.0_softdevice.hex
  • s110_nrf51822_8.0.0_softdevice.hex

@rgrover
Copy link
Contributor

rgrover commented Nov 27, 2015

@LiyouZhou please check if we could benefit from a different softdevice from SDKv8.1.

@rgrover
Copy link
Contributor

rgrover commented Nov 27, 2015

@LiyouZhou could you please also review the release notes for v8.1 of the Nordic SDK to help clarify what benefits exist in upgrading to it? We will be upgrading the Nordic SDK over time, but we should try to document any major benefits at each upgrade step--if such benefits exist.

@andresag01
Copy link

@rgrover I have just tried the URIBeacon demo in ble-examples and it seems to behave as expected i.e. I am able to connect, configure something. Then when I reset the device my configuration is retained, I assume because it was saved in permanent storage.

@rgrover
Copy link
Contributor

rgrover commented Nov 27, 2015

ok. I'm satisfied with our upgradability to v8.1 of the SDK. I'd just like confirmation about the softdevice hex file.

@LiyouZhou
Copy link
Contributor Author

@rgrover I can confirm current headers are from s130_nrf51_1.0.0 softdevice. Softdevice have some definition changes, be I see no obvious performance benefit. I would like to keep the softdevice upgrade a separate effort as it needs more thought and investigation. S130v2 is at alpha release stage and may not be fully compatible with sdk 8.1.

@LiyouZhou
Copy link
Contributor Author

@rgrover Here are some benefits from the sdk v8.1 release notes:

Highlights:

  • Support for SoftDevice S130 v1.0.0
  • Serialization supporting SoftDevice S110, S120, and S130
  • ANCS updated and no longer in experimental state
  • GCC updated to new version: ARMGCC 4.9 q1-2015
  • DFU example now has support for IAR and GCC

Changes:

ANT + BLE (dual stack):

  • Not included in this release due to conflicting interface between SoftDevice S310 and S110. Use SDK v7.2.0 for S310 support.
  • S310 support will be reintroduced in a future release.

    BLE:

  • SoftDevices:
    • Support for S130 v1.0.0.
  • Serialization:
    • Fully serialized S110, S120, and S130 API.
  • Modules/Services:
    • New button module (bsp_btn_ble) that enables functionality such as disconnect, turn off whitelist, go to sleep.
    • Advertising module now supports scan response data
  • Examples:
    • ANCS example is no longer in experimental state.

      Proprietary:

    • IAR support for proprietary examples.

Fixed issues:

  • NRFFOSDK-2044: Fixed issue in app_gpiote.
  • NRFFOSDK-3855: Fixed issue in Current Time Service.

Known issues:

  • Device Manager is not supported in multirole S130 operation.
    • Device Manager works in peripheral or central only operation on S130. This must be decided at compile time.
  • The DFU over BLE example has been tested to work with a minimum connection interval of
    11.25 ms. The application cannot handle connection intervals lower than 11.25 ms and may
    undergo a system reset in the middle of a firmware update.
    Workaround: If you face unexpected disconnects during the firmware update process, consider
    increasing the connection interval.
  • ANT:
    • NRFFOSDK-755: HRM TX buttons example may report wrong total elapsed time.
  • BLE:
    • A few APIs of the Device Manager are not implemented. Also, documentation providing
      examples of how the API can be used is missing.
    • NRFFOSDK-2824: Device Manager (pstorage) does not support update of bond split across two
      pages.
  • Proprietary:
    • The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box
      with the nRF51 ESB examples. This is due to:
      • The legacy examples do not use "payload in ACK".
      • The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
      • The examples do not use dynamic payload length.
        The legacy examples need to add the following to work with the nRF51 examples:
        hal_nrf_setup_dynamic_payload(0xFF);
        hal_nrf_enable_dynamic_payload(true);
        hal_nrf_enable_ack_payload(true);
        hal_nrf_set_rf_channel(10);
        In addition, the legacy PTX example must add code for handling the payloads received in ACK.
    • The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy
      Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and
      channel tables require adjustment.
      • Timeslot period: Edit the gzll_params.h file used in the nRF24Lxx projects or use the
        nrf_gzll_set_timeslot_period() function in the nRF51 projects
        (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
      • Channel table: Edit the gzll_params.h file used in the nRF24Lxx projects or use the
        nrf_gzll_set_channel_table() function in the nRF51 projects.
    • Gazell does not support "Low Power Host mode" (Host mode 1).

@rgrover
Copy link
Contributor

rgrover commented Nov 27, 2015

it all seems good to me. I'll go ahead with v8.1

rgrover added a commit that referenced this pull request Nov 27, 2015
@rgrover rgrover merged commit 27c5043 into ARMmbed:develop Nov 27, 2015
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.

None yet

4 participants