![]() |
![]() ![]() ![]() ![]() ![]()
|
![]() |
next newest topic | next oldest topic |
Author | Topic: Silicon Labs IDE |
aek Moderator |
![]() ![]() ![]() ![]() Also, have you tried cutting-and-pasting the files I listed below and running them as a batch file in Cygwin? ------------------ IP: |
aek Moderator |
![]() ![]() ![]() ![]() Those symbols are all Salvo objects located in mem.c (mem.o). Since OSTCBAREA is also a global object that is also in mem.c, it seems to me that you have a mismatch between your salvocfg.h and the library. Trouble is, your salvocfg.h looks fine ... have you placed an #error Aha! in your salvocfg.h and verified that the error is emitted when you compile the project? Can the Keil tools you have give you a listing of the contents of the Salvo library? I want to be sure that there is not some sort of unanncouncec compatibility issue ... ------------------ IP: |
lawrencem Junior Member |
![]() ![]() ![]() ![]() I tried tu5, but I get an identical response. I also tried the sfc51siab library, since it is built for 256 bytes of on-chip memory. From further reading of the error messages, it seems to be saying that the symbols are referenced from the sfc51sdab library, but are not found. Is there another library that needs to be linked? The symbols are: From main.obj From sfc51sdab.lib Here are the messages: Link in progress...
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL ****************************************************************************** >> IP: |
aek Moderator |
![]() ![]() ![]() ![]() Here's some info that may be useful. I built tu5 in uVision after selecting the C8051F120. I chose tut5 because it uses the same library as the one you've been using (tu2 uses a different library). Below are all of the batch files that uVision uses to build the application. code:SET C51INC=C:\Keil\C51\INC\Cygnal\;C:\Keil\C51\INC\ MEM.__I code:"..\..\..\src\mem.c" OPTIMIZE (9,SIZE) BROWSE INCDIR(..\..\..\inc;..\..\tu1) DEFINE (MAKE_WITH_FREE_LIB,SYSI,USE_INTERRUPTS) DEBUG OBJECTEXTEND PRINT(.\mem.lst) OBJECT(.\mem.obj) ISR.__I code:"..\..\tu1\isr.c" OPTIMIZE (9,SIZE) BROWSE INCDIR(..\..\..\inc;..\..\tu1) DEFINE (MAKE_WITH_FREE_LIB,SYSI,USE_INTERRUPTS) DEBUG OBJECTEXTEND PRINT(.\isr.lst) OBJECT(.\isr.obj) MAIN.__I code:"..\main.c" OPTIMIZE (9,SIZE) BROWSE INCDIR(..\..\..\inc;..\..\tu1) DEFINE (MAKE_WITH_FREE_LIB,SYSI,USE_INTERRUPTS) DEBUG OBJECTEXTEND OBJECT(.\main.obj) Tu5LITE.LNP code:"..\..\..\lib\kc51\sfc51sdab.lib", For the results code:Hopefully this may point to what is wrong in your setup.Build target 'Target 1' ------------------ [This message has been edited by aek (edited September 20, 2007).] IP: |
aek Moderator |
![]() ![]() ![]() ![]() Well, except for the first two warnings, all the others look like the linker simply isn't seeing the Salvo library. Let me do the build in uVision and see if I can get some sort of correlation between what you're seeing and what might cause such an error. ------------------ IP: |
lawrencem Junior Member |
![]() ![]() ![]() ![]() I can't figure out where to find the exact commands used to build the project, since I'm using the Silicon Labs IDE. I'm used to using Linux and editors with Makefiles, so this IDE thing is totally new to me. The kit is C8051F120DK. I have successfully built the SiLabs examples using this kit, but I can't get the Salvo tutorials to link:-( The Init() function appears to be defined correctly for the 8051 if SYSI is defined. I believe that the DF(SYSI) line should do that. Here are the build settings. First the flags for the assembler, compiler, and linker. Files to be Compiled: Files to be Linked: I used the salvocfg.h from AN-13: #define OSUSE_LIBRARY TRUE From the instructions in AN-22, I found that I wasn't including main.h So here is all of the output from the build: Link in progress...
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL ****************************************************************************** >> IP: |
aek Moderator |
![]() ![]() ![]() ![]() For your situation it's always helpful to look at the general case -- see AN-22. The INIT error is probably because the linker can't find an Init() function -- that is #defined via an included header file in the example projects (i.e it's a macro -- you can replace it with something that works for you). The OSTCBAREA problem is a little harder to identify -- it is an array in Salvo's mem.c, which you have included in your build. So as long as mem.o is included in the link phase, reasons for it being missing include: 1) Your salvocfg.h does not match the Salvo library you're linking to. 2) Your 8051 memory model (set in the project) does not match the Salvo library you're linking to. 3) Somewhere you have OSTASKS #defined to 0 (unlikely). Please post the complete build results along with the command line, if possible. ------------------ IP: |
lawrencem Junior Member |
![]() ![]() ![]() ![]() Hi: I have a Cilicon Labs C8051 Development kit. It came with Salvo Lite. I am trying to run the Salvo Tutorial programs, but I cannot get them to link. I Tried to follow the instructions in AN-13. I'm not sure that the instructions are complete, as this tells how to use the Keil uVision2 IDE, and I'm using the Silicon Labs IDE. However, the Keil IDE doesn't seem to to included in the kit, so I'm trying to use what I have. Anyway, I get a lot of errors. What do I need to do to get it to link correctly? Here are the first few lines of the error message: Link in progress...
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
IP: |
All times are ET | next newest topic | next oldest topic |
![]() ![]() |
©2000-2008 Pumpkin, Inc. All Rights Reserved. Pumpkin and the Pumpkin logo, Salvo and the Salvo logo, The RTOS that runs in tiny places, CubeSat Kit and the CubeSat Kit logo are all trademarks of Pumpkin, Inc. All other trademarks are the properties of their respective owners.