public inbox for ecos-discuss@sourceware.org
 help / color / mirror / Atom feed
* [ECOS] Redboot Questions
@ 2001-07-10  2:29 Carlos Camargo
  2001-07-10  3:05 ` Jesper Skov
  0 siblings, 1 reply; 5+ messages in thread
From: Carlos Camargo @ 2001-07-10  2:29 UTC (permalink / raw)
  To: ecos-discuss

Hi all

I'm use redboot and ARM evaluator e7t board.
I want debugg a interrupt program with
CYGNUM_HAL_INTERRUPT_EXT0 using RedBoot, I know that
RedBoot is a ROM monitor so:
Which  option (CYGSEM_HAL_ROM_MONITOR or
CYGSEM_HAL_USE_ROM_MONITOR) must include in eCos??

I need include anything more.

Exists any problem with spurious interrupts an CTRL-C
support???


Thanks


Carlos Camargo

__________________________________________________
Do You Yahoo!?
Get personalized email addresses from Yahoo! Mail
http://personal.mail.yahoo.com/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [ECOS] Redboot Questions
  2001-07-10  2:29 [ECOS] Redboot Questions Carlos Camargo
@ 2001-07-10  3:05 ` Jesper Skov
  2001-07-10  3:28   ` Carlos Camargo
  0 siblings, 1 reply; 5+ messages in thread
From: Jesper Skov @ 2001-07-10  3:05 UTC (permalink / raw)
  To: Carlos Camargo; +Cc: ecos-discuss

>>>>> "Carlos" == Carlos Camargo <carlos_ivan_camargo@yahoo.com> writes:

Carlos> Hi all I'm use redboot and ARM evaluator e7t board.  I want
Carlos> debugg a interrupt program with CYGNUM_HAL_INTERRUPT_EXT0
Carlos> using RedBoot, I know that RedBoot is a ROM monitor so: Which
Carlos> option (CYGSEM_HAL_ROM_MONITOR or CYGSEM_HAL_USE_ROM_MONITOR)
Carlos> must include in eCos??

eCos should have USE_ROM_MONITOR enabled.

Carlos> I need include anything more.

Default config should allow debugging.

Carlos> Exists any problem with spurious interrupts an CTRL-C
Carlos> support???

Not understood.

Jesper

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [ECOS] Redboot Questions
  2001-07-10  3:05 ` Jesper Skov
@ 2001-07-10  3:28   ` Carlos Camargo
  2001-07-10  3:57     ` Jesper Skov
  2001-07-10 10:31     ` Jonathan Larmour
  0 siblings, 2 replies; 5+ messages in thread
From: Carlos Camargo @ 2001-07-10  3:28 UTC (permalink / raw)
  To: Jesper Skov; +Cc: ecos-discuss

> Carlos> Exists any problem with spurious interrupts
> an CTRL-C
> Carlos> support???
> 
> Not understood.
> 
> Jesper

My question is:

Due that my interrupt source is EXT0 with the same
vector of spurious interrupt. This have any
problem????

I have the following program:


/****************************************************************
 *
 *	File		: counter.c
 *	Description	: Segment Display Programm 
 *	Author 		: Carlos Camargo
 *	Date		: 22/06/2001
 *

****************************************************************/
#include <cyg/kernel/kapi.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <cyg/hal/hal_intr.h>

#include "segment.h"
#define SYSCFG		0x03ff0000
#define IOPMOD          ((volatile unsigned
*)(SYSCFG+0x5000))
#define IOPDATA         ((volatile unsigned
*)(SYSCFG+0x5008))
#define FOREVER		(1)	

cyg_thread thread_s[2];				/* space for two thread
objects */

char stack[2][4096];				/* space for two 4K stacks */

cyg_handle_t simple_threadA, simple_threadB;	/*
handles for the thread */

cyg_thread_entry_t program_A, program_B;	/* variables
for the procedure which is the thread */

cyg_handle_t int_0_ISR_H;

cyg_interrupt intr;

int toggle = 0;



cyg_uint32 int_0_isr(cyg_vector_t
vector,cyg_addrword_t data)
 {
   /* ISRs must acknowledge the interrupt, or they
might be invoked again */
   cyg_interrupt_acknowledge(vector);
   return CYG_ISR_CALL_DSR;
 }

			
 /* this is the DSR for ext 0 interrupts */
 void int_0_dsr(cyg_vector_t vector, cyg_ucount32
count, cyg_addrword_t data)
 {
     if ( toggle == 0){
     	cyg_thread_suspend( simple_threadA );
	cyg_thread_resume( simple_threadB );
	toggle = 1;
     }
     else {
     	cyg_thread_suspend		( simple_threadB );
	cyg_thread_resume ( simple_threadA );
	toggle = 0;
     }     
 }


static unsigned int numeric_display [16] = 
{
	DISP_0,	DISP_1,	DISP_2,	DISP_3,	DISP_4,
	DISP_5,	DISP_6,	DISP_7,	DISP_8,	DISP_9,
	DISP_A,	DISP_B,	DISP_C,	DISP_D,	DISP_E,
	DISP_F
};	

void cyg_user_start(void)
{
//  printf("Entering test' cyg_user_start()
function\n");
  
//  printf("Create Thread_A and Thread_B\n");


  cyg_thread_create(4, program_A, (cyg_addrword_t)
'A',
		    "Thread A", (void *) stack[0], 4096,
		    &simple_threadA, &thread_s[0]);
 
  cyg_thread_create(4, program_B, (cyg_addrword_t)
'B',
		    "Thread B", (void *) stack[1], 4096,
		    &simple_threadB, &thread_s[1]);

  /* create an interrupt handler with int_0_isr() as
the ISR and int_0_dsr() as the DSR.*/
  cyg_interrupt_create(CYGNUM_HAL_INTERRUPT_EXT0, 0,
0, &int_0_isr,
                       &int_0_dsr, &int_0_ISR_H,
&intr);
	

  cyg_interrupt_attach(int_0_ISR_H);		    
  cyg_interrupt_unmask(CYGNUM_HAL_INTERRUPT_EXT0);
  cyg_thread_resume(simple_threadB);
}


void program_A(cyg_addrword_t data)
{
  char message =  data;
  int seg;

  while ( FOREVER ){
    for ( seg=0xf; seg>=0; seg--) {
      if ( (seg >= 0) & (seg <= 0xf) ){
        *IOPDATA &= ~SEG_MASK;
	*IOPDATA |= numeric_display[seg];
      }
      cyg_thread_delay(100);
    }
  }
}

void program_B(cyg_addrword_t data)
{
  char message =  data;
  int seg;

//  printf("Beginning execution; thread data is %c\n",
message);
  
  while ( FOREVER ){
    for ( seg=0; seg<=0xf; seg++) {
      if ( (seg >= 0) & (seg <= 0xf) ){
        *IOPDATA &= ~SEG_MASK;
	*IOPDATA |= numeric_display[seg];
      }
      cyg_thread_delay(100);
    }
  }
}

/****************************************************************
 * END OF counter.c

****************************************************************/

When i run this program from insight The thread
simple_threadB running correctly, but when i press the
external button attach to EXT0, no acurrs any
interrupt.

My code is good, or i have any error.

Thanks


Carlos Camargo









__________________________________________________
Do You Yahoo!?
Get personalized email addresses from Yahoo! Mail
http://personal.mail.yahoo.com/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [ECOS] Redboot Questions
  2001-07-10  3:28   ` Carlos Camargo
@ 2001-07-10  3:57     ` Jesper Skov
  2001-07-10 10:31     ` Jonathan Larmour
  1 sibling, 0 replies; 5+ messages in thread
From: Jesper Skov @ 2001-07-10  3:57 UTC (permalink / raw)
  To: Carlos Camargo; +Cc: Jesper Skov, ecos-discuss

>>>>> "Carlos" == Carlos Camargo <carlos_ivan_camargo@yahoo.com> writes:

Carlos> Exists any problem with spurious interrupts
>> an CTRL-C
Carlos> support???
>>  Not understood.
>> 
>> Jesper

Carlos> My question is:

Carlos> Due that my interrupt source is EXT0 with the same vector of
Carlos> spurious interrupt. This have any problem????

There is no such thing as a spurious interrupt vector. If you get a
spurious interrupt, it's because you haven't attached a handler on
that particular vector.

Carlos> When i run this program from insight The thread simple_threadB
Carlos> running correctly, but when i press the external button attach
Carlos> to EXT0, no acurrs any interrupt.

Carlos> My code is good, or i have any error.

Don't know. I have not tested the use of external interrupts with this
HAL. There might have to be set/cleared some additional interrupt
masks to make it working.

Jesper

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [ECOS] Redboot Questions
  2001-07-10  3:28   ` Carlos Camargo
  2001-07-10  3:57     ` Jesper Skov
@ 2001-07-10 10:31     ` Jonathan Larmour
  1 sibling, 0 replies; 5+ messages in thread
From: Jonathan Larmour @ 2001-07-10 10:31 UTC (permalink / raw)
  To: Carlos Camargo; +Cc: Jesper Skov, ecos-discuss

Carlos Camargo wrote:
> 
>   /* create an interrupt handler with int_0_isr() as
> the ISR and int_0_dsr() as the DSR.*/
>   cyg_interrupt_create(CYGNUM_HAL_INTERRUPT_EXT0, 0,
> 0, &int_0_isr,
>                        &int_0_dsr, &int_0_ISR_H,
> &intr);
> 
> 
>   cyg_interrupt_attach(int_0_ISR_H);
>   cyg_interrupt_unmask(CYGNUM_HAL_INTERRUPT_EXT0);

This does look correct, so this may indeed indicate some bug in the HAL.

Jifl
-- 
Red Hat, Rustat House, Clifton Road, Cambridge, UK. Tel: +44 (1223) 271062
Maybe this world is another planet's Hell -Aldous Huxley || Opinions==mine
Come to the Red Hat TechWorld open source conference in Brussels!
Keynotes, techie talks and exhibitions    http://www.redhat-techworld.com/

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2001-07-10 10:31 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-07-10  2:29 [ECOS] Redboot Questions Carlos Camargo
2001-07-10  3:05 ` Jesper Skov
2001-07-10  3:28   ` Carlos Camargo
2001-07-10  3:57     ` Jesper Skov
2001-07-10 10:31     ` Jonathan Larmour

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).