问题:线程创建后打印log 会出现(tid != RT_NULL) assertion failed at function:rt_application_init, line number:214
我用的是n32l4xcl,sram有24k, 用的是rtthread 标准版
这样创建的线程
audio_thread = rt_thread_create("audio",
Audio_thread_entry,
RT_NULL,
2048,
2,
5);
board.h里面是这样的
#define N32_FLASH_START_ADRESS ((uint32_t)0x08000000)
#define N32_FLASH_SIZE (128 * 1024)
#define N32_FLASH_END_ADDRESS ((uint32_t)(N32_FLASH_START_ADRESS + N32_FLASH_SIZE))
/* Internal SRAM memory size[Kbytes] <24>, Default: 24 */
#define N32_SRAM_SIZE (24)
#define N32_SRAM_END (0x20000000 + N32_SRAM_SIZE * 1024)
void rt_hw_board_init(void);
#if defined(__ARMCC_VERSION)
extern int Image
RW_IRAM1
ZI
Limit;
#define HEAP_BEGIN ((void *)&Image
RW_IRAM1
ZI
Limit)
rtconfig.h里面 内存管理
/* Memory Management */
#define RT_USING_MEMPOOL
#define RT_USING_SMALL_MEM
//#define RT_USING_MEMHEAP
//#define RT_MEMHEAP_FAST_MODE
//#define RT_USING_SMALL_MEM_AS_HEAP
#define RT_USING_HEAP
我.s文件中给heap的试了0x800~0x3000 都还是报内存分配不够
看了下.map 剩余ram是从 0x20002868开始管理 应该是够的呀
我debug了下 看这里返回是空 就是没有内存可以分配
我后来把内存管理里面的宏都打开了 然后又报线程我发启动
(thread != RT_NULL) assertion failed at function:rt_thread_startup, line number:375
请问可能是哪里原因 还是不能这样创建 之前用的静态内存创建的方式是可以的 求指教
更多回帖