# Introduction

The F28004x Peripheral Driver Library is a set of drivers for accessing the peripherals found on the F28004x real time control MCU. While they are not drivers in the pure operating system sense (that is, they do not have a common interface and do not connect into a global device driver infrastructure), they do provide a software layer to facilitate a slightly higher level of programming than direct register accesses.

The capabilities and organization of the drivers are governed by the following design goals:

- They are written entirely in C except where absolutely not possible.

- Where possible, computations that can be performed at compile time are done there instead of at run time.

- They are intended to make code more portable across other C2000 devices.

- Code written with these APIs will be more readable than code written using many direct register accesses.

Some consequences of this are that the drivers are not necessarily as efficient as they could be (from a code size and/or execution speed point of view). While the most efficient piece of code for operating a peripheral would be written in assembly and custom tailored to the specific requirements of the application, further size optimizations of the drivers would make them more difficult to understand.

For many applications, the drivers can be used as is. But in some cases, the drivers will have to be enhanced or rewritten in order to meet the functionality, memory, or processing requirements of the application. If so, the existing driver can be used as a reference on how to operate the peripheral.

Minimum Requirements: CCS v9.3.0 or newer and C2000 Compiler v18.12.1 LTS or newer

## Source Code Overview

> The following is an overview of the organization of the peripheral driver library source code.

> > - {driverlib} - This directory contains the source code for the drivers.

> > - {driverlib/inc/} - This directory holds the peripheral, interrupt, and register access header files used for the direct register access programming model.

> > - {hw_*.h} -Header files, one per peripheral, that describe all the registers and the bit fields within those registers for each peripheral. These header files are used by the drivers to directly access a peripheral, and can be used by application code to bypass the peripheral driver library API.