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

ble_app_uart of example SDK9 doesn't work

Hello: I want develop my nrf51822 project base on new sdk and softdevice.In /nRF_Examples/9.0.0/ble_periphera/ble_app_uart/, the keil project device is nrf51422,and it can work on my nrf51822,but when I config project device to nrf51822,build and down to nrf51822,It can't work any more,No broadcast,I guess that the program not run! Please tell me the reason or how to config this project.

Parents
  • Hi

    My guess is that when you re-configure your project device the memory area settings are reset. Using e.g. a BLE example and Softdevice S110 V8.0.0 your start address needs to be at 0x18000. If you change the device and then change the memory settings back to the original settings then you should be good.

    image description

    EDIT:

    When you change device like this a new folder is generated among your project files: "ble_app_uart\pca10028\s110\arm5\RTE\nRF_Drivers\nRF51822_xxAC". In this folder Keil is putting some configuration files related to your new device. These files are standard files and without the necessary adjustments for your project. When I tried to recreate your issue I found that GPIOTE_ENABLED was defined as 0 and hence the project would not compile. I guess you had the same issue, but redefined it to 1? Did you also change the define

    #define GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS 1
    

    to

    #define GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS 6
    

    ?

    After this redefinition my project compiled and worked like a charm.

    EDIT 2:

    Just for the record: There is actually no reason whatsoever to change the device in Keil from nRF51422_xxAC to nRF51822_xxAC. The two chips are virtually identical with same amount of RAM/ROM. The only difference is that the 822 version has its internal ANT hardware physically disabled.

Reply
  • Hi

    My guess is that when you re-configure your project device the memory area settings are reset. Using e.g. a BLE example and Softdevice S110 V8.0.0 your start address needs to be at 0x18000. If you change the device and then change the memory settings back to the original settings then you should be good.

    image description

    EDIT:

    When you change device like this a new folder is generated among your project files: "ble_app_uart\pca10028\s110\arm5\RTE\nRF_Drivers\nRF51822_xxAC". In this folder Keil is putting some configuration files related to your new device. These files are standard files and without the necessary adjustments for your project. When I tried to recreate your issue I found that GPIOTE_ENABLED was defined as 0 and hence the project would not compile. I guess you had the same issue, but redefined it to 1? Did you also change the define

    #define GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS 1
    

    to

    #define GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS 6
    

    ?

    After this redefinition my project compiled and worked like a charm.

    EDIT 2:

    Just for the record: There is actually no reason whatsoever to change the device in Keil from nRF51422_xxAC to nRF51822_xxAC. The two chips are virtually identical with same amount of RAM/ROM. The only difference is that the 822 version has its internal ANT hardware physically disabled.

Children
Related