From a12318ff83a63ca14ae1d32cd9ffed50e2d6eea9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E8=B6=85?= Date: Mon, 6 Sep 2021 15:33:04 +0800 Subject: [PATCH] modify config and support RGB888 --- bsp/imx6ull-artpi-smart/.config | 6 +++--- bsp/imx6ull-artpi-smart/applications/main.c | 15 ------------- bsp/imx6ull-artpi-smart/drivers/drv_eth.c | 2 +- bsp/imx6ull-artpi-smart/drivers/drv_lcd.c | 24 +++++++++++++++------ bsp/imx6ull-artpi-smart/drivers/drv_lcd.h | 2 +- bsp/imx6ull-artpi-smart/rtconfig.h | 6 +++--- 6 files changed, 26 insertions(+), 29 deletions(-) diff --git a/bsp/imx6ull-artpi-smart/.config b/bsp/imx6ull-artpi-smart/.config index 0ceda2da14..0becda67dc 100644 --- a/bsp/imx6ull-artpi-smart/.config +++ b/bsp/imx6ull-artpi-smart/.config @@ -153,7 +153,7 @@ CONFIG_RT_USING_DEVICE_IPC=y CONFIG_RT_UNAMED_PIPE_NUMBER=64 CONFIG_RT_PIPE_BUFSZ=512 CONFIG_RT_USING_SYSTEM_WORKQUEUE=y -CONFIG_RT_SYSTEM_WORKQUEUE_STACKSIZE=2048 +CONFIG_RT_SYSTEM_WORKQUEUE_STACKSIZE=4096 CONFIG_RT_SYSTEM_WORKQUEUE_PRIORITY=23 CONFIG_RT_USING_SERIAL=y # CONFIG_RT_SERIAL_USING_DMA is not set @@ -179,9 +179,9 @@ CONFIG_RT_USING_RTC=y # CONFIG_RT_USING_ALARM is not set # CONFIG_RT_USING_SOFT_RTC is not set CONFIG_RT_USING_SDIO=y -CONFIG_RT_SDIO_STACK_SIZE=512 +CONFIG_RT_SDIO_STACK_SIZE=4096 CONFIG_RT_SDIO_THREAD_PRIORITY=15 -CONFIG_RT_MMCSD_STACK_SIZE=1024 +CONFIG_RT_MMCSD_STACK_SIZE=4096 CONFIG_RT_MMCSD_THREAD_PREORITY=22 CONFIG_RT_MMCSD_MAX_PARTITION=16 # CONFIG_RT_SDIO_DEBUG is not set diff --git a/bsp/imx6ull-artpi-smart/applications/main.c b/bsp/imx6ull-artpi-smart/applications/main.c index 43fead032c..d939e28fef 100644 --- a/bsp/imx6ull-artpi-smart/applications/main.c +++ b/bsp/imx6ull-artpi-smart/applications/main.c @@ -11,24 +11,9 @@ #include #include -#include -#include "drv_pin.h" - -#define LED_PIN GET_PIN(5, 3) - int main(void) { - rt_pin_mode(LED_PIN, PIN_MODE_OUTPUT); - printf("hello rt-smart\n"); - - for(;;) - { - rt_pin_write(LED_PIN, PIN_HIGH); - rt_thread_mdelay(500); - rt_pin_write(LED_PIN, PIN_LOW); - rt_thread_mdelay(500); - } return 0; } diff --git a/bsp/imx6ull-artpi-smart/drivers/drv_eth.c b/bsp/imx6ull-artpi-smart/drivers/drv_eth.c index 993b4cbe0a..74b3b5b1c2 100644 --- a/bsp/imx6ull-artpi-smart/drivers/drv_eth.c +++ b/bsp/imx6ull-artpi-smart/drivers/drv_eth.c @@ -547,7 +547,7 @@ static int imx6ul_eth_init(void) phy_link_tid = rt_thread_create(link_detect, phy_detect_thread_entry, &_imx6ul_eth_device[idx], - 512, + 4096, RT_THREAD_PRIORITY_MAX - 2, 2); if (phy_link_tid != RT_NULL) diff --git a/bsp/imx6ull-artpi-smart/drivers/drv_lcd.c b/bsp/imx6ull-artpi-smart/drivers/drv_lcd.c index aac324f1d5..6cf758c3a4 100644 --- a/bsp/imx6ull-artpi-smart/drivers/drv_lcd.c +++ b/bsp/imx6ull-artpi-smart/drivers/drv_lcd.c @@ -36,7 +36,7 @@ static rt_err_t imx6ull_elcd_init(rt_device_t device) RT_ASSERT(device != RT_NULL); elcd_dev = (struct imx6ull_lcd_bus *)device; - + ELCDIF_Reset(elcd_dev->config->ELCDIF); pll_config.loopDivider = 32; pll_config.postDivider = 1; pll_config.numerator = 0; @@ -56,11 +56,23 @@ static rt_err_t imx6ull_elcd_init(rt_device_t device) kELCDIF_HsyncActiveLow | kELCDIF_DriveDataOnRisingClkEdge; - lcd_config.panelWidth = LCD_WIDTH; - lcd_config.panelHeight = LCD_HEIGHT; - lcd_config.pixelFormat = kELCDIF_PixelFormatRGB565; - lcd_config.dataBus = kELCDIF_DataBus24Bit; + switch(elcd_dev->info.pixel_format) + { + case RTGRAPHIC_PIXEL_FORMAT_RGB888: + lcd_config.pixelFormat = kELCDIF_PixelFormatRGB888; + break; + case RTGRAPHIC_PIXEL_FORMAT_RGB565: + lcd_config.pixelFormat = kELCDIF_PixelFormatRGB565; + break; + default: + LOG_E("not support this pixel_format %d\n",elcd_dev->info.pixel_format); + return RT_ERROR; + } + + lcd_config.panelWidth = elcd_dev->info.width; + lcd_config.panelHeight = elcd_dev->info.height; lcd_config.bufferAddr = (uint32_t)elcd_dev->fb_phy; + lcd_config.dataBus = kELCDIF_DataBus24Bit; ELCDIF_RgbModeInit(elcd_dev->config->ELCDIF, &lcd_config); ELCDIF_RgbModeStart(elcd_dev->config->ELCDIF); @@ -177,7 +189,7 @@ int rt_hw_elcd_init(void) _lcd_obj.info.width = LCD_WIDTH; _lcd_obj.info.height = LCD_HEIGHT; - _lcd_obj.info.pixel_format = RTGRAPHIC_PIXEL_FORMAT_RGB565; + _lcd_obj.info.pixel_format = RTGRAPHIC_PIXEL_FORMAT_RGB888; _lcd_obj.info.bits_per_pixel = LCD_BITS_PER_PIXEL; _lcd_obj.info.framebuffer = (void *)_lcd_obj.fb_virt; diff --git a/bsp/imx6ull-artpi-smart/drivers/drv_lcd.h b/bsp/imx6ull-artpi-smart/drivers/drv_lcd.h index 165d160e3f..e08a883407 100644 --- a/bsp/imx6ull-artpi-smart/drivers/drv_lcd.h +++ b/bsp/imx6ull-artpi-smart/drivers/drv_lcd.h @@ -33,7 +33,7 @@ #define LCD_HBP 140 #define LCD_HFP 160 -#define LCD_BITS_PER_PIXEL 16 +#define LCD_BITS_PER_PIXEL 32 #define LCD_BUF_SIZE (LCD_WIDTH * LCD_HEIGHT * LCD_BITS_PER_PIXEL / 8) #define IMX6ULL_LCD_BL_PIN GET_PIN(1, 8) diff --git a/bsp/imx6ull-artpi-smart/rtconfig.h b/bsp/imx6ull-artpi-smart/rtconfig.h index 979e44fbf6..16b2e2c296 100644 --- a/bsp/imx6ull-artpi-smart/rtconfig.h +++ b/bsp/imx6ull-artpi-smart/rtconfig.h @@ -111,7 +111,7 @@ #define RT_UNAMED_PIPE_NUMBER 64 #define RT_PIPE_BUFSZ 512 #define RT_USING_SYSTEM_WORKQUEUE -#define RT_SYSTEM_WORKQUEUE_STACKSIZE 2048 +#define RT_SYSTEM_WORKQUEUE_STACKSIZE 4096 #define RT_SYSTEM_WORKQUEUE_PRIORITY 23 #define RT_USING_SERIAL #define RT_SERIAL_RB_BUFSZ 64 @@ -123,9 +123,9 @@ #define RT_USING_PWM #define RT_USING_RTC #define RT_USING_SDIO -#define RT_SDIO_STACK_SIZE 512 +#define RT_SDIO_STACK_SIZE 4096 #define RT_SDIO_THREAD_PRIORITY 15 -#define RT_MMCSD_STACK_SIZE 1024 +#define RT_MMCSD_STACK_SIZE 4096 #define RT_MMCSD_THREAD_PREORITY 22 #define RT_MMCSD_MAX_PARTITION 16 #define RT_USING_SPI -- Gitee