Re: [Mspgcc-users] Writing an ISR in pure assembly
See https://github.com/pabigot/freertos-mspgcc for FreeRTOS using MSPGCC as of mid 2012. The use of naked is in Source/portable/GCC/MSP430, but does not apply to the timer ISR itself. It was not necessary to use external assembly sources. http://pabigot.github.io/bsp430/freertos_8h.html may also be useful. As I recall I did have FreeRTOS working under BSP430 and so supporting all MCUs in the product line. The freertos-bsp430 repository was intended to supersede freertos-mspgcc; at this point there is no public difference, though I seem to have some pending updates in my local workspace. None of that is actively supported but it could be if people find it useful. Peter On Tue, Dec 10, 2013 at 9:48 PM, Wayne Uroda w.ur...@gmail.com wrote: Hello, I am trying to port FreeRTOS to the MSP430F5519. In order to write the context switching part, I need to write a timer interrupt service routine in pure assembly (the compiler right now is doing some extra push before I can do anything in the ISR, even with nothing in the body...) How can I place a function (defined in an assembly file) into the vector table? Thanks, - Wayne -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831iu=/4140/ostg.clktrk ___ Mspgcc-users mailing list Mspgcc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mspgcc-users -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831iu=/4140/ostg.clktrk___ Mspgcc-users mailing list Mspgcc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mspgcc-users
Re: [Mspgcc-users] Writing an ISR in pure assembly
Even though I think it is sorted now, I still wonder (for my own knowledge and completeness) if there is a way to either override just one of the vector positions (or is there a magic name that given to the function accomplishes the same thing) or is there a way to override all of the vector table? I did it with the aid of nostartfiles many years ago (had need to write my own boot loader anyway) but I wonder if there is a way to do it without losing the startup routines. - Wayne On 11/12/2013, at 22:23, Peter Bigot big...@acm.org wrote: See https://github.com/pabigot/freertos-mspgcc for FreeRTOS using MSPGCC as of mid 2012. The use of naked is in Source/portable/GCC/MSP430, but does not apply to the timer ISR itself. It was not necessary to use external assembly sources. http://pabigot.github.io/bsp430/freertos_8h.html may also be useful. As I recall I did have FreeRTOS working under BSP430 and so supporting all MCUs in the product line. The freertos-bsp430 repository was intended to supersede freertos-mspgcc; at this point there is no public difference, though I seem to have some pending updates in my local workspace. None of that is actively supported but it could be if people find it useful. Peter On Tue, Dec 10, 2013 at 9:48 PM, Wayne Uroda w.ur...@gmail.com wrote: Hello, I am trying to port FreeRTOS to the MSP430F5519. In order to write the context switching part, I need to write a timer interrupt service routine in pure assembly (the compiler right now is doing some extra push before I can do anything in the ISR, even with nothing in the body...) How can I place a function (defined in an assembly file) into the vector table? Thanks, - Wayne -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831iu=/4140/ostg.clktrk ___ Mspgcc-users mailing list Mspgcc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mspgcc-users -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831iu=/4140/ostg.clktrk___ Mspgcc-users mailing list Mspgcc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mspgcc-users
Re: [Mspgcc-users] Writing an ISR in pure assembly
Yes, the interrupt attribute causes the function to be named __isr_X where X is the word offset of the interrupt from the vector table start (viz., the value of the attribute's parameter divided by two). Those symbols are used to initialize the vector table in crt0ivtbl.o. Thus, if you're using the MSP430F5438A where USCI_A1_VECTOR is 0x5C (decimal 92), the corresponding interrupt vector to be installed will be __isr_46. Due to design decisions in the distant past there's no way to use the constants from the MCU header to automatically create the corresponding interrupt name in an assembly file. But you can easily use -S on a C source file that contains an interrupt routine to see what the assembly source needs to look like. Peter On Wed, Dec 11, 2013 at 4:03 PM, Wayne Uroda w.ur...@gmail.com wrote: Even though I think it is sorted now, I still wonder (for my own knowledge and completeness) if there is a way to either override just one of the vector positions (or is there a magic name that given to the function accomplishes the same thing) or is there a way to override all of the vector table? I did it with the aid of nostartfiles many years ago (had need to write my own boot loader anyway) but I wonder if there is a way to do it without losing the startup routines. - Wayne On 11/12/2013, at 22:23, Peter Bigot big...@acm.org wrote: See https://github.com/pabigot/freertos-mspgcc for FreeRTOS using MSPGCC as of mid 2012. The use of naked is in Source/portable/GCC/MSP430, but does not apply to the timer ISR itself. It was not necessary to use external assembly sources. http://pabigot.github.io/bsp430/freertos_8h.html may also be useful. As I recall I did have FreeRTOS working under BSP430 and so supporting all MCUs in the product line. The freertos-bsp430 repository was intended to supersede freertos-mspgcc; at this point there is no public difference, though I seem to have some pending updates in my local workspace. None of that is actively supported but it could be if people find it useful. Peter On Tue, Dec 10, 2013 at 9:48 PM, Wayne Uroda w.ur...@gmail.com wrote: Hello, I am trying to port FreeRTOS to the MSP430F5519. In order to write the context switching part, I need to write a timer interrupt service routine in pure assembly (the compiler right now is doing some extra push before I can do anything in the ISR, even with nothing in the body...) How can I place a function (defined in an assembly file) into the vector table? Thanks, - Wayne -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831iu=/4140/ostg.clktrk ___ Mspgcc-users mailing list Mspgcc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mspgcc-users -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831iu=/4140/ostg.clktrk___ Mspgcc-users mailing list Mspgcc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mspgcc-users
Re: [Mspgcc-users] Writing an ISR in pure assembly
Hi Wayne, have You tried __attribute__ ((naked)) ? This makes function without any push/pop... just return. Inside body use asm ( ... ); Hynek Dne 11.12.2013 4:48, Wayne Uroda napsal(a): Hello, I am trying to port FreeRTOS to the MSP430F5519. In order to write the context switching part, I need to write a timer interrupt service routine in pure assembly (the compiler right now is doing some extra push before I can do anything in the ISR, even with nothing in the body...) How can I place a function (defined in an assembly file) into the vector table? Thanks, - Wayne -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831iu=/4140/ostg.clktrk___ Mspgcc-users mailing list Mspgcc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mspgcc-users
Re: [Mspgcc-users] Writing an ISR in pure assembly
Yes I've tried it, however on an interrupt function it seems to only do half the job! Found something that works, putting a single branch in the ISR to a naked function. At least it seems to work for now, who knows when the compiler will decide to insert a push before my branch and break it all. - Wayne On 11/12/2013, at 16:29, Hynek Sladky ec...@centrum.cz wrote: Hi Wayne, have You tried __attribute__ ((naked)) ? This makes function without any push/pop... just return. Inside body use asm ( ... ); Hynek Dne 11.12.2013 4:48, Wayne Uroda napsal(a): Hello, I am trying to port FreeRTOS to the MSP430F5519. In order to write the context switching part, I need to write a timer interrupt service routine in pure assembly (the compiler right now is doing some extra push before I can do anything in the ISR, even with nothing in the body...) How can I place a function (defined in an assembly file) into the vector table? Thanks, - Wayne -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831iu=/4140/ostg.clktrk ___ Mspgcc-users mailing list Mspgcc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mspgcc-users -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831iu=/4140/ostg.clktrk ___ Mspgcc-users mailing list Mspgcc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mspgcc-users