以太網(wǎng)的主循環(huán)需要不斷輪詢放在一個線程里會大量占用cpu,所以加了一個信號量,在eth中斷里釋放信號量,但是這樣之后只要不斷發(fā)送或者接收數(shù)據(jù)過一會兒就會跑飛,可能幾分鐘可能幾十分鐘,打印了mepc也找不到對應(yīng)的函數(shù),代碼是這樣:
找了很久也找不到原因,但是有發(fā)現(xiàn)這些規(guī)律:跑飛的時候di這個線程的sp不正常,不啟動di線程不會跑飛,只連接socket不收發(fā)數(shù)據(jù)也不會跑飛,以太網(wǎng)循環(huán)輪詢線程里不獲取信號量,而是使用rt_thread_mdelay(1)也不會跑飛,看了你們發(fā)的hardfault教程.lst里也找不到mepc對應(yīng)的函數(shù),也沒找到內(nèi)存越界訪問的情況,想問下對于這種情況有什么排查的辦法嗎?