1.系统版本: RTThread Nano 3.1.3 build Oct 19 2020
2.硬件版本:STM32F107RC
创建线程代码:#define THREAD_PRIORITY 25
#define THREAD_STACK_SIZE 512
#define THREAD_TIMESLICE 5
ALIGN(RT_ALIGN_SIZE)
static char thread2_stack[256];
static struct rt_thread thread2;
static rt_thread_t tid1 = RT_NULL;
/* 线程 2 入口 */
static void thread2_entry(void *param)
{
rt_uint32_t count = 0;
/* 线程 2 拥有较高的优先级,以抢占线程 1 而获得执行 */
for (count = 0; count < 10 ; count++)
{
/* 线程 2 打印计数值 */
// rt_kprintf("thread2 count: %d\n", count);
}
// rt_kprintf("thread2 exit\n");
/* 线程 2 运行结束后也将自动被系统脱离 */
}
int main(void)
{
MX_GPIO_Init();
rt_thread_t tid;
#ifdef RT_USING_HEAP
tid = rt_thread_create("thread", thread2_entry, RT_NULL,
128, THREAD_PRIORITY, 20);
RT_ASSERT(tid != RT_NULL);
#endif
rt_thread_startup(tid);
}
内存初始化代码:#define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000)
#define STM32_FLASH_SIZE (256 * 1024)
#define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE))
/* Internal SRAM memory size[Kbytes] <8-64>, Default: 64*/
#define STM32_SRAM_SIZE 64
#define STM32_SRAM_END (0x20000000 + STM32_SRAM_SIZE * 1024)
#if defined(__CC_ARM) || defined(__CLANG_ARM)
extern int Image$$RW_IRAM1$$ZI$$Limit;
#define HEAP_BEGIN ((void *)&Image$$RW_IRAM1$$ZI$$Limit)
#elif __ICCARM__
#pragma section="CSTACK"
#define HEAP_BEGIN (__segment_end("CSTACK"))
#else
extern int __bss_end;
#define HEAP_BEGIN ((void *)&__bss_end)
#endif
#define HEAP_END STM32_SRAM_END
#if defined(RT_USING_USER_MAIN) && defined(RT_USING_HEAP)
#define RT_HEAP_SIZE 10240
static uint32_t rt_heap[RT_HEAP_SIZE];
RT_WEAK void *rt_heap_begin_get(void)
{
return rt_heap;
}
RT_WEAK void *rt_heap_end_get(void)
{
return rt_heap + RT_HEAP_SIZE;
}
#endif
#if defined(RT_USING_USER_MAIN) && defined(RT_USING_HEAP)
rt_system_heap_init(rt_heap_begin_get(), rt_heap_end_get());
#endif
/* Heap initialization */
//#ifdef RT_USING_HEAP
//#if STM32_EXT_SRAM
// rt_system_heap_init((void*)STM32_EXT_SRAM_BEGIN, (void*)STM32_EXT_SRAM_END);
//#else
//#if defined(__CC_ARM) || defined(__CLANG_ARM)
// rt_system_heap_init((void*)&Image$$RW_IRAM1$$ZI$$Limit, (void*)STM32_SRAM_END);
//#elif __ICCARM__
// rt_system_heap_init(__segment_end("HEAP"), (void*)STM32_SRAM_END);
//#else
// /* init memory system */
// rt_system_heap_init((void*)&__bss_end, (void*)STM32_SRAM_END);
//#endif
//#endif /* STM32_EXT_SRAM */
//#endif /* RT_USING_HEAP */
/* Heap initialization */
#if defined(RT_USING_HEAP)
// rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END);
#endif
去除线程之后,正常。
错误信息