There is some things you need for ARM software development:
Also it will be useful to have next software development utilities:
It is recommended to use GCC compiler. GCC compiler is developed by one team with FSF there is many GCC distributions by many companies.
There is some GCC builds for Windows:
GСС ARM EMBEDDED and YAGARTO are frequently updated. CodeSourcery development are not so active as YAGARTO. YAGARTO always have newest version of ARM GCC compiler. CodeSourcery and GСС ARM EMBEDDED are officially supported in CMSIS development.
It is recommended to use GСС ARM EMBEDDED compiler.
CodeBlocks is recommended as IDE. CodeBlocks is cross-independent and has minimal system requirements. There are many other IDEs, among them are Vim and Eclipse CDT4 and many others that support C and GDB. It is possible to use command line GDB mode to debug programs.
Elf file is produced by build process. This file can be used by different debug utilities. It is natural to use gdb for things that made by gcc. However there is need to use hardware debugger that connects gdb and board. Today you can use gdb with this debuggers:
You need to take already runnable application as your first application. Take application that designed for you board or similar board.
Application configuration is doing by CMAKE build system and configure files.
You can compile your application from IDE or from command line.
In case of using command line you should run console change patch to project path and then type ``make''. Compile process can have options, type ``make help'' to see options.
So it is recommended to use this software in ARM bare metal development