xistor 910619de4c fix missing semicolon 1 ano atrás
..
Makefile 426205e2a3 Added makefiles for LLVM Clang 5 anos atrás
Makefile.clang 9c5c2813a0 Update QEMU command in all README and Makefile 2 anos atrás
Makefile.gcc 9c5c2813a0 Update QEMU command in all README and Makefile 2 anos atrás
OLVASSEL.md 7ace64ba9f Initial commit 6 anos atrás
README.md 158e9ea522 Fixed typos 6 anos atrás
delays.c 910619de4c fix missing semicolon 1 ano atrás
delays.h 7ace64ba9f Initial commit 6 anos atrás
gpio.h 7ace64ba9f Initial commit 6 anos atrás
kernel8.img 8ce0f75b47 Recompiled with latest gcc 4 anos atrás
link.ld 7ace64ba9f Initial commit 6 anos atrás
main.c 7ace64ba9f Initial commit 6 anos atrás
mbox.c 214885df63 compute the mailbox cmd only once 6 anos atrás
mbox.h 7ace64ba9f Initial commit 6 anos atrás
power.c 7ace64ba9f Initial commit 6 anos atrás
power.h 7ace64ba9f Initial commit 6 anos atrás
start.S ea4691947c Improve comments wrt stack setup 3 anos atrás
uart.c c59ad439f4 Enable UART0 FIFOs 3 anos atrás
uart.h 7ace64ba9f Initial commit 6 anos atrás

README.md

Tutorial 08 - Power management

For embedded systems, power consumption is critical. The Raspberry Pi 3 has a very sophisticated PM interface. You can turn each device on and off idependently. There's a catch though, the GPIO VCC pins are hardwired, there's no way to turn them off programatically. This means if you connect some devices to them, you'll have to implement a way to turn those devices off (with a transistor connected to a data GPIO pin for example).

Power.h, power.c

The power management controller is one of the peripherals that are not emulated properly by qemu. Works on real hardware though.

power_off() shutdowns the board to a almost zero power consumption state.

reset() reboots the machine. Also handled by the PMC, and since the Raspberry Pi does not have a hardware reset button, it's very useful.

Main

We display a simple menu, and wait for user input. Depending on the input, we reboot the system or power it off.