添加rtthread ulog组件到GD32F470平台,在板级初始化ulog_init中,从系统堆中申请内存块失败,出现断言
ulog.async_rbb = rt_rbb_create(RT_ALIGN(ULOG_ASYNC_OUTPUT_BUF_SIZE, RT_ALIGN_SIZE), ULOG_ASYNC_OUTPUT_STORE_LINES);
上面的宏配置为
ULOG_ASYNC_OUTPUT_BUF_SIZE 1024
RT_ALIGN_SIZE 4
ULOG_ASYNC_OUTPUT_STORE_LINES (ULOG_ASYNC_OUTPUT_BUF_SIZE * 3 / 2 / 80)
rbb = (rt_rbb_t)rt_malloc(sizeof(struct rt_rbb));--》 ptr = _MEM_MALLOC(size);
最终是在函数rt_smem_alloc(system_heap, _size)
中进入断言RT_ASSERT(m != RT_NULL);
而m
是system_heap
,为什么会出现这种情况?请问有没有大神遇到过