diff src/cs/drivers/drv_app/r2d/r2d_config.h @ 0:4e78acac3d88

src/{condat,cs,gpf,nucleus}: import from Selenite
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 16 Oct 2020 06:23:26 +0000
parents
children 927e8b825ed1
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cs/drivers/drv_app/r2d/r2d_config.h	Fri Oct 16 06:23:26 2020 +0000
@@ -0,0 +1,267 @@
+/***************************************************************************
+                                                                          
+  Name        r2d_config.h                                                   
+                                                                          
+  Function    Hardware dependent configurations                       
+                                                                          
+  Date        Modification                                                 
+  -----------------------                                                 
+  06/12/2001    Create                                                       
+ **************************************************************************
+  History       
+                                                                          
+****************************************************************************/
+
+
+#ifndef __R2D_CONFIG__
+#define __R2D_CONFIG__
+
+#ifndef _WINDOWS
+  #include "config/r2d.cfg"
+  #include "config/board.cfg"
+  #include "config/fc-target.h"
+  #include "config/swconfig.cfg"
+#endif
+
+/*******************************
+
+   MISC R2D CONSTANTS
+
+*******************************/
+
+
+#define R2D_ON 1
+#define R2D_OFF 0
+
+#define R2D_DEBUG_LOW 0
+#define R2D_DEBUG_HIGH 1
+
+// Color mode for the LCD
+#define R2D_MONOCHROME 0
+#define R2D_COLOR 1
+
+// Mode of refresh for the LCD
+#define R2D_VERTICAL 0
+#define R2D_HORIZONTAL 1
+
+// List of kind of supported LCDs
+#define R2D_SIMPLE_LCD 1
+#define R2D_PC_COLOR_LCD 2
+#define R2D_MIRRORED_LCD 3
+#define R2D_CUSTOMER_LCD 4
+#define R2D_HORIZONTAL_LCD 5
+#define R2D_BOARD_COLOR_LCD 6
+#define R2D_BOARD_DSAMPLE 7
+#define R2D_BOARD_BW_DSAMPLE 8
+#define R2D_BOARD_ESAMPLE 9
+#define R2D_PC_CSAMPLE 108
+#define R2D_PC_DSAMPLE 109
+
+/*******************************
+
+   Riviera 2D configuration
+
+*******************************/
+
+
+// ln2 of dimension of dithering matrix
+// (must change code if that value is changed)
+#define R2D_DITHERING_DIMENSION 2
+
+#define R2D_DEBUG R2D_ON
+
+#define R2D_DEBUG_WARNING R2D_DEBUG_LOW
+
+// For still on development new features
+#define R2D_EXPERIMENT R2D_ON
+
+// C-Sample for PC
+#ifdef _WINDOWS
+       #define R2D_REFRESH_PERIOD 50 // ms
+       #define R2D_EMBEDDED_LCD R2D_PC_COLOR_LCD
+#endif
+
+#if (R2D_LCD_TEST == 1)
+    #define R2D_REFRESH_PERIOD 40 // ms
+    #define R2D_EMBEDDED_LCD R2D_BOARD_COLOR_LCD 
+#else
+    #if ((BOARD == 7) || (BOARD == 8) || (BOARD == 9) || \
+		defined(CONFIG_TARGET_C139))
+	// C-Sample is equipped with Mirrored LCD
+	#define R2D_REFRESH_PERIOD 40 // ms
+	#define R2D_EMBEDDED_LCD R2D_MIRRORED_LCD 
+    #elif ((BOARD == 40) || (BOARD == 41) || (BOARD == 42) || (BOARD == 43))
+       #if DSAMPLE_FULL_COLOR
+         // D-Sample Board with Color Display
+	 #define R2D_REFRESH_PERIOD 40 // ms
+	 #define R2D_EMBEDDED_LCD R2D_BOARD_DSAMPLE
+       #else
+         // D-Sample Board with simulated B&W Display
+         #define R2D_REFRESH_PERIOD 40 // ms
+         #define R2D_EMBEDDED_LCD R2D_BOARD_BW_DSAMPLE
+       #endif
+    #endif
+#endif
+
+// Launch R2D_REFRESH_LOOP to estimate the time
+// taken by one loop
+#define R2D_BENCHMARKING R2D_OFF
+#define R2D_REFRESH_LOOP 100
+
+
+/*******************************
+
+   Hardware dependence
+
+*******************************/
+
+// Shift by 2 to get the size of a long int
+#define R2D_LONGSIZE_FACTOR 2  
+
+// ln2 of the size of a memory word in bits
+// (2^5 = 32 bits)
+#define R2D_MEMORY_WORD 5
+
+/*******************************
+
+   Values used internally
+
+*******************************/
+
+#if (R2D_EMBEDDED_LCD == R2D_SIMPLE_LCD)
+#include "r2d/lcds/Simple/R2D_simple_lcd_i.h"
+#endif
+
+// Color LCD is just a simulation on PC and is using the
+// color framebuffers
+#if (R2D_EMBEDDED_LCD == R2D_PC_COLOR_LCD)
+#include "r2d/lcds/ColorPC/R2D_pc_color_lcd_i.h"
+#endif
+
+#if (R2D_EMBEDDED_LCD == R2D_PC_CSAMPLE)
+#include "r2d/lcds/PC_CSAMPLE/R2D_pc_csample_lcd_i.h"
+#endif
+
+#if (R2D_EMBEDDED_LCD == R2D_PC_DSAMPLE)
+#include "r2d/lcds/PC_DSAMPLE/R2D_pc_dsample_lcd_i.h"
+#endif
+
+// Color LCD is just a simulation on PC and is using the
+// color framebuffers
+#if (R2D_EMBEDDED_LCD == R2D_MIRRORED_LCD)
+#include "r2d/lcds/Mirrored/R2D_mirrored_lcd_i.h"
+#endif
+
+#if (R2D_EMBEDDED_LCD == R2D_CUSTOMER_LCD)
+#include "r2d/lcds/Customer/R2D_customer_lcd_i.h"
+#endif
+
+#if (R2D_EMBEDDED_LCD == R2D_HORIZONTAL_LCD)
+#include "r2d/lcds/Horizontal/R2D_horizontal_lcd_i.h"
+#endif
+
+#if (R2D_EMBEDDED_LCD == R2D_BOARD_COLOR_LCD)
+#include "r2d/lcds/ColorBoard/R2D_board_color_lcd_i.h"
+#endif
+
+#if (R2D_EMBEDDED_LCD == R2D_BOARD_DSAMPLE)
+#include "r2d/lcds/D_Sample/R2D_board_dsample_i.h"
+#endif
+
+#if (R2D_EMBEDDED_LCD == R2D_BOARD_BW_DSAMPLE)
+#include "r2d/lcds/BW_D_Sample/R2D_board_bw_dsample_i.h"
+#endif
+
+#if (R2D_EMBEDDED_LCD == R2D_PC_COLOR_LCD)
+#ifdef R2D_ASM
+#undef R2D_ASM
+#endif
+#define R2D_ASM R2D_OFF
+#endif
+
+#if (R2D_ASM == R2D_ON)
+#if (R2D_DITHERING == R2D_ON)
+#undef R2D_DITHERING
+#define R2D_DITHERING R2D_OFF
+#endif
+
+#endif
+
+
+// Mask used to write or read a pixel value from a memory word
+// It is also used in monochrome mode to extract the intensity level
+// In color mode, a pixel will contain several intensity
+// level and another mask to extract components should be used
+
+// ifdef used because of limitation with TI preprocessor
+// which is giving 0 for R2D_PIXEL_MASK instead of 0xFFFFFFFF
+// when R2D_PIXEL_DEPTH is 32
+#if (R2D_PIXEL_DEPTH == 32)
+#define R2D_PIXEL_MASK 0xFFFFFFFF
+#else
+#define R2D_PIXEL_MASK (~(-1<<R2D_PIXEL_DEPTH))
+#endif
+
+// Pixel value mask for dithered levels
+#define R2D_DITHERED_MASK (~(-1<<R2D_DITHERING_DIMENSION))
+
+
+#if (R2D_PIXELS_PER_MEMORY_WORD == 0)
+
+  // Position of the pixel in a memory word is extracted with
+  // that mask applied to the pixel horizontal or vertical 
+  // coordinate (depending on the REFRESH mode)
+  // It allows to convert between unit pixels to unit memory words
+  #define R2D_WORD_POSITION_MASK 0
+
+  // Extension of vertical or horizontal for memory alignments
+  // constraints
+  #if (R2D_REFRESH == R2D_VERTICAL)
+    #define R2D_MWHEIGHT R2D_HEIGHT
+  #else
+    #define R2D_MWWIDTH R2D_WIDTH
+  #endif
+
+  // Extend lengths to a integer number of memory words
+  // and return new length in memory word units
+  #define R2D_ALIGNED_MWLENGTH(a) a
+#else
+  // Above formula are right when the number of pixels
+  // can be divided by 2 (so R2D_PIXELS_PER_MEMORY_WORD != 0 )
+
+  // Position of the pixel in a memory word is extracted with
+  // that mask applied to the pixel horizontal or vertical 
+  // coordinate (depending on the REFRESH mode)
+  // It allows to convert between unit pixels to unit memory words
+#define R2D_WORD_POSITION_MASK (~(-1<<R2D_PIXELS_PER_MEMORY_WORD))
+
+  // Extension of vertical or horizontal for memory alignments
+  // constraints (the extension is done by excess. Sometime one
+  // word may be added although it is not really needed)
+  #if (R2D_REFRESH == R2D_VERTICAL)
+    #define R2D_MWHEIGHT ((R2D_HEIGHT>>R2D_PIXELS_PER_MEMORY_WORD)+1)
+  #else
+    #define R2D_MWWIDTH ((R2D_WIDTH>>R2D_PIXELS_PER_MEMORY_WORD)+1)
+  #endif
+
+  // Extend lengths to a integer number of memory words
+  // and return new length in memory word units
+
+  // Never change it. It used for blit_rect
+  #define R2D_ALIGNED_MWLENGTH(a) ((a>>R2D_PIXELS_PER_MEMORY_WORD) + 1)
+   
+
+#endif
+// Start of description of metrics values
+// for each char
+// The first values are the global ones for the font
+#define R2D_METRIC_START 8
+
+
+// Position of buffer width value relative
+// to start of char metrics in a font metric array
+#define R2D_BUFFER_WIDTH_POS (-5)
+
+
+
+#endif