Hi, I am using ATMEL microcontroller (ARMS 7) and using Embest IDE. I want to use GCC to compile the source codes that have been written into a dll and lib files. And can someone recommend me the relevant websites which gcc tools and software that I should download and the required steps... Should I use MinGW or Cygwin since i want to do a cross compilation in Windows environment. Your help is appreciated thanks
Yee Yee wrote: > Hi, > > I am using ATMEL microcontroller (ARMS 7) and using Embest IDE. > > I want to use GCC to compile the source codes that have been written > into a dll and lib files. Is an Operation-System running on the target? It is possible to create a library (collection of object codes, "lib file") and later statically link functions from the library to an application running on "bare-metal" (without OS). Shared libraries and late linkage like with "DLL files" on MS Windows are usually provided by the OS (loader, filesystem, memory-management, ...). > And can someone recommend me the relevant websites which gcc tools and > software that I should download and the required steps... For libraries ("lib files") the needed tools are already included in the usual packages of GNU cross-toolchains (gcc from the compiler-collection: .c->.o and ar from the binutils: *.c->.a/.lib). > Should I use MinGW or Cygwin since i want to do a cross compilation in > Windows environment. There is not need for MinGW or Cygwin since ready-mode GNU cross-toolchains are available for MS Windows (Yagarto, DevkitARM, CS G++ for ARM, Ronetix...). As far as I know the Embest IDE (never used it) also comes with a toolchain. If you want to build your own cross-toolchain you may look into the SVN/CVS/git of DevkitPro and Yagarto on sf.net.
Hi, Martin, thanks for the reply. I am at a loss about how to get this project forward as I am not familiar with open source Gcc programming. An OS system will be ideal. We need some sort of coding management. We wanted to use gcc to make certain standard codes modular that we wrote by creating standard library and then doing documentation. So, in future, the developers need not look at the entire coding and attach the cpp source code to the project. They just need to link the library file and then just call the function. Embest doesn't allow us to create dll and library files. My background is mechanical and hv done a fair bit of embedded programming. But in the area of creating library files, coding design, i am at a loss as to how i can begin the project as I am not a computing student. I notice that there is also a Visual-MinGW, which is a IDE environment? Can it be used to compile, build and create lib files for ARMS coding? Your help and advice is appreciated. thanks Martin Thomas wrote: > Yee Yee wrote: >> Hi, >> >> I am using ATMEL microcontroller (ARMS 7) and using Embest IDE. >> >> I want to use GCC to compile the source codes that have been written >> into a dll and lib files. > > Is an Operation-System running on the target? It is possible to create a > library (collection of object codes, "lib file") and later statically > link functions from the library to an application running on > "bare-metal" (without OS). Shared libraries and late linkage like with > "DLL files" on MS Windows are usually provided by the OS (loader, > filesystem, memory-management, ...). > >> And can someone recommend me the relevant websites which gcc tools and >> software that I should download and the required steps... > > For libraries ("lib files") the needed tools are already included in the > usual packages of GNU cross-toolchains (gcc from the > compiler-collection: .c->.o and ar from the binutils: *.c->.a/.lib). > >> Should I use MinGW or Cygwin since i want to do a cross compilation in >> Windows environment. > > There is not need for MinGW or Cygwin since ready-mode GNU > cross-toolchains are available for MS Windows (Yagarto, DevkitARM, CS > G++ for ARM, Ronetix...). As far as I know the Embest IDE (never used > it) also comes with a toolchain. If you want to build your own > cross-toolchain you may look into the SVN/CVS/git of DevkitPro and > Yagarto on sf.net.
btw, what does cross-toolchain mean? It seems like there are a couple of different gcc software... What's the difference? Any good websites with a good installation and get started tutorial? So, u think I should use software like DevkitArm, CS G++ for ARM etc???
Yee Yee wrote: > Hi, Martin, thanks for the reply. > > I am at a loss about how to get this project forward as I am not > familiar with open source Gcc programming. > > An OS system will be ideal. Depends on the application. > We need some sort of coding management. We wanted to use gcc to make > certain standard codes modular that we wrote by creating standard > library and then doing documentation. So, in future, the developers need > not look at the entire coding and attach the cpp source code to the > project. They just need to link the library file and then just call the > function. A "lib file" as a collection of object-code should be o.k. for this. The developers get the library file and one or more header-files (.h). > Embest doesn't allow us to create dll and library files. The IDE might not support the creation of library files but the tools in the background should. Did you ask Embest? > My background is mechanical and hv done a fair bit of embedded > programming. But in the area of creating library files, coding design, i > am at a loss as to how i can begin the project as I am not a computing > student. > I notice that there is also a Visual-MinGW, which is a IDE environment? > Can it be used to compile, build and create lib files for ARMS coding? I don't know since I'm usually using Makefiles for this. How library files can be created from an IDE should be mentioned in the IDE's documentation/online-help. The basic idea is to use the compiler to create object-code from source-code and the archiver to collect the object-codes into a library ("lib-file"). When using GNU tools the usual file-extension is ".a" and the filename starts with "lib". Example: 2 source-files egalA.c and egalB.c get compiled into object-code in files egalA.o and egalB.o. Later the object codes are collected into a library file libmylib.a. CS G++ used here but the concept is similar with other toolchains based on GNU sources. There are much more options and features but this should give the basic idea.
1 | arm-none-eabi-gcc egalA.o egalA.c |
2 | arm-none-eabi-gcc egalB.o egalA.c |
3 | arm-none-eabi-ar rcs libmylib.a egalA.o egalB.o |
The library can later be used by passing -lmylib as parameter when linking the application. An IDE should call compiler/archiver similar to this when selecting something like "create library" from the GUI. Yee Yee wrote: > btw, what does cross-toolchain mean? There should be an official definition somewhere in the net. Basically a collection of programs to create applications for a target with a different OS and/or architecture (example ARM7 no OS) then the machine on which the these programs run (example MS-Windows on x86). > It seems like there are a couple of different gcc software... What's the > difference? Main difference is the target. The usuage is always similar. For ARM and Linux OS search for an arm-*-linux toolchain, for ARM "bare metal" search for arm-*-elf ("old" ABI) or arm-*-eabi ("new" ABI). Go to gcc.gnu.org and read a little bit on GCC targets for further information. > Any good websites with a good installation and get started > tutorial? Did you check the "sticky" post of this forum? > So, u think I should use software like DevkitArm, CS G++ for ARM etc??? DevkitARM, Yagarto and CS G++ lite are very similar: toolchain to create "bare metal" applications for targets with ARM core. The IDE might already include a GNU toolchain and use it in the background.
Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
Log in with Google account
No account? Register here.