以太网的主循环需要不断轮询放在一个线程里会大量占用cpu,所以加了一个信号量,在eth中断里释放信号量,但是这样之后只要不断发送或者接收数据过一会儿就会跑飞,可能几分钟可能几十分钟,打印了mepc也找不到对应的函数,代码是这样:
找了很久也找不到原因,但是有发现这些规律:跑飞的时候di这个线程的sp不正常,不启动di线程不会跑飞,只连接socket不收发数据也不会跑飞,以太网循环轮询线程里不获取信号量,而是使用rt_thread_mdelay(1)也不会跑飞,看了你们发的hardfault教程.lst里也找不到mepc对应的函数,也没找到内存越界访问的情况,想问下对于这种情况有什么排查的办法吗?