Sunday, September 15, 2013

ARM Bare Metal Programming

Embedded systems programming has been a passion of mine for a couple of years now. I really enjoy bringing a processor online and making it dance to the beat of my drum. Over the past few days I have taken an interest in writing my own linker scripts, start code and a CRT0 (C Runtime). In this article I will give you some background as to why this is important. I will guide you through the steps that I have taken to bring an ARM processor from reset to main() and beyond.

I am using the SAM4E16E processor on a SAM4E-EK development board. I have the Atmel SAM-ICE debugging tool to facilitate loading code. The steps that I am taking in this article will be very similar for other ARM processors. I did some bare metal programming on the Raspberry Pi about a year ago and it was similar.  My development host is an up to date Linux Mint 15 system.

Debugger (front) and Evaluation Kit (back)
SAM-ICE and SAM4E-EK

Monday, September 2, 2013

Networking a Home from the 1950s

The year is 1957. The world is being taken storm by a wave of new technology. The first artificial satellite Sputnik 1 was launched and Elvis Presley's Jailhouse Rock was holding the number one spot on music charts around the world. All of this happened, of course, long before I was born.

Along with these exciting historical events, a small home was built in Stoney Creek, Ontario. My parents have recently purchased this home with the intention to renovate it into the 21st century.

The front of the tired old home (before new windows).
Date of Manufacture
I was tasked with networking the home and I decided to take some pictures along the way. I have retrofitted Cat6 and RG6 into each bedroom and living space to pave the way for Home Theater PCs (HTPCs) and "Smart TVs". We use Channel Master 4221 antennas to receive local terrestrial ATSC signals. The RG6 will distribute this signal into each room. I purchased most of the supplies from the local Nutech Electronics and Home Depot.

The Cat6 and RG6 lines departing from the electrical panel. Looks good :]
Read on to see more details!