问题:main/tshell stack overflow 对于main thread问题出现在rt_hw_stack_init由rt_thread_create和_thread_init调用。 看一下错误判定: 推测sp越界。看一下main thread创建时的参数列表:RT_MAIN_THREAD_STACK_SIZE2048, RT_MAIN_THREAD_PRIORITY10 这里可以
再发送一包数据(即便是1个字节),出现thread: stack overflow,定位到再第二次开启判断接收是否完成...
问题四、遇到 `_rt_scheduler_stack_check` 也会停止输出 因为`_rt_scheduler_stack_check` 函数最后先关全局中断,然后进入 while 死循环。这个时候串口中断肯定也失效了。 > 应对之策:关全局中断前,先 flush 串口设备。让串口把 “stack overflow” 的提示信息输出完。 问题五、打断点后 `rt_kprintf` 输出不...
main thread<1-4086>// <i>Default: 512/*设置main线程的大小*/#defineRT_MAIN_THREAD_STACK_SIZE256// </h>// <h>Debug Configuration// <c1>enable kernel debug configuration// <i>Default: enable kernel debug configuration//#define RT_DEBUG// </c>// <o>enable components initialization debug...
thread: stack overflow 经过调试,发现是线程结构体引起的对齐问题。 看来,还是不要直接改基础的内核控制块。 要改rt_object的结构体大小,其他对象派生的对象,都要注意下。 总结 通过打印rt_object等结构体的大小,了解了rt_object的基本构成。 基本了解到了其他内核对象,如rt_thread(线程控制块),rt_timer(定时器...
thread: stack overflow 经过调试,发现是线程结构体引起的对齐问题。 看来,还是不要直接改基础的内核控制块。 要改rt_object的结构体大小,其他对象派生的对象,都要注意下。 总结 通过打印rt_object等结构体的大小,了解了rt_object的基本构成。 基本了解到了其他内核对象,如rt_thread(线程控制块),rt_timer(定时器...
\ | / - RT - Thread Operating System / | \ 4.0.3 build Jan 16 2021 2006 - 2020 Copyright by rt-thread team thread: stack overflow 经过调试,发现是线程结构体引起的对齐问题。 看来,还是不要直接改基础的内核控制块。 要改rt_object的结构体大小,其他对象派生的对象,都要注意下。 总结 通过打印...
RTThread使用DMA接收串口数据的问题 问题/现象 问题/现象 使用RTThread的DMA接收串口数据,数据不连续,即IDLE中断没有起到作为一个frame的判定. 经过对serial和drv_uarts源码的分析,得出原因: UART_RX_DMA_IT_IDLE_FLAG UART_RX_DMA_IT_HT_FLAG UART_RX_DMA_IT_TC_FLAG ...
{ void vApplicationStackOverflowHook(rt_thread_t xTask, signed char* pcTaskName) { while (1); } void vApplicationMallocFailedHook(rt_thread_t xTask, signed char* pcTaskName) { while (1); } void vApplicationIdleHook(void) { // Set task tag in order to have the "IdleTaskHook" ...
/* Check for stack overflow, if configured. */ taskFIRST_CHECK_FOR_STACK_OVERFLOW();taskSECOND_...