在測試CH32V208的RT-Thread+NetLib移植。只有這兩個線程+FinSH線程,一開始IDLE默認(rèn)的256堆棧好像爆了,增加后,再加了一個線程,線程的運行函數(shù)如下:
static?void?_cc_entry(void?*arg) { ????rt_tick_t?ctick,peri_tick?=?rt_tick_from_millisecond(10); ????uint16_t?inval; ????int?i; ????ChgInfo?*info; ????while(1) ????{ ????????rt_thread_delay(peri_tick); ????????ctick?=?rt_tick_get(); ????????inval?=?GPIO_ReadInputData(GPIOB); ????????info?=?&chg_info[0]; ????????if(info->chx_tick?<?ctick) ????????{ ????????????info->chx_tick?=?ctick; ????????????info->chx_state_cnt?=?inval; ????????} ????} }
堆棧大小設(shè)置為4096,優(yōu)先級只比netlib低,運行一段時間后,這個線程爆棧了。我是想不通這幾行代碼,為什么4K堆棧都爆。本來就沒多少RAM的MCU,好像創(chuàng)建不了幾個線程了。