Embedded Wednesdays: Characters.

This week Andrei gives an overview of the char type in the C language. C has some issues with character strings and Andrei goes into buffer overflow problems and missing terminators in the strcpy function. This a post that should be read all of the way through by all C programmers. Make sure you can spot the bugs in the code.

Read More

On Mechanical Sympathy

Jackie Stewart was the Formula 1 World Driving Champion in 1969, 1971, and 1973. He raced in the Can-Am series (even here in Edmonton) butting heads with the likes of Bruce McLaren himself. 

One thing that Jackie had going for him was that he was smooth. He became a part of the car, they worked together. He worked hard to understand what the car was telling him, and how to get the car adjusted to work with him. He had Mechanical Sympathy.

In computing, we are given operating systems, compilers, databases, and machines. By getting our own version of mechanical sympathy, we can understand what is happening, and use our knowledge to get the maximum out of our systems.

In this post, Andrei goes a little deeper into mechanical sympathy and gives some links to videos and podcasts for your enjoyment.

Read More

Embedded Wednesdays: Floating Point Numbers

In this week's installation of Embedded Wednesdays, Andrei gives an overview of floating point numbers. He goes over a bunch of practical issues that go along with using floats including truncation, and repeating binary patterns.

If you use floats in your program, it may not be doing what you meant. That slow response may just be because - well, read on...

Read More

Embedded Wednesdays: A Crash Course in C - Part 1 - Integers

After a review of the Embedded Wednesdays classes at ENTS, we identified a need for more information about the C language.

This week Andrei starts a series of posts introducing the C language. In this first post he describes the integer data type and some best practices.

 

Read More

ESE101: Picking a Processor Platform

I’ve covered quite a bit in ESE101 so far. It started with a fictional microcontroller and now you understand how a microcontroller uses instructions, registers, and memory to get its job done.

The fictional microprocessor was good enough for introducing the basics, but it’s time to move on to a real microcontroller. Read on to learn more about the microcontroller I’ve chosen, and more interestingly why I chose it.

Also, dev kits may be given away.

Read More

An Idea for a Weasley Clock

In Harry Potter, there was a magical item called a Weasley Clock which showed where everyone in the family was at  particular time. Tom from Australia wrote in, wanting to design one but not sure how to get started. He’s new to embedded but is a software developer. I was amused by the idea of such a clock and procrastinating about another project so I put together a response. Happily, Tom says you can read his mail so here it is.

Read More

Embedded Wednesdays: Getting Started in Embedded Systems

Andrei Chichak writes the Embedded Wednesdays column, for people who want to get started in embedded systems software. For projects, his posts use the STM32 Discovery dev kits (specifically the STM32F407G-DISC1).  His articles include introductory information such as a crash course in C and getting started with the board as well as more advanced topics like; DMA with ping-pong buffers, SPI and how to use an oscilloscope, current capacity of processor pins and how to NOT let the smoke out, identifier visibility and scope, new features in C like dot dot dot ranges in case statements, and initializers, and how to schedule events in C using Voodoo underflow math

Read More

Embedded Wednesdays: Tools of the Trade

You need to write your first program for an embedded system. Your IT people say that you can have any software you need as long as it is Microsoft Office. Do you have everything you need to do your job? No, you're in big trouble.

Embedded systems programming uses a set of very specialized tools, and if you've never used them before, you can spend a lot of money and not get what you need.

This week on Embedded Wednesdays, we look at the tools used to produce embedded systems firmware. We give an overview of the compilers, debuggers, and IDEs you will be using. After reading this post, and doing some research, you should have the information you need to go to your boss and say "NO, I can't control that cutting laser with an Excel macro. I need this..."

 

Read More

ESE101: Microcontrollers Will Make You Jump Jump

So far in ESE101, I’ve introduced a fictional microcontroller that has three instructions: ADD, SUB, and MOVE. The microcontroller uses three simple steps to run each instruction from memory and then move on to the next instruction in memory.


Until now we assumed instructions would be executed sequentially (in order), but this week we’ll add a few new instructions that will let our microcontroller jump around to whichever instruction it wants to.

Read More

ESE101: Immediately!

Our existing ADD, SUB, and MOVE instructions move numbers to and from registers and memory. Let’s add a new source for these instructions called an immediate value.

An immediate value is a number that is hardcoded inside the instruction itself; the immediate value doesn’t come from a register or memory location.

Read on - immediately!

Read More

ESE101: Three Simple Steps to a Better Microcontroller

Last time, I introduced the microcontroller and its instructions, registers, and memory.

But I didn't talk about where instructions come from. Does the stork bring them? Or are they found in a cabbage patch? You won't believe the truth! (Yes you will.)

Read More

Embedded Software Engineering 101

Chris Svec writes the Embedded Software Engineering 101 column (aka ESE101), focused on how microcontrollers work. For projects, his posts use the TI MSP430 LaunchPad dev kits (specifically the MSP-EXP430F5529LP), though the concepts apply for all embedded platforms. Chris writes about microcontroller basicsmemoryinterrupts, and timers - and more!

Read More

Embedded Software Engineering 101: Microcontroller Basics

We’ll start our Embedded Software Engineering 101 journey with the humble microcontroller. The microcontroller (or microprocessor) is the fundamental building block of all computer systems, embedded or otherwise.

A microcontroller seems quite complicated, but it’s made up of three simple things: instructions, registers, and memory. Instructions are the things a microcontroller knows how to do. A simple microcontroller doesn’t know how to do much - it might only have 20 or 30 instructions. I’ll use the MSP430 microcontroller made by Texas Instruments later in this series, and it has only 27 instructions.

Read More

Embedded Software Engineering 101: Introduction

I’m starting a series to teach embedded software engineering. We’ll start with a description of a basic microcontroller. Once you understand how a microcontroller works we’ll build on that until you’ll understand how a moderately complex embedded system like a Fitbit or Nest works.

I’m calling it Embedded Software Engineering 101, and it starts this week right here on this blog.

Read on for more background and details.

Read More