Difference between revisions of "Setting Up ARM GCC For ExploreM3 LPC1768"
(13 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
[https://launchpad.net/gcc-arm-embedded ARM GCC]<br> | [https://launchpad.net/gcc-arm-embedded ARM GCC]<br> | ||
[https://sourceforge.net/projects/winavr/files/ WinAvr]<br> | [https://sourceforge.net/projects/winavr/files/ WinAvr]<br> | ||
− | [http://gnuwin32.sourceforge.net/packages/make.htm Make Utility]<br><br> | + | [http://gnuwin32.sourceforge.net/packages/make.htm Make Utility]<br> |
+ | [https://codeload.github.com/ExploreEmbedded/LedBlinkingWithArmGcc/zip/master Led Blinking Project]<br><br> | ||
=Installing ARM GCC= | =Installing ARM GCC= | ||
Line 15: | Line 16: | ||
− | To test the ARM GCC open the command line and use command | + | To test the ARM GCC open the command line and use command <b>arm-none-eabi-gcc --version</b>, which will give the version information as shown below. |
[[File:ARM GCC 00.PNG]] | [[File:ARM GCC 00.PNG]] | ||
<br><br><br><br> | <br><br><br><br> | ||
Line 24: | Line 25: | ||
=Installing Make Utility= | =Installing Make Utility= | ||
− | Finally install the make utility.Make utility will not update the path variables and it needs to be done manually. | + | Finally install the make utility. Make utility will not update the path variables and it needs to be done manually.<br> |
Add the Make Utility path to the environment path. | Add the Make Utility path to the environment path. | ||
Line 39: | Line 40: | ||
Along with the source files we need core files<b>core_cm3.c, core_cm3.h, core_cm3.o,system_LPC17xx.c, system_LPC17xx.h, lpc17xx.h and startup_LPC17xx.c </b>.<br> | Along with the source files we need core files<b>core_cm3.c, core_cm3.h, core_cm3.o,system_LPC17xx.c, system_LPC17xx.h, lpc17xx.h and startup_LPC17xx.c </b>.<br> | ||
Finally we need a linker file for setting up the RAM, ROM size and start address.<br> | Finally we need a linker file for setting up the RAM, ROM size and start address.<br> | ||
− | + | Download all the files from this [https://codeload.github.com/ExploreEmbedded/LedBlinkingWithArmGcc/zip/master link]. | |
Line 46: | Line 47: | ||
[[File:ARM GCC 05.PNG]]<br><br> | [[File:ARM GCC 05.PNG]]<br><br> | ||
− | In case you are getting the below error, then replace the msys.dll file | + | In case you are getting the below error <b>child 2300(0x14C) died before initialization with status code 0xC0000142</b>, then replace the <b>msys-1.0.dll</b> file from the folder C:\WinAVR-20100110\utils\bin with this |
+ | [http://www.madwizard.org/download/electronics/msys-1.0-vista64.zip msys-1.0.dll] file. | ||
[[File:ARM GCC 04.PNG]]<br><br> | [[File:ARM GCC 04.PNG]]<br><br> | ||
Line 55: | Line 57: | ||
After successful compilation, <b>.hex</b> and <b>.bin</b> files will be generated in the same project directory. | After successful compilation, <b>.hex</b> and <b>.bin</b> files will be generated in the same project directory. | ||
[[File:ARM GCC 06.PNG]]<br><br> | [[File:ARM GCC 06.PNG]]<br><br> | ||
− | |||
=Linker Setting= | =Linker Setting= | ||
− | + | Start address of the application can be changed in the linker file as shown in the below image. | |
#In case your are using the <b>.hex</b> with flash magic then the start address should be 0x0000. | #In case your are using the <b>.hex</b> with flash magic then the start address should be 0x0000. | ||
#For using the <b>.bin</b> file with Secondary bootloader, the start address should be 0x2000. | #For using the <b>.bin</b> file with Secondary bootloader, the start address should be 0x2000. | ||
[[File:ARM GCC 07.PNG]] | [[File:ARM GCC 07.PNG]] | ||
− | + | ||
{{DISQUS}} | {{DISQUS}} |
Latest revision as of 11:16, 28 April 2016
In this tutorial we will see how to setup ARM GCC Tool Chain to generate .hex and .bin file for LPC1768.
To start with you will require ARM GCC, winAvr and make utility, download all the software's from following links.
Contents
Downloads
ARM GCC
WinAvr
Make Utility
Led Blinking Project
Installing ARM GCC
Once ARM GCC is downloaded install it on your machine. At the End of the installation do select the option Add path to environment variable as shown below.
To test the ARM GCC open the command line and use command arm-none-eabi-gcc --version, which will give the version information as shown below.
Installing WinAvr
Run the winavr installer and follow the steps to set the default configuration.
Installing Make Utility
Finally install the make utility. Make utility will not update the path variables and it needs to be done manually.
Add the Make Utility path to the environment path.
Now type the command make -v to verify the path.
Output of the command should be the version number of make file as shown in below image.
Compilation
We will compile a simple Led Blinking program for LPC1768 using ARM GCC using following procedure
There are different ways to access your files depending on the makefile. We can write makefile as per folder structure.
To keep things simple we will be storing all the files in the same folder as shown in below image.
Along with the source files we need core filescore_cm3.c, core_cm3.h, core_cm3.o,system_LPC17xx.c, system_LPC17xx.h, lpc17xx.h and startup_LPC17xx.c .
Finally we need a linker file for setting up the RAM, ROM size and start address.
Download all the files from this link.
After that open command line in your project directory and compile program by using make Clean followed by make all command as shown below.
In case you are getting the below error child 2300(0x14C) died before initialization with status code 0xC0000142, then replace the msys-1.0.dll file from the folder C:\WinAVR-20100110\utils\bin with this
msys-1.0.dll file.
Try compiling again and this time it should be successfully compiled.
After successful compilation, .hex and .bin files will be generated in the same project directory.
Linker Setting
Start address of the application can be changed in the linker file as shown in the below image.
- In case your are using the .hex with flash magic then the start address should be 0x0000.
- For using the .bin file with Secondary bootloader, the start address should be 0x2000.