2005-01-29 15:19:20 +00:00
|
|
|
[Note]:
|
|
|
|
|
|
|
|
Special options setting of lwIP in this project (for using it with uC/OS-II on TI C6000 DSP)
|
|
|
|
|
|
|
|
*******************************************************************************************
|
|
|
|
This port was for project ucos-lwip-c6x (http://gro.clinux.org/projects/ucos-lwip-c6x/).
|
|
|
|
|
|
|
|
For the moment we were writing this note, lwIP v1.1.0 was used in this project.
|
|
|
|
|
|
|
|
This note was written in Jan.22 2005 by zengming99@mails.tsinghua.edu.cn.
|
|
|
|
*******************************************************************************************
|
|
|
|
|
|
|
|
Usually, options of lwIP can be set in file "lwipopts.h".
|
|
|
|
|
|
|
|
It was included by "opt.h", amd all options would be set as default value in "opt.h"
|
|
|
|
if they were not defined in "lwipopts.h".
|
|
|
|
|
|
|
|
Each project should have its own "lwiports.h", and keep "opt.h" as it was.
|
|
|
|
|
|
|
|
In this project, for making lwIP work with uC/OS-II on a 32bits TI DSP,
|
|
|
|
following options should be set:
|
|
|
|
------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
1. Define symbol "LWIP_PROVIDE_ERRNO" in compiler of CodeComposerStudio
|
|
|
|
|
|
|
|
|
|
|
|
2. #define MEM_ALIGNMENT 4 (in "lwipopts.h" )
|
|
|
|
#define ETH_PAD_SIZE 2 (in "lwipopts.h" )
|
|
|
|
|
|
|
|
For the struct align problem on 32bits DSP.
|
|
|
|
|
|
|
|
|
|
|
|
3. #define ARP_QUEUEING 0 (in "lwipopts.h")
|
|
|
|
|
|
|
|
ARP_QUEUEING has a bug in lwIP v1.0.0 with TCP
|
|
|
|
|
|
|
|
|
|
|
|
4. #define LWIP_TASK_MAX 5 (in "sys_arch.h" )
|
2005-11-07 00:50:49 +00:00
|
|
|
#define LWIP_START_PRIO 10 (in "sys_arch.h" )
|
2005-01-29 15:19:20 +00:00
|
|
|
|
|
|
|
#define TCPIP_THREAD_PRIO 5 (in "lwipopts.h" )
|
|
|
|
|
2005-11-07 00:50:49 +00:00
|
|
|
The default TCPIP_THREAD used priority 5.
|
2005-01-29 15:19:20 +00:00
|
|
|
|
2005-11-07 00:50:49 +00:00
|
|
|
And, 5 lwIP threads were allowed, user defined lwIP thread should have its priority between 10 ~ 14.
|
2005-01-29 15:19:20 +00:00
|
|
|
|
|
|
|
|
|
|
|
5. #define SYS_LIGHTWEIGHT_PROT 1 (in "lwipopts.h" )
|
|
|
|
|
|
|
|
#define SYS_ARCH_DECL_PROTECT(lev) (in "sys_arch.h" )
|
|
|
|
#define SYS_ARCH_PROTECT(lev) OS_ENTER_CRITICAL() (in "sys_arch.h" )
|
|
|
|
#define SYS_ARCH_UNPROTECT(lev) OS_EXIT_CRITICAL() (in "sys_arch.h" )
|
|
|
|
|
|
|
|
These were very important when ethernet driver used intrrupt to check packet
|
|
|
|
and pBuf function was called in ISR. Or else, uC/OS-II would run away.
|
|
|
|
|
|
|
|
A much better and clean method is to set up a thread for the driver, in ISR
|
|
|
|
just check packet and post MailBox to the thread.
|
|
|
|
|
|
|
|
|
|
|
|
Zeng, Ming
|
|
|
|
|
|
|
|
2005-01-18
|