Who are the best fit for embedded programming?
Increasingly more and more software is being developed for
embedded devices. Now a days most of the embedded devices are having large and
complex software inside. This is happening because of the availability
powerful hardware with 32 bit CPUs and with larger memory but at lower costs.
Embedded Programming is ideal for ECE/EEE engineering and MSc(Electronics)
students who would like to enter into software field. If these students are
interested in hardware development, VLSI is the other choice. But
Embedded software will offer much wider choices when compared with VLSI.
VLSI is a very specific domain, where as embedded programmers can be
easily switched to other software domains. Computer science students are
also best for embedded programming, as embedded applications are becoming
more software intensive.
We can classify the embedded systems based on the type of CPUs used,
into the following categories:
- 8 bit micro-controller based embedded systems
- DSP (Digital Signal Processor) based embedded systems
- 32 bit CPU based embedded systems with Embedded Operating System.
- Large Multi-processor based systems or Network processor systems
The first type are simple embedded systems. The software inside them will
be very small and simple as these microcontrollers will have very less
amount of memory. Very minimal C programming skills are good enough to
develop software for these systems. These are low-end embedded systems.
Most of the DSP based embedded systems are signal processing systems.
The programming requires good understanding of DSP concepts, algorithms
and good mathes background. DSP is a small niche area within embedded
systems. DSP based signal modulation and demodulation, Audio and Video
compression and decompression are the important applications of DSP
in embedded systems.
The 32 bit CPU based embedded systems with embedded OS or Real Time OS are
the most common large embedded systems. These systems will have huge
amount of memory (typically 8 to 64 MB of RAM and 4 to 32MB of Flash).
In larger embedded systems multiple such CPUs are used.
These embedded applications are highly software intensive with huge
amount of software running inside. To support these large applications,
these embedded systems always have Operating systems inside them.
This calls for very good programming skills and good understanding on
using the operating system.
These are high-end embedded systems; the skills required to develop
these embedded systems are high in demand and value.
Lot of students are under the impression that all embedded systems
are based on microcontrollers. So very minimum programming skills are
enough and no need of any operating system knowledge. These assumptions
are not correct. Embedded industry is looking for high end C programmers
with data structures and with good knowledge of Operating systems.
Most of the networking, Telecom and Audio/Video consumer electronic devices
will fall into this categiry. So along with C programming and OS knowledge,
it will be an additional advantage to learn Networking protocols or
Telecom protocols or Audio/Video compression and decompression algorithms.
But final important point is that C and Data structures are essential
skills. Industry will be happy to take you, if you are a good C programmer,
does not matter if you do not know OS, Networking or Telcom.
Even if you are very good at operating systems, networking and telecom, but
if you are not good at C, Industry may not prefer you. So that is the
importance of C programing skills.
DEPIK has realized the importance of improving C programming skills of
ECE/EEE/MSc(Electroncis) students studying in colleges, as well as
students passed out of colleges. DEPIK is offering free material
for learning C and other topics relevant for embedded systems.
|