Reply
Expert Employee
Kjell_E
Posts: 28
Registered: ‎09-05-2012

The emIDE, an opensource IDE especially suited for EFM32 software development

Want to try a nice opesource IDE for EFM32 development ?

Try emIDE !

Download here http://emide.org/dl.php?fid=17

Install, drop the attached Test3.txt file into kits\EFM32GG_DK3750\examples\blink\codesourcery and rename it to Test3.emP.

Open it in emIDE and hit F5

-kjell eirik




Attached Files

My views are my own and do not necessarily represent the views of Silicon Labs
Expert Employee
Kjell_E
Posts: 28
Registered: ‎09-05-2012

The emIDE, an opensource IDE especially suited for EFM32 software development

Try this link for download :

http://emide.org/dl.php?fid=16
My views are my own and do not necessarily represent the views of Silicon Labs
Occasional Contributor
Sylv1
Posts: 14
Registered: ‎01-28-2013

The emIDE, an opensource IDE especially suited for EFM32 software development

I knew Em::Blocks (link below) for embedded development and it looks like emIDE (without J-Link). It seems the two IDE are built from Code::Blocks (why two IDE for the same goal ?!)

http://www.emblocks.org/web/
Valued Contributor
vanmierlo
Posts: 1,958
Registered: ‎02-07-2002

The emIDE, an opensource IDE especially suited for EFM32 software development

Does it support debugging or is it a compiler front end only? If it does support debugging, which debug interfaces are supported?
Regular Contributor
brouhaha
Posts: 197
Registered: ‎09-16-2012

The emIDE, an opensource IDE especially suited for EFM32 software development

Unfortunately the post didn't include the base URL, http://emide.org/, which describes that it supports debugging using JLink.
Expert Employee
Marius_G
Posts: 77
Registered: ‎09-07-2012

The emIDE, an opensource IDE especially suited for EFM32 software development

Debugging works, and it's very fast :robothappy:. The big downside of this IDE is that it doesn't contain a register view, otherwise I would say it's an excellent tool.
Valued Contributor
vanmierlo
Posts: 1,958
Registered: ‎02-07-2002

The emIDE, an opensource IDE especially suited for EFM32 software development

I think an Open Source project like this should support debugging through Open Hardware debug interfaces. The ones that come to mind are the FTDI based JTAG adapters and CoLinkEx ( http://www.coocox.org/Colinkex.htm ).
Regular Contributor
brouhaha
Posts: 197
Registered: ‎09-16-2012

The emIDE, an opensource IDE especially suited for EFM32 software development

The EFM32 doesn't support JTAG, so FTDI based JTAG adapters aren't going to be of any help, unless they also happen to support SWD, which most don't. The CooCox looks interesting, but AFAICT it doesn't support any open source debugger.

The state of the art for open source SWD support is not very good yet.
Contributor
cprogrammer
Posts: 47
Registered: ‎10-10-2012

The emIDE, an opensource IDE especially suited for EFM32 software development


vanmierlo wrote:

CoLinkEx ( http://www.coocox.org/Colinkex.htm ).




If you like to use the CoLinkEx only for programming only, I think you could use the CoFlash in Command Line:

look here http://coocox.org/CoFlashGuide/CoFlash_UserGuide_Commandline.htm.

Maybe someone could write an Plugin for EMIDE with CoLinkEx like there is a Plugin for Keil MDK-ARM with CoLinkEx witch I use in an example Project here: https://github.com/nopeppermint/Olimex_EFM32_CoLinkEx_Example
Occasional Contributor
EmBlocks
Posts: 13
Registered: ‎03-27-2013

The emIDE, an opensource IDE especially suited for EFM32 software development


Sylv1 wrote:


I knew Em::Blocks (link below) for embedded development and it looks like emIDE (without J-Link). It seems the two IDE are built from Code::Blocks (why two IDE for the same goal ?!)

http://www.emblocks.org/web/




Hi,

EmBlocks supports JLink and STlink (or any other GDB server) both with GUI settings. In the install package is a STLink gdb server which supports flash/ram execution (settings of registers or memory like vector allocation table).

The Graphical user interface for the debugger probes are completely written with external scripts which can be modified or extended by users. So even OpenOCD or any other GDB can be supported with the same GUI mechanism. For the JLink there is currently ST, NXP and Generic UI interface scripts. It's quite easy to add EFM to the JLink product family with his own graphical UI instead of using the Generic's.

The JLink settings dialog for e.g. ST:

jlink.PNG

The install package contains all the necessary tools (special embedded GDB's and GCC's) to instantly start a project.

Regards.
Occasional Contributor
Sylv1
Posts: 14
Registered: ‎01-28-2013

The emIDE, an opensource IDE especially suited for EFM32 software development

Oups, I hadn't seen that Emblocks supported JLink.

About the GNU 'bare-metal' compiler included in this IDE, what is the expected performance of the optimized Newlib and especially Nano-branch compared to Sourcery CodeBench Lite Edition (size and/or speed)?
Occasional Contributor
EmBlocks
Posts: 13
Registered: ‎03-27-2013

The emIDE, an opensource IDE especially suited for EFM32 software development

Whoo


Sylv1 wrote:

About the GNU 'bare-metal' compiler included in this IDE, what is the expected performance of the optimized Newlib and especially Nano-branch compared to Sourcery CodeBench Lite Edition (size and/or speed)?




Whooo, I don't know.

I know that the code size, with nano-lib, can be the same (even smaller) than the RealView ARM compiler. I will upload a video later on where I have two build targets, one GCC-bare and one RLView, so that we can compare them directly. What is that lite? only command line tools from GNU?
Occasional Contributor
Sylv1
Posts: 14
Registered: ‎01-28-2013

The emIDE, an opensource IDE especially suited for EFM32 software development

Yes, the 'Lite Edition' is only a command lines tool from GNU but it can be integrated into Eclipse as explained in the Application Note AN0023 (see 'Downloads' section or http://cdn.energymicro.com/dl/an/pdf/an0023_efm32_eclipse_toolchain.pdf) or in EmIDE (see the first post of this topic) or others.
Occasional Contributor
EmBlocks
Posts: 13
Registered: ‎03-27-2013

The emIDE, an opensource IDE especially suited for EFM32 software development


Sylv1 wrote:

Yes, the 'Lite Edition' is only a command lines tool from GNU but it can be integrated into Eclipse as explained in the Application Note AN0023 (see 'Downloads' section or http://cdn.energymicro.com/dl/an/pdf/an0023_efm32_eclipse_toolchain.pdf) or in EmIDE (see the first post of this topic) or others.




I guess that it can be used with any IDE which is supporting GCC. Just select Yagarto (or any other suitable) GCC and change the toolchain path (and possibly exectuable names).

For EmBlocks, don't use the emblocks bare-metal driver. This one is using specific commandline switches to select different optimized libraries. These switches are still GCC but they are using spec-files which are most likely not available in the Lite toolchain. Its better to use the Yagarto driver.

If it's worth, I will add this toolchain to the supoorted auto-detectables, but I think that it won't be much different compared to the bare-metal compiler which is packaged with EmBlocks if you are using Cortex devices..
Contributor
hairykiwi
Posts: 57
Registered: ‎09-11-2012

The emIDE, an opensource IDE especially suited for EFM32 software development

Kjell E - Thanks so much for the heads-up on emIDE :-)

For anyone interested in trying emIDE with a STK3700, here's Kjell E's Test3.txt (emP file) modified for the STK3700:

blink_STK3700_emP-for_emIDE.txt

To use it, drop it into: %AppData%\energymicro\kits\EFM32GG_STK3700\examples\blink\codesourcery

and rename it: blink_STK3700.emP

Compared to Eclipse+GCC, I found emIDE much less hassle to install and get my first project working. Additionally, it's lightweight (48MB), cleaner looking, (easier on the eye) and Segger's J-Link is very nicely integrated, thanks to some work Segger did for the project.

I did initially overlook Kjell E's Test3.txt project file, so I spent a while trying to get it working under my own steam. Being a complete makefile novice, I ended up learning a lot more about makefiles, compiler flags and options - and some of the current limitations of emIDE. For example, Windows system environment variables like %UserName% are not as yet being properly reformed at compile time:



currently reforms to become:

...\Usershairykiwi\AppData\...

instead of:

...\Users\hairykiwi\AppData\...

Being able to use such variables would mean better project portability - among Windows users at least. And this is probably the single biggest limitation of emBlocks right now - it's Windows only until the author finds time to work on a Linux release.

---

I did also take a look at EmBlocks, but got a little despondent about trying it after taking so long trying setting up emIDE without Kjell E's Test3.txt (emP file). It would be good to compare emIDE and emBlocks side-by-side, but right now I don't have a lot of spare time.

EmBlocks, if you're able to offer some guidance or assistance on setting up a project with an EFM32 device, I'd be interested in trying EmBlocks too.
Frequent Contributor
Alatar
Posts: 92
Registered: ‎01-06-2013

The emIDE, an opensource IDE especially suited for EFM32 software development


hairykiwi wrote:

For example, Windows system environment variables like %UserName% are not as yet being properly reformed at compile time:currently reforms to become:...\Usershairykiwi\AppData\...instead of:...\Users\hairykiwi\AppData\...




I don't know anything about using windows environment variables, but I can say that the preferred way to specify libraries paths in Code::Blocks is using Global compiler variables (http://wiki.codeblocks.org/index.php?title=Global_compiler_variables).
Contributor
hairykiwi
Posts: 57
Registered: ‎09-11-2012

The emIDE, an opensource IDE especially suited for EFM32 software development

Hi Alatar,

Thanks - I did have a read of that page when I was trying to piece things together 'on my own' - but...

If I understand correctly, as 'harper' requests on the emIDE forum here:

http://emide.org/forum/viewtopic.php?f=6&t=810

'...The semantic $(SOURCE_FILES) works for include paths. So it would be appreciated when this could also be used for source files.'

And 'emIDE' (Johannes - emIDE author) replies:

'Using variables for source files is not possible,

because variables does not get parsed and replaced in the source file list.

So it is necessary to have all files with the same relative path to the project on every PC.


I can add it to my ToDo- and wishlist, so this might be added in a future version of emIDE.'

So I think this is directly related to the problem I experienced, if not the core issue. In any case, as things stand for the moment, I don't really see any advantage, (over using a separate makefile) if a user has to specify a USER_DIRECTORY in a project file, if a system variable might eventually enable the same thing without user intervention. On the other hand, if that's the compromise required for using emIDE under multiple OS's (when the Linux version comes out) so be it.

Generally speaking, I'm a little surprised that global variables aren't better utilised in IDEs. For example, in IAR's EWARM, DEVICE name must be specified in three locations in the project settings, IIRC. Why not enable the value to be assigned/selected once?

Even in emIDE, I can use a global variable to define DEVICE for generating the appropriate DEVICE compiler flag, but AFAIK, (I didn't test) it's not possible in the debugger tab, to utilise the same global variable in the 'Target Device' field.

Let me know if I'm not understanding things correctly.
Contributor
hairykiwi
Posts: 57
Registered: ‎09-11-2012

The emIDE, an opensource IDE especially suited for EFM32 software development

On a tangent, but related to the global variables topic raised in the last few posts:

I've just had some success using Windows System Environment Variables in a makefile. This appears to go a long way toward a reducing or eliminating any editing of relative paths in a makefile; especially after a project that might have begun as an experiment with vendor example code, is moved outside the vendor's directory structure, i.e. outside the Simplicity Studio install location, (%AppData%/energymicro under Windows) while still enabling reliable inclusion of (latest revision) key vendor supplied files.

According to this Microsoft knowledgebase article: http://support.microsoft.com/kb/59141

'You can access environment variables within a MAKE or NMAKE makefile in the same way that you access user-defined macros. The only difference is that the names of environment variables must be capitalized when used in this manner. For example:

# the INCLUDE 'macro' will pick up your INCLUDE environment variable

file.obj : file.c $(INCLUDE)\file.h'

So either of the following definition methods are valid for defining the path to the energymicro folder:

EM_DIR = $(APPDATA)/energymicro


EM_DIR = C:/Users/$(USERNAME)/AppData/Roaming/energymicro


Thereafter, any relative path 'Includes' like these:

INCLUDEPATHS += \

-I.. \

-I../../../CMSIS/Include \

-I../../../Device/EnergyMicro/EFM32GG/Include \

...


can be replaced with the following syntax to provide a portable, yet absolute path listing:

INCLUDEPATHS += \

-I$(EM_DIR)/CMSIS/Include \

-I$(EM_DIR)/Device/EnergyMicro/EFM32GG/Include

...


No doubt this isn't earth-shattering news to anyone experienced with writing makefiles, but hopefully it's useful to other novices who just want to get on with their project.

If there's a good reason this approach isn't advisable, please say.
Occasional Contributor
EmBlocks
Posts: 13
Registered: ‎03-27-2013

The emIDE, an opensource IDE especially suited for EFM32 software development


hairykiwi wrote:

[member='Kjell E'] - Thanks so much for the heads-up on emIDE :-)

For anyone interested in trying emIDE with a STK3700, here's [member='Kjell E']'s Test3.txt (emP file) modified for the STK3700:
attachicon.gifblink_STK3700_emP-for_emIDE.txt
To use it, drop it into: %AppData%\energymicro\kits\EFM32GG_STK3700\examples\blink\codesourcery
and rename it: blink_STK3700.emP

Compared to Eclipse+GCC, I found emIDE much less hassle to install and get my first project working. Additionally, it's lightweight (48MB), cleaner looking, (easier on the eye) and Segger's J-Link is very nicely integrated, thanks to some work Segger did for the project.

I did initially overlook [member='Kjell E']'s Test3.txt project file, so I spent a while trying to get it working under my own steam. Being a complete makefile novice, I ended up learning a lot more about makefiles, compiler flags and options - and some of the current limitations of emIDE. For example, Windows system environment variables like %UserName% are not as yet being properly reformed at compile time:

currently reforms to become:
...\Usershairykiwi\AppData\...
instead of:
...\Users\hairykiwi\AppData\...

Being able to use such variables would mean better project portability - among Windows users at least. And this is probably the single biggest limitation of emBlocks right now - it's Windows only until the author finds time to work on a Linux release.
---

I did also take a look at EmBlocks, but got a little despondent about trying it after taking so long trying setting up emIDE without [member='Kjell E']'s Test3.txt (emP file). It would be good to compare emIDE and emBlocks side-by-side, but right now I don't have a lot of spare time.

[member='EmBlocks'], if you're able to offer some guidance or assistance on setting up a project with an EFM32 device, I'd be interested in trying EmBlocks too.


Wait until version 1.02. This version will have a project wizard for energymicro and also supports CMSIS-SVD so that you can watch/modify all the device peripheral registers from a special watch window.

See also http://www.emblocks.org/forum/viewtopic.php?f=1&t=7&start=20

You can just create an empty build-able project and start debugging it without all kind of hidden settings etc. Just like STmicro, NXP and ATmel is supported right now. A try project shouldn't take more then 1 minute from creating to debugging.

Same as e.g. STMicro which is shown here: http://www.youtube.com/watch?v=coHPJylnzC8

Contributor
hairykiwi
Posts: 57
Registered: ‎09-11-2012

The emIDE, an opensource IDE especially suited for EFM32 software development

Thanks EmBlocks, I'll take a look when I'm back home next week.


Occasional Contributor
EmBlocks
Posts: 13
Registered: ‎03-27-2013

The emIDE, an opensource IDE especially suited for EFM32 software development

If it's in the next upcoming release 1.02 depends on if there is hardware available for testing before publishing.


I can't buy all those dev-kits myself because this is a non-commercial project, so I am dependent on the kindness of manufacturers.

Contributor
cprogrammer
Posts: 47
Registered: ‎10-10-2012

The emIDE, an opensource IDE especially suited for EFM32 software development


EmBlocks wrote:

If it's in the next upcoming release 1.02 depends on if there is hardware available for testing before publishing.

I can't buy all those dev-kits myself because this is a non-commercial project, so I am dependent on the kindness of manufacturers.


Why you don't make your beta public? I think there are a lot of people who have a dev-kit to test the beta.

Occasional Contributor
EmBlocks
Posts: 13
Registered: ‎03-27-2013

The emIDE, an opensource IDE especially suited for EFM32 software development


cprogrammer wrote:

Why you don't make your beta public? I think there are a lot of people who have a dev-kit to test the beta.


Meanwhile I have some hardware and right now I'm busy with configuring the install package and testing different kind of wizard scenarios.  

The danger of making things public to test (debug) by users is that they are getting disappointed (e.g. like the Microchip Mplab X project)  and don't want to try it if it's in a more stable state.


Occasional Contributor
Sylv1
Posts: 14
Registered: ‎01-28-2013

The emIDE, an opensource IDE especially suited for EFM32 software development

The new version of emIDE now supports a Peripheral Register Window (since V2.06 of 12 June 2013). I downloaded the SVD file from the site http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.p... after registration. This feature seems work well.


I think it could be nice if the SVD files of the EFM32 devices were directly downloaded in the directory Application Data\energymicro\CMSIS\SVD (there are only some samples) from Simplicity Studio.

Occasional Contributor
EmBlocks
Posts: 13
Registered: ‎03-27-2013

The emIDE, an opensource IDE especially suited for EFM32 software development

EmBlocks with EnergyMicro support is now available (version 1.10)

http://forum.energymicro.com/topic/921-emblocks-ide-with-energymicro-support/

 


Download at:

http://www.emblocks.org


Contributor
Mick
Posts: 53
Registered: ‎04-22-2013

Re: The emIDE, an opensource IDE especially suited for EFM32 software development

Hi foks,

 

im trying to get emIDE working at home, and have followed this thread to try and compile the blink code.  i just get this error below, which doesnt give much detail.  ive installed sourcery codebench lite but no change. im not sure how to set environment variables etc so am a bit out of my depth.

 

 

any ideas?


-------------- Build: Release in blink_stk3700 (compiler: GNU ARM GCC Compiler)---------------

Running command: cs-make -j -f Makefile.blink release
Execution of 'cs-make -j -f Makefile.blink release' in 'C:\Users\Mick\AppData\Roaming\energymicro\kits\EFM32GG_STK3700\examples\blink\codesourcery' failed.