14 #include "stm32f769i_discovery_lcd.h" 16 #define LCD_WIDTH 800 // 幅 17 #define LCD_HEIGHT 480 // 高さ 19 #define __ATTR_FRAMEBUFFER __attribute__ ((section(".extram"))) __attribute__ ((aligned (4))) 20 unsigned char lcd_f_buffer_main[LCD_WIDTH * LCD_HEIGHT * 2] __ATTR_FRAMEBUFFER;
21 unsigned char lcd_f_buffer_sub [LCD_WIDTH * LCD_HEIGHT * 2] __ATTR_FRAMEBUFFER;
23 LTDC_HandleTypeDef hltdc_discovery;
24 DSI_HandleTypeDef hdsi_discovery;
26 static void init_framebuf(
void)
30 for(p=&lcd_f_buffer_main[0];
31 p<&lcd_f_buffer_main[LCD_WIDTH * LCD_HEIGHT * 2];
36 for(p=&lcd_f_buffer_sub[0];
37 p<&lcd_f_buffer_sub[LCD_WIDTH * LCD_HEIGHT * 2];
43 static void Display_DSIIF_Init(
void)
45 LCD_LayerCfgTypeDef Layercfg;
50 Layercfg.WindowX0 = 0;
51 Layercfg.WindowX1 = LCD_WIDTH-1;
52 Layercfg.WindowY0 = 0;
53 Layercfg.WindowY1 = LCD_HEIGHT-1;
54 Layercfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
55 Layercfg.FBStartAdress = (uint32_t)lcd_f_buffer_main;
58 Layercfg.Backcolor.Blue = 0;
59 Layercfg.Backcolor.Green = 0;
60 Layercfg.Backcolor.Red = 0;
61 Layercfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
62 Layercfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
63 Layercfg.ImageWidth = LCD_WIDTH;
64 Layercfg.ImageHeight = LCD_HEIGHT;
65 HAL_LTDC_ConfigLayer(&hltdc_discovery, &Layercfg, 0);
68 static int lcd_register(
struct st_device *dev,
char *param)
80 static int lcd_ioctl(
struct st_device *dev,
unsigned int com,
unsigned int arg,
void *param)
86 BSP_LCD_SetLayerAddress(0, (uint32_t)lcd_f_buffer_main);
90 BSP_LCD_SetLayerAddress(0, (uint32_t)lcd_f_buffer_sub);
106 SYSERR_PRINT(
"Unknow command %08lX arg %08lX\n", com, arg);
116 .height = LCD_HEIGHT,
119 .frame_buf_ptr = { 0, 0 },
125 .explan =
"STM32F769I-Discovery LCD",
126 .info = (
void *)&lcd_info,
127 .register_dev = lcd_register,
#define IOCMD_VIDEO_CLEAR
全画面初期化
画像表示デバイスドライバ ioctl 用マクロ定義
unsigned short type
ビデオデバイスタイプ(VIDEOTYPE_*)
#define VCOLORDEP_16
16ビットカラー
unsigned int mem_size
フレームバッファメモリサイズ
#define IOCMD_VIDEO_SETDISPFRAME
表示フレーム番号を設定する
#define VIDEOTYPE_FRAMEBUF
カラーフレームバッファ(描画同期無し)
unsigned char * frame_buf_ptr[MAX_FRAMEBUF]
フレームバッファポインタ
#define DEF_DEV_NAME_VIDEO
標準ビデオデバイス名
char name[MAX_DEVNAMELRN]
デバイス名文字列