Recently Updated Pages
DMA and Timer Integration
In this assignment, we will use multiple CPU peripherals and allow them to talk to each other...
Lab: SPI bus contention with SD Card
Overview Build your own SPI2 driver You will initialize your pins You will initialize SPI2 p...
UART using GPIO
The objective of this assignment is to emulate UART in software. You will use a GPIO pin to trans...
Clock Configuration
One of the first aspects of a startup process is CPU clock configuration. Usually, a microcontrol...
Syllabus
Course Description Hardware implementation of a microcomputer architecture using modern micropro...
Preparation for Labs
C programming basics Functions Structures Pointers Bit Masking Tutorial Basic parts and t...
GPIO - LED and Switch Interface
Objective The objective of the assignment is to access microcontroller's port-pins to manipulate...
DMA - Memory to Memory transfer
Objective Copy data from one memory block to another memory block using DMA controller Use imp...
Flash Accelerator Module
Chapter 4 of LPC40xx controller outlines the information about the flash accelerator module. T...
GPIO
Objective To be able to General Purpose Input Output (GPIO), to generate digital output signals,...
Semaphores
This article provides examples of various different Semaphores. Binary Semaphore A binary semap...
Stack Memory
I am sure a lot of you have used stackoverflow.com right? Stack overflows is one of the hardest p...
FreeRTOS port
Objective: Understanding the FreeRTOS Portable Layer. The objective of this assignment is to un...
Multitasking: Hands-on
In this assignment, we will experiment with RTOS tasks and see the multitasking in action. You ma...
APIs to avoid
This article lists FreeRTOS APIs that are discouraged from being used. [warning: this article is...
Setup Development Environment
Setup Environment Install docker for your machine If you have linux, install docker for linux...
Queues
This article provides examples of using RTOS Queues. Why RTOS Queues There are standard queues,...
Tasks
The basics of why we need multiple tasks is covered at this article and is a recommended read: ...
vTaskDelay
vTaskDelay() is a naive function, but it is important to understand how it really works. The fu...