#include "isrDisp.h"
Include dependency graph for framebuffer.h:
This graph shows which files directly or indirectly include this file:
Data Structures | |
struct | fb_t |
fb_t structure More... | |
Defines | |
#define | RGB888toRGB565(r, g, b) |
#define | RGB5A1toRGB565(color) |
#define | RGB5A1isTransparent(color) (color & 0x1) |
#define | RGB565toBGR565(color) |
#define | QVGA_WIDTH 320 |
#define | QVGA_HEIGHT 240 |
#define | FB_NUM_BUFFERS 3 |
#define | QVGA_TESTPATTERN_HEIGHT 30 |
Enumerations | |
enum | pixel_format { RGB565 = 0, YUYV422 = 1 } |
Enumeration of the supported pixel formats. More... | |
enum | image_type { TEST_PATTERN = 0, PAINTED_IMAGE = 1, CUSTOM = 2 } |
Enumeration of the supported image type. More... | |
enum | fb_device_type { LQ035Q1DH02 = 0 } |
Enumeration of the supported Display Scrrens. More... | |
Functions | |
int | fb_Init (fb_t *state, int devicenumber, enum fb_device_type devicetype, enum pixel_format pixFormat, isrDisp_t *pIsrDisp) |
Initialize the Frame Buffer System. | |
int | fb_imageShow (fb_t *state) |
Image Display. | |
int | fb_imageShowComplete (fb_t *state) |
Image Display Complete. | |
int | fb_slackGet (fb_t *state) |
Slack Get. | |
int | fb_statsGet (fb_t *state, unsigned int *nrUpdates, unsigned int *nrSame) |
statistic get | |
int | fb_pixelPut (fb_t *state, unsigned char red, unsigned char green, unsigned char blue, unsigned short x_pos, unsigned short y_pos) |
Pixel Plot. | |
unsigned int | fb_colorTargetGet (fb_t *state, unsigned char red, unsigned char green, unsigned char blue) |
return color in target format of display | |
void | fb_pixelPutRaw (fb_t *state, unsigned int color, unsigned short x_pos, unsigned short y_pos) |
Pixel Plot. | |
int | fb_qvgaRgb565TestPatternCreate (fb_t *state) |
function to fill color bar pattern | |
int | fb_passiveBufferGet (fb_t *state, unsigned short **passiveBuffer) |
find passive buffer | |
int | fb_Release (fb_t *state) |
Release the FB System. | |
int | bb_Init (fb_t *state) |
Initialize the Background Buffer System. | |
int | bb_pixelPut (unsigned char red, unsigned char green, unsigned char blue, unsigned short x_pos, unsigned short y_pos) |
Background Pixel Plot. | |
void | bb_pixelPutRaw (unsigned int color, unsigned short x_pos, unsigned short y_pos) |
Background Pixel Plot. | |
int | bb_imageShow (unsigned short *displayBuffer) |
Background Image Display. | |
int | bb_imageCommit () |
Background Image Commit. | |
int | bb_isReady () |
Background MDMA Ready. | |
int | bb_clearPassive () |
Passive Buffer Clear. | |
void | bb_imageWaitForReady () |
Block until we are sure that the MDMA has finished copying the background for the provided foreground buffer. |
Organization: The Learning Labs
Tested: Compiler bfin-elf-gcc; Output format Bare Metal Elf; Target TLL6527M V1.2
Revised: 20120331, Author: C. Lavania, Notes: Cleaned Up
Revised: 20120328, Author: C. Lavania, Notes: Added macros for QVGA width and QVGA height, and test pattern height
Revised: 20120327, Author: C. Lavania, Notes: Modified state structure and exposed function interface, introduced new functions for test pattern generation and providing user with the passive buffer.
Revised: 20120322, Author: C. Lavania, Notes: Cleaned Up
Revised: 20120321, Author: C. Lavania, Notes: Modified state structure and added the screen buffer to it, modified fb_Init() and fb_imageShow() prototypes.
Created: 20120317, Author: C. Lavania, Notes: Created the Initial Version
References:
1. ADSP-BF52x Blackfin Processor Hardware Reference, Revision 1.0, March 2010
#define FB_NUM_BUFFERS 3 |
#define QVGA_HEIGHT 240 |
#define QVGA_TESTPATTERN_HEIGHT 30 |
#define QVGA_WIDTH 320 |
#define RGB565toBGR565 | ( | color | ) |
Value:
((color << 11) | (color >> 11) | \ (color & (0x07E0)))
#define RGB5A1isTransparent | ( | color | ) | (color & 0x1) |
#define RGB5A1toRGB565 | ( | color | ) |
Value:
(color & 0xFFC0)| \ ((color & 0x3E) >> 1)
#define RGB888toRGB565 | ( | r, | |||
g, | |||||
b | ) |
Value:
((r >> 3) << 11)| \ ((g >> 2) << 5)| ((b >> 3) << 0)
enum fb_device_type |
enum image_type |
enum pixel_format |
int bb_clearPassive | ( | ) |
Passive Buffer Clear.
This function clears the current passive buffer
Note: Call this function to reset passive buffer
Pre-conditions:
Post conditions
int bb_imageCommit | ( | ) |
Background Image Commit.
This function switches between active and passive background buffers
Note: This function needs to be called to commit changes to the background buffer
Pre-conditions:
Post conditions
int bb_imageShow | ( | unsigned short * | displayBuffer | ) |
Background Image Display.
This function loads image stored in the active background buffer onto the passive frame buffer.
Note : This function needs to be called each time the active frame buffer is changed
Pre-conditions:
Post conditions:
Parameters:
displayBuffer | pointer to receiving buffer |
void bb_imageWaitForReady | ( | ) |
Block until we are sure that the MDMA has finished copying the background for the provided foreground buffer.
int bb_Init | ( | fb_t * | state | ) |
Initialize the Background Buffer System.
This function initializes the background overlay buffers
Pre-conditions:
Post conditions:
Parameters:
int bb_isReady | ( | ) |
Background MDMA Ready.
This function checks if the MDMA used in the Background buffer is ready
Note: Call this function to check if a background buffer to frame buffer copy is taking place
Pre-conditions:
Post conditions
int bb_pixelPut | ( | unsigned char | red, | |
unsigned char | green, | |||
unsigned char | blue, | |||
unsigned short | x_pos, | |||
unsigned short | y_pos | |||
) |
Background Pixel Plot.
This function plots a pixel at the given location with given color
Pre-conditions:
Post conditions:
Parameters:
red | red value of the color | |
green | green value of the color | |
blue | blue value of the color | |
x_pos | X Coordinate (in pixels) | |
y_pos | Y Coordinate (in pixels) |
void bb_pixelPutRaw | ( | unsigned int | color, | |
unsigned short | x_pos, | |||
unsigned short | y_pos | |||
) | [inline] |
Background Pixel Plot.
This function plots a pixel at the given location with given color
Pre-conditions:
Post conditions:
Parameters:
state | address of FB state variable | |
color | in target format | |
x_pos | X Coordinate (in pixels) | |
y_pos | Y Coordinate (in pixels) |
unsigned int fb_colorTargetGet | ( | fb_t * | state, | |
unsigned char | red, | |||
unsigned char | green, | |||
unsigned char | blue | |||
) |
return color in target format of display
int fb_imageShow | ( | fb_t * | state | ) |
Image Display.
This function displays an image stored in the passive buffer on the screen.
Note : This function needs to be called each time a new image needs to be displayed on the screen
Pre-conditions:
Post conditions:
Parameters:
state | address of FB state variable |
int fb_imageShowComplete | ( | fb_t * | state | ) |
Image Display Complete.
Blocks caller until last image show is completed. Returns immediately if no switch is pending.
Pre-conditions:
Post conditions:
Parameters:
state | address of FB state variable |
int fb_Init | ( | fb_t * | state, | |
int | devicenumber, | |||
enum fb_device_type | devicetype, | |||
enum pixel_format | pixFormat, | |||
isrDisp_t * | pIsrDisp | |||
) |
Initialize the Frame Buffer System.
This function initializes LCD System including related Timer, PPI, DMA Systems.
Pre-conditions:
Post conditions:
Parameters:
state | address of FB state variable | |
devicenumber | to store the instance of the device being used (0 - 4) | |
devicetype | the actual display device being accessed | |
pixFormat | pixel is RGB565 or YUYV422 |
int fb_passiveBufferGet | ( | fb_t * | state, | |
unsigned short ** | passiveBuffer | |||
) |
find passive buffer
This function stores the address of the passive buffer in the passed buffer parameter
Pre-conditions:
Post conditions:
state | address of FB state variable | |
passiveBuffer | stores the address of the pointer which will store the passiveBuffer starting point |
int fb_pixelPut | ( | fb_t * | state, | |
unsigned char | red, | |||
unsigned char | green, | |||
unsigned char | blue, | |||
unsigned short | x_pos, | |||
unsigned short | y_pos | |||
) |
Pixel Plot.
This function plots a pixel at the given location with given color
Pre-conditions:
Post conditions:
Parameters:
state | address of FB state variable | |
red | red value of the color | |
green | green value of the color | |
blue | blue value of the color | |
x_pos | X Coordinate (in pixels) | |
y_pos | Y Coordinate (in pixels) |
void fb_pixelPutRaw | ( | fb_t * | state, | |
unsigned int | color, | |||
unsigned short | x_pos, | |||
unsigned short | y_pos | |||
) | [inline] |
Pixel Plot.
This function plots a pixel at the given location with given color
Pre-conditions:
Post conditions:
Parameters:
state | address of FB state variable | |
color | in target format | |
x_pos | X Coordinate (in pixels) | |
y_pos | Y Coordinate (in pixels) |
int fb_qvgaRgb565TestPatternCreate | ( | fb_t * | state | ) |
function to fill color bar pattern
This function creates the color bar pattern in the passive DMA Buffer
Pre-conditions:
Post conditions:
Parameters:
state | address of FB state variable |
int fb_Release | ( | fb_t * | state | ) |
Release the FB System.
This function releases FB System including related Timer, PPI, DMA Systems.
Pre-conditions:
Post conditions:
Parameters:
state | address of FB state variable |
int fb_slackGet | ( | fb_t * | state | ) |
Slack Get.
Returns nanoSec until pending image switch is executed, 0 if no switch is pending.
Pre-conditions:
Post conditions:
Parameters:
state | address of LCD state variable |
int fb_statsGet | ( | fb_t * | state, | |
unsigned int * | nrUpdates, | |||
unsigned int * | nrSame | |||
) |
statistic get
gathers display statistics nrUpdates number of images updated nrSame number of identical images displayed
Pre-conditions:
Post condtions:
Parameters:
state | address of LCD state variable |