URL
https://opencores.org/ocsvn/plasma/plasma/trunk
Subversion Repositories plasma
Compare Revisions
- This comparison shows the changes necessary to convert path
/plasma/trunk
- from Rev 385 to Rev 386
- ↔ Reverse comparison
Rev 385 → Rev 386
/tools/etermip.c
16,7 → 16,12
#include <conio.h> |
|
//#define SIMULATE_PLASMA |
//#define USE_WPCAP |
#ifdef SIMULATE_PLASMA |
#define USE_WPCAP |
#endif |
|
#ifdef USE_WPCAP |
#if 0 |
#include "pcap.h" |
#else |
56,6 → 61,8
static const unsigned char ethernetAddressPhantom2[] = {0x00, 0x10, 0xdd, 0xce, 0x15, 0xd5}; |
|
static pcap_t *adhandle; |
#endif //USE_WPCAP |
|
static HANDLE serial_handle; |
static int PacketBytes, PacketLength, PacketChecksum, Checksum; |
static int ChecksumOk, ChecksumError; |
73,6 → 80,7
#endif |
|
|
#ifdef USE_WPCAP |
int WinPcapInit(void) |
{ |
pcap_if_t *alldevs; |
164,7 → 172,8
{ |
if(EthernetActive == 0) |
WinPcapInit(); |
EthernetActive = 1; |
EthernetActive = 1; |
//if((rand() % 8) == 0) return; |
pcap_sendpacket(adhandle, packet, length); |
} |
|
216,55 → 225,7
#endif |
} |
|
/**************************************************************/ |
|
long SerialOpen(char *name, long baud) |
{ |
DCB dcb; |
COMMTIMEOUTS comm_timeouts; |
BOOL rc; |
serial_handle = CreateFile(name, GENERIC_READ|GENERIC_WRITE, |
0, NULL, OPEN_EXISTING, 0, NULL); |
if(serial_handle == INVALID_HANDLE_VALUE) |
printf("Serial Port In Use!\n"); |
rc = SetupComm(serial_handle, 16000, 16000); |
if(rc == FALSE) |
printf("Serial port already in use!!!\n"); |
rc = GetCommState(serial_handle, &dcb); |
if(rc == FALSE) |
printf("ERROR2\n"); |
dcb.BaudRate = baud; |
dcb.fBinary = 1; |
dcb.ByteSize = 8; |
dcb.fAbortOnError = 0; |
dcb.StopBits = 0; //ONESTOPBIT; |
dcb.fOutX = 0; |
dcb.fInX = 0; |
dcb.fNull = 0; |
dcb.Parity = 0; |
dcb.fOutxCtsFlow = 0; |
dcb.fOutxDsrFlow = 0; |
dcb.fOutX = 0; |
dcb.fInX = 0; |
dcb.fRtsControl = 0; |
rc = SetCommState(serial_handle, &dcb); |
if(rc == FALSE) |
printf("ERROR3\n"); |
rc = GetCommTimeouts(serial_handle, &comm_timeouts); |
if(rc == FALSE) |
printf("ERROR4\n"); |
comm_timeouts.ReadIntervalTimeout = MAXDWORD; //non-blocking read |
comm_timeouts.ReadTotalTimeoutMultiplier = 0; |
comm_timeouts.ReadTotalTimeoutConstant = 0; |
comm_timeouts.WriteTotalTimeoutMultiplier = 0; //blocking write |
comm_timeouts.WriteTotalTimeoutConstant = 0; |
rc = SetCommTimeouts(serial_handle, &comm_timeouts); |
if(rc == FALSE) |
printf("ERROR5\n"); |
return(0); |
} |
|
|
static void UartPacketRead(int value) |
{ |
if(PacketBytes == 0 && value == 0xff) |
314,8 → 275,58
} |
} |
} |
#endif //USE_WPCAP |
|
/**************************************************************/ |
|
long SerialOpen(char *name, long baud) |
{ |
DCB dcb; |
COMMTIMEOUTS comm_timeouts; |
BOOL rc; |
serial_handle = CreateFile(name, GENERIC_READ|GENERIC_WRITE, |
0, NULL, OPEN_EXISTING, 0, NULL); |
if(serial_handle == INVALID_HANDLE_VALUE) |
printf("Serial Port In Use!\n"); |
rc = SetupComm(serial_handle, 16000, 16000); |
if(rc == FALSE) |
printf("Serial port already in use!!!\n"); |
rc = GetCommState(serial_handle, &dcb); |
if(rc == FALSE) |
printf("ERROR2\n"); |
dcb.BaudRate = baud; |
dcb.fBinary = 1; |
dcb.fParity = 0; |
dcb.ByteSize = 8; |
dcb.StopBits = 0; //ONESTOPBIT; |
dcb.fOutX = 0; |
dcb.fInX = 0; |
dcb.fNull = 0; |
dcb.Parity = 0; |
dcb.fOutxCtsFlow = 0; |
dcb.fOutxDsrFlow = 0; |
dcb.fOutX = 0; |
dcb.fInX = 0; |
dcb.fRtsControl = 0; |
dcb.fDsrSensitivity = 0; |
rc = SetCommState(serial_handle, &dcb); |
if(rc == FALSE) |
printf("ERROR3\n"); |
rc = GetCommTimeouts(serial_handle, &comm_timeouts); |
if(rc == FALSE) |
printf("ERROR4\n"); |
comm_timeouts.ReadIntervalTimeout = MAXDWORD; //non-blocking read |
comm_timeouts.ReadTotalTimeoutMultiplier = 0; |
comm_timeouts.ReadTotalTimeoutConstant = 0; |
comm_timeouts.WriteTotalTimeoutMultiplier = 0; //blocking write |
comm_timeouts.WriteTotalTimeoutConstant = 0; |
rc = SetCommTimeouts(serial_handle, &comm_timeouts); |
if(rc == FALSE) |
printf("ERROR5\n"); |
return(0); |
} |
|
|
long SerialRead(unsigned char *data, unsigned long length) |
{ |
DWORD count, bytes; |
327,9 → 338,11
ReadFile(serial_handle, buf, 1, &bytes, NULL); |
if(bytes == 0) |
break; |
#ifdef USE_WPCAP |
if(buf[0] == 0xff || PacketBytes) |
UartPacketRead(buf[0]); |
else |
#endif |
data[count++] = buf[0]; |
if(count >= length) |
break; |
337,7 → 350,6
return count; |
} |
|
|
//**************************************************** |
|
#define BUF_SIZE 1024*1024 |
409,6 → 421,7
printf("%s", buf); |
} |
|
#ifdef USE_WPCAP |
// Read Ethernet |
while(EthernetActive) |
{ |
420,6 → 433,7
if(EthernetActive) |
packet_handler(NULL, &header, pkt_data); |
} |
#endif |
Sleep(10); |
ticks = GetTickCount(); |
if(ticks - ticksLast > 1000) |
/tools/makefile
73,9 → 73,15
# traffic over UART. Get wpcap.lib from http://www.winpcap.org/. |
# Requires Windows OS |
# For Linux, use any serial port program at 57600 baud 8-bits;1-stop bit |
# This version does not support Ethernet packet transfers |
etermip: etermip.c |
-@$(CC_X86) -o etermip.exe etermip.c wpcap.lib |
|
# Uses wpcap.lib for receiving and transmitting raw Ethernet packets |
# Get wpcap.lib from http://www.winpcap.org/. |
etermip2: etermip.c |
@echo Get wpcap.lib from http://www.winpcap.org/ |
-@$(CC_X86) -DUSE_WPCAP -o etermip.exe etermip.c wpcap.lib |
|
nomult.exe: nomult.c |
-@$(CC_X86) -o nomult.exe nomult.c |
142,7 → 148,7
$(AS_MIPS) -o boot.o boot.asm |
$(GCC_MIPS) count.c |
$(GCC_MIPS) no_os.c |
$(LD_MIPS) -Ttext 0x1000 -eentry -Map test.map -s -N -o test.axf \ |
$(LD_MIPS) -Ttext 0x2000 -eentry -Map test.map -s -N -o test.axf \ |
boot.o count.o no_os.o |
-$(DUMP_MIPS) --disassemble test.axf > test.lst |
$(CONVERT_BIN) |
205,7 → 211,7
memtest: |
$(AS_MIPS) -o boot.o boot.asm |
$(GCC_MIPS) memtest.c |
$(LD_MIPS) -Ttext 0x1000 -eentry -o test.axf boot.o memtest.o |
$(LD_MIPS) -Ttext 0x2000 -eentry -o test.axf boot.o memtest.o |
$(CONVERT_BIN) |
|
memtest2: |