Lord anubis 1 Posted December 3, 2012 Share Posted December 3, 2012 Some other weird stuff. I got during linking the following undefined first referenced symbol in file --------- ---------------- GPIOPinTypeGPIOOutput ./main.obj GPIOPinWrite ./main.obj SysCtlClockSet ./main.obj SysCtlDelay ./main.obj SysCtlPeripheralEnable ./main.obj error #10234-D: unresolved symbols remain This is about the main.obj file. It looks like it doesn't find the Libraries. Am I right? After setting a more verbose mode and keeping some asm information I get... **** Build of configuration Debug for project Lab2b **** "C:\\Program Files\\Ti_tools\\ccsv5\\utils\\bin\\gmake" -k all 'Building file: ../main.c' 'Invoking: ARM Compiler' "C:/Program Files/Ti_tools/ccsv5/tools/compiler/tms470_5.0.2/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 --abi=eabi -me -g --include_path="C:/Program Files/Ti_tools/ccsv5/tools/compiler/tms470_5.0.2/include" --include_path="C:/Program Files/Ti_tools/StellarisWare/" --diag_warning=225 --display_error_number --diag_wrap=off -k --preproc_with_compile --preproc_dependency="main.pp" "../main.c" 'Finished building: ../main.c' ' ' 'Building file: ../startup_ccs.c' 'Invoking: ARM Compiler' "C:/Program Files/Ti_tools/ccsv5/tools/compiler/tms470_5.0.2/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 --abi=eabi -me -g --include_path="C:/Program Files/Ti_tools/ccsv5/tools/compiler/tms470_5.0.2/include" --include_path="C:/Program Files/Ti_tools/StellarisWare/" --diag_warning=225 --display_error_number --diag_wrap=off -k --preproc_with_compile --preproc_dependency="startup_ccs.pp" "../startup_ccs.c" 'Finished building: ../startup_ccs.c' ' ' 'Building target: Lab2b.out' 'Invoking: ARM Linker' "C:/Program Files/Ti_tools/ccsv5/tools/compiler/tms470_5.0.2/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 --abi=eabi -me -g --diag_warning=225 --display_error_number --diag_wrap=off -k -z --stack_size=256 -m"Lab2b.map" --heap_size=0 -i"C:/Program Files/Ti_tools/ccsv5/tools/compiler/tms470_5.0.2/lib" -i"C:/Program Files/Ti_tools/ccsv5/tools/compiler/tms470_5.0.2/include" -i"C:/Program Files/Ti_tools/StellarisWare/" --reread_libs --verbose_diagnostics --warn_sections --display_error_number --issue_remarks --diag_wrap=off --rom_model -o "Lab2b.out" "./startup_ccs.obj" "./main.obj" -l"libc.a" "../lm4f120h5qr.cmd" <Linking> remark #10205-D: automatic RTS selection: linking in "rtsv7M4_T_le_v4SPD16_eabi.lib" in place of index library "libc.a" undefined first referenced symbol in file --------- ---------------- GPIOPinTypeGPIOOutput ./main.obj GPIOPinWrite ./main.obj SysCtlClockSet ./main.obj SysCtlDelay ./main.obj SysCtlPeripheralEnable ./main.obj error #10234-D: unresolved symbols remain >> Compilation failure error #10010: errors encountered during linking; "Lab2b.out" not built gmake: *** [Lab2b.out] Error 1 gmake: Target `all' not remade because of errors. **** Build Finished **** Is there a path for the linker that I have to set? So far as I can see everything is pointing to the right dir in the Project->properties->Arm->Linker->SearchPath. I did even put the stellarisware includes in the linkers search path, however I almost sure it doesn't needed that path. What about the lib replacement remark? How come? IS this normal and is libc.a a kind of proxy lib? Has te error to do with the arguments order in the linker command? I feel a little silly. I got many things working, like for the MSP430 and PIC's under OSX by compiling and building tools by myself, developing in div languages for some time, and a 'ready steady go install' I can't get it to work! ;( BTW. Is there a way that all the dialogs remember the last used rezised size? When compiling I like to see more of the progress text. Everytime I have to rezise the dialogs. Thanks again. Quote Link to post Share on other sites
bluehash 1,581 Posted December 3, 2012 Share Posted December 3, 2012 Do you have all the required includes in your main file? Quote Link to post Share on other sites
Lord anubis 1 Posted December 3, 2012 Author Share Posted December 3, 2012 Yes, I have also no question marks. They did disappear when I save the additional include path. Also if I click on a undefined symbol and right click I can find the reference. So it knows where to look and find, I guess. --include_path="C:/Program Files/Ti_tools/StellarisWare/" it is the workbook lab2 code. Quote Link to post Share on other sites
bluehash 1,581 Posted December 3, 2012 Share Posted December 3, 2012 Could you paste your main.c if you don't mind. Quote Link to post Share on other sites
Lord anubis 1 Posted December 3, 2012 Author Share Posted December 3, 2012 Of course, its a copy of the workbook sample lab2 #include "inc/hw_types.h" #include "inc/hw_memmap.h" #include "driverlib/sysctl.h" #include "driverlib/gpio.h" int main(void) { int LED = 2; SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3); while(1) { // Turn on the LED GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, LED); // Delay for a bit SysCtlDelay(2000000); // Cycle through Red, Green and Blue LEDs if (LED == 8) {LED = 2;} else {LED = LED*2;} } } What about this line? remark #10205-D: automatic RTS selection: linking in "rtsv7M4_T_le_v4SPD16_eabi.lib" in place of index library "libc.a" why is the replacement? Any suggestion? Thanks again Quote Link to post Share on other sites
bluehash 1,581 Posted December 3, 2012 Share Posted December 3, 2012 Of course, its a copy of the workbook sample lab2 #include "inc/hw_types.h" #include "inc/hw_memmap.h" #include "driverlib/sysctl.h" #include "driverlib/gpio.h" int main(void) { int LED = 2; SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3); while(1) { // Turn on the LED GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, LED); // Delay for a bit SysCtlDelay(2000000); // Cycle through Red, Green and Blue LEDs if (LED == 8) {LED = 2;} else {LED = LED*2;} } } What about this line? Did you add your driverlib to your linker? Also are you using CCS? it is in Build Settings->Arm Linker->File Search Path->Add path to lib.. It will be something like driverlib Quote Link to post Share on other sites
Lord anubis 1 Posted December 3, 2012 Author Share Posted December 3, 2012 I am using CCS, the latest stable version. In my post at Posted Today, 02:43 PM you see the path that I included. Your help is appreciated. Quote Link to post Share on other sites
bluehash 1,581 Posted December 3, 2012 Share Posted December 3, 2012 I am using CCS, the latest stable version. In my post at Posted Today, 02:43 PM you see the path that I included. Your help is appreciated. I don't see the library included. Can you show me a screenshot of Build Settings->Arm Linker->File Search Path Quote Link to post Share on other sites
Lord anubis 1 Posted December 3, 2012 Author Share Posted December 3, 2012 Hi, I did add that path before, but I found out that when I presses ok it didn't save the path, even after a CCS restart. After a restart from VMWare it saved the path. So it looks like it is okay. Thank you for the hint that make me look again at that setting. One more question, I did insert the path used in the workbook for lab2 in the debug setting. What about the release settings, do I have to use the same path or is there a release version of the lib? Quote Link to post Share on other sites
bluehash 1,581 Posted December 4, 2012 Share Posted December 4, 2012 Hi, I did add that path before, but I found out that when I presses ok it didn't save the path, even after a CCS restart. After a restart from VMWare it saved the path. So it looks like it is okay. Thank you for the hint that make me look again at that setting. One more question, I did insert the path used in the workbook for lab2 in the debug setting. What about the release settings, do I have to use the same path or is there a release version of the lib? Looks like only the debug libraries are present. You can go ahead and build the driverlib project as a library in release mode and then add it to your main project. Quote Link to post Share on other sites
Lord anubis 1 Posted December 6, 2012 Author Share Posted December 6, 2012 Thank you, I did read a little about the ROM_xxxx, MAP_xxxx. Anyway, I still would like to have the driverlib release build. Specialy during development, can allways later change the calls to ROM_functions. Any way, is there a way, (a tut), to build this under window's. Knows a little about make and the makefiles under windows. Did found the BSD licened LM4 makefiles. Don't have linux but do have osx, but would like to have it all on one ( win ) platform. There is a lot to read, but would like to be fruitfull asap. Thank you. Btw should I stay in this topic or copy my question into a new topic? Not sure how strict it is in this forum. Quote Link to post Share on other sites
bluehash 1,581 Posted December 7, 2012 Share Posted December 7, 2012 Thank you, I did read a little about the ROM_xxxx, MAP_xxxx. Anyway, I still would like to have the driverlib release build. Specialy during development, can allways later change the calls to ROM_functions. Any way, is there a way, (a tut), to build this under window's. Knows a little about make and the makefiles under windows. Did found the BSD licened LM4 makefiles. Don't have linux but do have osx, but would like to have it all on one ( win ) platform. There is a lot to read, but would like to be fruitfull asap. Thank you. Btw should I stay in this topic or copy my question into a new topic? Not sure how strict it is in this forum. Pretty liberal.. but if it is regarding compiling new libs.. post in a new topic. I'll help you from there. Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.