刚移植到GD32上只是创建了一个任务出现了问题,动态内存配了24K大小完全够用,完全没有用alloc等动态分配过,为什么出现了内存错误,无法理解
static void led(void *pt)
{
longan_led_init();
while(1){
/* turn on builtin led */
longan_led_on();
rt_thread_delay(1000);
/* turn off uiltin led */
longan_led_off();
rt_thread_delay(1000);
}
}
/*!
\brief main function
\param[in] none
\param[out] none
\retval none
*/
int main(void)
{
rt_thread_t tid;
tid = rt_thread_create("led",led,RT_NULL,1024,6,20);
RT_ASSERT(tid != RT_NULL);
/* startup */
rt_thread_startup(tid);
}
startup a thread:led with priority:6
thread resume: led
thread suspend: led
to free a bad data block:
mem: 0x200001c0, used flag: 2048, magic code: 0x0fb0
(mem->magic == HEAP_MAGIC) assertion failed at function:rt_free, line number:575
这个我知道,只是这里都是内核来操作的,为什么会出现内存错误的问题呢?