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

Custom Board - Keil configuration

I have a query that is similar to the question below

https://devzone.nordicsemi.com/question/44424/how-do-i-switch-the-target-from-a-nrf51422_xxac-to-nrf51422_xxab-in-keil/

I am currently developing using the Nordic DK which has a nrf51422 SOC (QF AC). I am using the S130 Soft Device. I have a custom board that is based on nrf51822 SOC (QF AA). I am unable to load the hex file or load the program directly on to flash. I am facing similar problems to the one explained in the link above. I would appreciate help on the following

a) Where should i define the GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS and GPIOTE_CONFIG_IRQ_PRIORITY values and what should those values be? Is there any documentation on what these values are

b) What should be the iRAM and iROM settings for my custom board configuration (S130, n51822 QF AA)

c) Are there any other configuration changes that i need to make in Keil so that i can load my program directly on to my custom board

Also i am using the method mentioned in the below link to connect the custom board to the DK.

https://developer.mbed.org/users/MarceloSalazar/notebook/programming-a-minibeacon-bluetooth-module-nordic-n/

The beacon detection is successful. However since the target board configuration is wrong in Keil i am unable to either directly load the program to flash from Keil or load the Hex file via nRFGO Studio

Best Prasanna

Parents
  • Hi Prasanna,

    a) This should be configured in the configuration files nrf_drv_config. The path usually looks like this SDK9\examples\ble_peripheral\ble_app_beacon\config.

    b) QFAA means 256kB of flash and 16kB of RAM.

    According to section 13 of the SoftDevice Specification for S130 the IRAM base should be a minimum of 0x200022D8, and might be larger depending on the requirements of your application. Use the default 0x20002800.

    The IRAM size consumption is dependent on the attribute table size(see section 13.1 of the SDS) with the default value of 0x600 bytes you would end up having an IRAM size of 0x4000 - 0x2800 = 0x1800.

    The IROM base should be 0x0001C000 which is the same as 0x1C000. The size should be 0x40000 - 0x1C000 = 0x24000.

    c) That should be it, however note that there might be an issue if you change the target like described in the related post where the configuration files do not get linked to the new target, you may have to re-include these in your project.

    Best regards,

    Øyvind

  • You are overflowing the RAM by about 1kB, see this error:.\_build\nrf51822_xxaa_s130.axf: Error: L6407E: Sections of aggregate size 0x508 bytes could not fit into .ANY selector(s).

    You need to limit your RAM usage, usually taking away the heap with microlib is enough, however you have already enabled this.

    See this post on reducing RAM consumption. Currently RTT is taking a lot of your RAM.

Reply Children
No Data
Related