请问一下各位大侠,我的demo板式EK-LM3S811,我使用Keil MDK编译环境,只要我使用malloc函数分配内存空间,就出现单片机不运行,这是怎么回事啊?
我的定义是
typedef void (*TimerBack) (void );
typedef struct
{
void *next;
INT32U timeout;
INT8U task_id;
TimerBack callBackFunc;
} osalTimerRec_t;
osalTimerRec_t *newTimer;
定义好后只要文件有malloc这一句内存分配语句,系统就运行不起来,把这句注销就完全可以了。
newTimer = (osalTimerRec_t *)malloc( sizeof( osalTimerRec_t ) );
不知道是什么原因?
是堆栈空间不够用造成的,我把堆栈空间增加后,就可以了。以前都是在弄单片机很少去管堆栈的问题,一般都够用。
在请教一下
; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
;
;******************************************************************************
Stack EQU 0x00000200
;******************************************************************************
;
; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
;
;******************************************************************************
Heap EQU 0x00000200
这两个都是定义堆栈大小的,他们有什么区别啊?非常感谢。