Book Image

Raspberry Pi Computer Architecture Essentials

By : Andrew K. Dennis, Teemu O Pohjanlehto
Book Image

Raspberry Pi Computer Architecture Essentials

By: Andrew K. Dennis, Teemu O Pohjanlehto

Overview of this book

With the release of the Raspberry Pi 2, a new series of the popular compact computer is available for you to build cheap, exciting projects and learn about programming. In this book, we explore Raspberry Pi 2’s hardware through a number of projects in a variety of programming languages. We will start by exploring the various hardware components in detail, which will provide a base for the programming projects and guide you through setting up the tools for Assembler, C/C++, and Python. We will then learn how to write multi-threaded applications and Raspberry Pi 2’s multi-core processor. Moving on, you’ll get hands on by expanding the storage options of the Raspberry Pi beyond the SD card and interacting with the graphics hardware. Furthermore, you will be introduced to the basics of sound programming while expanding upon your knowledge of Python to build a web server. Finally, you will learn to interact with the third-party microcontrollers. From writing your first Assembly Language application to programming graphics, this title guides you through the essentials.
Table of Contents (18 chapters)
Raspberry Pi Computer Architecture Essentials
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
Index

Accessing the frame buffer


When we discussed what the GPU is we mentioned that it manipulates images in the frame buffer.

The frame buffer, also known as a framebuffer or framestore, is a section of the computer's RAM that contains the current video frame to be displayed on the monitor or similar device.

Within Linux, we also have what is known as the Linux framebuffer, which is a software abstraction designed to show graphics on screen via a hardware-independent method.

This can be accessed as a file and its API library can be imported into C programs via the header linux/fb.h.

When we open the frame buffer as a file we can then make input/output control (ioctl) calls to it. An ioctl system call is used to manipulate device-specific I/O operations. You will see ioctl calls implemented when interacting with a variety of hardware devices, including DVD drives, USB devices, and similar.

We can use a call to the frame buffer to get the current display settings, for example. Let's take a look at...