Skip to content
Eli Reed edited this page Jan 10, 2023 · 3 revisions

Introduction

NOTE BEFORE PROCEEDING: THIS ARTICLE IS A W.I.P. AND IS THUS SUBJECT TO CHANGE. PLEASE DIRECT ANY SUGGESTIONS/CORRECTIONS TO Eli Reed at [email protected]

Welcome! The aim of this wiki is to condense knowledge from several computer science courses into one relatively easy-to-digest reference, with the ultimate goal of educating new Husky Satellite Lab (HSL) members on writing software for microcontrollers. With that in mind, nothing here is comprehensive; in fact, for the sake of brevity, I will leave a lot out. That's okay! My auxiliary goal is to expose new embedded programmers to keywords and search terms they can use to learn independently. In general, I try to assume as little as possible about your level of expertise but past programming experience is helpful. For example, if you have taken Hardware/Software Interface (CSE 351), Systems Programming (CSE 333), or Intro to Embedded Programming (CSE 474), most of this page will likely be review. Intro to Programming I/II (CSE 142/143) provide a good foundation in programming in general, but don't explore the bulk of the content here. Finally, any classes on Formal Logic (CSE 311) will cover some components of this article. If at any point you get stuck or something doesn't click, check in with a more experienced member on the software team or email the author at [email protected].

I begin with foundational knowledge like number representation, memory layout, and data types; from there, we'll introduce more complex, domain-specific topics and by the end you will have implemented, tested and deployed a sensor driver for the ATMega 328P AVR Microcontroller. Without further ado, let's begin!

Table of Contents

W.I.P.

Clone this wiki locally