初级会员

- 积分
- 79
- 金钱
- 79
- 注册时间
- 2018-4-29
- 在线时间
- 21 小时
|
1金钱
本帖最后由 轩辕文 于 2018-7-27 17:08 编辑
移植了FreeRTOS到STM32F103精英开发板,在一个创建的任务中通过mymalloc()来申请内存,发现申请不成功,关键代码如下
1. 任务定义
[mw_shl_code=c,true]#define KEY_TASK_PRIO 4 // KEY Task
#define KEY_STK_SIZE 1024
TaskHandle_t KeyTask_Handler;[/mw_shl_code]
2. 内存相关初始化
[mw_shl_code=c,true]FSMC_SRAM_Init();
delay_init();
BEEP_Init(); // Buzzer initialize
TFTLCD_Init();
LCD_Display_Dir(0); // Vertical Screen
TP_Init();
EXTIX_Init(); // Line6-SCR
my_mem_init(SRAMIN); // Initialize Internal Memory
my_mem_init(SRAMEX); // Initialize External Memory
exfuns_init();
f_mount(fs[0],"0:",1); // Mount SD Card
f_mount(fs[1],"1:",1); // Mount Flash[/mw_shl_code]
3. 变量定义及内存申请
[mw_shl_code=applescript,true]char *t, *content;
t = mymalloc(SRAMEX, 255);
printf("point(t) = %p\r\n", t);
sprintf(t, "%s:%s", serverhost, serverport); // Cache Host[/mw_shl_code]
4. 打印结果
[mw_shl_code=applescript,true]point(t) = 00000000[/mw_shl_code]
应为这里t申请内存失败,导致后面sprintf卡死,请问这里是什么原因失败呢?
|
|