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.

TMS320F28379D: cannot be loaded and run on a target - warnings #10014-D and #17003-D

Part Number: TMS320F28379D

Tool/software:

My project runs under the Micrium real time RTOS UCOS-III. We have two Interrupt service routines, one for PWM to generate ADC SOC and the other for processing ADC EOC. The ISR functions identified in PIE registers are contained in small assembly files, each of which has a very small program that transfers the ISR from the PIE entry point to an entry point to be called by the OS. The assembly files are identical except for the names of the PIE defined ISR and the OS-aware ISR. 

The ADC ISR files always build cleanly. The assembly language PWM ISR relay file intermittently generates two build warnings. 1) #10015-D output file cannot be loaded and run on a target, and 2) #17003-D which has no description.  A screen shot of the assembly language file that produces the warnings is attached, showing the warning triangle on the branch to the OS Interrupt handler function. 

Can you tell me what the warning code numbers mean, and what they are trying to tell me? At execution time, an interrupt goes to the function FailSafe_isr, which I think must mean that the ISR linkage for the PWM interrupt was not defined as intended. But why does the PWM ISR fail when the ADC ISR, which is identically configured, succeeds?

  • Hi Thomas,

    I apologize for the delayed reply. It looks like the compiler is unable to load this file, so when the interrupt condition occurs, it has no reference to _PWM1INT_ISR, which is why it goes to FailSafe_isr() function.

    Can you check that you are defining OSVectorISR correctly in another file? Also, just to verify, you are using a different symbol name for OSVectorISR in the ADC ISR asm file, correct? These cannot have the same name, or the compiler will consider the symbol to be defined more than once.

    Best Regards,

    Delaney

  • Delaney - Thanks for looking into this for me. I discovered the problem by looking more closely at the linker output in the console panel.

    BTW, it is the wrapper function OSVectorISR in Micruim uCOS-III that allows the OS to be ISR aware. It is the statement  in the code snippet above "MOVL_XAR4, #_xxxxINT_HANDLER" that allows OS entry point OSVectorISR to exit to different interrupt handlers after managing thread scheduling.

    The warnings were caused by the linker command files, which were NOT loading those small wrapper assembly functions into .assy space, which must be 16-bit addressable. 

    Builds are clean now.