TCPIP Stack Updates
TCPIP Stack Updates
Richard W. Wall
University of Idaho
December 4, 2013
The following modifications to the Microchip MAL 6/2013 version target the Cerebot
MX7cK Processor board. The major revisions allow STACK_USE_UART to be defined in
TCPIP ETH795.h and directs all UART communications to the UART1 as provided on
the CEREbot MX7cK. This version of the TCPIP Stack also uses the PMP for the LCD
interface provided by LCDlib.c and LCDlib.h instead of the bit-banging interface
provided by LCDBlocking.c and LCDBlocking .h.
Project file changes
Under Headers/TCPIP Stack folder, remove LCDBlocking.h and add LCDlib.h
Under the Source/TCPIP Stack folder, remove LCDBlocking.h and add LCDlib.h
Changes to the Microchip MLA library
Microchip\TCPIP Stack\UART.c
Microchip\Include\TCPIP Stack\TCPIP.h
Microchip\TCPIP Stack\Delay.c
Microchip\Include\TCPIP Stack\TCPIP.h
8 bit control)
Microchip\TCPIP Stack\LCDlib.c
Microchip\Include\TCPIP Stack\LCDlib.c
Total rewrite
Total rewrite for UART1
Total rewrite
Modified for using LCDlib (PMP
- New file
- New file
Application Files
application/configs/HardwareProfile.h
Add: #define LCD_PMP in HardwareProfile.h
Comment out all references to bit-banging LCD
/* These definitions are used for bit-banging LCD control in
LCDblocking.h
#define LCD_MASK
0x00f
#define LCD_DATA_TRIS
(TRISE)
#define LCD_DATA_OUT()
TRISECLR = LCD_MASK
#define LCD_DATA_IO (LATE)
#define LCD_RD_WR_TRIS
(TRISDbits.TRISD5)
#define LCD_RD_WR_IO
(LATDbits.LATD5)
#define LCD_RS_TRIS
(TRISBbits.TRISB15)
#define LCD_RS_IO
(LATBbits.LATB15)
#define LCD_E_TRIS
#define LCD_E_IO
(TRISDbits.TRISD4)
(LATDbits.LATD4)
*/
Setup UART1
// UART configuration (not too important since we don't have a UART
// connector attached normally, but needed to compile if the
STACK_USE_UART
// or STACK_USE_UART2TCP_BRIDGE features are enabled.
#define UARTTX_TRIS
(TRISFbits.TRISF8)
#define UARTRX_TRIS
(TRISFbits.TRISF2)
// UART mapping functions for consistent API names across 8-bit and 16
or
// 32 bit compilers. For simplicity, everything will use "UART" instead
// of USART/EUSART/etc.
#define BusyUART()
BusyUART1()
#define CloseUART()
CloseUART1()
#define ConfigIntUART(a)
ConfigIntUART1(a)
#define DataRdyUART()
DataRdyUART1()
#define OpenUART(a,b,c)
OpenUART1(a,b,c)
#define ReadUART()
ReadUART1()
#define WriteUART(a) WriteUART1(a)
#define getsUART(a,b,c)
getsUART1(b,a,c)
#define putsUART(a)
putsUART1(a)
#define getcUART()
ReadUART1()
#define putcUART(a)
WriteUART1(a)
#define putrsUART(a)
putsU1(a)