Embedded Linux on ARM | Projects

HomeEmbedded Linux on ARM  | Course HomeEmbedded Linux on ARM | Projects 

Embedded Linux on ARM – Industry projects for beginners

Projects are the testimonials that you have learned a technology well. In Emertxe we have a hand-picked set of projects which will ensure you apply all your learnings of Embedded Linux. Added to that these projects will also expose you to Software Development Life Cycle (SDLC) so that you will get a hands-on feel of building real-time industry projects. Here goes the list of Embedded Linux projects for beginners for our Embedded Linux for ARM course.

Kernel Optimization : Footprint and boot-time reduction on ARM

Brief:

In multitasking Embedded systems, having an optimized Kernel is one of the key requirements. With clear understanding of source code organization and various turning methodologies, Linux Kernel size can be optimized. In the similar way understanding U-Boot, optimization of boot time can also be achieved. The goal of this Embedded linux project for beginners is to gain exposure in terms of Kernel optimization by creating a customized Kernel for an ARM based target.

Pre-requisite:

  • Kernel source code organization & configuration options
  • U-Boot, Linux Kernel and init system understanding
  • ARM target schematics
  •  

Level:

Intermediate

Wi-Fi Driver embedded linux project for beginners

Brief:

In custom Embedded systems, not all the interfaces would be working by default. This requires bringing-up specific interfaces either by writing a device driver from the scratch or compiling a pre-existing drive module gets compiled into the custom Kernel, after which applications can be successfully ported. The goal of this embedded linux project for beginners is to compile a Wi-Fi driver into the custom Kernel and port any standard TCP/IP based network applications on to the ARM target. Post porting target should be able to successfully do data exchange with host.

Pre-requisite:

  • Linux device driver – Basic level understanding
  • Kernel customization
  • Application porting

Level:

Advanced

Embedded Web Server

Brief:

Implement a simple web server to interact with GPIO interfaces of Beagelbone Black. A Web server is an application, that accepts HTTP requests from clients (applications like web browsers), and serving them HTTP responses along with optional data contents, which usually are web pages such as HTML documents and linked objects (logs, etc.) and in case of failure an error message. Today, the technologies such as REST and SOAP have extended the application of web servers well beyond their original purpose of serving human-readable pages. The idea of this embedded linux project for beginners is implementing Web Server in the Embedded System.

Pre-requisite:

  • OSI and TCP/IP layers
  • HTTP protocol 
  • Linux Kernel compilation

Level:

Advanced

Embedded Mini Shell

Brief:

Mini shell is a command processor, typically run in a text window, allowing the user to type commands which cause actions. Every Operating System provides this Command Line Interface (CLI) which takes commands from the user and provides required to be output. BASH can also read commands from a file, called a script. Like all Unix shells, it supports piping and variables as well.

 

The goal of this project is to implement a mini-shell that mimics the BASH shell by using Linux Kernel System calls and IPC mechanisms like signals and port it into an Embedded Linux target running ARM.

Pre-requisite:

  • Linux Internals and System Calls
  • Inter Process Communication Mechanisms
  • Application Porting

Level:

Advanced

Ethernet to Serial Bridge

Brief:

Ethernet to serial bridge is useful to couple the different machines having different port connectivity to get the data transferred. For example, you may have an embroidery machine which supports UART interface. The job to be done have to be transferred to the machine from the central server. So we will have to use a bridge between these two machines. So implement an Ethernet to serial bridge which check for the job incoming from the server and pass it to the endpoint. Upon completion of the job, the status has to be sent back to the central server.

Pre-requisite:

  • UART and 802.3 Specifications
  • Kernel internals
  • Data Communication Protocols

Level:

Advanced