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.
I could use some help translating this error into something meaningful.
This code successfully builds when I use compiler TI v3.2.1 When I use the TI V4.4.3 compiler I get a number of interrupt symbol "redefine" errors, followed by "program will not fit in avail mem" errors. I am sure one is causing the other.
ProjectA is dependent on the lib created in ProjectC. ProjectC will successfully build the lib w/ either compiler version. ProjectA will successfully build if I use compiler3. If I use compiler4, the linker will fail with errors such as:
error: symbol "__TI_int23" redefined:
first defined in ccsv6/tools/compiler/ti-cgt-msp430_4.4.3/lib/rts430xl.lib<int23.obj>
redefined in ProjectC/Debug/myDebug.lib<CommStuff.obj>"
When I look at rts430xl.lib I can find the __TI_int23 symbol. (int23.obj: 00000000 D __TI_int23)
When I look into myDebug.lib, (built w/ compiler3) there is NO __TI_int23 symbol. So the error appears bogus.
When I build ProjectC w/ compiler4, myDebug.lib does contain the __TI_int23 symbol. (CommStuff.obj: 00000000 D __TI_int23) With the above bogus error statement, I doubt this validity of this error statement.
I'm not sure if this is related, but the automatic RTS selection is shifting:
remark: automatic RTS selection: linking in index library "libc.a"
remark: automatic RTS selection: linking in "rts430xl.lib" in place of index library "libc.a"
Can you offer some insight into the bogus error statement.
Michael,
Is your device specific linker cmd file recent or older?
If it does not have below type VECT_INIT entries then I recommend updating to the latest linker cmd file for you device.
AES : { * ( .int45 ) } > INT45 type = VECT_INIT
RTC : { * ( .int46 ) } > INT46 type = VECT_INIT
They are located here in CCS:
C:\ti\ccs\ccs_6_1_0_ga\ccsv6\ccs_base\msp430\include
Regards,
Greg
Greg,
I do have the VECT_INIT designation on the interrupt calls. This appears to be s toolchain setup issue. All 6 issues are related to the 6 ISR's that are in the dependent ProjectC library. What I need the linker to do is use the ISR's in the library project, rather than the ones in the RTS. They both have the same symbol names, hence the error.
How do I tell the linker to use my ISR's and ignore the "automatic" RTS (CCS) version?
Thanks,
ML
Greg,
The linker-cmd statement I posted is causing the ISR symbol redef errors. I'm still working on the same issue.
I did try setting the RTS selection to rts430xl.lib rather than use the "automatic". This made no difference.
There is only one include file in the linker cmd. It is the ProjectC library file.
Found it: Added the linker flag: --priority
Apparently w/o it all found symbols are pulled into the linker,... and any duplicates are an issue, rather than first-come-first-serve.
Thanks for the assistance,
ML