This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Wrong interrupt vectors used for msp430f2618 timers

Other Parts Discussed in Thread: MSP430F2618, SYSBIOS

Dear Wizards,

   I am using: Code Composer Studio Version: 5.1.0.09000
                        SYS/BIOS  6.32.5.54
                        XDCTools  3.22.4.46

   Timer A/TACCR0 in the MSP430F2618 uses interrupt 25
and Timer B/TBCCR0 uses interrupt 29.

   As the debugger disassembly shows, these interrupts are hooked to vectors 9 and 13.  The linker file has all the vectors accounted for. The map file shows vectors 15 to 30 not being used.  In my .cfg file this line appears:

var myTimer = Timer.create(0, '&myTickFxn', timerParams);

    My questions are:  How do I get the interrupt vectors and ti_sysbios_family_msp430_Hwi() functions to be correct?

Thanks,

Fred

  • It appears that the MSP430F2618 platform is miss-identifying the device as being a 16 vector-only device but the linker command file is defining 32 vectors.

    I'll file a bug to correct this.

    In the meantime, try the following workaround to this problem.

    Try replacing the INT00 to INT30 definitions in the lnk_msp430f2618.cmd file with the following:

        INT00                   : origin = 0xFFE0, length = 0x0002
        INT01                   : origin = 0xFFE2, length = 0x0002
        INT02                   : origin = 0xFFE4, length = 0x0002
        INT03                   : origin = 0xFFE6, length = 0x0002
        INT04                   : origin = 0xFFE8, length = 0x0002
        INT05                   : origin = 0xFFEA, length = 0x0002
        INT06                   : origin = 0xFFEC, length = 0x0002
        INT07                   : origin = 0xFFEE, length = 0x0002
        INT08                   : origin = 0xFFF0, length = 0x0002
        INT09                   : origin = 0xFFF2, length = 0x0002
        INT10                   : origin = 0xFFF4, length = 0x0002
        INT11                   : origin = 0xFFF6, length = 0x0002
        INT12                   : origin = 0xFFF8, length = 0x0002
        INT13                   : origin = 0xFFFA, length = 0x0002
        INT14                   : origin = 0xFFFC, length = 0x0002

    This should place interrupt 9 in the correct vector location.

    Alan

  • Hi Alan,

    The generated file /<Project Name>/src/sysbios/HwiFuncs.c indeed only has interrupts 0 to 14.  I also needed to update the SECTIONS part of the linker command file by commenting out:

    /* Until SYS/BIOS is corrected, we can't use these vectors:
    .int15 : {} > INT15
    .int16 : {} > INT16
    .int17 : {} > INT17
    .int18 : {} > INT18
    .int19 : {} > INT19
    .int20 : {} > INT20
    .int21 : {} > INT21
    .int22 : {} > INT22
    .int23 : {} > INT23
    .int24 : {} > INT24
    .int25 : {} > INT25
    .int26 : {} > INT26
    .int27 : {} > INT27
    .int28 : {} > INT28
    .int29 : {} > INT29
    .int30 : {} > INT30
    */

    Eventually I will want to use interrupts with the DAC12 peripheral and may want to use the DMA.  Do you have an estimate when a correction may be available?

    Regards,

    Fred

  • Fred,

    Sorry I missed the section placement piece in my suggestion.

    The error is in the xdc tools. I filed a Bugzilla bug report to track the problem before the Christmas holidays:

        https://bugs.eclipse.org/bugs/show_bug.cgi?id=367520

    I don't know when this will be addressed but I suspect that it will get attention soon as MSP430 issues are very high priority.

    Alan