RT-Thread论坛
直播中

高桂清

7年用户 994经验值
私信 关注

HC32L130F8UA移植rtthread后程序跑飞了,回不到1线程怎么解决?

大佬们,请教个问题,dbg函数是用的虚拟串口,我在这些初始化函数里面用了延时函数rt_hw_us_delay()和rt_hw_ms_delay()函数后,程序像是没有跑起来,99999999未打印。
还有一种情况是这些初始化函数里面用的延时函数是单片机自带文件的delay1ms函数,我在1线程中用rt_thread_delay()函数进行线程调度后,2线程运行,在2线程中同样也执行了rt_thread_delay()函数后程序就跑飞了,回不到1线程。


int main(void)
{
    SystemClock_Config();
    IWDG_Init();
    DBG_UART_Init();
    DBG_printf("999999999999999999999999\r\n");
    BOARD_GPIO_Init();
    timer3_Init();
    RTC_Init();
    EC25_Init();
    kfifo_init(&recvfifo);
    UART_Init();
    UART1_Init();
    thread01 = rt_thread_create("thread01", thread01_entry, RT_NULL, 128, 9, 20);
    if( thread01 != RT_NULL )
    {
        rt_thread_startup(thread01);
        DBG_printf("xxxxxxxxxxxx\r\n");
    }
    thread02 = rt_thread_create("thread01", thread02_entry, RT_NULL, 128, 9, 20);
    if( RT_NULL != thread02 )
    {
        rt_thread_startup(thread02);
        DBG_printf("yyyyyyyyyyyyyyy\r\n");
    }
}
线程1


void thread01_entry(void *parameter)
{
    DBG_printf("***********************************\r\n");
    while(1)
    {
        DBG_printf("111111111111111 SEND OK\r\n");
        rt_thread_mdelay(1000);
            DBG_printf("111111111111111++++++\r\n");
    }
}
线程2


void thread02_entry(void *parameter)
{
    DBG_printf("thread02 recv success!!!\r\n");
    while(1)
    {
        DBG_printf("22222222222222222\r\n");
        rt_thread_mdelay(500);
        DBG_printf("22222222222222222++++++\r\n");
    }

请问该怎么解决这个问题呢?

回帖(1)

李秀华

2024-2-23 14:34:05
栈才128字节,溢出了。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分