What modifications are needed to run the example code for Nordic 52832 on 52833?

as show:What modifications are needed to run the example code ble_multilink_central for Nordic 52832 on 52833? Please provide a detailed explanation

Parents Reply Children
  • Now I am using the example code of sdk17.1.0 s32. After opening it with Keil, I found that it is the example code of 52832. I changed the device to nRF52833_xxAA, but after recompiling, there are still the following issues and it cannot run properly on 52833. What else do I need to do?

    Rebuild started: Project: ble_app_multilink_central_pca10040_s132
    *** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
    Rebuild target 'nrf52832_xxaa'
    Note: source file 'RTE\Device\nRF52833_xxAA\system_nrf52.c' - object file renamed from '.\_build\system_nrf52.o' to '.\_build\system_nrf52_1.o'.

  • Hi,

    With Keil it is easier to change the files in the GUI. But you need to do essentially the same things (change chip variant, change defines, remove startup files etc related to the old chip and add files related to the new chip, and adjust memory start addresses and sizes). It is a good idea to compare with an exmaple project for nRF52833 (there are some of those in the SDK), as it is easy to miss somethings.

    Regardign the error, it looks to me like you hav emade a lot of changes but not cleaned the build folder? When you do big changes, you need to clean all before doing a re-build. If it still fails (and after you have updated everythign as outlined), can you share the full log? (You can also change the project so that I can have a look on my end.)

  • hi I will configure according to what you said:“FLASH_PH_START=0x0;FLASH_PH_SIZE=0x40000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x8000;FLASH_START=0x27000;FLASH_SIZE=0x19000;RAM_START=0x20002ae8;RAM_SIZE=0x5518”;But now there are some errors:

    ".reserved_ram is too large to fit in RAM1 memory segment

    .data_run is too large to fit in RAM1 memory segment

    .bss is too large to fit in RAM1 memory segment

    section .heap overlaps absolute placed section .stack

    section .reserved_ram VMA wraps around address space

    section .stack VMA [20002000,20003fff] overlaps section .reserved_ram VMA [20000000,00004397]"

    As above,The error in the last line seems to be due to overlapping addresses. How should I modify this?

  • just to add :

    I am currently porting the example code of 52832 to 52833 in Keil; On Egger Embedded Studio, the sample code of 52840 is ported to 52833. May I ask which one is better to operate?

  • Hi,

    I would not expect to see these errors. But there are some strange values here, like 32 kB RAM size, which I see is my mistake as I picked a 100100e project to copy values from and not a 100100 project.

    The line should be like this (but still with project specific adjustments as needed:

          linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x80000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x20000;FLASH_START=0x0;FLASH_SIZE=0x80000;RAM_START=0x20000000;RAM_SIZE=0x20000"

    *_PH_* sizes si the total physical size. And the other start address and sizes is the remaning memory (flash and RAM) left to the application, excluding what is used by the SoftDevice.

    If you still don't get it working, can you share the project files (all fiels within the project folder) so that I can take a look?

    curt_z said:
    I am currently porting the example code of 52832 to 52833 in Keil; On Egger Embedded Studio, the sample code of 52840 is ported to 52833. May I ask which one is better to operate?

    I would personally prefer Segger Embedded Studio as that is the IDE that we promote with resent versions of the nRF5 SDK. It is also free for use with Nordic devices, unlike Keil. It also has some additional benefits like being cross platform and a slightly more modern feel. But Keil is also a supported IDE, so you can use whichever you prefer.

Related