Friday, October 09, 2020

Embedded Systems Part 2

With embedded systems, hardware limitations are common because of the cost of scaling production to millions. Thus the chips used in embedded devices are more limited compared to those in PCs. It sounds counterintuitive, but constraints can encourage creativity.

Often in embedded systems, lower cost processors do specific jobs. Microcontrollers and systems on a chip are two common choices. While not as powerful as laptop CPUs, they can combine chips for CPU, RAM, non-volatile memory, and peripherals into one. They allow fewer chips and thus a smaller and cheaper circuit board. This reduces the labor required to assemble and test the board. In addition to cost, using fewer chips helps with miniaturization and can lower power consumption. More space for the battery on a mobile device implies it could hold more energy and last longer on a single charge.  Other types of chips used in embedded systems can outperform PC CPUs. For example, FPGAs or ASICs used for crypto-mining are limited in what they can do in general but are tuned to outperform desktop CPUs on their specific task.

The software in embedded and desktop systems is also different. Because the chips for embedded devices are limited in resources or flexibility, software engineers need to creatively optimize their hardware use. Crafting code specific to the hardware means  what works on a desktop x86 CPU may not be right for an embedded system.

Sunday, August 23, 2020

Embedded Systems

A poker player can go all-in with their chips. But it seems the world has gone all-in with electronic chips. They are embedded everywhere we go. Everyday items such as a remote control, a TV set, or a car have specialized computer systems that combine the hardware we see with software code hidden inside. These computers are different from pcs and tablets and are called embedded systems. Let’s explore some fundamentals about embedded systems to get another view of the world.

Most embedded systems use hardware resources differently than PC programs. Embedded systems tend to utilize 100% of the resources of the hardware. For example, on a basic universal tv remote control with a non-upgradeable database of protocols, leaving extra space doesn’t make sense. More protocols could have fit in to make the device more useful. On the other hand, most PC programs need to leave resources unused so other applications and the operating system can use them. For example, this allows you to have a zoom meeting app running while also having a web browser running in the background. Another difference is the hardware on an embedded system tends to be more specialized than a PC. A cheap universal remote has just an led light for feedback when you press a button. PCs have a monitor to display a wide variety of images. Another specialization is that a universal tv remote depends on communicating with another device. It doesn’t have value without a tv. A PC can be used for both alone for creation, say to record and edit a local video file, and with other computers for communication, as in a transfer of that edited video to a web server for hosting at YouTube.

In the next post, I will explore how embedded systems work with limited resources.

Monday, May 25, 2020

Wednesday, September 16, 2015

Udacity Training

I've finished front end training with Udacity. I liked their nanodegree program. I am going to go through their first full stack training video on youtube to see how that goes. I plan to substitute my own electronics information when learning about the first project.

Wednesday, July 01, 2015

Review of Algorithms

I'm planning on reviewing some fundamental data structures and algoirthms. Code from the book "Algorithms" (4th ed.) by Robert Sedgewick and Kevin Wayne is available online. I've forked a repo on github. The source material is at their book's web page.

Friday, June 12, 2015

Fourier Transform

A gizmodo article about the Fourier transform seemed to help with learning it a bit better. I've been trying to understand it off and on for a while now.

From that, I think I finally got that the integral is summing up an infinite series of what I'm assuming are convolutions or inner products of the different sinusoids and the signal. Assuming that is kinda like how a dot product of two vectors tells how much they have in common, but instead it is saying how much the signal has in common with the different frequencies in the new domain. Need to check on that later.



Sunday, June 07, 2015

Udacity

I've started web development training at Udacity. Topics covered include html5, css, javascript, responsive images, and git. Training is through videos, exercises, projects, and a forum. I'm trying the nanodegree web program not the masters with Georgia Tech. Depending on how this goes and my financial situation, I may try their android training next.