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. 
 
  Information on algorithms and data structures. 
 
  Algorithms And Data Structures 
   Information on algorithms and data structures. 
 
  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. 
 
  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. 
 
  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. 
   Embedded Linux    
  Embedded Linux    
    Firmware    
  Firmware    
    General Programming    
  General Programming    
    Hashes    
  Hashes    
    Integrated Development Environments (IDEs)    
  Integrated Development Environments (IDEs)    
    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. 
 
  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. 
   MCU Peripherals    
  MCU Peripherals    
  
  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. 
 
  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. 
   Programming Microcontrollers: An Overview    
  Programming Microcontrollers: An Overview    
  
  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. 
 
  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. 
   Software Standards    
  Info on software standards. 
  Software Standards 
   Info on software standards. 
 
  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