[PATCH 24] SPARC BSPS: added defines for set_vec type argument to bsp.h
Joel Sherrill
joel.sherrill at OARcorp.com
Thu Mar 29 20:26:10 UTC 2012
On 03/29/2012 03:15 PM, Gedare Bloom wrote:
> How do you want to proceed?
I am a bit concerned about adding the constants since
this method is supposed to be the same on all targets.
Is this one critical Daniel? I would really like to consider
adding a shared .h file and moving the prototype for
all BSPs to there.
> On Thu, Mar 29, 2012 at 4:09 PM, Joel Sherrill
> <joel.sherrill at oarcorp.com> wrote:
>> On 03/29/2012 02:54 PM, Gedare Bloom wrote:
>>> I do like the idea of pushing the macro up so that other architectures
>>> will implement it, but I'm not sure where the macro should live in
>>> that case.
>> If bootcard.h were "bsp_framework.h", it would be perfect. :)
>>
>> For now, we are stuff with something like bsp/setvec.h.
>>
>>> Renaming it is a good idea but clearly requires more consideration.
>> Yep. Likely to break stuff but not more than a search and replace.
>>
>>> On Thu, Mar 29, 2012 at 3:48 PM, Joel Sherrill
>>> <joel.sherrill at oarcorp.com> wrote:
>>>> On 03/29/2012 02:45 PM, Gedare Bloom wrote:
>>>>> looks good
>>>> I am OK with it also but it seems like set_vector() is a
>>>> required part of BSPs for the Simple Vectored Architectures.
>>>> Shouldn't the prototype and any constants associated
>>>> with it be in a common header file?
>>>>
>>>> And maybe (I hate to suggest this), it be renamed
>>>> to bsp_set_vector() per current naming guidelines.
>>>>>
>>>>> On Thu, Mar 29, 2012 at 7:52 AM, Daniel Hellstrom<daniel at gaisler.com>
>>>>> wrote:
>>>>>> Signed-off-by: Daniel Hellstrom<daniel at gaisler.com>
>>>>>> ---
>>>>>> c/src/lib/libbsp/sparc/erc32/include/bsp.h | 4 ++++
>>>>>> c/src/lib/libbsp/sparc/erc32/startup/setvec.c | 2 +-
>>>>>> c/src/lib/libbsp/sparc/leon2/include/bsp.h | 4 ++++
>>>>>> c/src/lib/libbsp/sparc/leon2/startup/setvec.c | 2 +-
>>>>>> c/src/lib/libbsp/sparc/leon3/include/bsp.h | 4 ++++
>>>>>> c/src/lib/libbsp/sparc/leon3/startup/setvec.c | 2 +-
>>>>>> 6 files changed, 15 insertions(+), 3 deletions(-)
>>>>>>
>>>>>> diff --git a/c/src/lib/libbsp/sparc/erc32/include/bsp.h
>>>>>> b/c/src/lib/libbsp/sparc/erc32/include/bsp.h
>>>>>> index a88673e..70f1ce3 100644
>>>>>> --- a/c/src/lib/libbsp/sparc/erc32/include/bsp.h
>>>>>> +++ b/c/src/lib/libbsp/sparc/erc32/include/bsp.h
>>>>>> @@ -69,6 +69,10 @@ extern int end; /* last address in the
>>>>>> program */
>>>>>>
>>>>>> /* functions */
>>>>>>
>>>>>> +/* set_vec type */
>>>>>> +#define SET_VECTOR_RAW 0 /* Raw trap handler */
>>>>>> +#define SET_VECTOR_INT 1 /* Trap handler with _ISR_Handler interrupt
>>>>>> handler */
>>>>>> +
>>>>>> rtems_isr_entry set_vector( /* returns old vector
>>>>>> */
>>>>>> rtems_isr_entry handler, /* isr routine
>>>>>> */
>>>>>> rtems_vector_number vector, /* vector number
>>>>>> */
>>>>>> diff --git a/c/src/lib/libbsp/sparc/erc32/startup/setvec.c
>>>>>> b/c/src/lib/libbsp/sparc/erc32/startup/setvec.c
>>>>>> index 3a7601d..7e697a0 100644
>>>>>> --- a/c/src/lib/libbsp/sparc/erc32/startup/setvec.c
>>>>>> +++ b/c/src/lib/libbsp/sparc/erc32/startup/setvec.c
>>>>>> @@ -42,7 +42,7 @@ rtems_isr_entry set_vector( /*
>>>>>> returns old vector */
>>>>>> uint32_t real_trap;
>>>>>> uint32_t source;
>>>>>>
>>>>>> - if ( type )
>>>>>> + if ( type == SET_VECTOR_INT )
>>>>>> rtems_interrupt_catch( handler, vector,&previous_isr );
>>>>>>
>>>>>> else
>>>>>> _CPU_ISR_install_raw_handler( vector, handler, (void
>>>>>> *)&previous_isr
>>>>>> );
>>>>>> diff --git a/c/src/lib/libbsp/sparc/leon2/include/bsp.h
>>>>>> b/c/src/lib/libbsp/sparc/leon2/include/bsp.h
>>>>>> index 796290e..a2f3360 100644
>>>>>> --- a/c/src/lib/libbsp/sparc/leon2/include/bsp.h
>>>>>> +++ b/c/src/lib/libbsp/sparc/leon2/include/bsp.h
>>>>>> @@ -88,6 +88,10 @@ extern int end; /* last address in the
>>>>>> program */
>>>>>>
>>>>>> /* miscellaneous stuff assumed to exist */
>>>>>>
>>>>>> +/* set_vec type */
>>>>>> +#define SET_VECTOR_RAW 0 /* Raw trap handler */
>>>>>> +#define SET_VECTOR_INT 1 /* Trap handler with _ISR_Handler interrupt
>>>>>> handler */
>>>>>> +
>>>>>> rtems_isr_entry set_vector( /* returns old vector
>>>>>> */
>>>>>> rtems_isr_entry handler, /* isr routine
>>>>>> */
>>>>>> rtems_vector_number vector, /* vector number
>>>>>> */
>>>>>> diff --git a/c/src/lib/libbsp/sparc/leon2/startup/setvec.c
>>>>>> b/c/src/lib/libbsp/sparc/leon2/startup/setvec.c
>>>>>> index c7b8af6..028b17a 100644
>>>>>> --- a/c/src/lib/libbsp/sparc/leon2/startup/setvec.c
>>>>>> +++ b/c/src/lib/libbsp/sparc/leon2/startup/setvec.c
>>>>>> @@ -42,7 +42,7 @@ rtems_isr_entry set_vector( /*
>>>>>> returns old vector */
>>>>>> uint32_t real_trap;
>>>>>> uint32_t source;
>>>>>>
>>>>>> - if ( type )
>>>>>> + if ( type == SET_VECTOR_INT )
>>>>>> rtems_interrupt_catch( handler, vector,&previous_isr );
>>>>>>
>>>>>> else
>>>>>> _CPU_ISR_install_raw_handler( vector, handler, (void
>>>>>> *)&previous_isr
>>>>>> );
>>>>>> diff --git a/c/src/lib/libbsp/sparc/leon3/include/bsp.h
>>>>>> b/c/src/lib/libbsp/sparc/leon3/include/bsp.h
>>>>>> index 07a7412..04279d9 100644
>>>>>> --- a/c/src/lib/libbsp/sparc/leon3/include/bsp.h
>>>>>> +++ b/c/src/lib/libbsp/sparc/leon3/include/bsp.h
>>>>>> @@ -98,6 +98,10 @@ extern int end; /* last address in the
>>>>>> program */
>>>>>>
>>>>>> /* miscellaneous stuff assumed to exist */
>>>>>>
>>>>>> +/* set_vec type */
>>>>>> +#define SET_VECTOR_RAW 0 /* Raw trap handler */
>>>>>> +#define SET_VECTOR_INT 1 /* Trap handler with _ISR_Handler interrupt
>>>>>> handler */
>>>>>> +
>>>>>> rtems_isr_entry set_vector( /* returns old vector
>>>>>> */
>>>>>> rtems_isr_entry handler, /* isr routine
>>>>>> */
>>>>>> rtems_vector_number vector, /* vector number
>>>>>> */
>>>>>> diff --git a/c/src/lib/libbsp/sparc/leon3/startup/setvec.c
>>>>>> b/c/src/lib/libbsp/sparc/leon3/startup/setvec.c
>>>>>> index c7b8af6..028b17a 100644
>>>>>> --- a/c/src/lib/libbsp/sparc/leon3/startup/setvec.c
>>>>>> +++ b/c/src/lib/libbsp/sparc/leon3/startup/setvec.c
>>>>>> @@ -42,7 +42,7 @@ rtems_isr_entry set_vector( /*
>>>>>> returns old vector */
>>>>>> uint32_t real_trap;
>>>>>> uint32_t source;
>>>>>>
>>>>>> - if ( type )
>>>>>> + if ( type == SET_VECTOR_INT )
>>>>>> rtems_interrupt_catch( handler, vector,&previous_isr );
>>>>>>
>>>>>> else
>>>>>> _CPU_ISR_install_raw_handler( vector, handler, (void
>>>>>> *)&previous_isr
>>>>>> );
>>>>>> --
>>>>>> 1.7.0.4
>>>>>>
>>>>>> _______________________________________________
>>>>>> rtems-devel mailing list
>>>>>> rtems-devel at rtems.org
>>>>>> http://www.rtems.org/mailman/listinfo/rtems-devel
>>>>> _______________________________________________
>>>>> rtems-devel mailing list
>>>>> rtems-devel at rtems.org
>>>>> http://www.rtems.org/mailman/listinfo/rtems-devel
>>>>
>>>>
>>>> --
>>>> Joel Sherrill, Ph.D. Director of Research& Development
>>>> joel.sherrill at OARcorp.com On-Line Applications Research
>>>> Ask me about RTEMS: a free RTOS Huntsville AL 35805
>>>> Support Available (256) 722-9985
>>>>
>>>>
>>
>> --
>> Joel Sherrill, Ph.D. Director of Research& Development
>> joel.sherrill at OARcorp.com On-Line Applications Research
>> Ask me about RTEMS: a free RTOS Huntsville AL 35805
>> Support Available (256) 722-9985
>>
>>
--
Joel Sherrill, Ph.D. Director of Research& Development
joel.sherrill at OARcorp.com On-Line Applications Research
Ask me about RTEMS: a free RTOS Huntsville AL 35805
Support Available (256) 722-9985
More information about the devel
mailing list