Tech Focus: Solving the embedded engineering education crisis
HIGHLIGHTS
The education of embedded systems software engineers: failures and fixes
Students need to learn multiple programming languages
What a firmware curriculum would look like
Disruption in the engineering classroom
Trends in embedded software design
So this is progress
Editor's Note
Over the past 20 years or so, Embedded.com and the Embedded Systems Conference have provided embedded systems engineers with the continuing education they need to keep up with rapidly evolving technologies. On programming languages in particular, we provide information on a range of choices in as fair and a balanced way as is possible. Of the ones selected for this Tech Focus, a few of my Editor's Favorites are:
Adopting C programming conventions Dive into C++ and survive Ada and Java: real time advantages Java-based embedded designs with real time constraints
Unfortunately, says Robert Dewar of Adacore, this is not enough to make sure that there will be sufficient qualified embedded systems engineers to meet the challenges ahead. Much more has to be done to make sure there's a next generation of hardware and software engineers to carry on. More than just active support of STEM programs to attract high school students to engineering, it also means giving them the right training when they get to the university or college of their choice.
In his article “The education of embedded systems software engineers “, Dewar charges that University engineering departments are falling down on the job. He supports his argument by citing specific failures, and proposes some solutions. A number of recent articles and columns on Embedded.com complement his theme:
Students need to learn multiple programming languages What a firmware curriculum would look like Disruption in the engineering classroom Trends in embedded software design So this is progress
I believe it is crucial for as many members of the embedded hardware and software engineering community as possible to get involved in the dialog about this issue. Contact me with your ideas at bccole@acm.org or 928-525-9087 .
Design How-Tos
Efficient C code for ARM devices
It seems that we very often have RAM and ROM coming out of our ears and we have processing power to burn. So what is the pressing issue of today? So often, it is power-efficiency…
Adopting C programming conventions
This ESC paper discusses some common problems found in a lot of code and suggests strategies for avoiding them.
Making the transition from C to C++
Although it has taken almost a decade, the transition from C to C++ is now gaining momentum in many complex software projects, in parallel programming for multicore apps and in hardware generation environments. Here's a three step strategy for making the transition and migrating code from C to C++.
A six step process for migrating embedded C into a C++ object-oriented framework
Using a standard timer, Dirk Braun describes a six step process to migrate embedded C code into a C++ object-oriented framework and create classes that represent a type of on-chip hardware peripheral.
Why C++ is a viable alternative to C in embedded systems design
While C enjoys a good reputation as a strong and powerful language for embedded development, C++ does not have quite such a broad appeal. With today's capable and sophisticated C++ environments this is often an incorrect belief.
Dive in to C++ and survive
Programmer Christopher White guides you through the hazards of learning the ins and outs of the C++ language, the books to read, the tools to use and how to begin using it effectively in your embedded systems designs.
Guidelines for using C++ as an alternative to C in embedded designs: Part 1
In this two part tutorial, Colin Walls addresses the well-known barriers to use of C++ by C programmers, and provides some guidelines including cleaning up C and an in-between alternative he calls “C+.” First up: Why is C++ not more widely used?
C++ versus Java
Stefan Worthmuller's experiences and impressions about moving from a C++ to a Java programming environment
Embedded Java
Embedded Java will play a major role in next-generation cell phones, smart cards, wireless devices, and gaming systems as well as in many other embedded applications. Richard Quinnell explains how one of the keys for product success will be choosing the right options for Java implementation.
Building Java-based embedded designs with real time constraints
For developers who use Java in the development of their real time embedded system design it is necessary to carefully balance hard real time versus soft real time performance and the trade offs they are willing to make to achieve their goals.
The evolution of Java technology for Internet appliances and embedded devices
This paper discusses alternative ways to implement Java technology to address developers' concerns over Java's functionality, speed and reliability for Internet appliances and embedded applications.
Ada and Java: real-time advantages
Ada and Java offer strengths for real-time programming and built-in support for multithreading. Join us for a look at what these two under-appreciated languages offer developers of embedded software.
Programming real-time with Ada 2005
It's not just for defense contracts any more. Ada has developed into a useful programming language for plenty of different embedded projects. This expert shows how new Ada standards improve Ada's real-time capability to meet those tight deadlines.
High-integrity object-oriented programming with Ada
Even when object-oriented programming is not used, many Ada features support safe and secure programming, said Benjamin M. Brosgol, software engineer at AdaCore.
Expressive vs. permissive languages: Is that the question?
The ease with which code is analyzable depends of the language type you use
Is Parallel Programming In Your Future?
The emergence of the dataflow and other parallel computing architectures into the mainstream is apt to present problems to programmers trained on the concurrency models and languages used on the traditional Von Neumann-based CPUs.
Multicore programming made easy?
IMEC's MPA tool transforms sequential C into parallel code.
Making the transition from sequential to implicit parallel programming: Part 1
Despite Microsoft's view that a parallel programming model for multiprocessing is 5 to 10 years away, Rishiyur Nikhil and Arvind believe that we can't wait and delve into the options available now. First in this eight part series: how sequential languages obscure parallelism.
Is Assembly Language Obsolete?
The reports of assembly language's death are greatly exaggerated
2012 Embedded Market Survey webinar
UBM Electronics' 17th annual survey of embedded systems designers worldwide shows trends in software and hardware usage. The 2012 Embedded Market Survey also looks at languages, productivity, and the challenges design teams rank as most important. A webinar on Friday April 20 will examine the results from over 1,700 respondents from across the embedded industry, the dataset enables a deep analysis to track key changes in this important electronics industry segment. There will also be the opportunity to ask questions online. To register click here .
Products
ST and IS2T launch Java Platform for STM32
The STM3220G-JAVA Starter Kit from STMicroelectronics and IS2T combines an evaluation version of IS2T's MicroEJ Software Development Kit (SDK) and the STM32F2 series microcontroller evaluation board.
MontaVista's new Linux challenges RTOSes
With faster response times and a smaller memory footprint, MontaVista Software says its new commercial Linux release can meet the needs of most real-time embedded systems.
News & Analysis
Struggle continues to plug embedded programming gap
The continuing lack of university computer science courses focusing on embedded systems programming has prompted some evangelists to take matters into their own hands.
Adding voices to the STEM conversation
Two of our editors are set to present at an IEEE conference in New Jersey March 9 on STEM education and mentoring.
Tool 'engages' EE students
Why have American students been losing interest in electrical engineering? One theory is that dramatic technological advances in electronics have had the unintended consequence of making electronics less accessible to curious young minds.
For the love of STEM
Talk to a room full of teachers and they're bound to teach you something.
|