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.

Compiler/CC2640: Frontier Tool Auto-generated file for ccs_compiler_define.bcfg

Part Number: CC2640

Tool/software: TI C/C++ Compiler

 

My project is load from \ti\simplelink_academy_01_11_00_0000\modules\projects\ble_projectzero
ti-rtos : tirtos_cc13xx_cc26xx_2_20_01_08
xdctools: xdctools_3_32_00_06_core

ti ble stack is : \ti\simplelink\ble_sdk_2_02_01_18

From the map file, ProjectZeroStack still have 0x0000ee3d flash unused, but  ProjectZeroApp only have 0x000004b0 flash unused.

I have read the swru393e Chapter 10 that told me how to configure ble stack features. But I want to know how to configure map file boundary address.

Can I configure the Application Imagine code space、Stack Imagine code space、SNV and CCA?  How to configure  the Application Imagine code space、Stack Imagine code space、SNV and CCA boundary?

I want to set osal_snv = 2, but now I have to accept osal_snv = 1. Because Application Imagine code space is not enough,  but stack Imagine code space have large free space memory. Flash Space is not enough for my application.

How to use Stack Frontier Generator to generate ccs_compiler_defines.bcfg files?

${CG_TOOL_HEX} -order MS --memwidth=8 --romwidth=8 --intel -o ${ProjName}.hex ${ProjName}.out
${TI_BLE_SDK_BASE}/tools/frontier/frontier.exe ccs ${PROJECT_LOC}/${ConfigName}/${ProjName}_linkInfo.xml ${PROJECT_ROOT}/TOOLS/ccs_compiler_defines.bcfg ${PROJECT_ROOT}/TOOLS/ccs_linker_defines.cmd.

where frontier.exe get ICALL_STACK0_ADDR ICALL_STACK0_START ICALL_RAM0_START value to create ccs_linker_defines.cmd and ccs_compiler_defines.bcfg? 

How  frontier.exe works and  what can i do to modify ICALL_STACK0_ADDR 、ICALL_STACK0_START、 ICALL_RAM0_START value?

because I want to modify
--define=ICALL_STACK0_ADDR=0xe001
--define=ICALL_STACK0_START=0xe000
--define=ICALL_RAM0_START=0x20004348
to
--define=ICALL_STACK0_ADDR=0xC001
--define=ICALL_STACK0_START=0xC000
--define=ICALL_RAM0_START=0x20004348

when I directly modify it in the project, it lost.

  • Hi,

    We also wanted to manually configure the ICALL_STACK0_ADDR to 0xE000. Currently, the frontier tool is automatically keeping this ICALL_STACK0_ADDR to 0x11000.

    With ICALL_STACK0_ADDR=0x11000, the stack project's compiled binary size of 56000 bytes is making the stack binary to occupy upto 0x1EAC0. We suspect that the Flash last page: 0x1E000 is overlapping with stack binary. i.e) we feel, the Flash last page is overwritten with stack binary and the app binary is unable to cleanly keep CCA and CCFG contents on the Flash last page of 0x1E000.

    1) With this we see that the application project is running fine without exceptions. But we the GAP advertising is not visible to Mobile app. i.e) The Mobile app is NOT listing the BLE device's name and other associated GAP advertising and scan response data. We wanted to move the stack binary by 4k back i.e) wanted to manually configure the ICALL_STACK0_ADDR to 0xE000 so that the Flash last page is empty and app binary can cleanly use this area for CCA and CCFG. Please share us some pointers, if you could solve above issue.

    Best regards,

    Prabhakar

  • Hello,

    >> How to use Stack Frontier Generator to generate ccs_compiler_defines.bcfg files?

    Frontier should be invoked as a post build step to the stack as you have listed here:
    ${TI_BLE_SDK_BASE}/tools/frontier/frontier.exe ccs ${PROJECT_LOC}/${ConfigName}/${ProjName}_linkInfo.xml ${PROJECT_ROOT}/TOOLS/ccs_compiler_defines.bcfg ${PROJECT_ROOT}/TOOLS/ccs_linker_defines.cmd.

    >>How frontier.exe works and what can i do to modify ICALL_STACK0_ADDR 、ICALL_STACK0_START、 ICALL_RAM0_START value?
    Frontier parses the stack output files (link info or map file) and generates ccs_compiler_defines.bcfg and ccs_linker_defines.cmd. You should not modify any of the defines in these files, but should instead let frontier run for you.

    If you cannot fit with OSAL_SNV=2 then you will need to look into shrinking the size of the app.
  • Hi Prabhakar,

    You inqury seems very similar to Roopa's here: e2e.ti.com/.../

    Are you both working on the same topic?

    If not, you may find some help there.
  • Hi Sean,

    We are working on same project. Sure, I will refer your answers to Roopa's post: e2e.ti.com/.../

    Best regards,
    Prabhakar
  • Where Frontier Generator get ICALL_STACK0_ADDR 、ICALL_STACK0_START、 ICALL_RAM0_START value to generate ccs_compiler_defines.bcfg files?

    It does not work  When I set  ICALL_STACK0_START=0x10000   ICALL_STACK0_ADDR=0x10001 ICALL_RAM0_START=0x20004348

    at Properties -> ARM Linker -> Advanced Options ->Command Files Preprocessing -> Pre-define preprocessor macro _name to  _value (--define)

    when I rebuild the project,  the ccs_compiler_defines.bcfg files was not  changed. How Can  I Changed the ccs_compiler_defines.bcfg files content?

  • Hi,

    ICALL_STACK0_ADDR, ICALL_STACK0_START, and ICALL_RAM0_START are set via the map or link_info.xml of the stack project.

    They are not intended to be modified by hand. If they are set by re-compiling the stack project then these are the values you must use.