这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » [求助]使用malloc函数的疑问

共3条 1/1 1 跳转至

[求助]使用malloc函数的疑问

菜鸟
2007-02-13 00:19:20     打赏

使用malloc函数的疑问:

硬件平台:
CPU:ATMEL AT91M40800
SRAM:512KB 地址空间0x400000~0x47ffff
FLASH:2MB 地址空间0x1000000~0x11fffff
使用小main函数来进行加载域与运行域的重定位。
堆栈空间分配如下:
__value_in_regs struct __initial_stackheap __user_initial_stackheap(
unsigned R0, unsigned SP, unsigned R2, unsigned SL)
{
struct __initial_stackheap config;

config.heap_base = 0x400000 + 0x70000;
config.stack_base = 0x400000 + 0x80000;//SP;
//config.heap_limit = config.heap_base - HEAP_SIZE;
//config.stack_limit = 0x1000;
return config;
}
结果在任务中使用malloc函数去申请超过4K的空间时总是返回失败,小点的空间倒是可以申请得到,
如果在创建任务之前使用malloc函数申请一个4096的空间,然后释放掉,之后再在任务中使用malloc
函数申请任意空间都不会再返回失败了。
如果在创建任务之前使用malloc函数申请一个较小的空间,比如2K,之后再在任务中使用malloc函数还是会出现
超过4K空间申请不到的现象。
百思不得其解,望各位大虾诊断一下!




关键词: 求助     使用     malloc     函数     疑问    

菜鸟
2007-02-17 09:42:00     打赏
2楼
你把HEAP的SIZE设置大一点看看结果怎样。

菜鸟
2007-02-27 07:59:00     打赏
3楼

谢谢斑竹回复,明天试一下看,不过我的堆栈空间已经是64K了呀!对了,我使用的操作系统是UCOS


共3条 1/1 1 跳转至

回复

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