Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
内存分配
遇到内存分配为NULL的问题
发布于 2022-04-28 21:14:36 浏览:489
订阅该版
在调试发布版4.1.0的时候,遇到问题: 调用RT_KERNEL_MALLOC ```c object = (struct rt_object *)RT_KERNEL_MALLOC(information->object_size); if (object == RT_NULL) { /* no memory can be allocated */ return RT_NULL; } ``` 发现object为空,最后确定是_MEM_MALLOC(_size) 这个宏返回为空,source insight打开发现下面_MEM_MALLOC定义处的宏开关貌似都没有打开 ```c #if defined(RT_USING_SMALL_MEM_AS_HEAP) static rt_smem_t system_heap; rt_inline void _smem_info(rt_size_t *total, rt_size_t *used, rt_size_t *max_used) { if (total) *total = system_heap->total; if (used) *used = system_heap->used; if (max_used) *max_used = system_heap->max; } #define _MEM_INIT(_name, _start, _size) \ system_heap = rt_smem_init(_name, _start, _size) #define _MEM_MALLOC(_size) \ rt_smem_alloc(system_heap, _size) #define _MEM_REALLOC(_ptr, _newsize)\ rt_smem_realloc(system_heap, _ptr, _newsize) #define _MEM_FREE(_ptr) \ rt_smem_free(_ptr) #define _MEM_INFO(_total, _used, _max) \ _smem_info(_total, _used, _max) #elif defined(RT_USING_MEMHEAP_AS_HEAP) static struct rt_memheap system_heap; void *_memheap_alloc(struct rt_memheap *heap, rt_size_t size); void _memheap_free(void *rmem); void *_memheap_realloc(struct rt_memheap *heap, void *rmem, rt_size_t newsize); #define _MEM_INIT(_name, _start, _size) \ rt_memheap_init(&system_heap, _name, _start, _size) #define _MEM_MALLOC(_size) \ _memheap_alloc(&system_heap, _size) #define _MEM_REALLOC(_ptr, _newsize) \ _memheap_realloc(&system_heap, _ptr, _newsize) #define _MEM_FREE(_ptr) \ _memheap_free(_ptr) #define _MEM_INFO(_total, _used, _max) \ rt_memheap_info(&system_heap, _total, _used, _max) #elif defined(RT_USING_SLAB_AS_HEAP) static rt_slab_t system_heap; rt_inline void _slab_info(rt_size_t *total, rt_size_t *used, rt_size_t *max_used) { if (total) *total = system_heap->total; if (used) *used = system_heap->used; if (max_used) *max_used = system_heap->max; } #define _MEM_INIT(_name, _start, _size) \ system_heap = rt_slab_init(_name, _start, _size) #define _MEM_MALLOC(_size) \ rt_slab_alloc(system_heap, _size) #define _MEM_REALLOC(_ptr, _newsize) \ rt_slab_realloc(system_heap, _ptr, _newsize) #define _MEM_FREE(_ptr) \ rt_slab_free(system_heap, _ptr) #define _MEM_INFO _slab_info #else #define _MEM_INIT(...) #define _MEM_MALLOC(...) RT_NULL #define _MEM_REALLOC(...) RT_NULL #define _MEM_FREE(...) #define _MEM_INFO(...) #endif ``` - RT_USING_SMALL_MEM_AS_HEAP - RT_USING_MEMHEAP_AS_HEAP - RT_USING_SLAB_AS_HEAP 应该是宏`#define _MEM_MALLOC(...) RT_NULL`最终这样被定义为NULL的原因吧。 上面那几个宏在哪里定义,应该选哪个定义?
查看更多
crystal266
2022-04-29
这家伙很懒,什么也没写!
可以看一下官方文档的内存管理部分 [内存管理](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/memory/memory) 。 可以在 RT-Thread Settings 里面进行内存管理算法的选择。 
2
个回答
默认排序
按发布时间排序
aozima
2022-04-28
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!
啥平台?最好用menuconfig来配,选择合适的内存管理算法。 检查下你的rtconfig内存管理这块的具体定义吧。
撰写答案
登录
注册新账号
关注者
0
被浏览
489
关于作者
kevinzu
人认为我,我为人人
提问
13
回答
10
被采纳
4
关注TA
发私信
相关问题
1
RT-Thread内存和字符串相关函数与C语言自带的内存和字符串相关函数冲突问题
2
rt_malloc函数调用时在参数检查时出现断言
3
外部内存分配SDRAM
4
RT-THREAD内核移植在德州仪器DSP(C28)
5
CMUX部分BUG?
6
不同的芯片RAM,可分配的内存空间为什么相同?
7
使用malloc申请内存以后socket无法接收?
8
nano的RT_HEAP_SIZE定义为什么不放在头文件里?
9
free和rt_free
10
rt_ringbuffer_peak疑问
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
机器人操作系统 (ROS2) 和 RT-Thread 通信
4
五分钟玩转RT-Thread新社区
5
国产MCU移植系列教程汇总,欢迎查看!
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
FATFS文件系统详解
2
PY32移植RT-Thread Nano记录
3
keil+env在STM32H743上实现pwm呼吸灯
4
STM32H7 实现 BootLoader 内 SDRAM 的初始化的注意事项
5
PSoC™ 62 温湿采集功耗测试
热门标签
RT-Thread Studio
串口
LWIP
Env
SPI
AT
FinSH
ART-Pi
Bootloader
CAN总线
Hardfault
文件系统
USB
DMA
RT-Thread
线程
SCons
RT-Thread Nano
stm32
MQTT
ESP8266
ota
WIZnet_W5500
RTC
rt-smart
UART
flash
rtthread
packages_软件包
freemodbus
潘多拉开发板_Pandora
I2C
cubemx
FAL
定时器
PWM
BSP
AB32VG1
ADC
中断
消息队列_msg_queue
SDIO
msh
keil
Debug
编译报错
socket
LVGL
SFUD
C++_cpp
本月问答贡献
xiaorui
3
个答案
1
次被采纳
rcp
3
个答案
1
次被采纳
RTT_逍遥
2
个答案
1
次被采纳
WKJay
1
个答案
1
次被采纳
JonasWen
1
个答案
1
次被采纳
本月文章贡献
小权一句两句
1
篇文章
4
次点赞
喵小黑
1
篇文章
4
次点赞
jaffer
1
篇文章
2
次点赞
Agony_L
1
篇文章
1
次点赞
疯洋CrazySheep
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部