手头上的一个项目,使用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协议栈无法收到报文。
没想明白,创建任务怎么会与硬件中的中断产生联系。请大牛们帮忙看看,谢谢!感激不尽!
此帖出自
小平头技术问答
一周热门 更多>