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.
Tool/software: Code Composer Studio
Hello,
Compiling any CTPL project in CCS 10 throws symbols undefined error in ctpl_msp430fr5994.c file. See attached image at the end for the list of symbols undefined.
I checked the msp430fr5994.h file in my CCS install dir . These port names are undefined. Only PORTA, PORTJ and PORT1 is defined in the header file.
I followed the instruction to import an example project from FRAM utilities and also to create an empty CTPL project. The same error persists. How should I proceed?
There is also an error in ctpl_low_level.asm. Not sure exactly where the error is because it does not show up the error description.
Thanks,
Archies
This looks suspiciously like the problem reported over here:
https://e2e.ti.com/support/tools/ccs/f/81/p/945082/3491761
Summary is that msp430fr5994.h is missing a few symbols of the form
__MSP430_HAS_PORT2_R__ and __MSP430_BASEADDRESS_PORTB_R__
I knew these were used by driverlib, but as you point out the BASE symbols are (also) used by CTPL.
There's a suggested workaround (just add those symbols) over there. TI says there's a fix due in "Q4", but the other day someone here tried Check for Updates and didn't get anything.
Thanks. I copy pasted the DIO Registers definition form an older version of header file.
My CTPL projects are still not compiling. I get the following error, which does not necessarily point the exact location of undefined symbol just the file.
3 errors: Description Resource Path Location Type
[E0300] The following symbols are undefined: ctpl_low_level.asm /ctpl_ex4_adc12_b_monitor_msp-exp430fr5994/fram-utilities/ctpl C/C++ Problem
gmake: *** [fram-utilities/ctpl/ctpl_low_level.obj] Error 1 ctpl_ex4_adc12_b_monitor_msp-exp430fr5994 C/C++ Problem
gmake: Target 'all' not remade because of errors. ctpl_ex4_adc12_b_monitor_msp-exp430fr5994 C/C++ Problem
This error seems to be in ctpl_low_level.asm. CCS is not pointing to the exact line in the assembly file.
You're probably looking at the Problems tab. Switch to the Console tab and scroll back.
I just tried this, and DMA0CTL_L shows up as undefined. It's used in "ctpl_low_level_macros.asm". That symbol indeed doesn't appear in my msp430fr5994.h file, though it does appear in my msp430fr5994.cmd (linker) file.
The odd thing is that I'm running CCS v8, so it's not obviously a version conflict. (I also haven't tried this for some years.)
Can you check to see if this is the symbol your (CCS v10) assembly is encountering? I'll see if I can figure out the simplest way to get around this.
[Edit: Fixed typo]
I just added this to my msp430fr5994.h, and it built. I expect it will work correctly, but I don't have a test case at hand so keep an eye on it.
> SFR_8BIT(DMA0CTL_L); // BMC low byte of DMA0CTL (0x510)
Yes, I am getting the same error:
>> Compilation failure
fram-utilities/ctpl/subdir_rules.mk:16: recipe for target 'fram-utilities/ctpl/ctpl_low_level.obj' failed
"../fram-utilities/ctpl/ctpl_low_level.asm", ERROR! at EOF: [E0300] The following symbols are undefined:
DMA0CTL_L
Bruce, Thank you for helping identifying the error.
I found a solution in another e2e post: CCS/MSP430FR5994: DMA0CTL_L doesn't define in msp430.h - MSP low-power microcontroller forum - MSP low...
My CTPL project builds without errors now.
Putting it in the .h file (as above) has the advantage of catching any other stray references, but evidently there aren't any.
Reading the comments on those lines, I suspect they were actually intended to clear DMACTL0_L (trigger source register) -- which also isn't declared -- though after reset that's probably superfluous.
Anyway, I'm glad you have a solution.
**Attention** This is a public forum