Difference between revisions of "Getting Started with EMAC Embedded Linux Development"

From wiki.emacinc.com
Jump to: navigation, search
m (Assigned MG to review this.)
Line 1: Line 1:
{{todo|Done for OE4, need Qt information for OE5 when available; FinalDraft (12.04.13-16:55->KY+)|Klint Youngmeyer|project=oe 4,oe 5,ky,FinalDraft,md,mg}}
+
{{todo|Done for OE4, need Qt information for OE5 when available; (12.04.13-16:55->KY+)(12.17.13-13:40->MG+)|Klint Youngmeyer|project=oe 4,oe 5,ky,md,mg,Complete}}
Application programming for EMAC Embedded Linux can be made relatively simple by using the following guide.
 
  
 
== Getting Started ==
 
== Getting Started ==
Following the list of articles presented here, in order, will provide you with a good foundation for building your custom embedded application.
+
Following the list of articles presented here, in order, will provide a good foundation for building custom embedded applications.
  
 
=== Background Information About EMAC Products ===
 
=== Background Information About EMAC Products ===
 
  
 
* [[EMAC OpenEmbedded Fact Sheet]]
 
* [[EMAC OpenEmbedded Fact Sheet]]
Line 13: Line 11:
  
 
===Getting To Know Linux===
 
===Getting To Know Linux===
 
  
 
* [[Getting Started with Linux]]
 
* [[Getting Started with Linux]]
 
* [[Setting the System Time]]
 
* [[Setting the System Time]]
  
==Getting Your Linux Development System Up And Running==
+
==Getting A Linux Development System Up And Running==
  
There are two paths you may take for this step
 
 
=== The LDC - Linux Development Computer ===
 
=== The LDC - Linux Development Computer ===
  
A popular option for this is to use the EMAC LDC - the EMAC Linux Development Computer. There are two variants on this option, as follows:
+
A popular option to getting started quickly is to use the EMAC Linux Development Computer (LDC). There are two variants on this option, as follows:
  
 
# '''The Hardware LDC''': This is a desktop computer with EMAC's customized Linux distribution preinstalled with the full EMAC SDK installed and ready to run.  This is the most painless method of getting started, especially for those new to Linux and/or developing software under Linux.  This is the most preferable system to use for development.
 
# '''The Hardware LDC''': This is a desktop computer with EMAC's customized Linux distribution preinstalled with the full EMAC SDK installed and ready to run.  This is the most painless method of getting started, especially for those new to Linux and/or developing software under Linux.  This is the most preferable system to use for development.
# '''The LDC Virtual Machine''': This is a virtual machine image which can be used in all popular virtual machine manager applications, such as VMWare<ref name="Note 1">VMWare is a trademark of VMWare, incorporated</ref> and VirtualBox.  This, like the Hardware LDC, has EMAC's customized Linux distribution preinstalled with the full EMAC SDK installed and ready to run.  This option works well, but is not as painless as the Hardware LDC option because not all virtual machine software has well developed support for serial ports.  ''Serial ports are used in embedded development work to provide a method to connect to the hardware which is always available, no matter the state of the firmware currently present on the embedded machine.''
+
# '''The LDC Virtual Machine''': This is a virtual machine image which can be used in a virtual machine manager, such as VMWare<ref name="Note 1">VMWare is a trademark of VMWare, incorporated</ref> and VirtualBox.  This, like the Hardware LDC, has EMAC's customized Linux distribution preinstalled with the full EMAC SDK installed and ready to run.  This option works well, but may require additional set up and configuration of the host operating system.
  
If this is the method you (or your company) has chosen, your system should be already configured for development. Please skip to the [[#Getting_Familiar_with_Eclipse | Getting Familiar with Eclipse]] section.<!--please use the ''Getting To Know Your Linux Development Computer'' track below.-->
+
If this is the method chosen, the system should be already configured for development. Skip to the [[#Getting_Familiar_with_Eclipse | Getting Familiar with Eclipse]] section.<!--please use the ''Getting To Know Your Linux Development Computer'' track below.-->
  
 
===Customer Installed EMAC SDK Packages On Customer's Existing Linux Computer===
 
===Customer Installed EMAC SDK Packages On Customer's Existing Linux Computer===
Line 34: Line 30:
 
EMAC provides SDK packages which can be installed by customers on their own Linux machines.  This is the most difficult method of getting started, but is often preferred by customers who are already highly skilled with Linux.
 
EMAC provides SDK packages which can be installed by customers on their own Linux machines.  This is the most difficult method of getting started, but is often preferred by customers who are already highly skilled with Linux.
  
Should this be the method you (or your company) has chosen, please use the ''Getting Started With Software Development For EMAC Machines'' track below.
+
Should this method be chosen, start with the [[EMAC OE SDK Introduction]]..
  
 
<!--==Getting To Know Your Development System==
 
<!--==Getting To Know Your Development System==
Line 44: Line 40:
 
* [[Eclipse IDE]]
 
* [[Eclipse IDE]]
 
* [[Making Connections]]-->
 
* [[Making Connections]]-->
 +
 
===Getting Started With Software Development For EMAC Machines===
 
===Getting Started With Software Development For EMAC Machines===
 
* [[EMAC_OE_SDK_Introduction| EMAC Software Development Kit]]
 
* [[EMAC_OE_SDK_Introduction| EMAC Software Development Kit]]
Line 51: Line 48:
 
==Getting Familiar with Eclipse==
 
==Getting Familiar with Eclipse==
  
These articles will help you get started with Eclipse.  If you've elected to use some other editor or IDE for your development work, you may wish to skip this step. However, if you do skip this step, getting the build system working with your IDE will be beyond the scope of the EMAC documentation and will be unsupported.  Using the shell based build system will, however, still work as documented.
+
These articles will help in getting started with Eclipse.  If some other editor or IDE is used for development work, this step may be skipped. Working with a different IDE is beyond the scope of the EMAC documentation and will be unsupported.  Using the shell based build system will, however, still work as documented.
  
 
* [[First Time Starting Eclipse]]
 
* [[First Time Starting Eclipse]]
Line 73: Line 70:
 
==Working With Bootloaders and OS images==
 
==Working With Bootloaders and OS images==
  
Bootloaders provide the magic glue between the hardware (or the BIOS, on PC compatible systems) and the operating system.  The bootloader is the piece of software which points the processor at the operating system image and kicks off the booting process.  The bootloader can also be used to load new firmware onto machines, and perform some other tasks.
+
Bootloaders provide the magic glue between the hardware (or the BIOS, on PC compatible systems) and the operating system.  The bootloader is the piece of software which points the processor at the operating system image and kicks off the booting process.  The bootloader can also be used to load new firmware onto machines, and perform some other tasks. This section provides instructions for loading new firmware images and customizing the boot process.
 
 
For systems which run their firmware from Compact Flash (or similar media), this section also provides instruction on how to load firmware images onto such media.
 
<!--''' NOTE: ----- What is "suck media"?  I'm not sure what word was meant to be there, so I didn't change it.''' "such media" seems to fit-->
 
 
 
If you need to load your own firmware images (or reload EMAC provided ones), customize the boot process or customize your firmware, you will need to read this section.
 
  
 
* [[U-Boot_Overview|U-Boot Bootloader]]
 
* [[U-Boot_Overview|U-Boot Bootloader]]
Line 91: Line 83:
 
==== Old Bootloader ====
 
==== Old Bootloader ====
  
If you have a machine which uses the older ''RedBoot'' bootloader, this article will give you the information you need to work with it:
+
If you have a machine which uses the older ''RedBoot'' bootloader, see the article below.
  
 
* [[Loading_Images_with_RedBoot|Loading Images with RedBoot]]
 
* [[Loading_Images_with_RedBoot|Loading Images with RedBoot]]
Line 106: Line 98:
 
==Programming EMAC OE Machines==
 
==Programming EMAC OE Machines==
  
Here are some articles you may need for doing embedded development work with EMAC embedded machines.
+
This section provides some articles for specific to EMAC embedded machines.
  
 
* [[Using_the_EMAC_GPIO_Class|EMAC GPIO Class]]
 
* [[Using_the_EMAC_GPIO_Class|EMAC GPIO Class]]
Line 120: Line 112:
 
== Quick Reference ==
 
== Quick Reference ==
  
EMAC provides a quick reference guide as a "cheatsheet" to assist with the initial learning curve.  Once full familiarity with the development environment is established, this quick reference will likely no longer be needed.
+
EMAC provides a quick reference guide as a "cheatsheet" to assist with the initial learning curve.   
  
 
*[[Quick_Reference | EMAC Quick Reference]]
 
*[[Quick_Reference | EMAC Quick Reference]]

Revision as of 13:40, 17 December 2013

TODO: {{#todo:Done for OE4, need Qt information for OE5 when available; (12.04.13-16:55->KY+)(12.17.13-13:40->MG+)|Klint Youngmeyer|oe 4,oe 5,ky,md,mg,Complete}}

Getting Started

Following the list of articles presented here, in order, will provide a good foundation for building custom embedded applications.

Background Information About EMAC Products

Getting To Know Linux

Getting A Linux Development System Up And Running

The LDC - Linux Development Computer

A popular option to getting started quickly is to use the EMAC Linux Development Computer (LDC). There are two variants on this option, as follows:

  1. The Hardware LDC: This is a desktop computer with EMAC's customized Linux distribution preinstalled with the full EMAC SDK installed and ready to run. This is the most painless method of getting started, especially for those new to Linux and/or developing software under Linux. This is the most preferable system to use for development.
  2. The LDC Virtual Machine: This is a virtual machine image which can be used in a virtual machine manager, such as VMWare[1] and VirtualBox. This, like the Hardware LDC, has EMAC's customized Linux distribution preinstalled with the full EMAC SDK installed and ready to run. This option works well, but may require additional set up and configuration of the host operating system.

If this is the method chosen, the system should be already configured for development. Skip to the Getting Familiar with Eclipse section.

Customer Installed EMAC SDK Packages On Customer's Existing Linux Computer

EMAC provides SDK packages which can be installed by customers on their own Linux machines. This is the most difficult method of getting started, but is often preferred by customers who are already highly skilled with Linux.

Should this method be chosen, start with the EMAC OE SDK Introduction..


Getting Started With Software Development For EMAC Machines

Getting Familiar with Eclipse

These articles will help in getting started with Eclipse. If some other editor or IDE is used for development work, this step may be skipped. Working with a different IDE is beyond the scope of the EMAC documentation and will be unsupported. Using the shell based build system will, however, still work as documented.

Compiling and Running Some Software

Working With Bootloaders and OS images

Bootloaders provide the magic glue between the hardware (or the BIOS, on PC compatible systems) and the operating system. The bootloader is the piece of software which points the processor at the operating system image and kicks off the booting process. The bootloader can also be used to load new firmware onto machines, and perform some other tasks. This section provides instructions for loading new firmware images and customizing the boot process.

Old Bootloader

If you have a machine which uses the older RedBoot bootloader, see the article below.

Customizing Linux Kernels and Filesystem Images

This section provides documentation on advanced tasks with embedded Linux; namely, custom Linux OS kernel image building and firmware image customization.

Programming EMAC OE Machines

This section provides some articles for specific to EMAC embedded machines.

Getting Support

Quick Reference

EMAC provides a quick reference guide as a "cheatsheet" to assist with the initial learning curve.



  1. VMWare is a trademark of VMWare, incorporated