Recently Updated Pages
Unit-Test Basics and Mocks
Overview Here is a mental model for how to think about unit tests. We are focusing on understand...
Tools
In the past, we needed to setup special tools on a local computer (i.e.: your laptop) to test sof...
Lab: Queue
Part 1 Write the unit-tests first, and then the implementation for the following header file: #...
Number Systems
Number Types The number system holds significance in terms of writing and expressing code to a c...
Getting Started with Preet's Classes
Advise from prior students: I have 8 years experience in the industry and this class is very ...
I2C
What is I2C I2C (Inter-Integrated Circuit) is pronounced "eye-squared see". It is also known as ...
Books and Online Resources
Really awesome book from Robert Plantz: Introduction to Computer Organization Books: Struct...
Lab: ADC + PWM
Objective Improve an ADC driver, and use an existing PWM driver to design and implement an embed...
Git
This is definitely not an exhaustive tutorial about learning Git... Google would be better to rev...
How program is compiled in C
Assuming that there are two files to be compiled in C, the overall flow to yield an executable is...
Storage Units
I fear that most of the technical articles on the Internet misinterpret some of the common storag...
Python Number Converter
Generally speaking, practiced skill cannot be easily forgotten. It is far better to go through th...
Learning Objectives
CLO Upon successful completion of this course, students will be able to:1. Understand digita...
Critical Section
Objective To go over Critical Sections in an application as well as other kernel API calls that...
FreeRTOS Producer Consumer Tasks
Objective Learn how Tasks and Queues work Assess how task priorities affect the RTOS Queue coo...
C vs. C++
Typically, C design pattern to create a re-usable module is performed like so: typedef struc...
Lab: UART
Objective To learn how to communicate between two devices using UART. Reinforce interrupts by...
Lab: I2C Slave
Overall Objective We will setup one SJ2 board as a Master board, and another as a Slave board, a...