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.

cc3200 IAR编译报错[Lp011]

Other Parts Discussed in Thread: CC3200

TI工程师你们好!

       我在使用IAR7.2编译程序的时候,当加上部分代码之后,报错如下:

IAR ELF Linker V7.20.5.7591/W32 for ARM
Copyright 2007-2014 IAR Systems AB.
Error[Lp011]: section placement failed
unable to allocate space for sections/blocks with a total estimated minimum size of 0x2bc5c bytes (max align 0x8) in
<[0x20004000-0x2002ffff]> (total uncommitted space 0x2bc00).

79 254 bytes of readonly code memory
16 774 bytes of readonly data memory
84 248 bytes of readwrite data memory

        问题1:上面提示空间不足,但是readonly code+readonly data实在flash里面存储的,readwirte data是在Sram里面的,上面提示[0x20004000-0x2002ffff]越界!编译时候,应该是用readwiite data去和[0x20004000-0x2002ffff]比较吧?

       问题2:编译的大小0x2bc5c 具体是指readonly code+readonly data+readwirte data?

       问题3:[0x20000000-0x20004000]是留给bootloader,那[0x2002ffff-0x2003ffff]这段是留给上面地方使用呢?

       问题4:我把一个1024字节的数组,加const去掉const都会显示Lp011,请问这个是什么问题:

  • 注意CC3200程序执行是在RAM中,也就是会把SPI Flash中的代码读取到RAM中运行,在IAR中CC3200.ICF文件中定义RAM大小

    // Define a region for the on-chip SRAM.
    // SRAM size of 240KB for CC3200 ES 1.33 device
    define region SRAM = mem:[from 0x20004000 to 0x2003C000];

    program ( code + stack size + dynamic memory needed ) 要小于 240 KB 

  • 在ccs 中通过cc3200v1p32.cmd这个文件可以看到

    #define RAM_BASE 0x20004000

    /* System memory map */

    MEMORY 

        /* Application uses internal RAM for program and data */ 
        SRAM_CODE (RWX) : origin = 0x20004000, length = 0x13000    代码
        SRAM_DATA (RWX) : origin = 0x20017000, length = 0x19000     变量
    }

  • 你好,cc3200需要把程序读取到sram中来执行的话,那是不是sram得提供两套独立的访问总线,不然就不是哈佛结构了吧

  • SRAM_DATA (RWX) : origin = 0x20017000, length = 0x19000     变量

     这个地址能修改一些吗,我想储存一张图片的信息,要150KB,往哪里存储呢

  • 可以改的,你参考一下例程blinky,里面有个icf文件,你可以用它来做参考,IAR可以通过它来设置内存。

    不过如果你要存储150KB的图片,建议你把它存在FLASH里面吧,放RAM太占空间了。