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.

CC1310: SimpleLink SDK require more then available memory on CC1310F32 MCU

Part Number: CC1310
Other Parts Discussed in Thread: ENERGIA

Hi,
we just finishing design of one new project with CC1310F32 MCU. We already buy 250 pcs for pilot phase and final number we need to deliver is 10.000 pcs in next 6 months. PCB's and P'n'P machine is ready for production, so I do not have time to change MCU and I run into a problem.
We develop software on TI CC1310 Launchpad using CCS and Energia. It's simple application that using star network connecting nodes and send some basic information's - extremely simple, like you example application coming with Energia . Now, we try to program it to our board, and we stuck.
We can not move projects, nether with Energia not with CCS from CC1310F128 to F32.
We try creating new project, but then we got problem adding SimpleLink library to it. If we start with example code from Resource explorer it is also designed for F128. If we create project in Energia it is also for F128. If we start INO project in CCS it is also locked to F128.
Simple question is - how to switch project to CC1310F32, preferred with INO/Energia setup.

What I noticed, when I create new project in CCS (New project -> Resource explorer -> rfEasyLinkTx_NoRTOS) and without touching anything, just change processor and linker command file to CC1310F32, after building a project I see that empty project require more then 39k memory. 

Is this mean that SimpleLink SDK will not run on CC1310F32 MCU????

regards
Goran

  • To convert a project from F128 to F32:

    The screenshots below is for a project I changed to F64. The same principle applies for F32.

    - Change the device variant to CC1310F32

    - Change the linker file. What I have found easiest is to open the linker file for F32 (select it in the "Linker Command File" pull-down.

    Change FLASH_SIZE and RAM_SIZE in the original link file found in the project with the values you found in the F32 linker file. 

    Also remember to adjust the board files according to the pinout on your board: https://dev.ti.com/tirex/content/simplelink_cc13x0_sdk_4_10_01_01/docs/proprietary-rf/proprietary-rf-users-guide/proprietary-rf-guide/custom-hardware.html

  • Hi,

    when I change to F64, it is the same as F32. I do not have CC1310_LAUNCHXL_NoRTOS64.cmd file on list. Here is a settings:

    And I got the same error as with F32:

    "../cc13x0f64.cmd", line 79: error #10263: FLASH memory range has already been specified
    "../cc13x0f64.cmd", line 79: error #10264: FLASH memory range overlaps existing memory range FLASH
    "../cc13x0f64.cmd", line 81: error #10263: SRAM memory range has already been specified
    "../cc13x0f64.cmd", line 81: error #10264: SRAM memory range overlaps existing memory range SRAM
    "../CC1310_LAUNCHXL_NoRTOS.cmd", line 79: error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. placement with alignment fails for section ".const" size 0x30e9. Available memory ranges:
    FLASH size: 0x8000 unused: 0xf60 max hole: 0xf60

    undefined first referenced
    symbol in file
    --------- ----------------
    ResetISR

    error #10234-D: unresolved symbols remain
    warning #10062-D: entry-point symbol "ResetISR" undefined
    error #10010: errors encountered during linking; "rfEasyLinkEchoTx_CC1310_LAUNCHXL_nortos_ccs.out" not built

    >> Compilation failure
    makefile:161: recipe for target 'rfEasyLinkEchoTx_CC1310_LAUNCHXL_nortos_ccs.out' failed
    gmake[1]: *** [rfEasyLinkEchoTx_CC1310_LAUNCHXL_nortos_ccs.out] Error 1
    makefile:157: recipe for target 'all' failed
    gmake: *** [all] Error 2

    **** Build Finished ****

    And here is a memory usage

    Goran

  • Sorry, he remove pictures, hope this will work

  • You should select F32 it you have this device flavor. F64 was just an example since I did this for a different customer. 

  • And, when I build it for F128, I see that he use almost 40k memory

  • Then it depends on how you have written the code. You can save some memory by removing all unused drivers etc as described in the link above. You probably need to analyze your code and see how much memory each part of the code require. 

  • I do not have code - it's empty project without any driver.

    Meaning of this device is to wake up from time to time and send ID so that main system know that this item is still there. There is not even buttons, led's or anything.

    I'm trying to compile basic example from TI site. When I look in memory usage (see picture) I do not know what to remove since this all is settings for RF.

    As far as I see this is that TI produce F32 MCU in which I can not put SimpleLink SDK produced by ... TI. Now you telling me that I need to remove code from basic example TI provide to send 10 bytes of information with fsk? Why is so complicated to provide basic example that actually work on smallest MCU TI have? Maybe TI product managers shall take a peek in STM32CubeIDE or similar products from NXP, Microchip and others.

    Since this is such problem, is this a way to run RF without SimpleLink SDK? Or I need to throw 10.000$ in chips I already buy away and start designing with STM or Microchip?

    Since this is a mixed code and I see lot of RTOS parts, I will try to remove it, but this is not a way to do a serious job. 

    regards

    Goran

  • - A noRTOS project will use more flash than a TIRTOS project since some of the functions for the later is placed in ROM. The packettx example then take up 26 kHz. 

    - We provide development kits to make it easier to get start coding. When the application is close to done on the F128 device the memory allocation can be checked and from this it's possible to see if a F32, F64 or F128 device is needed. 

    - As the examples show it's possible to fit a very simple application with RF into a F32 device.

  • Hi,

    after a few long nights, we finally make it work. So, for other facing the same problems, here is a steps how to use samples as starting point for custom boards. It is working for CCS, we still trying to make Energia work as well, but I think we need to change board definition for that.

    1. DO NOT create new project in CCS, it will not work

    2.Find sample project on Resource explorer and select IMPORT

    3. Without building it, go to Properties, and change processor to CC1310F32 and Linker command file to CC13x0F32.cmd (for some reason I can not upload picture).

    4. After accepting changes, you will see additional command file in folder targetConfigs

    5. remove old one CC1310F128.ccxml

    6. go back to Properties -> Build -> Arm compiler -> Predefined Symbols and REMOVE all SUPPORT_PHY_* you will not use and leave just one you need. In my case it is SUPPORT_PHY_CUSTOM and I remove all others

    7. change Board.h and all CC1310_LAUNCHXL files according to your board. I remove all of them and create own ones for my board (just copy parts that you need and add new ones - for example I copy power init and RF init sections)

    8. and this is it

    After building a project, now it fit into F32 MCU.

    I'm still wondering what is so hard to create wizard that will create project that actually works. Even Project -> New project does not work - empty project without any code report some errors. I just do not get it.

    regards

    Goran