user17099: I'd like catch up the Arduino concepts (programming & IDE). There are excellent online tutorials available for Arduino but all of them which I saw are made for those who didn't have embedded/electronics background. Going through them is heavily time consuming as I'm already familiar with the embedded programming other than Arduino or Raspberry Pi.
Does any one know any quick reference materials for Arduino which excludes electronic/embedded basics which is meant for experienced embedded programmer? That could be a big time saver for me.
Thanks in advance!  

user13432: 
But I suppose to debug an existing Arduino project (which my friend gave to me because the developer left from his small electronic company) developed for GSM based remote motor control product. They haven't used Arduino board but used Arduino IDE/library for coding. Flashed the hex output from Arduino on their custom board with Atmel processor. So I need to go through the existing Arduino code and help them to solve the issue that they are facing.

This is maybe one of the worst type of projects to get involved in. Code that needs debugging on a platform that you have not used before. Code that you might not know the status of and where the requirements are loose. 
I would recommend starting by getting all the details on the table. Understand the intended software architecture, estimate memory foot-print, and processing, etc - if the product is feasible. There might be a reason for the developer ditching this project?
AVR is small scale embedded and that implies a very different implementation strategy. There is no operating system and much of the code is bare metal. 
The Arduino core is a platform (library) that abstracts a small set of basic hardware functions. It was originally intended for Media/Design Students. 
To help reduce the threshold when getting started the IDE has build support, i.e. pre-processing, such as an implicit add of the Arduino header file (Arduino.h) and generation of forward declarations for functions in a sketch. The IDE does not use make/makefiles. Source code is C/C++ (AVR GCC) and if necessary AVR assembly. 
The quick reference for the Arduino core function can be found here. There is also a list of libraries. Some are packaged with the Arduino IDE/core while others need to be installed. There is a library manager in the IDE to download and install some of the libraries. New libraries are added more or less daily right now. 
Depending on the code you will have to read more about the libraries used and/or internal AVR hardware (registers, functions, etc).
Cheers!

user3493: As far as I know, there is no tutorials about using Arduino's for, e.g. "multi-tasking, real time response". That is not the focus of the Arduino community.
The Arduino UNO development board is built around Atmel's ATmega328. The Summary datasheet gives an overview of its hardware capabilities on the first page. If you are familiar with MCU development, that should give you a feel for its hardware capabilities. The complete ATmega8/168/328 datasheet is over 600 pages, and describes every feature, with all registers in detail.
The Arduino IDE uses gcc under the covers. So you likely already know how to use that. When you download and install the Arduino IDE, gcc and gnu binutils for AVR will be installed too.
The Arduino IDE has all of the Atmel header files, so much of the code in the datasheet should compile, link and upload. 
The IDE is really designed for beginners. It is to easy to use, but has very few features beyond basic editing, compiling and loading. It does support a serial-monitor to see text printed by the uploaded application, but it doesn't support a debugger like GDB out-of-the-packet. 
However, it doesn't prevent you writing C++ code and header files, and it will build the whole collection of files.
Because the IDE lets you create and edit C++ directly, you can install the IDE on any of the three main platforms, and get started very quickly.
You will probably want to visit AVRFreaks who tend to focus at a lower level than Arduino.
There is also AVR LibC library which points you at the documentation for the AVR upload tool, avrdude, and debugger.
Summary: Install Arduino IDE, do a couple of quick projects to get a feel for the system. Then start writing C++ as normal. Install AVR LibC library for a more traditional library, and visit AVRFreaks forums for more technical help and information.

17099: <p>I'd like catch up the Arduino concepts (programming &amp; IDE). There are excellent online tutorials available for Arduino but all of them which I saw are made for those who didn't have embedded/electronics background. Going through them is heavily time consuming as I'm already familiar with the embedded programming other than Arduino or Raspberry Pi.</p>

<p>Does any one know any quick reference materials for Arduino which excludes electronic/embedded basics which is meant for experienced embedded programmer? That could be a big time saver for me.</p>

<p>Thanks in advance!  </p>
 13432: <blockquote>
  <p>But I suppose to debug an existing Arduino project (which my friend gave to me because the developer left from his small electronic company) developed for GSM based remote motor control product. They haven't used Arduino board but used Arduino IDE/library for coding. Flashed the hex output from Arduino on their custom board with Atmel processor. So I need to go through the existing Arduino code and help them to solve the issue that they are facing.</p>
</blockquote>

<p>This is maybe one of the worst type of projects to get involved in. Code that needs debugging on a platform that you have not used before. Code that you might not know the status of and where the requirements are loose. </p>

<p>I would recommend starting by getting all the details on the table. Understand the intended software architecture, estimate memory foot-print, and processing, etc - if the product is feasible. There might be a reason for the developer ditching this project?</p>

<p>AVR is small scale embedded and that implies a very different implementation strategy. There is no operating system and much of the code is bare metal. </p>

<p>The Arduino core is a platform (library) that abstracts a small set of basic hardware functions. It was originally intended for Media/Design Students. 
To help reduce the threshold when getting started the IDE has build support, i.e. pre-processing, such as an implicit add of the Arduino header file (Arduino.h) and generation of forward declarations for functions in a sketch. The IDE does not use make/makefiles. Source code is C/C++ (AVR GCC) and if necessary AVR assembly. </p>

<p>The quick reference for the Arduino core function can be found <a href="https://www.arduino.cc/en/Reference/HomePage" rel="nofollow">here</a>. There is also a list of <a href="https://www.arduino.cc/en/Reference/Libraries" rel="nofollow">libraries</a>. Some are packaged with the Arduino IDE/core while others need to be installed. There is a library manager in the IDE to download and install some of the libraries. New libraries are added more or less daily right now. </p>

<p>Depending on the code you will have to read more about the libraries used and/or internal AVR hardware (registers, functions, etc).</p>

<p>Cheers!</p>
 3493: <p>As far as I know, there is no tutorials about using Arduino's for, e.g. "multi-tasking, real time response". That is not the focus of the Arduino community.</p>

<p>The Arduino UNO development board is built around Atmel's <a href="http://www.atmel.com/devices/atmega328.aspx" rel="noreferrer">ATmega328</a>. The <a href="http://www.atmel.com/Images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Summary.pdf" rel="noreferrer">Summary datasheet</a> gives an overview of its hardware capabilities on the first page. If you are familiar with MCU development, that should give you a feel for its hardware capabilities. The complete <a href="http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf" rel="noreferrer">ATmega8/168/328 datasheet</a> is over 600 pages, and describes every feature, with all registers in detail.</p>

<p>The Arduino IDE uses gcc under the covers. So you likely already know how to use that. When you download and install the Arduino IDE, gcc and gnu binutils for AVR will be installed too.</p>

<p>The Arduino IDE has all of the Atmel header files, so much of the code in the datasheet should compile, link and upload. </p>

<p>The IDE is really designed for beginners. It is to easy to use, but has very few features beyond basic editing, compiling and loading. It does support a serial-monitor to see text printed by the uploaded application, but it doesn't support a debugger like GDB out-of-the-packet. </p>

<p>However, it doesn't prevent you writing C++ code and header files, and it will build the whole collection of files.</p>

<p>Because the IDE lets you create and edit C++ directly, you can install the IDE on any of the three main platforms, and get started very quickly.</p>

<p>You will probably want to visit <a href="http://www.avrfreaks.net/" rel="noreferrer">AVRFreaks</a> who tend to focus at a lower level than Arduino.</p>

<p>There is also <a href="http://www.nongnu.org/avr-libc/" rel="noreferrer">AVR LibC library</a> which points you at the documentation for the AVR upload tool, avrdude, and debugger.</p>

<p>Summary: Install Arduino IDE, do a couple of quick projects to get a feel for the system. Then start writing C++ as normal. Install <a href="http://www.nongnu.org/avr-libc/" rel="noreferrer">AVR LibC library</a> for a more traditional library, and visit <a href="http://www.avrfreaks.net/" rel="noreferrer">AVRFreaks</a> forums for more technical help and information.</p>
