Hello, I am making a project with the lm3s811.
When I build my project uVision says that it has made a .ELF file for me. But when i search this file it is nowhere to be found! So i cannot load my flash.
But when I build a test project uVision makes a .AXF file. (which I can find!).
How is this possible what am I doing wrong?
And why is there a differnce in the file format??
Thanx for any help!
I do not know why it is not saved. but it is not saved at my pc, so when i want to load the file in my flash memory uVision cannot find the file.
So for loading i use uVision. and i am trying to load the file into the internal flash memory of the lm3s811.
I think the problem is in my GNUARM. Because i can load files in to my flash memory only not the file i want to load in to it.
I just want to make sure that the problem is not with uVision.
Hoi Marleen,
I'm not using uVision and not even ARM (C166 + Keil command line tools, process is quite similar) but I'm trying to understand the problem.
You are trying to build a project using uVision and it simply doesn't link all the objects to a final executable, but it says it did? Do I understand that correctly?
Can you find/create any log or map files from the linker?
Which toolchain/toolset are you using with uVision? RealView or GNU? See: http://www.keil.com/support/man/docs/armlink/armlink_cegcgfai.htm Can you get some screen output or other logging from the build process?
Could it be a license/evalutation problem? See: http://www.keil.com/support/docs/3206.htm
Like Mike said, are you expecting a file that's actually called .elf? Because it can be anything, it's just a file extension, with the default being .axf for the RealView linker. See: http://www.keil.com/support/man/docs/armlink/armlink_babjaihe.htm
You could try to do a manual link step by calling the linker from the command line, using all the correct linker options. But uVision should be able to do all this for you; unfortunatly I can't help you with its settings and checkboxes.
-- J
Hoi Joost,
Thanks for the information. Yes you understand the problem correct. I expect a .axf file (because that is a standard for uVision and it does it with other projects). But is says it makes a .elf file.
That is where the problem is.
I am going to try to do it manualy see it that makes any difference.
I am using a GNU (GNUARM) because they say that is the best for my project.
for info about the project see, www.circuitcellar.com/.../index.html
I expect a .axf file (because that is a standard for uVision and it does it with other projects).
Are the other projects (examples?) also using GNU, or are they set to RealView or something? That might explain the difference in output.
Before doing a manual build, I would check any log files, especially from the linker. That should show you where the output went, or if there were any other problems. Do you get -any- output (object, list-files, etc.) from the build process?
Does uVision support some kind of logging from the build process? Like the build output windows in Eclipse/VisualStudio/editor?
If you download the evaluation software, or buy the processional edition, you will not get any gcc compiler. It has to be installed separately.
An example configured for the RealView compiler will manage to compile and link, and you will get a *.axf file.
An example configured for gcc will fail to compile and link, since there are no assembler, compiler and linker available on the machine.
Keil previously also sent out the CARM compiler previously. An example that specifies the CARM compiler will also fail to build with a new installation.
Have you verified that the project is configured to build with a compiler that you have?
When I link (I'm using the RealView compiler, not gcc) I get a file *.lnp that contains all parameters for the linking. This data can be used to manually link the project (specifying --via <name>.lnp to armlink).
I see that you are using gcc. Do you have all gcc tools installed? What is the command to link your project? What printout do you get from the link step? Can you manually try to link from the command line? What happens?
I did a quick check in uVision using an example project (CSample). It nicely shows a "build" tab at the bottom of the screen with the output location. The directory contains two folders, listing and objects.
Do you get any log-files? If not, try enabling them in the project settings. The linker logging should give you all the info you need.
Also, on the output tab of the project settings, I can enter the output file name. It's "csample" by default in this example but I can change it into anything I like (csample.axf, csample.elf, csample.plop; it's just a name and doesn't says anything about the internal format).
Hello Per,
I installed a seperate gcc compiler (GNUARM) the project i am trying to build is made with this compiler so it should work. (See the website i gave last time.)
i think it does not work correct with uVision at this time because i just found a *.lnp file.
can you telll me moere about the manual linking of the project. I am kind of new to this.
I am still finding answers to all your questions.
what i do is this: I build my project and then i press the load button in uVision.
I am kind of new to uVision and completly new to GNUARM. So thanks for all your information and patient.
I build my project and then i press the load button in uVision.
Try to find out if the project builds successfully in the first place, by looking at the log/list/map files.
I am kind of new to uVision and completly new to GNUARM.
Did you try building a small app using uVision, its default toolchain (RealView?) and downloading it to the target device? Check the project settings so see which toolchain (compiler, assembler, linker) is used.
Manual linking should not be necessary, it would only give a clue what's going wrong during the build. But this should also be part of any build logging when using uVision.
Yes, I agree.
Trying a manual link is something to do _if_ the IDE does not produce a reasonable message.
Start by looking at all messages you get during the build process. If you don't understand them - cut and paste to this thread.
Try to find out if the project builds successfully in the first place, by looking at the log/list/map files
I find a few list files, some have errors so i have to do something about that. Later i will give some examples. and ask how to solve those.
Did you try building a small app using uVision, its default toolchain (RealView?) and downloading it to the target device?
No i did not and I have no idea how i have to do this.
Check the project settings so see which toolchain (compiler, assembler, linker) is used.
I looked at options for target1 (i think this is what you mean with project settings. Under the tab linker i can do a lot of things but i do not know how to see wich toolchain i use.
I find a few list files, some have errors so i have to do something about that.
It's strange that the linker/uVision tells you that an ELF file was created when the compiler did not even build everything.
[toolset configuration] http://www.keil.com/support/man/docs/uv3/uv3_ca_armtoolset.htm
[test app] No i did not and I have no idea how i have to do this.
We don't have any background info on your experience with embedded software development so it's difficult to tailor my responses.
I looked at the speech project and it didn't show anything about GNUARM as far as I could see; did you try building it with RealView? The .zip file even contains pre-built .axf files.
I suggest starting with something really simple, HelloWorld style, using your environment (uVision (licensed?), target device or uVision hardware simulator, toolchain, programmer/debugger(ULINK?)) and last but not least the example projects and manuals :-) http://www.keil.com/support/man/docs/uv3/uv3_overview.htm Trying to get a rather complex speech project to work without getting familiar with the target and tools first, is quite a big leap.
It's strange that the linker/uVision tells you that an ELF file was created when the compiler did not even build everything
I found that to but i have no idea about the reason why!
I am in the last stage of my education. than i am finished with school. so i do not have a lot of experience with embedded software development. The reason why i am so keen on the speech project is because this is my final school project. I have to do a study about this project and see if it is usable for further use.
did you try building it with RealView? The .zip file even contains pre-built .axf files.
yes i tried Realview but i do not have a valid license so that doesn't work. Thanks for pointing out that there are already pre-built .axf files in the zip file. unfortunately these are to big to fit in the memory of the board.
i know almost for sure that the problem lies with GNUARM and the link to uvision. So i am going to try Cygwin because that should work with uVision. When installed i will try something really simple.
I am in the last stage of my education. so i do not have a lot of experience with embedded software development.
In that case be prepared to get replies in this forum telling you to read a lot of documentation and to do most of the work yourself. Check the archive for the typical "give me all the code fast" 'questions' from students :-)
Embedded software tends to be a 'little' more complicated than just downloading a .zip file from the Net and installing it. Alot more hardware/software/tool/single-bits-in-register dependencies.
[pre-built .axf files] unfortunately these are to big to fit in the memory of the board.
What kind of development kit do you have? Does anybody in your school have experience with this board? Did it come with examples? Even with the unlicensed demo version you should be able to get a HelloWorld running on the target device. That should be a first test.
Then try adding GNU ARM as a toolchain and do the HelloWorld again using GNU.
I haven't checked the details but Keil has some info perhaps: http://www.keil.com/appnotes/docs/apnt_199.asp http://www.keil.com/forum/docs/thread8537.asp
Something else to keep in mind is that the C and assembly source code you have might not build using GNU ARM if it uses RealView specific (assembly) instructions.
-- Joost