This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2640R2F: Frontier Tool Auto-generated file, Flash memory mapping: ICALL_STACK0_ADDR

Part Number: CC2640R2F

Hi,

I am working on developing one feature in already developed firmware for my client. They created three different files. one for bootloader, one for OAD, and one is for system application. and using "simplelink_cc2640r2_sdk_2_30_00_28" stack and CCS 8.3.0.

As we can see in the developers guide that ICALL_STACK0_ADDR == (ICALL_STACK0_START +1).

But when I tried to do memory mapping, what I got in ccs_compiler_define.bcfg file is shown below:

ICALL_STACK0_ADDR = 0x11ef1

ICALL_STACK0_START = 0xc000

Can you please tell me what is going in this project? and how to rearrange memory and utilize it fully.

And one more thing, they are using on-chip OAD, allocate 122816 bytes of memory length for OTA, and using 44200 bytes only. Is there any specific reason for this?

Thanks and Best Regards,

Harsh

  • Hi Harsh,

    Let me assign an expert to your thread.

    Best regards,

  • Hi Clement,

    Yes Please, waiting for your support.

    Best Regards,

    Harsh garg

  • Hey Harsh,

    Sorry for the delay over the weekend. First off, I would highly recommend taking this time to update from the SDK they are using since it is very old; there have been numerous fixes/improvements since that SDK.

    To answer your original questions, I would take a look at the cc26xx_app_oad.cmd/cc26xx_stack_oad.cmd files for further understanding of the memory layout in the default simple_peripheral application. These files determine the memory layout for a given application, and you will have to start modifying here to rearrange things for your application.

    they are using on-chip OAD, allocate 122816 bytes of memory length for OTA, and using 44200 bytes only. Is there any specific reason for this?

    I'm not exactly sure as I am not fully aware of the changes made in your application. In general, keep in mind that the device will have 3 separate images to support on-chip OAD. The persistent image, the application image, and the BIM. All of these will have their own sizes, depending on how they were modified. Depending on the application, the user will have to allocate enough memory for OTA update given the size of both the desired persistent image and their application image (since both will be taking up space on the device).

  • Hi Ammar N,

    Hope you are doing good!

    Thanks for your support.

    This is the memory allocation of the whole project. I got these values from the ".map" files. 

    I didn't find the cc26xx_app_oad.cmd/cc26xx_stack_oad.cmd files in my workspace. Can you please help me out on this??

  • Hey Harsh,

    Are there any .cmd files in your project? I refer to the out of box simple_peripheral OAD example. I suggest taking a look at that first to start and then revisit the custom application.

  • Hey Ammar,

    There are only 4 .cmd files mentioned below:

    1. linker.cmd 

    2. ccs_linker_defines.cmd

    3. lib_linker.cmd

    4. ccs_linker_defines_tgt.cmd

    Ok, Ammar. I will check the simple_peripheral OAD example.

    Best Regards,