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!
How is this possible what am I doing wrong? Nothing is wrong. This is expected behavior.
And why is there a differnce in the file format?? Difference compared to what? Did you mean to ask 'Why does an ELF file have an extension that is not .elf?' The answer is 'Why not?'
I think I see where the confusion is coming from. There is .elf as a filename extension, which is just 3 letters following a dot. And there is ELF as a file format: en.wikipedia.org/.../Executable_and_Linkable_Format You seem to be confusing the two.
Oke sorry for the confusion. I didnÂ't know that. Thanks for the clarification.
I meant to say why .elf and not .AXF? Because .AXF seems to work and .elf not. And is there maybe a way to set this somewhere?
uVision creates a .elf file for me for the project i need, but i cannot load that file in my flash memory because it is not saved.
And yes i specified a directory to save it to.
I hope that you have all the information you need.
Sorry, I misunderstood the problem. The .AXF file is produced by RealView compilation tools that come with Keil MDK. I don't know where an .ELF file would come from. Maybe it is related to uVision support for GNU tools, or maybe even Keil's CARM compiler? Sorry, can't help you with this, I've only had experience with RealView tools.
but i cannot load that file in my flash memory because it is not saved
Why you think it is not saved? What hardware/software you use to load to flash? Mikhail
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.