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

Subversion Repositories de1_olpcl2294_system

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /de1_olpcl2294_system/trunk/sw/ecos/debug
    from Rev 8 to Rev 10
    Reverse comparison

Rev 8 → Rev 10

/main.c
2,81 → 2,14
//
//
 
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
 
#include <cyg/kernel/kapi.h>
 
#include "LPC22xx.h"
#include "lib_dbg_sh.h"
#include "oc_gpio.h"
 
extern void dbg_sh(void);
 
static cyg_interrupt int1;
static cyg_handle_t int1_handle;
 
 
//
// Interrupt service routine for interrupt 1.
//
cyg_uint32 interrupt_1_isr(
cyg_vector_t vector,
cyg_addrword_t data)
{
// Block this interrupt from occurring until
// the DSR completes.
cyg_interrupt_mask( vector );
// disable and clear gpio b intr
OC_GPIO_B_RGPIO_INTE &= 0x7fffffff;
OC_GPIO_B_RGPIO_INTS &= 0x7fffffff;
 
 
// Tell the processor that we have received
// the interrupt.
cyg_interrupt_acknowledge( vector );
 
// Tell the kernel that chained interrupt processing
// is done and the DSR needs to be executed next.
return( CYG_ISR_HANDLED | CYG_ISR_CALL_DSR );
}
 
//
// Deferred service routine for interrupt 1.
//
void interrupt_1_dsr(
cyg_vector_t vector,
cyg_ucount32 count,
cyg_addrword_t data)
int main(void)
{
hex_led_command( DE1_HEX_LED_INCREMENT, 0);
OC_GPIO_B_RGPIO_INTE |= 0x80000000;
// Allow this interrupt to occur again.
cyg_interrupt_unmask( vector );
}
 
 
/* now declare (and allocate space for) some kernel objects,
like the two threads we will use */
cyg_thread thread_s[2]; /* space for two thread objects */
 
char stack[2][4096]; /* space for two 4K stacks */
 
/* now the handles for the threads */
cyg_handle_t dbg_shell_thread, simple_threadB;
 
/* and now variables for the procedure which is the thread */
cyg_thread_entry_t dbg_shell;
cyg_thread_entry_t simple_program;
 
/* we install our own startup routine which sets up threads */
void cyg_user_start(void)
{
// enable cs3
PINSEL2 = 0x0f814924;
83,82 → 16,8
// configure BCFG3
*((unsigned int *)0xFFE0000C) = 0x20007de7;
// reset FPGA
*((unsigned int *)0x83300000) = 0x00000001;
cyg_thread_delay(10);
 
// configure gpio
fled_init(0x00000003);
hex_led_init(0x00);
 
cyg_thread_create(4, dbg_shell, (cyg_addrword_t) 0,
"DBG Shell", (void *) stack[0], 4096,
&dbg_shell_thread, &thread_s[0]);
cyg_thread_create(4, simple_program, (cyg_addrword_t) 1,
"Thread B", (void *) stack[1], 4096,
&simple_threadB, &thread_s[1]);
 
cyg_thread_resume(dbg_shell_thread);
cyg_thread_resume(simple_threadB);
cyg_vector_t int1_vector = CYGNUM_HAL_INTERRUPT_EINT3;
// cyg_priority_t int1_priority = CYGNUM_HAL_PRI_HIGH;
cyg_priority_t int1_priority = 0;
 
//
// Create interrupt 1.
//
cyg_interrupt_create(
int1_vector,
int1_priority,
0,
&interrupt_1_isr,
&interrupt_1_dsr,
&int1_handle,
&int1);
 
// Attach the interrupt created to the vector.
cyg_interrupt_attach( int1_handle );
// configure gpio b
OC_GPIO_B_RGPIO_INTS &= 0x7fffffff;
OC_GPIO_B_RGPIO_INTE = 0x80000000;
OC_GPIO_B_RGPIO_CTRL = 0x00000001;
// configure eint3
*((unsigned int *)0xE002C004) |= 0x20000000;
 
// Unmask the interrupt we just configured.
cyg_interrupt_unmask( int1_vector );
}
 
/* this is a simple program which runs in a thread */
void dbg_shell(cyg_addrword_t data)
{
int message = (int) data;
 
printf("Beginning execution; thread data is %d\n", message);
dbg_sh();
 
return( -1 );
}
 
/* this is a simple program which runs in a thread */
void simple_program(cyg_addrword_t data)
{
 
for (;;) {
 
OC_GPIO_B_RGPIO_OUT ^= 0x00000001;
// hex_led_command( DE1_HEX_LED_INCREMENT, 0);
cyg_thread_delay(100);
}
}
 
 
/Makefile
1,25 → 1,45
# Mostly written by Jonathan Larmour, Red Hat, Inc.
# Reference to ecos.mak added by John Dallaway, eCosCentric Limited, 2003-01-20
# This file is in the public domain and may be used for any purpose
 
# Usage: make INSTALL_DIR=/path/to/ecos/install
 
# INSTALL_DIR=$$(INSTALL_DIR) # override on make command line
# INSTALL_DIR = ../ROM_slow/install
# INSTALL_DIR = ../LPC2294_ram/LPC2294_ram_install
INSTALL_DIR = ../LPC2294_ram/install
# INSTALL_DIR = ../LPC2294_ram/install
INSTALL_DIR = ../LPC2294_ram_no_net/install
 
OBJECT_FILES = main.o oc_gpio.o
HEADER_FILES = lpc22xx.h lib_dbg_sh.h oc_gpio.h
 
# main
MAIN_PATH = .
 
MAIN_OBJECT_FILES = $(MAIN_PATH)/main.o
 
MAIN_HEADER_FILES = $(MAIN_PATH)/lpc22xx.h \
$(MAIN_PATH)/shell_cmds.h \
 
# debug shell
DBG_SH_PATH = ../shell
 
DBG_SH_OBJECT_FILES = $(DBG_SH_PATH)/parse.o \
$(DBG_SH_PATH)/mem_func.o \
$(DBG_SH_PATH)/memtest.o \
$(DBG_SH_PATH)/dbg_sh.o
DBG_SH_HEADER_FILES = $(DBG_SH_PATH)/dbg_sh.h \
$(DBG_SH_PATH)/parse.h \
$(DBG_SH_PATH)/memtest.h
 
OBJECT_FILES = $(DBG_SH_OBJECT_FILES) $(MAIN_OBJECT_FILES)
HEADER_FILES = $(DBG_SH_HEADER_FILES) $(MAIN_HEADER_FILES)
 
 
include $(INSTALL_DIR)/include/pkgconf/ecos.mak
 
XCC = $(ECOS_COMMAND_PREFIX)gcc
XAR = $(ECOS_COMMAND_PREFIX)ar
XCXX = $(XCC)
XLD = $(XCC)
 
CFLAGS = -I$(INSTALL_DIR)/include
CFLAGS = -I$(INSTALL_DIR)/include -I $(MAIN_PATH)/
CXXFLAGS = $(CFLAGS)
LDFLAGS = -nostartfiles -L$(INSTALL_DIR)/lib -Ttarget.ld
 
45,5 → 65,5
$(XCXX) -c -o $*.o $(CXXFLAGS) $(ECOS_GLOBAL_CFLAGS) $<
 
debug: $(OBJECT_FILES) $(HEADER_FILES)
$(XLD) $(LDFLAGS) $(ECOS_GLOBAL_LDFLAGS) -o $@ $(OBJECT_FILES) -static -L../shell -ldbg_sh
$(XLD) $(LDFLAGS) $(ECOS_GLOBAL_LDFLAGS) -o $@ $(OBJECT_FILES)
 

powered by: WebSVN 2.1.0

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