I'm road testing the  Ultra-Low Power Arm Cortex-M4 Darwin MCU EVM.

In this blog post (I don't have the hardware yet): Trying if I can use Maxim's Eclipse bundle.

Maxim hasn't altered Eclipse, but they provide an install that sets up a fully working environment with debugger and examples.

Here's my real-time blog about the first experience.



Eclipse as IDE


The Maxim Webinar: What Can You Do With the World’s Smallest Arm® Cortex® M4 with FPU Microcontroller?  discusses mbed (on- and offline), Arduino and Eclipse as the three free environments of choice.

I prefer to have an IDE with fully integrated build and debug functionality (and with version control integration). For me personally, Eclipse is way ahead of the two others on those fronts.


source: element14 webinar


The controller's homepage has a link  to the toolchain installer, for Windows and Linux..

That installs (I tested the Windows version) Eclipse, the GDB OpenOCD debug plug-in (what a great open source development !!),

USB driver, compiler chain (with MiniGW supporting the build).

And it installs firmware libs, example projects and documentations for our microcontroller.


Once installed, everything works out of the box - just execute eclipse.bat, not eclipse.exe.

The install is so kind to not put any of the modules in your standard path (thank you Maxim !!) .

The batch file takes care that the environment (e.g. MiniGW) is configured before Eclipse starts.

(it would be good if Maxim documented that in the Eclipse Quick Start guide - it prevents compilation errors).

The overall experience is perfect. Installation works as it should.

After importing the first two examples - one bare metal, one with FreeRTOS - they both compiled without errors and warnings.

I used the instructions for another controller in the family.




Maxim has a set of examples for this controller. Most of them show how the peripherals work. Very practical, and I'll review them.

But they should 'just work as per spec'.


More interesting are the low power example and the RTOS project.

These two can reveal how the device compares to others out there - in the same low power niche.

I'll also focus on the DMA, Real Time Clock and watchdog examples because they are device specific.


Out of curiosity, I'd also like to investigate the 'Instruction Cache' example.

I've seen the option with other controllers.

But I never saw an example that compares execution times on an ARM controller with instruction cached enabled vs disabled.



A little gripe: when you add new source files or folders to the project, you have to edit the Makefile.

This is not Eclipse-like. You are expected to just add sources and source folders and everything works automatically. You can use the exclude option to  not add files to a build.

Other manufacturers that have an Eclipse flavour comply with that natural Eclipse use.


It's not a big deal but it's a hurdle.

It makes the learning ramp unnecessary steeper if you haven't stumbled on this comment (written for another device, not available from the MAX32660 homepage).


edit: one example - Instruction Cache Example - fails to compile, because the icc.h file is missing.

I'll try to find out why ...




This first review, checking out the software, is a positive experience.

The "Hello World!" example build finished without errors - a relief for any reviewer. That sets the expectations for the real work...


edit: I have now received the device and the first debug session worked perfect too. See the comments below.




Some notes to myself for further activities

first review the low power example in depth, with debugger, and then without debugger and with power measurements

Then make the DSP example that my friend martinvalencia and I ported to other controllers before. The MAX32660 explicitly positions itself as a DSP capable device.



part 1: IDE install and Build First Example
part 2: Mod the PCB for Power Measurement
part 3: Power Measurement
part 4a: Low Power Sensor design - Barometer Hardware
part 4b: Low Power Sensor design - Barometer i2c and Init
part 4c: Low Power Sensor design - Barometer, Not Yet Power Optimised
MAX32660 Evaluation Kit - part 5: FreeRTOS Example
side note A: C++ Eclipse Project
side note B: Create a Release Configuration