Development Environment Questions

Go To Last Post
14 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi,

 

I'm new to Atmel, coming from Microchip.  I am an engineer who programs as part of my projects (i.e. not a very advanced programmer).

 

In the Microchip world I learned to completely specify the µP setup (fuses, Clock, etc) and am most conformable continuing in this manner.

 

I'm using Arduino hardware (currently Arduino Pro Mini) solely for the availability of µP "breakout boards".

 

I've installed the Arduino IDE and found it to be make too many assumptions/decisions on what I want the µP to do.  Or I am missing some capability.

 

I think there are three practical environments for developing code for the AVR processors.

 

  1. Arduino IDE
  2. Atmel Studio
  3. Atmel AVR 8-bit GNU Toolchain

 

I read the Atmel Studio is large and "bloated".  And when I left MPLAB X it was starting to get too much "stuff" for my taste.   I guess by nature I like lean software.

 

I like the idea of the "Atmel AVR 8-bit GNU Toolchain".    I think it is the "just what you need" approach.

 

 

After all that my question is:

 

Of the folks who have experience with the "Atmel AVR 8-bit GNU Toolchain", can it be installed (Windows 10) and made able for someone who is more interested in the code than tinkering with the tools?

 

I know this is subjective and I've read the "avr-c++ micro how-to" post, but I would like another opinion so I don't go down a rabbit hole.

 

Thanks

 

JohnRob

 

 

 

 

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I have always used Studio from when it used to be lean (16 years ago) but like the simpler MPLAB of those days it has overgrown into AS7.

 

You can still get the smaller/older AS4.18 or 4.19 but you are limited to the chips it supports.

John Samperi

Ampertronics Pty. Ltd.

https://www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Arduino is 'cheap n cheerful' - great for knocking up something quickly but quickly becomes tiresome if you want to write larger programs - mainly because it doesn't support multiple files. Personally I'd suggest just using Studio - it's a big battleship, but is probably best suited for someone who just wants to get the job done and not have to screw around with setting up tools. There are things like platform.io, but be prepared for a rough ride as they're new and under development.

 

As for Arduino code - you're not compelled to use their library features - it is the easier way, but say you want to do direct port manipulation, you can do that too as it is just avr-gcc under the hood.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I think there are three practical environments for developing code for the AVR processors.

 

  1. Arduino IDE
  2. Atmel Studio
  3. Atmel AVR 8-bit GNU Toolchain

Those are the three big "free" environments.   There are several commercial offerings as well (Imagecraft, IAR, Visual Micro, Mikro.)   And of course you can integrate the CLI toolchain into one of the open-source super-IDEs like Eclipse, CodeBlocks, or Netbeans (MPLAB X is based on NetBeans, isn't it?)

 

There's a separate and orthogonal question about code libraries: "bare metal" vs "Arduino" vs "ASF"...

 

I read the Atmel Studio is large and "bloated".

The last time I did a strict comparison (which was several years ago, now.  Maybe AS5.x vs MPLABX's first version, all on WXP), AS and MPLAB were pretty comparable in terms of total disk footprint, menu complexity, and startup time.  I think that AS (which is built on top of Microsoft Visual Studio) has probably swelled more since then.  (Cause... Microsoft!)

 

 

Of the folks who have experience with the "Atmel AVR 8-bit GNU Toolchain", can it be installed (Windows 10) and made able for someone who is more interested in the code than tinkering with the tools?

Are you comfortable with the windows command-line environment?  Microsoft seems to keep pushing it deeper and deeper "under the covers."  I haven't tried to use the toolchain under Powershell, for example...

There used to be "WinAVR", which was a collection of the Gnu-AVR toolchain, plus a bunch of other unix-like tools common to development tasks (make, bash, the mingw cli look-alike tools, avrdude, even an editor.   The Atmel toolchain pack is JUST the compiler tools, and you'll want to install some of those other things if you don't already have them.

 

Other than that, it's fine.  The same compiler toolchain that is used by both Arduino and Atmel Studio, in fact...

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Imagecraft, IAR, Visual Micro, Mikro.

And let's not forget Codevision. wink

John Samperi

Ampertronics Pty. Ltd.

https://www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

westfw wrote:
There are several commercial offerings as well (Imagecraft, IAR, Visual Micro, Mikro.)
CodeVisionAVR, Rowley (but not up to recent AVR)

westfw wrote:
And of course you can integrate the CLI toolchain into one of the open-source super-IDEs like Eclipse, CodeBlocks, or Netbeans
... Qt Creator (GPL3 plus an exception)

Microsoft Visual Studio Community though not open source is zero price; Visual Micro is an extension of Visual Studio or Atmel Studio.

westfw wrote:
I think that AS (which is built on top of Microsoft Visual Studio)
Isolated Shell

westfw wrote:
There used to be "WinAVR", which was a collection of the Gnu-AVR toolchain, plus a bunch of other unix-like tools common to development tasks (make, bash, the mingw cli look-alike tools, avrdude, even an editor.   The Atmel toolchain pack is JUST the compiler tools, and you'll want to install some of those other things if you don't already have them.
Windows 10 has the Windows Subsystem for Linux (WSL) (Bash on Ubuntu on Windows) than can be enabled.

bash and etc is available such that GCC 6 can be built via WSL.

NTFS and ReFS are somewhat inter-operable with Linux file systems via WSL.

Might be possible to install the Atmel AVR GCC Linux toolchain into a Linux file system via WSL.

 


http://hpinfotech.ro/cvavr_features.html

http://www.rowley.co.uk/avr/

https://github.com/qtproject/qt-creator

https://www.visualstudio.com/vs/compare/

https://msdn.microsoft.com/en-us/library/bb685691.aspx (Visual Studio Isolated Shell)
https://blogs.msdn.microsoft.com/wsl/

https://blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-support/

https://technet.microsoft.com/en-us/library/hh831724.aspx (Resilient File System Overview) (ReFS)

http://www.microchip.com/development-tools/atmel-studio-7/avr-and-arm-toolchains-(c-compilers)

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

AS7 isn't really any more bloated than Microsoft Visual Studio 2015 (basically because it *is* MS VS 2015!). Sure it's a big download (took me 6 minutes over a 30Mbps fibre link) and it takes an age to install (about 1 hour on my PC) but apart from the fact that it takes about 30 second from launch to load I don't really see what the issue is.

 

I read the Atmel Studio is large and "bloated".

Of all the dev environments you can use:

 

1) arduino IDE (which is avr-gcc C++ really)

2) avr-gcc toolchain at a command line

3) avr-gcc toolchain wrapped in an IDE like Eclipse or Netbeans

4) alternative IDE/compilers like IAR, Rowley, Codevision, Imagecraft, MikroC (don't!), etc.

5) AS7 wrapped around avr-gcc that is supplied with it

6) AS7 used to debug the build of any of the others here

 

only the last 2 have the simulator. For me that alone (and perhaps the ease of use of things like Atmel-ICE) justifies the use of AS7 (I even bought a Windows laptop just to run it!)

 

In Linux I have dabbled with the use of IDE's wrapped around "Atmel toolchain for Linux" such as Code::Blocks and Eclipse but it's the fiddly setup of avr-gdb and avarice for debugging and the lack of a simulator that lets it down compared to AS7 in Windows.

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm a Linux user and I have been using Geany for a while.

It is fast, lightweight, and integrates well with avr-gcc + avrdude toolchain and makefiles.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

spassig wrote:
I'm a Linux user and I have been using Geany for a while.
And how do you get on when it comes to debug/simulation ?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

simavr, avr-gdb, and gtkwave

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

How many devices is simavr supporting these days?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

There are a dozen of emulated cores family.

Quickly from their github page:

 

  • ATMega2560
  • AT90USB162 (with USB!)
  • ATMega1281
  • ATMega1280
  • ATMega128
  • ATMega128rf1
  • ATMega16M1
  • ATMega169
  • ATMega162
  • ATMega164/324/644
  • ATMega48/88/168/328
  • ATMega8/16/32
  • ATTiny25/45/85
  • ATTIny44/84
  • ATTiny2313/2313v
  • ATTiny13/13a

 

I mainly use the 48/88/168 so this fits the bill for me.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks guys, you've all been very helpful.

 

I think I will start with AS7.   It seems it might not be any worse than MPLAB (which I am already used to) so a good place for me to start.

 

Regards

 

JohnRob

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

westfw wrote:
There are several commercial offerings as well (... Visual Micro ...)

Linear Technology

Solutions

Setting up Linduino, Visual Micro, & JTAGICE3 for Hardware Debugging

by Dan Eddleman - Senior Applications Engineer

Jan 10th 2017

http://www.linear.com/solutions/7718

...

The design [Linduino] is based on the Arduino Uno, using the Atmel ATmega328 processor, while adding a 14-pin QuikEval™ connector that can be plugged into nearly 100 daughter boards.

...

The original Arduino Uno (available from www.arduino.cc) includes a seldomly-used feature that enables it to be paired with an Atmel hardware debugger after cutting a copper trace on the PCB.

...

When I designed the Linduino in 2013, I added a provision for the user to solder a 3-pin header in place, making it possible to choose between normal operation and hardware debugger-enabled operation at any time without requiring further soldering.

...

When I develop my own code on the Linduino, I use Atmel Studio and the Atmel JTAGICE3 hardware debugger. Until now, it was a fairly complex process to convert an Arduino sketch into an Atmel Studio project that can be debugged with a hardware debugger. Recently, the Visual Micro add-in for Atmel Studio has simplified this process, so I created this tutorial to show the steps required to convert a Linduino (or Arduino) sketch into a form that can be debugged with the JTAGICE3 hardware debugger.

...

 

"Dare to be naïve." - Buckminster Fuller