Open side-bar Menu
 Embedded Software
Colin Walls
Colin Walls
Colin Walls has over thirty years experience in the electronics industry, largely dedicated to embedded software. A frequent presenter at conferences and seminars and author of numerous technical articles and two books on embedded software, Colin is an embedded software technologist with Mentor … More »

Low power modes

 
August 15th, 2019 by Colin Walls

Power management is a hot topic – or maybe that should read “a cool topic” – among embedded developers of late. In the course of a recent conversation on the subject, I realized that there are, in effect, three kinds of power saving procedure that embedded software might effect:

  1. Use dynamic voltage and frequency scaling [DVFS] to tune the CPU performance to the needs of the moment.
  2. Disable [power down] currently unused peripheral circuitry.
  3. Make use of the CPU's low power modes. Read the rest of Low power modes

Selecting an embedded operating system

 
July 15th, 2019 by Colin Walls

A majority of embedded devices nowadays are implemented using an operating system of some kind. This has not always been the case and need not be today. Historically, using an OS was less common mainly because the applications were less complex and CPUs less powerful.

Some thought is needed, at an early stage in a project, to determine which OS to use [or whether to use one at all] … Read the rest of Selecting an embedded operating system

Using an unsigned integer to store a pointer in C

 
June 17th, 2019 by Colin Walls

A common question I get is about the use of pointers in C and whether it is OK to store the value of a pointer [i.e. an address] in an “ordinary” variable – like an unsigned integer .. Read the rest of Using an unsigned integer to store a pointer in C

Embedded hypervisors

 
May 15th, 2019 by Colin Walls

Some technologies, it seems to me, should not really exist. They do, however, because they address a specific need. Typically, such technologies stretch something to make it perform in a way that was not originally intended. An example would be the fax machine. In a paper-based office environment, there was a frequent need to move documents from A to B. Initially, this resulted in the mail. But fax was an ingenious way to use phone lines to deliver a similar result. As soon as email became widespread, fax disappeared almost overnight.

The technology that I have in mind today is hypervisors, which are a software layer that enables multiple operating systems to be run simultaneously on a single hardware platform. They have been used for decades on mainframes, more recently on desktop computers, but are now beginning to be very relevant to embedded developers … Read the rest of Embedded hypervisors

The demise of the reset button

 
April 15th, 2019 by Colin Walls

Stuff goes wrong – it is a fact of life. Embedded devices are typically very reliable, but not immune to failure. A common failure mode is a lock-up – the device freezes and will not respond to any user interaction. This could be caused by either a software or a hardware problem. A device might perform a self-testing and software can sometimes preempt its own failure.

But freezes happen, and what do you do? … Read the rest of The demise of the reset button

Embedded file systems

 
March 18th, 2019 by Colin Walls

On desktop computers, data that you are working on right now, in an open application, is most likely just stored in RAM. When you are finished, the information is saved to disk for more permanent storage. That is the way it is for word processing, spreadsheets etc.; databases are bit different. The idea of having volatile memory for temporary use – where a power failure can cost you a morning’s work – and disks for persistent data is widely accepted. The only thing that is changing is the use of flash memory to build solid state drives [SSDs] instead of rotating magnetic disks.

Embedded systems seem to have similar needs, but there are key differences … Read the rest of Embedded file systems

Ah! Lua

 
February 18th, 2019 by Colin Walls

My Portuguese is limited. Well, non-existent actually. Last time I was in Portugal, finding myself in restaurants where no English was spoken, it was a matter of selecting things rather randomly from the menu or pointing at other people’s plates. When I first saw the name Lua, it made me think of the Hawaiian greeting “Aloha!”, but then I found out that its meaning was “moon”.

But really, it is a scripting language … Read the rest of Ah! Lua

Software integrity testing

 
January 15th, 2019 by Colin Walls

Recently, I wrote about self-testing possibilities for embedded software, where the goal was to detect and mitigate the effects of hardware failure. I commented that software failure was also a possibility. That is a topic worthy of further consideration … Read the rest of Software integrity testing

Self-test

 
December 17th, 2018 by Colin Walls

Things go wrong. Electronic components die. Systems fail. This is almost inevitable and, the more complex that systems become, the more likely it is that failure will occur. In complex systems, however, that failure might be subtle; simple systems tend to just work or not work.

As an embedded system is “smart”, it seems only reasonable that this intelligence can be directed at identifying and mitigating the effects of failure … Read the rest of Self-test

Three degrees of freedom

 
November 15th, 2018 by Colin Walls

Developing embedded software used to be easy. Actually, that is not true. It has never been easy, but certain matters were simpler. Embedded developers have always needed more control of code generation because, as I am often heard to chant, every embedded system is different, and the priorities and requirements change from one to another.

It used to be broadly a choice between speed and size of code, but it is no longer that simple … Read the rest of Three degrees of freedom




© 2024 Internet Business Systems, Inc.
670 Aberdeen Way, Milpitas, CA 95035
+1 (408) 882-6554 — Contact Us, or visit our other sites:
TechJobsCafe - Technical Jobs and Resumes EDACafe - Electronic Design Automation GISCafe - Geographical Information Services  MCADCafe - Mechanical Design and Engineering ShareCG - Share Computer Graphic (CG) Animation, 3D Art and 3D Models
  Privacy PolicyAdvertise