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

Newbie having trouble getting started...

Hello, I just received my BMD-200 eval board today and cannot get any of the examples working. I started out trying to get blinky to work using GCC and the make files provided. I am able to successfully build the projects. The _build directory has the .hex files. It is not clear what the next step should be here. make soft_device seems to just load the Soft Device so how does the example get loaded in this paradigm? What dictates where in memory it gets loaded in the GCC paradigm? Is this important?

After many attempts, I gave up on the above method and tried using nrfGo Studio. I loaded the 110 Soft Device (I am on the latest SDK version 8), and then loaded several peripheral examples. None of them run.

I gave up on this method and downloaded the Keil tools. I followed the instructions in the manual by first using nrfGo Studio to load the 110 Soft Device, and then moved over to the Keil tool. Made all of the configuration modifcations, downloaded custom_board.h, and the project builds successfully. It even seems to download to Flash successfully but it won't run. blinky does not blink and none of the ble peripheral examples advertise, so I know its not working.

I'm not sure what to try next. Can you please let me know what I am doing wrong based on the above. I don't care which method I use; I just need one that works.

Any help would be greatly appreciated.

Thanks.

Ernest

Parents
  • blinky_gcc_nrf51.MakefileHi cocoa, thanks for the quick reply. Yes that was A problem but there seems to be another. I switched all references in the Makefiles from 1422 to 1822. It seems to build properly but still does not run. I have tried both nrjprog and nrfgo Studio to flash it and it still does not run. Any other ideas?

    I have attached the Makefile

    Output from the build below:

    make -f blinky_gcc_nrf51.Makefile all del _build C:\Rigado\examples\peripheral\blinky\pca10028\s110\armgcc_build*, Are you sure (Y/N)? make: [clean] Error 1 (ignored) make[1]: Entering directory C:/Rigado/examples/peripheral/blinky/pca10028/s110/armgcc' del _build/*.o Invalid switch - "*.o". make[1]: [cleanobj] Error 1 (ignored) make[1]: Leaving directoryC:/Rigado/examples/peripheral/blinky/pca10028/s110/armgcc' make[1]: Entering directory C:/Rigado/examples/peripheral/blinky/pca10028/s110/armgcc' Linking target: nrf51822_xxac.out make[2]: Entering directoryC:/Rigado/examples/peripheral/blinky/pca10028/s110/armgcc' Preparing: nrf51822_xxac.bin Preparing: nrf51822_xxac.hex "" text data bss dec hex filename 908 96 0 1004 3ec _build/nrf51822_xxac.out "" make[2]: Leaving directory C:/Rigado/examples/peripheral/blinky/pca10028/s110/armgcc' make[1]: Leaving directoryC:/Rigado/examples/peripheral/blinky/pca10028/s110/armgcc'

    10:44:22 Build Finished (took 526ms)

Reply
  • blinky_gcc_nrf51.MakefileHi cocoa, thanks for the quick reply. Yes that was A problem but there seems to be another. I switched all references in the Makefiles from 1422 to 1822. It seems to build properly but still does not run. I have tried both nrjprog and nrfgo Studio to flash it and it still does not run. Any other ideas?

    I have attached the Makefile

    Output from the build below:

    make -f blinky_gcc_nrf51.Makefile all del _build C:\Rigado\examples\peripheral\blinky\pca10028\s110\armgcc_build*, Are you sure (Y/N)? make: [clean] Error 1 (ignored) make[1]: Entering directory C:/Rigado/examples/peripheral/blinky/pca10028/s110/armgcc' del _build/*.o Invalid switch - "*.o". make[1]: [cleanobj] Error 1 (ignored) make[1]: Leaving directoryC:/Rigado/examples/peripheral/blinky/pca10028/s110/armgcc' make[1]: Entering directory C:/Rigado/examples/peripheral/blinky/pca10028/s110/armgcc' Linking target: nrf51822_xxac.out make[2]: Entering directoryC:/Rigado/examples/peripheral/blinky/pca10028/s110/armgcc' Preparing: nrf51822_xxac.bin Preparing: nrf51822_xxac.hex "" text data bss dec hex filename 908 96 0 1004 3ec _build/nrf51822_xxac.out "" make[2]: Leaving directory C:/Rigado/examples/peripheral/blinky/pca10028/s110/armgcc' make[1]: Leaving directoryC:/Rigado/examples/peripheral/blinky/pca10028/s110/armgcc'

    10:44:22 Build Finished (took 526ms)

Children
  • Hi, in your makefile you have this flag : CFLAGS = -DBOARD_PCA10028 This means you are compiling against a PCA10028 board. Is BMD-200 the same of PCA10028 ?

    More, what's inside blinky_gcc_nrf51.ld ?

    -c

  • As I understand it PCA10028 is the eval board interface (UART) and PCA10031 is the Dongle. This is whats in blinky_gcc_nrf51.ld"

    /* Linker script to configure memory regions. */

    SEARCH_DIR(.) GROUP(-lgcc -lc -lnosys)

    MEMORY { FLASH (rx) : ORIGIN = 0x0, LENGTH = 0x40000 RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x8000 }

    INCLUDE "gcc_nrf51_common.ld"

  • Ok, Is BMD-200 the exact copy of PCA10028 ? Has it the same nRF51 chip ? Your ld is for xxaa variant but your makefile seems compiling for xxac (output is nrf51822_xxac) **_xxac.ld assumes a chip with RAM with LENGTH = 0x8000 but in your ld script RAM has LENGTH = 0x40000.
    -c

  • So I actually don't know if the BMD-200 is like the PCA10028. It is definitely a different circuit board but I can't find any information on the relationship between the 2 boards. The SDK only has references to the PCA10028 and the PCA10031. I am currently using the PCA10028 settings...again this could be wrong...I feel like I'm flying blind.

    I also noticed that xxac vs xxaa differences which I have corrected in the Makefile. I have also modified the gcc_nrf51_common.ld" file with the following settings based on the eval board documentation:

    /* Linker script to configure memory regions. */

    SEARCH_DIR(.) GROUP(-lgcc -lc -lnosys)

    MEMORY { FLASH (rx) : ORIGIN = 0x16000, LENGTH = 0x29000 RAM (rwx) : ORIGIN = 0x20002000, LENGTH = 0x2000 }

    INCLUDE "gcc_nrf51_common.ld"

    Do you know what this compiler flag translates into: CFLAGS = -DBOARD_PCA10028 ? This could perhaps be the problem...again there is no reference in any documentation to BMD-200 specific makefile settings so I am flying blind....

    After making the aforementioned changes and reflashing it still does not run...:-(

Related