Hi All
I have created a proxy interrupt vector table in order to use a bootloader image and an application image on our device, and update the proxy table depending on the new application that is flashed in.
When the TI-RTOS is not used. I can easily create on as follows (MSP430F6779):
__asm (" .sect .APP_PROXY_VECTORS");
__asm (" .retain .APP_PROXY_VECTORS");
__asm (" .global ProxyVectorTable");
__asm ("ProxyVectorTable:");
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(0) AES */
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(1) COMP_B */
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(2) RTC */
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(3) LCD_C */
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(4) TIMER3_A1 */
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(5) TIMER3_A0 */
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(6) PORT2 */
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(7) TIMER2_A1 */
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(8) TIMER2_A0 */
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(9) PORT1 */
__asm (" BRA #USCIB1_ISR;"); /* APP_PROXY_VECTOR(10) USCI_B1 */
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(11) USCI_A3 */
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(12) TIMER1_A1 */
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(13) TIMER1_A0 */
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(14) DMA */
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(15) AUX */
__asm (" BRA #USCI_A2_ISR;"); /* APP_PROXY_VECTOR(16) USCI_A2 */
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(17) USCI_A1 */
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(18) TIMER0_A1 */
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(19) TIMER0_A0 */
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(20) SD24B */
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(21) ADC10 */
__asm (" BRA #USCI_B0_ISR;"); /* APP_PROXY_VECTOR(22) USCI_B0 */
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(23) USCI_A0 */
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(24) WDT */
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(25) UNMI */
__asm (" BRA #Dummy_Isr;"); /* APP_PROXY_VECTOR(26) SYSNMI */
This is because I have visibility of the ISR routines that I have created.
Now when using the TI-RTOS, the ISRs are generated and they are quite layered into the sysbios and I do not have visibility. I would have thought that something like the following would work, but I can't seem to get access to the ISRs when under TI-RTOS:
__asm (" .sect .APP_PROXY_VECTORS");
__asm (" .retain .APP_PROXY_VECTORS");
__asm (" .global ProxyVectorTable");
__asm ("ProxyVectorTable:");
__asm (" BRA #ti_sysbios_family_msp430_Hwi36;"); /* APP_PROXY_VECTOR(0) AES*/
__asm (" BRA #ti_sysbios_family_msp430_Hwi37;"); /* APP_PROXY_VECTOR(1) COMP_B */
__asm (" BRA #ti_sysbios_family_msp430_Hwi38;"); /* APP_PROXY_VECTOR(2) RTC */
__asm (" BRA #ti_sysbios_family_msp430_Hwi39;"); /* APP_PROXY_VECTOR(3) LCD_C */
__asm (" BRA #ti_sysbios_family_msp430_Hwi40;"); /* APP_PROXY_VECTOR(4) TIMER3_A1 */
__asm (" BRA #ti_sysbios_family_msp430_Hwi41;"); /* APP_PROXY_VECTOR(5) TIMER3_A0 */
__asm (" BRA #ti_sysbios_family_msp430_Hwi42;"); /* APP_PROXY_VECTOR(6) PORT2 */
__asm (" BRA #ti_sysbios_family_msp430_Hwi43;"); /* APP_PROXY_VECTOR(7) TIMER2_A1 */
__asm (" BRA #ti_sysbios_family_msp430_Hwi44;"); /* APP_PROXY_VECTOR(8) TIMER2_A0 */
__asm (" BRA #ti_sysbios_family_msp430_Hwi45;"); /* APP_PROXY_VECTOR(9) PORT1 */
__asm (" BRA #ti_sysbios_family_msp430_Hwi46;"); /* APP_PROXY_VECTOR(10) USCI_B1 */
__asm (" BRA #ti_sysbios_family_msp430_Hwi47;"); /* APP_PROXY_VECTOR(11) USCI_A3 */
__asm (" BRA #ti_sysbios_family_msp430_Hwi48;"); /* APP_PROXY_VECTOR(12) TIMER1_A1 */
__asm (" BRA #ti_sysbios_family_msp430_Hwi49;"); /* APP_PROXY_VECTOR(13) TIMER1_A0 */
__asm (" BRA #ti_sysbios_family_msp430_Hwi50;"); /* APP_PROXY_VECTOR(14) DMA */
__asm (" BRA #ti_sysbios_family_msp430_Hwi51;"); /* APP_PROXY_VECTOR(15) AUX */
__asm (" BRA #ti_sysbios_family_msp430_Hwi52;"); /* APP_PROXY_VECTOR(16) USCI_A2 */
__asm (" BRA #ti_sysbios_family_msp430_Hwi53;"); /* APP_PROXY_VECTOR(17) USCI_A1 */
__asm (" BRA #ti_sysbios_family_msp430_Hwi54;"); /* APP_PROXY_VECTOR(18) TIMER0_A1 */
__asm (" BRA #ti_sysbios_family_msp430_Hwi55;"); /* APP_PROXY_VECTOR(19) TIMER0_A0 */
__asm (" BRA #ti_sysbios_family_msp430_Hwi56;"); /* APP_PROXY_VECTOR(20) SD24B */
__asm (" BRA #ti_sysbios_family_msp430_Hwi57;"); /* APP_PROXY_VECTOR(21) ADC10 */
__asm (" BRA #ti_sysbios_family_msp430_Hwi58;"); /* APP_PROXY_VECTOR(22) USCI_B0 */
__asm (" BRA #ti_sysbios_family_msp430_Hwi59;"); /* APP_PROXY_VECTOR(23) USCI_A0 */
__asm (" BRA #ti_sysbios_family_msp430_Hwi60;"); /* APP_PROXY_VECTOR(24) WDT */
__asm (" BRA #ti_sysbios_family_msp430_Hwi61;"); /* APP_PROXY_VECTOR(25) UNMI */
__asm (" BRA #ti_sysbios_family_msp430_Hwi62;"); /* APP_PROXY_VECTOR(26) SYSNMI */
Please can you guide me with how to get visibility, or if something else needs to be done?
I have tried declaring them and using extern, but no luck so far.
Thanks.