Here is my doubts,(Using GCC)
Here is the lpc21 series isr code:
void ISRWrapper(void)__attribute__ ((naked));
void ISRWrapper( void )
{
portSAVE_CONTEXT();
ISRHandler();
VICVecAddr = 0; /* acknoweledge interrupt */
portRESTORE_CONTEXT();
}
void ISRHandler()
{
/* write handler code here*./
if(switchRequired)
portYIELD_FROM_ISR();
}
Here is my 17series code:
Code 1:
void ISRWrapper(void);
void ISRWrapper( void )
{
ISRHandler();
}
void ISRHandler()
{
/* write handler code here*./
if(switchRequired)
portYIELD(); Is it correct???
}
or
In FreeRTOSConfig.h, configUSE_PREEMPTION = 1
Code2:
void ISRWrapper( void )
{
#if configUSE_PREEMPTION == 1
*(portNVIC_INT_CTRL) = portNVIC_PENDSVSET;
#endif
ulDummy = portSET_INTERRUPT_MASK_FROM_ISR(); /* If i set all priority to
0(same) do i need to this set/clr interupt mask code */
ISRHandler();
portCLEAR_INTERRUPT_MASK_FROM_ISR( ulDummy );
}
void ISRHandler()
{
/* write handler code here*./
if(switchRequired)
portYIELD();
}
Which one is correct code?????
Thanks,
ISR handler doubts in FreeRTOS-Cortex
Started by ●March 31, 2010
Reply by ●March 31, 20102010-03-31
>
> Which one is correct code?????
Neither.
I suggest looking at the examples provided in the FreeRTOS download,
reading the LPC17xx documentation pages on the FreeRTOS web site, and
reading the LPC17xx version of the FreeRTOS eBook. How to write
interrupt routines on the LPC17xx is described for you, and examples are
provided, so you don't have to work it out for yourself.
Regards,
Richard.
+ http://www.FreeRTOS.org
Designed for Microcontrollers. More than 7000 downloads per month.
+ http://www.SafeRTOS.com
Certified by T as meeting the requirements for safety related systems.
Reply by ●March 31, 20102010-03-31
I dont have FreeRTOS book.I have read documents and systick timer handler
code.
I didn't see any other handler example code(in Demo code).Please point me,???
Could you please guide me about what mistake i have made????
Thanks,
________________________________
From: FreeRTOS Info
To: l...
Sent: Wed, 31 March, 2010 12:25:18 PM
Subject: Re: [lpc2000] ISR handler doubts in FreeRTOS-Cortex
>
> Which one is correct code?????
Neither.
I suggest looking at the examples provided in the FreeRTOS download,
reading the LPC17xx documentation pages on the FreeRTOS web site, and
reading the LPC17xx version of the FreeRTOS eBook. How to write
interrupt routines on the LPC17xx is described for you, and examples are
provided, so you don't have to work it out for yourself.
Regards,
Richard.
+ http://www.FreeRTOS .org
Designed for Microcontrollers. More than 7000 downloads per month.
+ http://www.SafeRTOS .com
Certified by TÜV as meeting the requirements for safety related systems.
The INTERNET now has a personality. YOURS! See your Yahoo! Homepage. http://in.yahoo.com/
I didn't see any other handler example code(in Demo code).Please point me,???
Could you please guide me about what mistake i have made????
Thanks,
________________________________
From: FreeRTOS Info
To: l...
Sent: Wed, 31 March, 2010 12:25:18 PM
Subject: Re: [lpc2000] ISR handler doubts in FreeRTOS-Cortex
>
> Which one is correct code?????
Neither.
I suggest looking at the examples provided in the FreeRTOS download,
reading the LPC17xx documentation pages on the FreeRTOS web site, and
reading the LPC17xx version of the FreeRTOS eBook. How to write
interrupt routines on the LPC17xx is described for you, and examples are
provided, so you don't have to work it out for yourself.
Regards,
Richard.
+ http://www.FreeRTOS .org
Designed for Microcontrollers. More than 7000 downloads per month.
+ http://www.SafeRTOS .com
Certified by TÜV as meeting the requirements for safety related systems.
The INTERNET now has a personality. YOURS! See your Yahoo! Homepage. http://in.yahoo.com/
Reply by ●March 31, 20102010-03-31
On 31/03/2010 09:32, pra bu wrote:
> I dont have FreeRTOS book.I have read documents and systick timer handler code.
> I didn't see any other handler example code(in Demo code).Please point me,???
>
> Could you please guide me about what mistake i have made????
>
> Thanks,
>
See the section "Interrupt Service Routines" near the end of this page:
http://www.freertos.org/LPC1768_CrossWorks.html
Regards,
Richard.
+ http://www.FreeRTOS.org
Designed for Microcontrollers. More than 7000 downloads per month.
+ http://www.SafeRTOS.com
Certified by T as meeting the requirements for safety related systems.
> I dont have FreeRTOS book.I have read documents and systick timer handler code.
> I didn't see any other handler example code(in Demo code).Please point me,???
>
> Could you please guide me about what mistake i have made????
>
> Thanks,
>
See the section "Interrupt Service Routines" near the end of this page:
http://www.freertos.org/LPC1768_CrossWorks.html
Regards,
Richard.
+ http://www.FreeRTOS.org
Designed for Microcontrollers. More than 7000 downloads per month.
+ http://www.SafeRTOS.com
Certified by T as meeting the requirements for safety related systems.
Reply by ●March 31, 20102010-03-31
I have seen freertos demo code(
FreeRTOS-6.0.3\Demo\CORTEX_LPC1768_GCC_RedSuite\src\webserver\emac.c) and
referred
vEMAC_ISR() in emac.c
It similar to my code 1.
Insead of port_yield() , they r using portEND_SWITCHING_ISR( HigherPriorityTaskWoken ); But both point same function.
another one diff is,
i am calling handler from wrapper(its my way of implementation).But i registered wrapper function in vector table.
Thanks,
________________________________
From: FreeRTOS Info
To: l...
Sent: Wed, 31 March, 2010 12:25:18 PM
Subject: Re: [lpc2000] ISR handler doubts in FreeRTOS-Cortex
>
> Which one is correct code?????
Neither.
I suggest looking at the examples provided in the FreeRTOS download,
reading the LPC17xx documentation pages on the FreeRTOS web site, and
reading the LPC17xx version of the FreeRTOS eBook. How to write
interrupt routines on the LPC17xx is described for you, and examples are
provided, so you don't have to work it out for yourself.
Regards,
Richard.
+ http://www.FreeRTOS .org
Designed for Microcontrollers. More than 7000 downloads per month.
+ http://www.SafeRTOS .com
Certified by TÜV as meeting the requirements for safety related systems.
The INTERNET now has a personality. YOURS! See your Yahoo! Homepage. http://in.yahoo.com/
vEMAC_ISR() in emac.c
It similar to my code 1.
Insead of port_yield() , they r using portEND_SWITCHING_ISR( HigherPriorityTaskWoken ); But both point same function.
another one diff is,
i am calling handler from wrapper(its my way of implementation).But i registered wrapper function in vector table.
Thanks,
________________________________
From: FreeRTOS Info
To: l...
Sent: Wed, 31 March, 2010 12:25:18 PM
Subject: Re: [lpc2000] ISR handler doubts in FreeRTOS-Cortex
>
> Which one is correct code?????
Neither.
I suggest looking at the examples provided in the FreeRTOS download,
reading the LPC17xx documentation pages on the FreeRTOS web site, and
reading the LPC17xx version of the FreeRTOS eBook. How to write
interrupt routines on the LPC17xx is described for you, and examples are
provided, so you don't have to work it out for yourself.
Regards,
Richard.
+ http://www.FreeRTOS .org
Designed for Microcontrollers. More than 7000 downloads per month.
+ http://www.SafeRTOS .com
Certified by TÜV as meeting the requirements for safety related systems.
The INTERNET now has a personality. YOURS! See your Yahoo! Homepage. http://in.yahoo.com/
Reply by ●March 31, 20102010-03-31
On 31/03/2010 09:52, pra bu wrote:
> I have seen freertos demo code( FreeRTOS-6.0.3\Demo\CORTEX_LPC1768_GCC_RedSuite\src\webserver\emac.c) and referred
>
> vEMAC_ISR() in emac.c
>
> It similar to my code 1.
> Insead of port_yield() , they r using portEND_SWITCHING_ISR( HigherPriorityTaskWoken ); But both point same function.
>
> another one diff is,
> i am calling handler from wrapper(its my way of implementation).But i registered wrapper function in vector table.
There is no need to have a wrapper, especially as its a standard C
function that calls another standard C function. It will just take CPU
cycles and stack space, with no benefit.
Regards,
Richard.
+ http://www.FreeRTOS.org
Designed for Microcontrollers. More than 7000 downloads per month.
+ http://www.SafeRTOS.com
Certified by T as meeting the requirements for safety related systems.
>
>
> ________________________________
> From: FreeRTOS Info
> To: l...
> Sent: Wed, 31 March, 2010 12:25:18 PM
> Subject: Re: [lpc2000] ISR handler doubts in FreeRTOS-Cortex
>
>
>
>
>>
>> Which one is correct code?????
>
> Neither.
>
> I suggest looking at the examples provided in the FreeRTOS download,
> reading the LPC17xx documentation pages on the FreeRTOS web site, and
> reading the LPC17xx version of the FreeRTOS eBook. How to write
> interrupt routines on the LPC17xx is described for you, and examples are
> provided, so you don't have to work it out for yourself.
>
> Regards,
> Richard.
>
> + http://www.FreeRTOS .org
> Designed for Microcontrollers. More than 7000 downloads per month.
>
> + http://www.SafeRTOS .com
> Certified by TÜV as meeting the requirements for safety related systems.
>
>
>
>
>
> The INTERNET now has a personality. YOURS! See your Yahoo! Homepage. http://in.yahoo.com/
> I have seen freertos demo code( FreeRTOS-6.0.3\Demo\CORTEX_LPC1768_GCC_RedSuite\src\webserver\emac.c) and referred
>
> vEMAC_ISR() in emac.c
>
> It similar to my code 1.
> Insead of port_yield() , they r using portEND_SWITCHING_ISR( HigherPriorityTaskWoken ); But both point same function.
>
> another one diff is,
> i am calling handler from wrapper(its my way of implementation).But i registered wrapper function in vector table.
There is no need to have a wrapper, especially as its a standard C
function that calls another standard C function. It will just take CPU
cycles and stack space, with no benefit.
Regards,
Richard.
+ http://www.FreeRTOS.org
Designed for Microcontrollers. More than 7000 downloads per month.
+ http://www.SafeRTOS.com
Certified by T as meeting the requirements for safety related systems.
>
>
> ________________________________
> From: FreeRTOS Info
> To: l...
> Sent: Wed, 31 March, 2010 12:25:18 PM
> Subject: Re: [lpc2000] ISR handler doubts in FreeRTOS-Cortex
>
>
>
>
>>
>> Which one is correct code?????
>
> Neither.
>
> I suggest looking at the examples provided in the FreeRTOS download,
> reading the LPC17xx documentation pages on the FreeRTOS web site, and
> reading the LPC17xx version of the FreeRTOS eBook. How to write
> interrupt routines on the LPC17xx is described for you, and examples are
> provided, so you don't have to work it out for yourself.
>
> Regards,
> Richard.
>
> + http://www.FreeRTOS .org
> Designed for Microcontrollers. More than 7000 downloads per month.
>
> + http://www.SafeRTOS .com
> Certified by TÜV as meeting the requirements for safety related systems.
>
>
>
>
>
> The INTERNET now has a personality. YOURS! See your Yahoo! Homepage. http://in.yahoo.com/
Reply by ●March 31, 20102010-03-31
Thanks lot!! i will improve it.
________________________________
From: FreeRTOS Info
To: l...
Sent: Wed, 31 March, 2010 3:02:43 PM
Subject: Re: [lpc2000] ISR handler doubts in FreeRTOS-Cortex
On 31/03/2010 09:52, pra bu wrote:
> I have seen freertos demo code( FreeRTOS-6.0.3\Demo\CORTEX_LPC1768_GCC_RedSuite\src\webserver\emac.c) and referred
>
> vEMAC_ISR() in emac.c
>
> It similar to my code 1.
> Insead of port_yield() , they r using portEND_SWITCHING_ISR( HigherPriorityTaskWoken ); But both point same function.
>
> another one diff is,
> i am calling handler from wrapper(its my way of implementation).But i registered wrapper function in vector table.
There is no need to have a wrapper, especially as its a standard C
function that calls another standard C function. It will just take CPU
cycles and stack space, with no benefit.
Regards,
Richard.
+ http://www.FreeRTOS.org
Designed for Microcontrollers. More than 7000 downloads per month.
+ http://www.SafeRTOS.com
Certified by TÜV as meeting the requirements for safety related systems.
> ________________________________
> From: FreeRTOS Info
> To: l...
> Sent: Wed, 31 March, 2010 12:25:18 PM
> Subject: Re: [lpc2000] ISR handler doubts in FreeRTOS-Cortex
>
>
> >
>> Which one is correct code?????
>
> Neither.
>
> I suggest looking at the examples provided in the FreeRTOS download,
> reading the LPC17xx documentation pages on the FreeRTOS web site, and
> reading the LPC17xx version of the FreeRTOS eBook. How to write
> interrupt routines on the LPC17xx is described for you, and examples are
> provided, so you don't have to work it out for yourself.
>
> Regards,
> Richard.
>
> + http://www.FreeRTOS .org
> Designed for Microcontrollers. More than 7000 downloads per month.
>
> + http://www.SafeRTOS .com
> Certified by TÃœV as meeting the requirements for safety related systems.
>
> The INTERNET now has a personality. YOURS! See your Yahoo! Homepage. http://in.yahoo.com/
Yahoo! Groups Links
Your Mail works best with the New Yahoo Optimized IE8. Get it NOW! http://downloads.yahoo.com/in/internetexplorer/
________________________________
From: FreeRTOS Info
To: l...
Sent: Wed, 31 March, 2010 3:02:43 PM
Subject: Re: [lpc2000] ISR handler doubts in FreeRTOS-Cortex
On 31/03/2010 09:52, pra bu wrote:
> I have seen freertos demo code( FreeRTOS-6.0.3\Demo\CORTEX_LPC1768_GCC_RedSuite\src\webserver\emac.c) and referred
>
> vEMAC_ISR() in emac.c
>
> It similar to my code 1.
> Insead of port_yield() , they r using portEND_SWITCHING_ISR( HigherPriorityTaskWoken ); But both point same function.
>
> another one diff is,
> i am calling handler from wrapper(its my way of implementation).But i registered wrapper function in vector table.
There is no need to have a wrapper, especially as its a standard C
function that calls another standard C function. It will just take CPU
cycles and stack space, with no benefit.
Regards,
Richard.
+ http://www.FreeRTOS.org
Designed for Microcontrollers. More than 7000 downloads per month.
+ http://www.SafeRTOS.com
Certified by TÜV as meeting the requirements for safety related systems.
> ________________________________
> From: FreeRTOS Info
> To: l...
> Sent: Wed, 31 March, 2010 12:25:18 PM
> Subject: Re: [lpc2000] ISR handler doubts in FreeRTOS-Cortex
>
>
> >
>> Which one is correct code?????
>
> Neither.
>
> I suggest looking at the examples provided in the FreeRTOS download,
> reading the LPC17xx documentation pages on the FreeRTOS web site, and
> reading the LPC17xx version of the FreeRTOS eBook. How to write
> interrupt routines on the LPC17xx is described for you, and examples are
> provided, so you don't have to work it out for yourself.
>
> Regards,
> Richard.
>
> + http://www.FreeRTOS .org
> Designed for Microcontrollers. More than 7000 downloads per month.
>
> + http://www.SafeRTOS .com
> Certified by TÃœV as meeting the requirements for safety related systems.
>
> The INTERNET now has a personality. YOURS! See your Yahoo! Homepage. http://in.yahoo.com/
Yahoo! Groups Links
Your Mail works best with the New Yahoo Optimized IE8. Get it NOW! http://downloads.yahoo.com/in/internetexplorer/