这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » LPC2214 LPC2214 堆内存分配失败 请大家给点意见

共2条 1/1 1 跳转至

LPC2214 LPC2214 堆内存分配失败 请大家给点意见

院士
2006-09-17 18:14:16     打赏
LPC2214 LPC2214 堆内存分配失败 请大家给点意见



关键词: LPC2214     内存     分配     失败     大家     意见    

院士
2006-12-22 22:43:00     打赏
2楼
问 自已的板子,使用的是LPC2214 的内部RAM 在编程时需要分配堆内存,但程序每次执行到分配堆内存时就会无法再向下执行,具体代码如下:   
  .........Get DataCount.........
  volatile uint16* MyDataArry;
  MyDataArray=(volatile uint16 *)malloc(DataCount);
  for(i=0;i<DataCount;i++)MyDataArray[i]=1;

用的是LPC2200 工程模板建的工程,我的本意是
将栈顶分配在0x40003000
将堆顶分配在0x40004000
分散加载文件MEM_C.scf内容如下:

ROM_LOAD 0x0
{
    ROM_EXEC 0x00000000
    {
        Startup.o (vectors, +First)
        * (+RO)
    }

    IRAM 0x40000000
    {           
        Startup.o (MyStacks)        
        *(+RW,+ZI)
    }

    STACKS_BOTTOM +0 UNINIT
    {   
        Startup.o (StackBottom)
    }

    STACKS 0x40003000 UNINIT
    {   Startup.o (Stacks)
    }

    HEAP +0 UNINIT
    {   Startup.o (Heap)
    }

    HEAP_BOTTOM 0x40004000 UNINIT
    {
        Startup.o (HeapTop)
    }
}  


不知道以上分配有没错误,还是其它的问题,请各位大虾多多指教 1: 有所过展,不过还没清楚将分散加载文件作如下改动后可以执行,但运行一段时间后栈空溢出导致死机
ROM_LOAD 0x0
{
    ROM_EXEC 0x00000000
    {
        Startup.o (vectors, +First)
        * (+RO)
    }

    IRAM 0x40000000
    {           
        Startup.o (MyStacks)        
        *(+RW,+ZI)
    }

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]