如果你想用freeRTOS配合原子讲的lwip1.4的话建议不要花费时间了,配合博主提供的资料虽然整体上完成了freeRTOS+lwip1.4移植没问题,但是如果是TCP连接后,对方回主动断开话,开发板就会进入硬件错误导致程序跑飞,我各种排查以太网数据链路、RTOS提供给LWIP的环境等等几乎大排查了三四天时间,实在是排查不动了,就换了LWIP2.1,问题马上解决,真的太痛苦了,当然也可能是本水平不行。 freeRTOS+lwip的话要注意以太网接收中断优先级,原子哥是建议优先级越高越好,如果的话就不就不在freeRTOS中断管理范围之内了。以太网接收中断一定要在freeRTOS管理之内!也就是5之后是freeRTOS能管理的中断,否则问题会很多。建议接收数据单独一个任务,中断后发送计数型信号量给接收任务,让接受任务去处理收到的数据,这样sys_arch.c就不用关心信号量是中断进来还是任务进来了,lwip2.1还要RTOS系统提供互斥锁,用的就是freeRTOS的队列处理,记得开启ICMP和ICMP6生成和检查硬件校验和,好像还多了一个SYS_LIGHTWEIGHT_PROT宏,就是使用RTOS环境对关键代码保护的,裸跑的时候要改0,用上操作系统后要改1。 非常期待懂的人指正一下,我就先这样苟且用着
|