OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2602|回复: 2

MALLOC mymalloc在freeRTOS中申请不到内存

[复制链接]

2

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2018-4-29
在线时间
21 小时
发表于 2018-7-27 17:01:39 | 显示全部楼层 |阅读模式
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卡死,请问这里是什么原因失败呢?

1.PNG
5.PNG
4.PNG
3.PNG
2.PNG
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2018-4-29
在线时间
21 小时
 楼主| 发表于 2018-7-27 17:10:39 | 显示全部楼层
我试了从SRAMIN 和 SRAMEX 两个地方申请内存,但是都失败了,不知道为什么,不会是FreeRTOS那里有限制
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-7-30 01:40:00 | 显示全部楼层
看下你的内存还剩多少,然后再去判断是什么原因没申请成功?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-18 17:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表