手头上的一个项目,使用stm32 207作MCU,MARVELL60xx系列做交换芯片,现在遇到一个问题。如下所示的初始化代码中:
int main(void)
{
DebugComPort_Init(); /*初始化RS232串口 */
InitEth(); /*初始化ETH模块 */
InitSwitch(); /* 初始化交换芯片 */
xTaskCreate(TaskTest, "TaskTest",....);/* 创建一个test任务 */
}
TaskTest函数中主要做一些打印工作,无实质性操作动作。
现在的问题是这样的:
若将创建test任务的这一句代码删除,即不创建test任务,将单片机与PC直连,配置同网段IP,无法PING通。
若将创建test任务的这一句代码保留,即创建test任务,将单片机与PC直连,配置同网段IP,可以相互PING通。
现在能确定的是,在不创建test任务时,ETH中收到报文时无中断产生,导致lwip协议栈无法收到报文。
没想明白,创建任务怎么会与硬件中的中断产生联系。请大牛们帮忙看看,谢谢!感激不尽!
不明白你使用的是什么系统?创建任务和系统运行是什么关系?
回复 楼主liwei_swjtu 的帖子
1.不知道你用的是什么 RTOS
2.不知道 TaskTest 任务具体干了什么?
3.不创建test任务 ,除了 Ethernet 不能工作之外,MCU 是否进入了 Fault?