微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI WIFI设计交流 > cc3200 IAR编译报错

cc3200 IAR编译报错

时间:10-02 整理:3721RD 点击:

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太占空间了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top