This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

How can I compile programs for the PCA10024 (MBED) using the IoT SDK?

I've been trying to get a simple blinky program to compile for the better part of a day now. The makefiles are outdated and so are the keil projects. Is this SDK no longer supported?

  • Hi Max,

    Is your aim only to compile the FW for Nordic mKIT (PCA10024 - developer.mbed.org/.../) In such case mbed on-line compiler should be the preferred option but you can use any other way supported by Nordic SDK (I've tested Keil and GCC), just set the target board to EvalKit (PCA10001) because they seems to be the same in terms of PIN layout (see this thread devzone.nordicsemi.com/.../ or compare yourself at www.nordicsemi.com/.../nRF51822-Evaluation-Kit). I expect that official answer from Nordic will be that mKIT should be used with mbed only but from practical experiments there haven't been reported any differences between PCA10001 and PCA10024 except loader part (auxiliary Atmel chip running mbed CMSIS-DAP FW in this case while normally it could run SEGGER J-Link OB).

    If you are also speaking about loading and debugging then I can from my experience recommend pyOCD (I'm not using GDB, just for flashing). It is more fragile then SEGGER environment but it's open source and you save some money on dev kit by not paying SEGGER license. When I've used it first time in summer 2014 it needed small patches in "flash_nrf51822.py" to make it work as I needed (flashing SoftDevice HEX and Application BIN at one call) but it probably evolved so these minor glitches should be fixed. See github.com/.../ and github.com/.../ for more details. OpenOCD claims nrf51 support as well but I haven't succeeded with it.

    In case of particular problems while using OCD/GDB search this forum, there are already some issues and hints explained.

    Cheers Jan

  • Ok everyone, this is the standard makefile modified by me. If you just change the paths in "user configs" it should compile. I recommend placing anything that you need (such as the SDK and ARM toolchain inside your repository and using relative paths, so that the makefile stays the same across computers. Any source and header files you place in the source path should be included automatically.

    If you find any issues or have any suggestions please comment

    Makefile

  • I've obviously missed "IoT" part of your issue, my bad. I had issues with porting of makefiles between standard SDK versions (e.g. old 6.x and "MDK5" style 7.x) so I'm not surprised that you face it with this special SDK release. In the end going file by file and locating it in target SDK version worked for me (and knowing that you are looking for PCA10001 files when it comes to target board should help you). Sorry but cannot offer more.

    Cheers Jan

  • Thanks, that's what I've been doing, but I found a rather weird error when compiling. I'll try to reproduce it and get back to you

  • What problems and error messages do you get? The IoT SDK should compile without much trouble. Seems like Makefile.common has been added as a mistake, as this is obviously for an older SDK. The makefile in each of the examples should compile the respective example without having to include Makefile.common.

Related