Просмотр исходного кода

modify config and support RGB888

宋超 4 лет назад
Родитель
Сommit
a12318ff83

+ 3 - 3
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

+ 0 - 15
bsp/imx6ull-artpi-smart/applications/main.c

@@ -11,24 +11,9 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-#include <rtdevice.h>
-#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;
 }
 

+ 1 - 1
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)

+ 18 - 6
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;
 

+ 1 - 1
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)

+ 3 - 3
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