OpenCores
URL https://opencores.org/ocsvn/minsoc/minsoc/trunk

Subversion Repositories minsoc

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /minsoc/branches/rc-1.0/sw/eth
    from Rev 80 to Rev 109
    Reverse comparison

Rev 80 → Rev 109

/eth.c
0,0 → 1,61
#include <board.h>
#include <support.h>
#include <or1200.h>
#include <int.h>
 
#include <uart.h>
#include <eth.h>
 
 
extern int eth_rx_len;
extern int eth_rx_done, eth_tx_done;
extern unsigned char * eth_rx_data;
extern unsigned char * eth_tx_data;
 
void eth_receive()
{
int i;
uart_print_str("Length: \n");
uart_print_long(eth_rx_len);
uart_print_str("\n");
uart_print_str("Data: \n");
for ( i = 0; i < eth_rx_len; i++ )
{
uart_print_short(eth_rx_data[i]);
uart_print_str("\n");
}
eth_recv_ack();
}
 
int main()
{
uart_init();
 
int_init();
eth_init();
int_add(UART_IRQ, &uart_interrupt, NULL);
int_add(ETH_IRQ, &eth_interrupt, NULL);
 
/* We can't use printf because in this simple example
we don't link C library. */
uart_print_str("Hello World.\n\r");
 
eth_tx_data[0] = 0xFF;
eth_tx_data[1] = 0x2B;
eth_tx_data[2] = 0x40;
eth_tx_data[3] = 0x50;
 
eth_send(4);
 
while(1)
{
if (eth_rx_done)
{
eth_receive();
}
}
 
report(0xdeaddead);
or32_exit(0);
}
 
eth.c Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: Makefile =================================================================== --- Makefile (nonexistent) +++ Makefile (revision 109) @@ -0,0 +1,125 @@ +include ../support/Makefile.inc +include $(BACKEND_DIR)/gcc-opt.mk + +#USER INPUT +SRCS = eth.c +OR32_TARGET = eth.hex +TARGET = +TARGETLIB = +MODEL = static #dynamic|static +VERSION = 0.1 +MODE = debug #release|debug + +INCLUDEDIRS = $(BACKEND_DIR) $(SUPPORT_DIR) $(DRIVERS_DIR) +#libsystemc or systemc (system ignores lib at the beginning) +LIBNAMES = +LIBDIRS = +DEPENDDIR = ./depend + + +#CONFIGURATION +DEBUGPARAM = +RELEASEPARAM = + +DEBUGFLAGS = -g -O0 +RELEASEFLAGS = -O2 -fomit-frame-pointer + +CFLAGS = -Wall +CC = or32-elf-gcc +AR = or32-elf-ar +RANLIB = or32-elf-ranlib + +CFLAGS += $(GCC_OPT) + + +#MECHANICS +INCLUDESPATH = $(addprefix -I, $(INCLUDEDIRS)) +LIBSPATH = $(addprefix -L, $(LIBDIRS)) +LIBSLINKAGE = $(addprefix -l, $(subst lib, , $(LIBNAMES)) ) +COMMA = , +RPATH = $(addprefix -Wl$(COMMA)-R, $(LIBDIRS)) + +OBJS = $(addsuffix .o, $(basename $(SRCS))) +DEPS = $(addprefix $(DEPENDDIR)/, $(addsuffix .d, $(basename $(SRCS) ) ) ) + +STATICLIB = $(addprefix lib, $(addsuffix .a, $(TARGETLIB) ) ) +DYNAMICLIB = $(addprefix lib, $(addsuffix .so, $(TARGETLIB) ) ) +SONAME = $(addsuffix .$(VERSION), $(DYNAMICLIB)) + +ifeq (debug,$(findstring debug, $(MODE))) +CFLAGS += $(DEBUGFLAGS) $(addprefix -D, $(DEBUGPARAM)) +else +CFLAGS += $(RELEASEFLAGS) $(addprefix -D, $(RELEASEPARAM)) +endif + +ifdef TARGETLIB +ifeq (dynamic,$(findstring dynamic, $(MODEL))) +TARGET = $(DYNAMICLIB) +CFLAGS += -fPIC +else +TARGET = $(STATICLIB) +endif +endif + + +#MAKEFILE RULES +all: $(TARGET) $(OR32_TARGET) + +depend: $(DEPS) + +docs: Doxyfile + doxygen + +distclean: + make clean + rm -rf $(DEPENDDIR) Doxygen + + +-include $(DEPS) + + +ifndef TARGETLIB +$(TARGET): $(OBJS) + $(CC) $(LIBSPATH) $(RPATH) -o $@ $^ $(LIBSLINKAGE) +endif + + +$(STATICLIB): $(OBJS) + $(AR) cru $@ $^ + $(RANLIB) $@ + +$(DYNAMICLIB): $(OBJS) + $(CC) -shared -Wl,-soname,$(SONAME) -o $@ $^ + ln -fs $@ $(SONAME) + + +%.o: %.c + $(CC) $(CFLAGS) $(INCLUDESPATH) -c $< -o $@ + + +$(DEPENDDIR)/%.d: %.c + mkdir -p $(DEPENDDIR) + $(CC) $(INCLUDESPATH) -MM -MF $@ $< + + +# DO NOT DELETE + +STEM = $(subst .hex, , $(OR32_TARGET)) +BINARY = $(addsuffix .bin, $(STEM) ) +EXECUTABLE = $(addsuffix .or32, $(STEM) ) + +$(OR32_TARGET): $(BINARY) + $(BIN2HEX) $? 1 -size_word > $@ + +$(BINARY): $(EXECUTABLE) + $(OR32_TOOL_PREFIX)-objcopy -O binary $? $@ + +#except.o and reset.o should be already inside of $(SUPPORT) (libsupport.a) but for some reason the compiler ignores that fact +#(e.g. or32-elf-objdump -t libsupport.a shows it) +$(EXECUTABLE): $(OBJS) ../support/except.o ../support/reset.o $(SUPPORT) $(DRIVERS) + $(CC) $(CFLAGS) $(GCC_LIB_OPTS) -T $(LINKER_SCRIPT) $^ -o $@ + +clean: + rm -f *.o *~ $(TARGET) $(STATICLIB) $(DYNAMICLIB) $(SONAME) $(OR32_TARGET) $(BINARY) $(EXECUTABLE) + +#EOF

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.