For some time I’ve been using Codebench ARM GCC tools for developing software for ARM microcontrollers. As IDE I used plain Eclipse which I had to configure by myself. It worked pretty good and there is nothing wrong with this. Anyway sometimes it gets a little annoying to go keep an eye on configurations and manual settings. So I decided to give a try CooCox IDE which claims to be free and open. It seems that already supports all micros I like to use.
Along to this change, I am also moving to different GCC tool collection. Codebench free tools are great, but in other hand, there are some sort limitations. One of them is release times. They are releasing their free tools twice a year, so updates and other improvements cannot reach as fast as you’d expect. Another thing I am concerned – disabled hard float functionality. If you would like to ta take advantage of floating point unit in Cortex-M4, then you get stuck. If you are not using hardware floating point module, then this tool works fine and you can stick with it. Anyway I don’t like limitations, especially with free tools, so I am switching to GCC tools from launchpad.net. It’s been here for a while and seems quite popular among developers.
Installing GCC tools
So download latest release from launchpad.net website. If you are windows user like me, choose …xx-win32.exe file. Then run to install. Installation steps are pretty intuitive. I just suggest to install it to normal directory where name is without spaces rather going with default path.
This may prevent from problems may arise due folder names.
After setup ends, you will be prompted to select to add path to environmental variable. This is necessary if you want to run gcc from anywhere. There are two options – launch gccvar.bat or let it do by installer:
Tools are set. Now install CooCox IDE.
Installing CooCox IDE
CooCox IDE doesn’t come with built in compiler, this is why we installed GCC tools first. So go to website and download latest CoIDE. There are couple options – one is to use CoCenter which takes care of process. Another option is to download whole setup file which is my choice now. File is pretty heavy – ~360MB. Instal software as installer is quite intuitive. When prompted select to instal CoCenter, which will take care of software upgrades and other maintenance:
Setting up first project with CoIDE
First thing you need to do when you start CoIDE is to set indicate where GCC tools are installed. For this go to menu Project->Select Toolchain Path
Then enter the path to location where arm-none-eabi-gcc.exe is located:
In the CoIDE website there is a good starting video how to create project with existing example.
We recommend EasyEDA for circuit design and PCB prototype
So nothing new I can say. Anyway I would like to compile one of my existing project files that were published earlier. Lets take one of our latest example from STM32F103ZET6. First of all lets create new project and enter Project Name and Path:
Then in second window select
Select chip as a target:
Next we select our particular chip from list:
And click Finish. You will get to project development view. Now things gets interesting and pretty convenient. First of all we can see a new tab named repository where we can select libraries like CMSIS and Peripheral. All you need is to check boxes that are gonna be used. For the first time checked components will be asked to download. This way things are kept up to date. But bare in mind, that most of components are developed or updated by community users. So if you are not very sure, then add your own to project tree. Anyway lets select CMSIS3.2. And peripheral libraries that were used by this project:
Next thing next is to import our written drivers for buttons, LCD, LEDs, touch, USART and other. For this in project tree we click add files by dragging and dropping Drivers folder. The link to files will be created. Also add other source files if needed.
After all files are included, you can change project settings by entering menu View->Configuration where you can change compile options, optimization level, linker, debugger. After you are set, go ahead and click Build button. You should compile and get Build succesful message:
Then if you have your cable connected to board and selected right tool in configurations menu, you can upload binary to flash and have it working. Alternatively you can start debugger if you have connected one of your debugging interfaces like ST-Link or J-Link.
In the end I must say that CoIDE works very well. Many things that I had to do manually it does automatically. With few clicks you can select right libraries, set up debugger. There are growing number of working examples, drivers and libraries. Community contributes a lot by adding and updating libraries, drivers. All you need is to use them. The only one downside with this IDE is that it supports limited number of devices and doesn’t keep up with new ones. For instance there is still no support for TI Tiva series microcontrollers that replace LM series. So you cannot create project in this IDE for Tiva C Launchpad. But if you follow the forum you can find that it’s coming.
So if your device is listed, I think CoIDE is great Eclipse based IDE for your projects. If not, go with command line or use other IDE and set everything by yourself.
You can download project files here (STM32touch_CoIDE.zip) if you want to try this tool.