From: Weddington, E. <Eri...@at...> - 2012-09-07 14:37:46
|
Hi Borja! Sorry to respond late to this email... This is really exciting! You said you need help in getting a basic toolchain working. Help me understand in detail, what you have, and where you want to be. We need avr-gcc to run the assembler and linker. From avr-llvm, we have a compiler that will compile C to assembler. I would think that we would need to modify the avr-gcc specs to call the correct (new) executable for the compilation step. If you can give me a few more details on your setup, then let's see where we can go with it. :-) Eric > -----Original Message----- > From: Borja Ferrer [mailto:bor...@gm...] > Sent: Tuesday, August 28, 2012 4:24 PM > To: avr...@li... > Subject: [avr-llvm-devel] Toolchain support needed! > > Hello, > > With the latest changes, the backend is reaching the point where it can > compile nearly any sort of code. One thing that is missing is support for > inline asm which is heavily used in avr-libc, but apart from that it should be > able to compile the rest. With a few tweaks i've been able to compile a 2200 > line C file that stresses floating point calculations that produces around 22k > instructions (C file -> S file) > > Now I'm getting more interested on getting a very basic toolchain working, > Eric we'll need your help here. I've been able to build from a C file to a hex > file a very basic main() function. avr-gcc is needed to produce the elf files > and to drive the linker, so we'll have to stick with it for a while. The setup > I have is messy because avr-gcc is in one folder with avr-libc and clang and > llvm in another, so in order to get the toolchain with a decent setup both > things should be in the same folder. Also included files default to the > system's not the avr specific ones. Maybe others have tried it before, so i > want to know how you did it or how hard it was, but in my case my first try > was yesterday. > > Also I'm going to change how register-pairs are represented because avr-as > can't understand what r29:r28 is. The llvm asm writer needs a bit of tweaking > because avr-as can't understand some asm directives it produces. > > This is the cmd line i'm using to generate an object file: clang -O3 test.c -o > test.o -ccc-host-triple avr-generic-generic -ccc-gcc-name avr-gcc -mmcu=avr5 > notice that avr-gcc is passed so that clang can drive it once the .S file is > generated. > > So try compiling a trivial main function to get the hex file generated, you'll > need avr-copy (provided by binutils) to convert the elf file to hex, but that > is easily handled by makefiles. Also people using windows try doing it aswell > since I dont have a setup for it and I'm looking forward for it. > > Once we get the basic toolchain working, adding support for avr-libc and > linking programs with its libraries should be much easier. I look forward for > any help here! |