You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bzt 158e9ea522 Fixed typos 7 years ago
..
Makefile Initial commit 7 years ago
OLVASSEL.md Fixed typos 7 years ago
README.md Fixed typos 7 years ago
delays.c Initial commit 7 years ago
delays.h Initial commit 7 years ago
gpio.h Initial commit 7 years ago
kernel8.img Initial commit 7 years ago
link.ld Initial commit 7 years ago
main.c Initial commit 7 years ago
mbox.c Initial commit 7 years ago
mbox.h Initial commit 7 years ago
start.S Initial commit 7 years ago
uart.c Initial commit 7 years ago
uart.h Initial commit 7 years ago

README.md

Tutorial 07 - Delays

It is very important to wait precise amounts of time while you're interfacing with low level hardware. In this tutorial we'll cover there ways. One is CPU frequency dependent (and useful if wait time is given in CPU clock cycles), the other two are microsec (millionth of a second) based.

Delays.h, delays.c

wait_cycles(n) this is a very straightforward thing, we execute the 'nop' instruction n times.

wait_msec(n) this implementation uses ARM system registers (available on all AArch64 CPUs).

wait_msec_st(n) is a BCM specific implementation, which uses the System Timer peripheral (not available on qemu).

Main

We use different wait implementations between printing strings on serial console.