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.

关于cc2650stk内存大小的问题

Other Parts Discussed in Thread: CC2650, CC2650STK

大家好,

目前正使用cc2650stk做adc采样,然后对ADC进行的结果进行处理,处理的方法是FFT。之后我把这个整个程序集成到了ble project zero中。但编译时一直报错说内存不够。但集成到TI-RTOS时程序就可以正常运行。以下是报错的图片。看cc2650的datasheet它有128KB flash和20KB SRAM。在没集成到ble project zero之前(程序运行在TI-RTOS)TASK_STACK_SIZE我设的是4096,但集成到ble project zero后就编译就会显示内存不足。

主要想了解一下这两个error是什么意思。另外有没有解决办法。里面比较占内存的有,256个包含两个float型变量的没赋值的结构体,和256个已经赋值的结构体。

  • 就是内存不足的意思,可以修改 linker command file装下代码 processors.wiki.ti.com/.../Linker_Command_File_Primer
  • 问下
    .text : >> FLASH | FLASH_LAST_PAGE
    .cinit : > FLASH | FLASH_LAST_PAGE
    这个“ > ”和“ >> ”有什么区别
  • Allocate to Multiple Memory Ranges
    Consider this example ...

    .text > FLASH0 | FLASH1
    That means the .text output section is allocated to the memory range FLASH0 or FLASH1. FLASH0 is tried first. If it cannot contain all of .text, then FLASH1 is tried. Note .text is not split. The entire output section is placed in either FLASH0 or FLASH1.

    Split an Output Section Across Multiple Memory Ranges
    Consider this example ...

    .text : >> RAMM0 | RAML0 | RAML1
    That means .text is split across those memory ranges. Note the ">>" syntax. If all of .text does not fit in RAMM0, then it is split, and the rest goes into the remaining memory ranges. The split occurs on input section boundaries. An input section is never split. The memory ranges are used in that order.