Plan for Summer 2021¶
Embedded Computing 1 (and 2) stands for “Embedded Device Development with Linux”. We will see how embedded development is done for Linux, what Linux is, what tools exist, how hardware is accessed. Starting with C and C++ development, we will quickly move over to Python, a more comfortable and more powerful language.
So much for the plan. See here for a record of what’s actually going on.
Linux Introduction¶
Get familiar with the commandline
This is what you will be using a lot during Embedded Linux development.
We will be using a cloud machine in the warm up lessons, and will move to the Raspberry once we start developing.
Learn Linux system concepts
As a developer, you will have to be familiar with the system you are developing for.
Processes and address spaces
File system
Permissions
More
C/C++ Development¶
Cross Development with C
Build on a Linux PC (in a Linux VM on a Windows PC, likely), run on device.
C++ Introduction
Why C++?
Basics: classes, constructors and destructors, object copy
Resource management: smart pointers
Container templates
Python Development¶
Language Introduction
Basics: variables, data types, control flow (
if
,while
,for
)Modularization: functions, modules, and packages
Excerpts from The Python Standard Library
Hardware Access
General purpose IO (GPIO)
I2C
OneWire
Maybe others