Posts Tagged ‘memory’

9 January, 2017

My latest video blog is now available. I am talking about memory architectures in embedded systems. Not strictly a software issue, but a topic that has a significant impact on embedded software development. You can see the video here or here:

Future video blogs will continue to look at topics of interest to embedded software developers. Suggestions for topics are always welcome via comment, email or social networking.

, ,

2 March, 2015

Each Fall, just before the weather becomes too horrible, I get to attend ECS [Embedded Conference Scandinavia] in Stockholm, Sweden. It has become a good event for embedded developers in that area and I am pleased that my paper submissions seem to result in a couple of acceptances each year.

This year, I assume ECS will be in 6 months or so, but the organizers are inaugurating a new event … Read the rest of this entry »

, , , , , , ,

26 January, 2015

I have almost completed the job of cataloging my articles that have been published at Here are another four, which address some key development topics: the sharing of code between multiple threads of execution; accessing low level device registers in C; selecting an operating system; making use of non-volatile memory … Read the rest of this entry »

, , , , ,

14 October, 2013

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. In any case, I recently wrote about how a device can perform a self test and how software can preempt its own failure.

But freezes happen, and what do you do? … Read the rest of this entry »

, , ,

2 September, 2013

, , , , ,

27 August, 2013

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 this entry »

, ,

12 August, 2013

It can be frustrating waiting for a critical technology to be ready for market. We see ever increasing power and complexity in embedded CPUs, but other vital system components seem to have stalled. Specifically, I am thinking about batteries and memory.

I am still waiting for a great leap in battery performance – faster charging and larger capacity. My money is on graphene super-capacitors being the way forward. With memory, help may be at hand … Read the rest of this entry »

, , , ,

16 May, 2011

People often ask me questions about embedded software. Sometimes they are complex; other times they are simple. But frequently, the simplest ones are what leads to an interesting train of thought. The one that set my brain working recently was something like this: “I have some non-volatile memory in my design, which is used to retain specific parameters through power cycling. The first time the device is used, the memory contains garbage and needs to be initialized. When the software starts up, how can I detect that this is the first time it has run and an initialization sequence needs to be run?”

My first thought was to suggest that simple inspection of the data would show whether it was valid or not. In some applications, that would certainly be true. In others, perfectly valid data could look like a jumble of ones and zeros. There must a be simple, reliable way to make it clear that the memory/data has been initialized … Read the rest of this entry »

, , ,

8 February, 2010

The computer world is often accused of being mired in jargon and I think that is a fair criticism. In some ways it gets worse when an everyday word is “hijacked” to have a new meaning. A good example is “program”, which had several meanings before it was applied to software. Interestingly, in the UK we use the US spelling [“program”] to refer to software, but retain the English version [“programme”] for everything else.

Another re-purposed word is “memory”, which is interesting because it has acquired a number of meanings in a computing context. Historically, the term referred to the place that a program and data resided during execution – it still does have this meaning. But it was also used to refer to bulk storage like disk drives. Even today, when someone tells me how much memory their PC has, I have to make sure that they are not telling me about disk storage. For embedded systems, memory has always been a term with a number of meanings … Read the rest of this entry »


@colin_walls tweets

  • My latest video blog is now available. I talk about the use of a memory management unit [MMU] in an embedded system
  • Embedded software article: RTOS Revealed #6 look at the additional facilities that and RTOS may offer & beyond
  • #programmingTip To maintain real time integrity, keep ISRs as short as possible - unload the real work onto a task.

Follow colin_walls