Programming
Child Pages
A Comparison Of Embedded Platforms And HALs
A comparison of the many different cross-platform frameworks and HALs available when developing firmware for microcontrollers.
A Comparison Of Embedded Platforms And HALs
A comparison of the many different cross-platform frameworks and HALs available when developing firmware for microcontrollers.

ANSI escape sequences are special "in-band" character sequences that are used to control the formatting, color, and other output characteristics of text in a terminal or console.

ANSI Escape Sequences
ANSI escape sequences are special "in-band" character sequences that are used to control the formatting, color, and other output characteristics of text in a terminal or console.
Artificial Intelligence
Tutorials on artificial intelligence.
Artificial Intelligence
Tutorials on artificial intelligence.

Information on algorithms and data structures.

Algorithms And Data Structures
Information on algorithms and data structures.

A bootloader is a program in a computer or microcontroller which runs before the main application. It is typically responsible for configuring basic hardware, booting the main application and also performing application updates.

Bootloaders
A bootloader is a program in a computer or microcontroller which runs before the main application. It is typically responsible for configuring basic hardware, booting the main application and also performing application updates.

Build systems and package managers are tool which help automate the process of building software, as well as manage dependencies.

Build Systems And Package Managers
Build systems and package managers are tool which help automate the process of building software, as well as manage dependencies.

Cloud platforms let you set up computing infrastructure like compute (server processing), databases, user authentication, and API end points and make it easy to scale. This section contains information and how-to guides for AWS, Azure and Google cloud services.

Cloud
Cloud platforms let you set up computing infrastructure like compute (server processing), databases, user authentication, and API end points and make it easy to scale. This section contains information and how-to guides for AWS, Azure and Google cloud services.

Compilers (along with linkers and assemblers) convert source code into executable binaries. Info on various compilers including GCC, Clang and MPLAB XC.

Compilers
Compilers (along with linkers and assemblers) convert source code into executable binaries. Info on various compilers including GCC, Clang and MPLAB XC.

A CPU architecture defines the instruction set and internal design of a CPU, which is then packaged together with peripheral to form a microcontroller.

CPU Architectures
A CPU architecture defines the instruction set and internal design of a CPU, which is then packaged together with peripheral to form a microcontroller.
Data Acquisition Systems (DAQs)
Data acquisition systems (DAQs) are devices used to measure, record and control physical systems from a computer. This page provides information on DAQs such as LabJack.
Data Acquisition Systems (DAQs)
Data acquisition systems (DAQs) are devices used to measure, record and control physical systems from a computer. This page provides information on DAQs such as LabJack.

A database is an organised collection of data stored in a computer, accessed via a well defined interface/language.

Databases
A database is an organised collection of data stored in a computer, accessed via a well defined interface/language.
Software Design
Software Design

Design patterns are a way to solve common problems in software design. This includes abstraction, concurrency, dependency injection, await/async, super loops, state machines, and more.

Design Patterns
Design patterns are a way to solve common problems in software design. This includes abstraction, concurrency, dependency injection, await/async, super loops, state machines, and more.
Designing A Great Debug Serial Console
Designing A Great Debug Serial Console
Firmware
Firmware
Embedded Linux
Embedded Linux
Hashes
Hashes
Integrated Development Environments (IDEs)
Integrated Development Environments (IDEs)
General Programming
General Programming

Programming languages are the way we tell computers what to do. This subsection of the site contains information on a number of different programming languages, including C, C++, C#, Python, JavaScript, and Java.

Programming Languages
Programming languages are the way we tell computers what to do. This subsection of the site contains information on a number of different programming languages, including C, C++, C#, Python, JavaScript, and Java.
Logging On An Embedded System
Deferred logging, printf() and other info handling logging properly on embedded systems.
Logging On An Embedded System
Deferred logging, printf() and other info handling logging properly on embedded systems.
MCU Peripherals
MCU Peripherals

Makefiles are a way of describing the build process for source code. They are used by the GNU make tool. This page covers the basics, variables, wildcards, automatic variables, debugging,and more.

Makefiles
Makefiles are a way of describing the build process for source code. They are used by the GNU make tool. This page covers the basics, variables, wildcards, automatic variables, debugging,and more.

Microcontrollers are small computers embedded into a single IC. Firmware is developed for them on a host computer and programmed/flashed onto the microcontroller.

Microcontrollers
Microcontrollers are small computers embedded into a single IC. Firmware is developed for them on a host computer and programmed/flashed onto the microcontroller.

Operating systems are core parts of the software running on a CPU that manages resources and provides common services (through APIs) for software running on the CPU. This section of the site covers high-end operating systems like Linux, Windows and macOS, as well as low-level real-time operating systems (RTOSes) like FreeRTOS, Zephyr and NuttX.

Operating Systems
Operating systems are core parts of the software running on a CPU that manages resources and provides common services (through APIs) for software running on the CPU. This section of the site covers high-end operating systems like Linux, Windows and macOS, as well as low-level real-time operating systems (RTOSes) like FreeRTOS, Zephyr and NuttX.

Serialization formats are standardized ways of converting in-memory data structures into a serial format that can be stored and transmitted.

Serialization Formats
Serialization formats are standardized ways of converting in-memory data structures into a serial format that can be stored and transmitted.
Software Standards
Info on software standards.
Software Standards
Info on software standards.
Programming Microcontrollers: An Overview
Programming Microcontrollers: An Overview

Signal processing is the study of how to extract information from analogue and digital signals. This includes filtering, correlation, and curve fitting.

Signal Processing
Signal processing is the study of how to extract information from analogue and digital signals. This includes filtering, correlation, and curve fitting.

Version control systems (VCS) are designed for tracking the changes to files. It is primarily used in software engineering to track the changes to source code. One of the most popular VCSs is Git.

Version Control Systems
Version control systems (VCS) are designed for tracking the changes to files. It is primarily used in software engineering to track the changes to source code. One of the most popular VCSs is Git.
Virtual Machines And Containers
Virtual Machines And Containers
Website Design
Website Design