Lancaster University fork of the Nordic nrf51-SDK repository, which actually lives on github: https://github.com/lancaster-university/nrf51-sdk

Dependents:   nRF51822

Committer:
Jonathan Austin
Date:
Fri Apr 08 15:11:33 2016 +0100
Revision:
8:fc9c9d6f097d
Parent:
0:bc2961fa1ef0
Prefer the same changes from git

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jonathan Austin 0:bc2961fa1ef0 1 # nrf51-sdk
Jonathan Austin 0:bc2961fa1ef0 2 Module to contain files provided by the nordic nRF51 SDK. The latest version of this module uses files from Nordic SDK 10.0.0. The files are extracted from [here](https://developer.nordicsemi.com/nRF5_SDK/nRF51_SDK_v10.x.x/nRF51_SDK_10.0.0_dc26b5e.zip).
Jonathan Austin 0:bc2961fa1ef0 3
Jonathan Austin 0:bc2961fa1ef0 4 ## Changes made to Nordic files
Jonathan Austin 0:bc2961fa1ef0 5 The files are kept the same as much as possible to the Nordic SDK. Modifications are made in order to integrate with mbed.
Jonathan Austin 0:bc2961fa1ef0 6 - ble/common/ble_conn_state.c: Preprocessor tests regarding S110, S120 or S130 macro should be replace by TARGET_MCU_NRF51_XXK_SXXX tests
Jonathan Austin 0:bc2961fa1ef0 7
Jonathan Austin 0:bc2961fa1ef0 8 ## Porting new versions of Nordic SDK
Jonathan Austin 0:bc2961fa1ef0 9 A list of files currently requierd by mbed is maintained in [script/required_files.txt](https://github.com/ARMmbed/nrf51-sdk/blob/master/script/required_files.txt). [A python script](https://github.com/ARMmbed/nrf51-sdk/blob/master/script/pick_nrf51_files.py) is written to help porting from nordic sdk releases. **required_files.txt** is parsed to find a list of filenames. The script searches for these filenames in the sdk folder, and copy then into the yotta module mirroring the folder structure in the sdk. **extraIncludes** is automatically added to module.json to allow direct inclusion of noridc headers with just the filename.
Jonathan Austin 0:bc2961fa1ef0 10
Jonathan Austin 0:bc2961fa1ef0 11 ### Script usage
Jonathan Austin 0:bc2961fa1ef0 12 ```
Jonathan Austin 0:bc2961fa1ef0 13 python pick_nrf51_files.py [options] <full-noridc-sdk-path> <nrf51-sdk-yotta-module-path>
Jonathan Austin 0:bc2961fa1ef0 14 options: --purge : to delete all existing files and start again
Jonathan Austin 0:bc2961fa1ef0 15 --dry-run : to list the files to be copied but not actually copy them
Jonathan Austin 0:bc2961fa1ef0 16 ```
Jonathan Austin 0:bc2961fa1ef0 17
Jonathan Austin 0:bc2961fa1ef0 18 There are files in the sdk with the same filename but in different folder. This is dealt with by excluding certain directories. The excluded directories are listed in [pick_nrf51_files.py](https://github.com/ARMmbed/nrf51-sdk/blob/master/script/pick_nrf51_files.py).
Jonathan Austin 0:bc2961fa1ef0 19
Jonathan Austin 0:bc2961fa1ef0 20 After running the script, the changes in [the previous section](#changes-made-to-nordic-files) will have to be applied manually again.
Jonathan Austin 0:bc2961fa1ef0 21
Jonathan Austin 0:bc2961fa1ef0 22 Folder structure or even file name can change between releases of the nordic sdk, hence a degree of manual adjustment is needed when porting.
Jonathan Austin 0:bc2961fa1ef0 23
Jonathan Austin 0:bc2961fa1ef0 24 ## Using Noridc Headers
Jonathan Austin 0:bc2961fa1ef0 25 The nordic sdk is written in C and yotta modules support C++. If you are trying to include Nordic files in a cpp program, you need to use the `extern "C"` keyword around the includes.
Jonathan Austin 0:bc2961fa1ef0 26 ```c
Jonathan Austin 0:bc2961fa1ef0 27 extern "C" {
Jonathan Austin 0:bc2961fa1ef0 28 #include "softdevice_handler.h"
Jonathan Austin 0:bc2961fa1ef0 29 }
Jonathan Austin 0:bc2961fa1ef0 30 ```