From 2c1209db21e2ddad135d5a2d63e026e915e8498f Mon Sep 17 00:00:00 2001 From: Wangzongqiang <126842169+Wangzongqiang@users.noreply.github.com> Date: Sat, 16 Dec 2023 19:10:26 +0800 Subject: [PATCH] [bsp/phytium] add dc driver (#8373) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加[bsp/phytium] DC显示驱动,同步更新配置文件 --- bsp/phytium/README.md | 1 + bsp/phytium/aarch32/.config | 156 ++++++------------ .../aarch32/configs/e2000d_demo_rtsmart | 76 +++------ .../aarch32/configs/e2000d_demo_rtsmart.h | 11 +- .../aarch32/configs/e2000d_demo_rtthread | 76 +++------ .../aarch32/configs/e2000d_demo_rtthread.h | 11 +- .../aarch32/configs/e2000q_demo_rtsmart | 76 +++------ .../aarch32/configs/e2000q_demo_rtsmart.h | 11 +- .../aarch32/configs/e2000q_demo_rtthread | 76 +++------ .../aarch32/configs/e2000q_demo_rtthread.h | 11 +- .../aarch32/configs/phytium_pi_rtsmart | 76 +++------ .../aarch32/configs/phytium_pi_rtsmart.h | 11 +- .../aarch32/configs/phytium_pi_rtthread | 76 +++------ .../aarch32/configs/phytium_pi_rtthread.h | 11 +- bsp/phytium/aarch32/rtconfig.h | 55 ++---- bsp/phytium/aarch64/.config | 117 +++++-------- .../aarch64/configs/e2000d_demo_rtsmart | 77 +++------ .../aarch64/configs/e2000d_demo_rtsmart.h | 11 +- .../aarch64/configs/e2000d_demo_rtthread | 77 +++------ .../aarch64/configs/e2000d_demo_rtthread.h | 11 +- .../aarch64/configs/e2000q_demo_rtsmart | 77 +++------ .../aarch64/configs/e2000q_demo_rtsmart.h | 11 +- .../aarch64/configs/e2000q_demo_rtthread | 77 +++------ .../aarch64/configs/e2000q_demo_rtthread.h | 11 +- .../aarch64/configs/phytium_pi_rtsmart | 77 +++------ .../aarch64/configs/phytium_pi_rtsmart.h | 11 +- .../aarch64/configs/phytium_pi_rtthread | 77 +++------ .../aarch64/configs/phytium_pi_rtthread.h | 11 +- bsp/phytium/aarch64/rtconfig.h | 37 ++--- bsp/phytium/doc/use_phytium_dc_with_lvgl.md | 43 +++++ bsp/phytium/figures/dc_select.png | Bin 0 -> 19385 bytes bsp/phytium/figures/lvgl_demo_thread.png | Bin 0 -> 36068 bytes bsp/phytium/figures/lvgl_open_dc.png | Bin 0 -> 33393 bytes bsp/phytium/figures/lvgl_packages.png | Bin 0 -> 14703 bytes bsp/phytium/figures/lvgl_rtthread_env.png | Bin 0 -> 120699 bytes bsp/phytium/figures/lvgl_select.png | Bin 0 -> 33788 bytes bsp/phytium/libraries/SConscript | 20 ++- bsp/phytium/libraries/drivers/Kconfig | 14 ++ bsp/phytium/libraries/drivers/drv_dc.c | 148 +++++++++++++++++ bsp/phytium/libraries/drivers/drv_dc.h | 39 +++++ 40 files changed, 722 insertions(+), 958 deletions(-) create mode 100644 bsp/phytium/doc/use_phytium_dc_with_lvgl.md create mode 100644 bsp/phytium/figures/dc_select.png create mode 100644 bsp/phytium/figures/lvgl_demo_thread.png create mode 100644 bsp/phytium/figures/lvgl_open_dc.png create mode 100644 bsp/phytium/figures/lvgl_packages.png create mode 100644 bsp/phytium/figures/lvgl_rtthread_env.png create mode 100644 bsp/phytium/figures/lvgl_select.png create mode 100644 bsp/phytium/libraries/drivers/drv_dc.c create mode 100644 bsp/phytium/libraries/drivers/drv_dc.h diff --git a/bsp/phytium/README.md b/bsp/phytium/README.md index 6852f30690..cae2796c34 100644 --- a/bsp/phytium/README.md +++ b/bsp/phytium/README.md @@ -36,6 +36,7 @@ | CAN | 支持 | CAN/CANFD设备通信 | | I2C | 支持 | I2C设备通信 | | SPI | 支持 | SPI设备通信 | +| DC | 支持 | DC显示设备 | | **芯片** | **支持情况** | **备注** | | :----------------- | :----------: | :------------------------------------- | diff --git a/bsp/phytium/aarch32/.config b/bsp/phytium/aarch32/.config index 5fb526c92c..63421e00e9 100644 --- a/bsp/phytium/aarch32/.config +++ b/bsp/phytium/aarch32/.config @@ -8,7 +8,7 @@ # CONFIG_RT_NAME_MAX=16 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set -CONFIG_RT_USING_SMART=y +# CONFIG_RT_USING_SMART is not set # CONFIG_RT_USING_AMP is not set # CONFIG_RT_USING_SMP is not set CONFIG_RT_CPUS_NR=1 @@ -88,8 +88,6 @@ CONFIG_RT_USING_CPU_FFS=y CONFIG_ARCH_MM_MMU=y CONFIG_ARCH_ARM=y CONFIG_ARCH_ARM_MMU=y -CONFIG_KERNEL_VADDR_START=0xc0000000 -# CONFIG_RT_IOREMAP_LATE is not set CONFIG_ARCH_ARM_CORTEX_A=y # CONFIG_RT_SMP_AUTO_BOOT is not set # CONFIG_RT_USING_GIC_V2 is not set @@ -166,16 +164,6 @@ CONFIG_RT_USING_DFS_RAMFS=y CONFIG_RT_USING_DFS_MQUEUE=y # CONFIG_RT_USING_DFS_NFS is not set # CONFIG_RT_USING_FAL is not set -CONFIG_RT_USING_LWP=y -# CONFIG_LWP_DEBUG is not set -CONFIG_RT_LWP_MAX_NR=30 -CONFIG_LWP_TASK_STACK_SIZE=16384 -CONFIG_RT_CH_MSG_MAX_NR=1024 -CONFIG_LWP_CONSOLE_INPUT_BUFFER_SIZE=1024 -CONFIG_LWP_TID_MAX_NR=64 -CONFIG_LWP_ENABLE_ASID=y -CONFIG_RT_LWP_SHM_MAX_NR=64 -# CONFIG_LWP_UNIX98_PTY is not set # # Device Drivers @@ -191,10 +179,8 @@ CONFIG_RT_USING_SERIAL_V1=y # CONFIG_RT_USING_SERIAL_V2 is not set CONFIG_RT_SERIAL_USING_DMA=y CONFIG_RT_SERIAL_RB_BUFSZ=1024 -CONFIG_RT_USING_TTY=y -# CONFIG_RT_TTY_DEBUG is not set CONFIG_RT_USING_CAN=y -CONFIG_RT_CAN_USING_HDR=y +# CONFIG_RT_CAN_USING_HDR is not set CONFIG_RT_CAN_USING_CANFD=y # CONFIG_RT_USING_HWTIMER is not set # CONFIG_RT_USING_CPUTIME is not set @@ -278,8 +264,6 @@ CONFIG_RT_USING_POSIX_STDIO=y CONFIG_RT_USING_POSIX_POLL=y CONFIG_RT_USING_POSIX_SELECT=y # CONFIG_RT_USING_POSIX_EVENTFD is not set -# CONFIG_RT_USING_POSIX_EPOLL is not set -# CONFIG_RT_USING_POSIX_SIGNALFD is not set # CONFIG_RT_USING_POSIX_TIMERFD is not set # CONFIG_RT_USING_POSIX_SOCKET is not set CONFIG_RT_USING_POSIX_TERMIOS=y @@ -439,6 +423,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_KAWAII_MQTT is not set # CONFIG_PKG_USING_BC28_MQTT is not set # CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_LIBMODBUS is not set # CONFIG_PKG_USING_FREEMODBUS is not set # CONFIG_PKG_USING_NANOPB is not set @@ -506,8 +491,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AGILE_FTP is not set # CONFIG_PKG_USING_EMBEDDEDPROTO is not set # CONFIG_PKG_USING_RT_LINK_HW is not set -# CONFIG_PKG_USING_RYANMQTT is not set -# CONFIG_PKG_USING_RYANW5500 is not set # CONFIG_PKG_USING_LORA_PKT_FWD is not set # CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set # CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set @@ -515,8 +498,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_SMALL_MODBUS is not set # CONFIG_PKG_USING_NET_SERVER is not set # CONFIG_PKG_USING_ZFTP is not set -# CONFIG_PKG_USING_WOL is not set -# CONFIG_PKG_USING_ZEPHYR_POLLING is not set # # security packages @@ -585,13 +566,18 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MP3PLAYER is not set # CONFIG_PKG_USING_TINYJPEG is not set # CONFIG_PKG_USING_UGUI is not set + +# +# PainterEngine: A cross-platform graphics application framework written in C language +# +# CONFIG_PKG_USING_PAINTERENGINE is not set +# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set # CONFIG_PKG_USING_MCURSES is not set # CONFIG_PKG_USING_TERMBOX is not set # CONFIG_PKG_USING_VT100 is not set # CONFIG_PKG_USING_QRCODE is not set # CONFIG_PKG_USING_GUIENGINE is not set # CONFIG_PKG_USING_PERSIMMON is not set -# CONFIG_PKG_USING_3GPP_AMRNB is not set # # tools packages @@ -601,7 +587,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_EASYLOGGER is not set # CONFIG_PKG_USING_SYSTEMVIEW is not set # CONFIG_PKG_USING_SEGGER_RTT is not set -# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set # CONFIG_PKG_USING_RDB is not set # CONFIG_PKG_USING_ULOG_EASYFLASH is not set # CONFIG_PKG_USING_LOGMGR is not set @@ -637,6 +622,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CBOX is not set # CONFIG_PKG_USING_SNOWFLAKE is not set # CONFIG_PKG_USING_HASH_MATCH is not set +# CONFIG_PKG_USING_FIRE_PID_CURVE is not set # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set # CONFIG_PKG_USING_VOFA_PLUS is not set @@ -709,8 +695,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_TFDB is not set # CONFIG_PKG_USING_QPC is not set # CONFIG_PKG_USING_AGILE_UPGRADE is not set -# CONFIG_PKG_USING_FLASH_BLOB is not set -# CONFIG_PKG_USING_MLIBC is not set # # peripheral libraries and drivers @@ -719,6 +703,7 @@ CONFIG_RT_USING_ADT_REF=y # # sensors drivers # +# CONFIG_PKG_USING_FINGERPRINT is not set # CONFIG_PKG_USING_LSM6DSM is not set # CONFIG_PKG_USING_LSM6DSL is not set # CONFIG_PKG_USING_LPS22HB is not set @@ -778,11 +763,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AD7746 is not set # CONFIG_PKG_USING_ADT74XX is not set # CONFIG_PKG_USING_MAX17048 is not set -# CONFIG_PKG_USING_AS7341 is not set -# CONFIG_PKG_USING_CW2015 is not set -# CONFIG_PKG_USING_ICM20608 is not set -# CONFIG_PKG_USING_PAJ7620 is not set -# CONFIG_PKG_USING_STHS34PF80 is not set # # touch drivers @@ -795,10 +775,11 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_FT5426 is not set # CONFIG_PKG_USING_FT6236 is not set # CONFIG_PKG_USING_XPT2046_TOUCH is not set -# CONFIG_PKG_USING_CST816X is not set # CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_AS7341 is not set # CONFIG_PKG_USING_STM32_SDIO is not set # CONFIG_PKG_USING_ESP_IDF is not set +# CONFIG_PKG_USING_ICM20608 is not set # CONFIG_PKG_USING_BUTTON is not set # CONFIG_PKG_USING_PCF8574 is not set # CONFIG_PKG_USING_SX12XX is not set @@ -808,6 +789,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_LKDGUI is not set # CONFIG_PKG_USING_NRF5X_SDK is not set # CONFIG_PKG_USING_NRFX is not set +# CONFIG_PKG_USING_WM_LIBRARIES is not set # # Kendryte SDK @@ -821,7 +803,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AT24CXX is not set # CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set # CONFIG_PKG_USING_PCA9685 is not set -# CONFIG_PKG_USING_ILI9341 is not set # CONFIG_PKG_USING_I2C_TOOLS is not set # CONFIG_PKG_USING_NRF24L01 is not set # CONFIG_PKG_USING_RPLIDAR is not set @@ -838,6 +819,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CAN_YMODEM is not set # CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set # CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_PAJ7620 is not set # CONFIG_PKG_USING_AGILE_CONSOLE is not set # CONFIG_PKG_USING_LD3320 is not set # CONFIG_PKG_USING_WK2124 is not set @@ -865,17 +847,14 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MISAKA_AT24CXX is not set # CONFIG_PKG_USING_MISAKA_RGB_BLING is not set # CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set +# CONFIG_PKG_USING_BL_MCU_SDK is not set # CONFIG_PKG_USING_SOFT_SERIAL is not set # CONFIG_PKG_USING_MB85RS16 is not set +# CONFIG_PKG_USING_CW2015 is not set # CONFIG_PKG_USING_RFM300 is not set # CONFIG_PKG_USING_IO_INPUT_FILTER is not set # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set # CONFIG_PKG_USING_LRF_NV7LIDAR is not set -# CONFIG_PKG_USING_AIP650 is not set -# CONFIG_PKG_USING_FINGERPRINT is not set -# CONFIG_PKG_USING_BT_ECB02C is not set -# CONFIG_PKG_USING_UAT is not set -# CONFIG_PKG_USING_SPI_TOOLS is not set # # AI packages @@ -890,15 +869,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_QUEST is not set # CONFIG_PKG_USING_NAXOS is not set -# -# Signal Processing and Control Algorithm Packages -# -# CONFIG_PKG_USING_FIRE_PID_CURVE is not set -# CONFIG_PKG_USING_QPID is not set -# CONFIG_PKG_USING_UKAL is not set -# CONFIG_PKG_USING_DIGITALCTRL is not set -# CONFIG_PKG_USING_KISSFFT is not set - # # miscellaneous packages # @@ -928,7 +898,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_TETRIS is not set # CONFIG_PKG_USING_DONUT is not set # CONFIG_PKG_USING_COWSAY is not set -# CONFIG_PKG_USING_MORSE is not set # CONFIG_PKG_USING_LIBCSV is not set # CONFIG_PKG_USING_OPTPARSE is not set # CONFIG_PKG_USING_FASTLZ is not set @@ -944,12 +913,14 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set # CONFIG_PKG_USING_UPACKER is not set # CONFIG_PKG_USING_UPARAM is not set # CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_VI is not set # CONFIG_PKG_USING_KI is not set # CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_UKAL is not set # CONFIG_PKG_USING_CRCLIB is not set # CONFIG_PKG_USING_LWGPS is not set # CONFIG_PKG_USING_STATE_MACHINE is not set @@ -960,7 +931,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_SLCAN2RTT is not set # CONFIG_PKG_USING_SOEM is not set # CONFIG_PKG_USING_QPARAM is not set -# CONFIG_PKG_USING_CorevMCU_CLI is not set # # Arduino libraries @@ -968,9 +938,8 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_RTDUINO is not set # -# Projects and Demos +# Projects # -# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set # CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set # CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set # CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set @@ -978,17 +947,13 @@ CONFIG_RT_USING_ADT_REF=y # # Sensors # -# CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set # CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set # CONFIG_PKG_USING_ADAFRUIT_MAX31855 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90614 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS1 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AHTX0 is not set @@ -1110,26 +1075,17 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_ARDUINO_SEEED_LSM6DS3 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HDC1000 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HM3301 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set # # Display # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set # CONFIG_PKG_USING_ARDUINO_U8G2 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set # CONFIG_PKG_USING_SEEED_TM1637 is not set # # Timing # # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set -# CONFIG_PKG_USING_ARDUINO_TICKER is not set -# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set # # Data Processing @@ -1153,17 +1109,10 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set # # Other # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set -# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set # # Signal IO @@ -1196,35 +1145,28 @@ CONFIG_RT_USING_UART1=y # CONFIG_RT_USING_UART2 is not set # CONFIG_RT_USING_UART3 is not set CONFIG_BSP_USING_SPI=y -# CONFIG_RT_USING_SPIM0 is not set +CONFIG_RT_USING_SPIM0=y # CONFIG_RT_USING_SPIM1 is not set -CONFIG_RT_USING_SPIM2=y +# CONFIG_RT_USING_SPIM2 is not set # CONFIG_RT_USING_SPIM3 is not set -CONFIG_BSP_USING_CAN=y -CONFIG_RT_USING_CANFD=y -CONFIG_RT_USING_FILTER=y -CONFIG_RT_USING_CAN0=y -CONFIG_RT_USING_CAN1=y +# CONFIG_BSP_USING_CAN is not set CONFIG_BSP_USING_GPIO=y -CONFIG_BSP_USING_QSPI=y -CONFIG_RT_USING_QSPI0=y -CONFIG_USING_QSPI_CHANNEL0=y -# CONFIG_USING_QSPI_CHANNEL1 is not set +# CONFIG_BSP_USING_QSPI is not set CONFIG_BSP_USING_ETH=y CONFIG_RT_LWIP_PBUF_POOL_BUFSIZE=1700 CONFIG_BSP_USING_PWM=y # CONFIG_RT_USING_PWM0 is not set # CONFIG_RT_USING_PWM1 is not set -# CONFIG_RT_USING_PWM2 is not set +CONFIG_RT_USING_PWM2=y # CONFIG_RT_USING_PWM3 is not set # CONFIG_RT_USING_PWM4 is not set # CONFIG_RT_USING_PWM5 is not set -CONFIG_RT_USING_PWM6=y +# CONFIG_RT_USING_PWM6 is not set # CONFIG_RT_USING_PWM7 is not set CONFIG_BSP_USING_I2C=y CONFIG_I2C_USE_MIO=y -# CONFIG_RT_USING_MIO0 is not set -# CONFIG_RT_USING_MIO1 is not set +CONFIG_RT_USING_MIO0=y +CONFIG_RT_USING_MIO1=y # CONFIG_RT_USING_MIO2 is not set # CONFIG_RT_USING_MIO3 is not set # CONFIG_RT_USING_MIO4 is not set @@ -1238,18 +1180,14 @@ CONFIG_I2C_USE_MIO=y # CONFIG_RT_USING_MIO12 is not set # CONFIG_RT_USING_MIO13 is not set # CONFIG_RT_USING_MIO14 is not set -CONFIG_RT_USING_MIO15=y -CONFIG_I2C_USE_CONTROLLER=y -CONFIG_RT_USING_I2C0=y -# CONFIG_RT_USING_I2C1 is not set -# CONFIG_RT_USING_I2C2 is not set -# CONFIG_RT_USING_I2C3 is not set -CONFIG_BSP_USING_SDIF=y -CONFIG_BSP_USING_SDCARD_FATFS=y -CONFIG_BSP_USING_SDCARD_PARTITION="sd0" -# CONFIG_USING_SDIF0 is not set -CONFIG_USING_SDIF1=y -# CONFIG_USING_EMMC is not set +# CONFIG_RT_USING_MIO15 is not set +# CONFIG_I2C_USE_CONTROLLER is not set +# CONFIG_BSP_USING_SDIF is not set +CONFIG_BSP_USING_DC=y +# CONFIG_RT_USING_DC_CHANNEL0 is not set +CONFIG_RT_USING_DC_CHANNEL1=y +# CONFIG_BSP_USING_XHCI is not set +# CONFIG_BSP_USING_PUSB2 is not set # # Board extended module Drivers @@ -1265,15 +1203,14 @@ CONFIG_USE_AARCH64_L1_TO_AARCH32=y # # Soc configuration # -# CONFIG_TARGET_PHYTIUMPI is not set +CONFIG_TARGET_PHYTIUMPI=y # CONFIG_TARGET_E2000Q is not set -CONFIG_TARGET_E2000D=y +# CONFIG_TARGET_E2000D is not set # CONFIG_TARGET_E2000S is not set # CONFIG_TARGET_FT2004 is not set # CONFIG_TARGET_D2000 is not set -CONFIG_SOC_NAME="e2000" -CONFIG_TARGET_TYPE_NAME="d" -CONFIG_SOC_CORE_NUM=2 +CONFIG_SOC_NAME="phytiumpi" +CONFIG_SOC_CORE_NUM=4 CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000 CONFIG_F32BIT_MEMORY_LENGTH=0x80000000 CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000 @@ -1287,22 +1224,21 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y # # Board Configuration # -CONFIG_E2000D_DEMO_BOARD=y -CONFIG_BOARD_NAME="demo" - -# -# IO mux configuration when board start up -# +CONFIG_BOARD_NAME="firefly" # CONFIG_USE_SPI_IOPAD is not set # CONFIG_USE_GPIO_IOPAD is not set # CONFIG_USE_CAN_IOPAD is not set # CONFIG_USE_QSPI_IOPAD is not set # CONFIG_USE_PWM_IOPAD is not set -# CONFIG_USE_ADC_IOPAD is not set # CONFIG_USE_MIO_IOPAD is not set # CONFIG_USE_TACHO_IOPAD is not set # CONFIG_USE_UART_IOPAD is not set # CONFIG_USE_THIRD_PARTY_IOPAD is not set +CONFIG_FIREFLY_DEMO_BOARD=y + +# +# IO mux configuration when board start up +# # CONFIG_CUS_DEMO_BOARD is not set # diff --git a/bsp/phytium/aarch32/configs/e2000d_demo_rtsmart b/bsp/phytium/aarch32/configs/e2000d_demo_rtsmart index 5fb526c92c..8fdd56e70a 100644 --- a/bsp/phytium/aarch32/configs/e2000d_demo_rtsmart +++ b/bsp/phytium/aarch32/configs/e2000d_demo_rtsmart @@ -439,6 +439,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_KAWAII_MQTT is not set # CONFIG_PKG_USING_BC28_MQTT is not set # CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_LIBMODBUS is not set # CONFIG_PKG_USING_FREEMODBUS is not set # CONFIG_PKG_USING_NANOPB is not set @@ -506,8 +507,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AGILE_FTP is not set # CONFIG_PKG_USING_EMBEDDEDPROTO is not set # CONFIG_PKG_USING_RT_LINK_HW is not set -# CONFIG_PKG_USING_RYANMQTT is not set -# CONFIG_PKG_USING_RYANW5500 is not set # CONFIG_PKG_USING_LORA_PKT_FWD is not set # CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set # CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set @@ -515,8 +514,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_SMALL_MODBUS is not set # CONFIG_PKG_USING_NET_SERVER is not set # CONFIG_PKG_USING_ZFTP is not set -# CONFIG_PKG_USING_WOL is not set -# CONFIG_PKG_USING_ZEPHYR_POLLING is not set # # security packages @@ -585,13 +582,18 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MP3PLAYER is not set # CONFIG_PKG_USING_TINYJPEG is not set # CONFIG_PKG_USING_UGUI is not set + +# +# PainterEngine: A cross-platform graphics application framework written in C language +# +# CONFIG_PKG_USING_PAINTERENGINE is not set +# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set # CONFIG_PKG_USING_MCURSES is not set # CONFIG_PKG_USING_TERMBOX is not set # CONFIG_PKG_USING_VT100 is not set # CONFIG_PKG_USING_QRCODE is not set # CONFIG_PKG_USING_GUIENGINE is not set # CONFIG_PKG_USING_PERSIMMON is not set -# CONFIG_PKG_USING_3GPP_AMRNB is not set # # tools packages @@ -601,7 +603,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_EASYLOGGER is not set # CONFIG_PKG_USING_SYSTEMVIEW is not set # CONFIG_PKG_USING_SEGGER_RTT is not set -# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set # CONFIG_PKG_USING_RDB is not set # CONFIG_PKG_USING_ULOG_EASYFLASH is not set # CONFIG_PKG_USING_LOGMGR is not set @@ -637,6 +638,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CBOX is not set # CONFIG_PKG_USING_SNOWFLAKE is not set # CONFIG_PKG_USING_HASH_MATCH is not set +# CONFIG_PKG_USING_FIRE_PID_CURVE is not set # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set # CONFIG_PKG_USING_VOFA_PLUS is not set @@ -709,8 +711,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_TFDB is not set # CONFIG_PKG_USING_QPC is not set # CONFIG_PKG_USING_AGILE_UPGRADE is not set -# CONFIG_PKG_USING_FLASH_BLOB is not set -# CONFIG_PKG_USING_MLIBC is not set # # peripheral libraries and drivers @@ -719,6 +719,7 @@ CONFIG_RT_USING_ADT_REF=y # # sensors drivers # +# CONFIG_PKG_USING_FINGERPRINT is not set # CONFIG_PKG_USING_LSM6DSM is not set # CONFIG_PKG_USING_LSM6DSL is not set # CONFIG_PKG_USING_LPS22HB is not set @@ -778,11 +779,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AD7746 is not set # CONFIG_PKG_USING_ADT74XX is not set # CONFIG_PKG_USING_MAX17048 is not set -# CONFIG_PKG_USING_AS7341 is not set -# CONFIG_PKG_USING_CW2015 is not set -# CONFIG_PKG_USING_ICM20608 is not set -# CONFIG_PKG_USING_PAJ7620 is not set -# CONFIG_PKG_USING_STHS34PF80 is not set # # touch drivers @@ -795,10 +791,11 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_FT5426 is not set # CONFIG_PKG_USING_FT6236 is not set # CONFIG_PKG_USING_XPT2046_TOUCH is not set -# CONFIG_PKG_USING_CST816X is not set # CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_AS7341 is not set # CONFIG_PKG_USING_STM32_SDIO is not set # CONFIG_PKG_USING_ESP_IDF is not set +# CONFIG_PKG_USING_ICM20608 is not set # CONFIG_PKG_USING_BUTTON is not set # CONFIG_PKG_USING_PCF8574 is not set # CONFIG_PKG_USING_SX12XX is not set @@ -808,6 +805,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_LKDGUI is not set # CONFIG_PKG_USING_NRF5X_SDK is not set # CONFIG_PKG_USING_NRFX is not set +# CONFIG_PKG_USING_WM_LIBRARIES is not set # # Kendryte SDK @@ -821,7 +819,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AT24CXX is not set # CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set # CONFIG_PKG_USING_PCA9685 is not set -# CONFIG_PKG_USING_ILI9341 is not set # CONFIG_PKG_USING_I2C_TOOLS is not set # CONFIG_PKG_USING_NRF24L01 is not set # CONFIG_PKG_USING_RPLIDAR is not set @@ -838,6 +835,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CAN_YMODEM is not set # CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set # CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_PAJ7620 is not set # CONFIG_PKG_USING_AGILE_CONSOLE is not set # CONFIG_PKG_USING_LD3320 is not set # CONFIG_PKG_USING_WK2124 is not set @@ -865,17 +863,14 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MISAKA_AT24CXX is not set # CONFIG_PKG_USING_MISAKA_RGB_BLING is not set # CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set +# CONFIG_PKG_USING_BL_MCU_SDK is not set # CONFIG_PKG_USING_SOFT_SERIAL is not set # CONFIG_PKG_USING_MB85RS16 is not set +# CONFIG_PKG_USING_CW2015 is not set # CONFIG_PKG_USING_RFM300 is not set # CONFIG_PKG_USING_IO_INPUT_FILTER is not set # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set # CONFIG_PKG_USING_LRF_NV7LIDAR is not set -# CONFIG_PKG_USING_AIP650 is not set -# CONFIG_PKG_USING_FINGERPRINT is not set -# CONFIG_PKG_USING_BT_ECB02C is not set -# CONFIG_PKG_USING_UAT is not set -# CONFIG_PKG_USING_SPI_TOOLS is not set # # AI packages @@ -890,15 +885,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_QUEST is not set # CONFIG_PKG_USING_NAXOS is not set -# -# Signal Processing and Control Algorithm Packages -# -# CONFIG_PKG_USING_FIRE_PID_CURVE is not set -# CONFIG_PKG_USING_QPID is not set -# CONFIG_PKG_USING_UKAL is not set -# CONFIG_PKG_USING_DIGITALCTRL is not set -# CONFIG_PKG_USING_KISSFFT is not set - # # miscellaneous packages # @@ -928,7 +914,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_TETRIS is not set # CONFIG_PKG_USING_DONUT is not set # CONFIG_PKG_USING_COWSAY is not set -# CONFIG_PKG_USING_MORSE is not set # CONFIG_PKG_USING_LIBCSV is not set # CONFIG_PKG_USING_OPTPARSE is not set # CONFIG_PKG_USING_FASTLZ is not set @@ -944,12 +929,14 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set # CONFIG_PKG_USING_UPACKER is not set # CONFIG_PKG_USING_UPARAM is not set # CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_VI is not set # CONFIG_PKG_USING_KI is not set # CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_UKAL is not set # CONFIG_PKG_USING_CRCLIB is not set # CONFIG_PKG_USING_LWGPS is not set # CONFIG_PKG_USING_STATE_MACHINE is not set @@ -960,7 +947,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_SLCAN2RTT is not set # CONFIG_PKG_USING_SOEM is not set # CONFIG_PKG_USING_QPARAM is not set -# CONFIG_PKG_USING_CorevMCU_CLI is not set # # Arduino libraries @@ -968,9 +954,8 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_RTDUINO is not set # -# Projects and Demos +# Projects # -# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set # CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set # CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set # CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set @@ -978,17 +963,13 @@ CONFIG_RT_USING_ADT_REF=y # # Sensors # -# CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set # CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set # CONFIG_PKG_USING_ADAFRUIT_MAX31855 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90614 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS1 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AHTX0 is not set @@ -1110,26 +1091,17 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_ARDUINO_SEEED_LSM6DS3 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HDC1000 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HM3301 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set # # Display # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set # CONFIG_PKG_USING_ARDUINO_U8G2 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set # CONFIG_PKG_USING_SEEED_TM1637 is not set # # Timing # # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set -# CONFIG_PKG_USING_ARDUINO_TICKER is not set -# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set # # Data Processing @@ -1153,17 +1125,10 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set # # Other # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set -# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set # # Signal IO @@ -1250,6 +1215,11 @@ CONFIG_BSP_USING_SDCARD_PARTITION="sd0" # CONFIG_USING_SDIF0 is not set CONFIG_USING_SDIF1=y # CONFIG_USING_EMMC is not set +CONFIG_BSP_USING_DC=y +# CONFIG_RT_USING_DC_CHANNEL0 is not set +CONFIG_RT_USING_DC_CHANNEL1=y +# CONFIG_BSP_USING_XHCI is not set +# CONFIG_BSP_USING_PUSB2 is not set # # Board extended module Drivers diff --git a/bsp/phytium/aarch32/configs/e2000d_demo_rtsmart.h b/bsp/phytium/aarch32/configs/e2000d_demo_rtsmart.h index b3dd703e38..f71c5cbf19 100644 --- a/bsp/phytium/aarch32/configs/e2000d_demo_rtsmart.h +++ b/bsp/phytium/aarch32/configs/e2000d_demo_rtsmart.h @@ -308,6 +308,9 @@ /* u8g2: a monochrome graphic library */ +/* PainterEngine: A cross-platform graphics application framework written in C language */ + + /* tools packages */ @@ -339,9 +342,6 @@ /* AI packages */ -/* Signal Processing and Control Algorithm Packages */ - - /* miscellaneous packages */ /* project laboratory */ @@ -355,7 +355,7 @@ /* Arduino libraries */ -/* Projects and Demos */ +/* Projects */ /* Sensors */ @@ -380,7 +380,6 @@ /* Other */ - /* Signal IO */ @@ -419,6 +418,8 @@ #define BSP_USING_SDCARD_FATFS #define BSP_USING_SDCARD_PARTITION "sd0" #define USING_SDIF1 +#define BSP_USING_DC +#define RT_USING_DC_CHANNEL1 /* Board extended module Drivers */ diff --git a/bsp/phytium/aarch32/configs/e2000d_demo_rtthread b/bsp/phytium/aarch32/configs/e2000d_demo_rtthread index cef10da0c5..792fefd9b3 100644 --- a/bsp/phytium/aarch32/configs/e2000d_demo_rtthread +++ b/bsp/phytium/aarch32/configs/e2000d_demo_rtthread @@ -423,6 +423,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_KAWAII_MQTT is not set # CONFIG_PKG_USING_BC28_MQTT is not set # CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_LIBMODBUS is not set # CONFIG_PKG_USING_FREEMODBUS is not set # CONFIG_PKG_USING_NANOPB is not set @@ -490,8 +491,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AGILE_FTP is not set # CONFIG_PKG_USING_EMBEDDEDPROTO is not set # CONFIG_PKG_USING_RT_LINK_HW is not set -# CONFIG_PKG_USING_RYANMQTT is not set -# CONFIG_PKG_USING_RYANW5500 is not set # CONFIG_PKG_USING_LORA_PKT_FWD is not set # CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set # CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set @@ -499,8 +498,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_SMALL_MODBUS is not set # CONFIG_PKG_USING_NET_SERVER is not set # CONFIG_PKG_USING_ZFTP is not set -# CONFIG_PKG_USING_WOL is not set -# CONFIG_PKG_USING_ZEPHYR_POLLING is not set # # security packages @@ -569,13 +566,18 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MP3PLAYER is not set # CONFIG_PKG_USING_TINYJPEG is not set # CONFIG_PKG_USING_UGUI is not set + +# +# PainterEngine: A cross-platform graphics application framework written in C language +# +# CONFIG_PKG_USING_PAINTERENGINE is not set +# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set # CONFIG_PKG_USING_MCURSES is not set # CONFIG_PKG_USING_TERMBOX is not set # CONFIG_PKG_USING_VT100 is not set # CONFIG_PKG_USING_QRCODE is not set # CONFIG_PKG_USING_GUIENGINE is not set # CONFIG_PKG_USING_PERSIMMON is not set -# CONFIG_PKG_USING_3GPP_AMRNB is not set # # tools packages @@ -585,7 +587,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_EASYLOGGER is not set # CONFIG_PKG_USING_SYSTEMVIEW is not set # CONFIG_PKG_USING_SEGGER_RTT is not set -# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set # CONFIG_PKG_USING_RDB is not set # CONFIG_PKG_USING_ULOG_EASYFLASH is not set # CONFIG_PKG_USING_LOGMGR is not set @@ -621,6 +622,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CBOX is not set # CONFIG_PKG_USING_SNOWFLAKE is not set # CONFIG_PKG_USING_HASH_MATCH is not set +# CONFIG_PKG_USING_FIRE_PID_CURVE is not set # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set # CONFIG_PKG_USING_VOFA_PLUS is not set @@ -693,8 +695,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_TFDB is not set # CONFIG_PKG_USING_QPC is not set # CONFIG_PKG_USING_AGILE_UPGRADE is not set -# CONFIG_PKG_USING_FLASH_BLOB is not set -# CONFIG_PKG_USING_MLIBC is not set # # peripheral libraries and drivers @@ -703,6 +703,7 @@ CONFIG_RT_USING_ADT_REF=y # # sensors drivers # +# CONFIG_PKG_USING_FINGERPRINT is not set # CONFIG_PKG_USING_LSM6DSM is not set # CONFIG_PKG_USING_LSM6DSL is not set # CONFIG_PKG_USING_LPS22HB is not set @@ -762,11 +763,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AD7746 is not set # CONFIG_PKG_USING_ADT74XX is not set # CONFIG_PKG_USING_MAX17048 is not set -# CONFIG_PKG_USING_AS7341 is not set -# CONFIG_PKG_USING_CW2015 is not set -# CONFIG_PKG_USING_ICM20608 is not set -# CONFIG_PKG_USING_PAJ7620 is not set -# CONFIG_PKG_USING_STHS34PF80 is not set # # touch drivers @@ -779,10 +775,11 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_FT5426 is not set # CONFIG_PKG_USING_FT6236 is not set # CONFIG_PKG_USING_XPT2046_TOUCH is not set -# CONFIG_PKG_USING_CST816X is not set # CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_AS7341 is not set # CONFIG_PKG_USING_STM32_SDIO is not set # CONFIG_PKG_USING_ESP_IDF is not set +# CONFIG_PKG_USING_ICM20608 is not set # CONFIG_PKG_USING_BUTTON is not set # CONFIG_PKG_USING_PCF8574 is not set # CONFIG_PKG_USING_SX12XX is not set @@ -792,6 +789,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_LKDGUI is not set # CONFIG_PKG_USING_NRF5X_SDK is not set # CONFIG_PKG_USING_NRFX is not set +# CONFIG_PKG_USING_WM_LIBRARIES is not set # # Kendryte SDK @@ -805,7 +803,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AT24CXX is not set # CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set # CONFIG_PKG_USING_PCA9685 is not set -# CONFIG_PKG_USING_ILI9341 is not set # CONFIG_PKG_USING_I2C_TOOLS is not set # CONFIG_PKG_USING_NRF24L01 is not set # CONFIG_PKG_USING_RPLIDAR is not set @@ -822,6 +819,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CAN_YMODEM is not set # CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set # CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_PAJ7620 is not set # CONFIG_PKG_USING_AGILE_CONSOLE is not set # CONFIG_PKG_USING_LD3320 is not set # CONFIG_PKG_USING_WK2124 is not set @@ -849,17 +847,14 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MISAKA_AT24CXX is not set # CONFIG_PKG_USING_MISAKA_RGB_BLING is not set # CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set +# CONFIG_PKG_USING_BL_MCU_SDK is not set # CONFIG_PKG_USING_SOFT_SERIAL is not set # CONFIG_PKG_USING_MB85RS16 is not set +# CONFIG_PKG_USING_CW2015 is not set # CONFIG_PKG_USING_RFM300 is not set # CONFIG_PKG_USING_IO_INPUT_FILTER is not set # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set # CONFIG_PKG_USING_LRF_NV7LIDAR is not set -# CONFIG_PKG_USING_AIP650 is not set -# CONFIG_PKG_USING_FINGERPRINT is not set -# CONFIG_PKG_USING_BT_ECB02C is not set -# CONFIG_PKG_USING_UAT is not set -# CONFIG_PKG_USING_SPI_TOOLS is not set # # AI packages @@ -874,15 +869,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_QUEST is not set # CONFIG_PKG_USING_NAXOS is not set -# -# Signal Processing and Control Algorithm Packages -# -# CONFIG_PKG_USING_FIRE_PID_CURVE is not set -# CONFIG_PKG_USING_QPID is not set -# CONFIG_PKG_USING_UKAL is not set -# CONFIG_PKG_USING_DIGITALCTRL is not set -# CONFIG_PKG_USING_KISSFFT is not set - # # miscellaneous packages # @@ -912,7 +898,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_TETRIS is not set # CONFIG_PKG_USING_DONUT is not set # CONFIG_PKG_USING_COWSAY is not set -# CONFIG_PKG_USING_MORSE is not set # CONFIG_PKG_USING_LIBCSV is not set # CONFIG_PKG_USING_OPTPARSE is not set # CONFIG_PKG_USING_FASTLZ is not set @@ -928,12 +913,14 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set # CONFIG_PKG_USING_UPACKER is not set # CONFIG_PKG_USING_UPARAM is not set # CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_VI is not set # CONFIG_PKG_USING_KI is not set # CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_UKAL is not set # CONFIG_PKG_USING_CRCLIB is not set # CONFIG_PKG_USING_LWGPS is not set # CONFIG_PKG_USING_STATE_MACHINE is not set @@ -944,7 +931,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_SLCAN2RTT is not set # CONFIG_PKG_USING_SOEM is not set # CONFIG_PKG_USING_QPARAM is not set -# CONFIG_PKG_USING_CorevMCU_CLI is not set # # Arduino libraries @@ -952,9 +938,8 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_RTDUINO is not set # -# Projects and Demos +# Projects # -# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set # CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set # CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set # CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set @@ -962,17 +947,13 @@ CONFIG_RT_USING_ADT_REF=y # # Sensors # -# CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set # CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set # CONFIG_PKG_USING_ADAFRUIT_MAX31855 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90614 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS1 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AHTX0 is not set @@ -1094,26 +1075,17 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_ARDUINO_SEEED_LSM6DS3 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HDC1000 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HM3301 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set # # Display # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set # CONFIG_PKG_USING_ARDUINO_U8G2 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set # CONFIG_PKG_USING_SEEED_TM1637 is not set # # Timing # # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set -# CONFIG_PKG_USING_ARDUINO_TICKER is not set -# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set # # Data Processing @@ -1137,17 +1109,10 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set # # Other # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set -# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set # # Signal IO @@ -1234,6 +1199,11 @@ CONFIG_BSP_USING_SDCARD_PARTITION="sd0" # CONFIG_USING_SDIF0 is not set CONFIG_USING_SDIF1=y # CONFIG_USING_EMMC is not set +CONFIG_BSP_USING_DC=y +# CONFIG_RT_USING_DC_CHANNEL0 is not set +CONFIG_RT_USING_DC_CHANNEL1=y +# CONFIG_BSP_USING_XHCI is not set +# CONFIG_BSP_USING_PUSB2 is not set # # Board extended module Drivers diff --git a/bsp/phytium/aarch32/configs/e2000d_demo_rtthread.h b/bsp/phytium/aarch32/configs/e2000d_demo_rtthread.h index a0f156141a..97c73ad442 100644 --- a/bsp/phytium/aarch32/configs/e2000d_demo_rtthread.h +++ b/bsp/phytium/aarch32/configs/e2000d_demo_rtthread.h @@ -297,6 +297,9 @@ /* u8g2: a monochrome graphic library */ +/* PainterEngine: A cross-platform graphics application framework written in C language */ + + /* tools packages */ @@ -328,9 +331,6 @@ /* AI packages */ -/* Signal Processing and Control Algorithm Packages */ - - /* miscellaneous packages */ /* project laboratory */ @@ -344,7 +344,7 @@ /* Arduino libraries */ -/* Projects and Demos */ +/* Projects */ /* Sensors */ @@ -369,7 +369,6 @@ /* Other */ - /* Signal IO */ @@ -408,6 +407,8 @@ #define BSP_USING_SDCARD_FATFS #define BSP_USING_SDCARD_PARTITION "sd0" #define USING_SDIF1 +#define BSP_USING_DC +#define RT_USING_DC_CHANNEL1 /* Board extended module Drivers */ diff --git a/bsp/phytium/aarch32/configs/e2000q_demo_rtsmart b/bsp/phytium/aarch32/configs/e2000q_demo_rtsmart index 82a67186fb..90688cbc7b 100644 --- a/bsp/phytium/aarch32/configs/e2000q_demo_rtsmart +++ b/bsp/phytium/aarch32/configs/e2000q_demo_rtsmart @@ -439,6 +439,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_KAWAII_MQTT is not set # CONFIG_PKG_USING_BC28_MQTT is not set # CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_LIBMODBUS is not set # CONFIG_PKG_USING_FREEMODBUS is not set # CONFIG_PKG_USING_NANOPB is not set @@ -506,8 +507,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AGILE_FTP is not set # CONFIG_PKG_USING_EMBEDDEDPROTO is not set # CONFIG_PKG_USING_RT_LINK_HW is not set -# CONFIG_PKG_USING_RYANMQTT is not set -# CONFIG_PKG_USING_RYANW5500 is not set # CONFIG_PKG_USING_LORA_PKT_FWD is not set # CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set # CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set @@ -515,8 +514,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_SMALL_MODBUS is not set # CONFIG_PKG_USING_NET_SERVER is not set # CONFIG_PKG_USING_ZFTP is not set -# CONFIG_PKG_USING_WOL is not set -# CONFIG_PKG_USING_ZEPHYR_POLLING is not set # # security packages @@ -585,13 +582,18 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MP3PLAYER is not set # CONFIG_PKG_USING_TINYJPEG is not set # CONFIG_PKG_USING_UGUI is not set + +# +# PainterEngine: A cross-platform graphics application framework written in C language +# +# CONFIG_PKG_USING_PAINTERENGINE is not set +# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set # CONFIG_PKG_USING_MCURSES is not set # CONFIG_PKG_USING_TERMBOX is not set # CONFIG_PKG_USING_VT100 is not set # CONFIG_PKG_USING_QRCODE is not set # CONFIG_PKG_USING_GUIENGINE is not set # CONFIG_PKG_USING_PERSIMMON is not set -# CONFIG_PKG_USING_3GPP_AMRNB is not set # # tools packages @@ -601,7 +603,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_EASYLOGGER is not set # CONFIG_PKG_USING_SYSTEMVIEW is not set # CONFIG_PKG_USING_SEGGER_RTT is not set -# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set # CONFIG_PKG_USING_RDB is not set # CONFIG_PKG_USING_ULOG_EASYFLASH is not set # CONFIG_PKG_USING_LOGMGR is not set @@ -637,6 +638,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CBOX is not set # CONFIG_PKG_USING_SNOWFLAKE is not set # CONFIG_PKG_USING_HASH_MATCH is not set +# CONFIG_PKG_USING_FIRE_PID_CURVE is not set # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set # CONFIG_PKG_USING_VOFA_PLUS is not set @@ -709,8 +711,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_TFDB is not set # CONFIG_PKG_USING_QPC is not set # CONFIG_PKG_USING_AGILE_UPGRADE is not set -# CONFIG_PKG_USING_FLASH_BLOB is not set -# CONFIG_PKG_USING_MLIBC is not set # # peripheral libraries and drivers @@ -719,6 +719,7 @@ CONFIG_RT_USING_ADT_REF=y # # sensors drivers # +# CONFIG_PKG_USING_FINGERPRINT is not set # CONFIG_PKG_USING_LSM6DSM is not set # CONFIG_PKG_USING_LSM6DSL is not set # CONFIG_PKG_USING_LPS22HB is not set @@ -778,11 +779,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AD7746 is not set # CONFIG_PKG_USING_ADT74XX is not set # CONFIG_PKG_USING_MAX17048 is not set -# CONFIG_PKG_USING_AS7341 is not set -# CONFIG_PKG_USING_CW2015 is not set -# CONFIG_PKG_USING_ICM20608 is not set -# CONFIG_PKG_USING_PAJ7620 is not set -# CONFIG_PKG_USING_STHS34PF80 is not set # # touch drivers @@ -795,10 +791,11 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_FT5426 is not set # CONFIG_PKG_USING_FT6236 is not set # CONFIG_PKG_USING_XPT2046_TOUCH is not set -# CONFIG_PKG_USING_CST816X is not set # CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_AS7341 is not set # CONFIG_PKG_USING_STM32_SDIO is not set # CONFIG_PKG_USING_ESP_IDF is not set +# CONFIG_PKG_USING_ICM20608 is not set # CONFIG_PKG_USING_BUTTON is not set # CONFIG_PKG_USING_PCF8574 is not set # CONFIG_PKG_USING_SX12XX is not set @@ -808,6 +805,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_LKDGUI is not set # CONFIG_PKG_USING_NRF5X_SDK is not set # CONFIG_PKG_USING_NRFX is not set +# CONFIG_PKG_USING_WM_LIBRARIES is not set # # Kendryte SDK @@ -821,7 +819,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AT24CXX is not set # CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set # CONFIG_PKG_USING_PCA9685 is not set -# CONFIG_PKG_USING_ILI9341 is not set # CONFIG_PKG_USING_I2C_TOOLS is not set # CONFIG_PKG_USING_NRF24L01 is not set # CONFIG_PKG_USING_RPLIDAR is not set @@ -838,6 +835,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CAN_YMODEM is not set # CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set # CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_PAJ7620 is not set # CONFIG_PKG_USING_AGILE_CONSOLE is not set # CONFIG_PKG_USING_LD3320 is not set # CONFIG_PKG_USING_WK2124 is not set @@ -865,17 +863,14 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MISAKA_AT24CXX is not set # CONFIG_PKG_USING_MISAKA_RGB_BLING is not set # CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set +# CONFIG_PKG_USING_BL_MCU_SDK is not set # CONFIG_PKG_USING_SOFT_SERIAL is not set # CONFIG_PKG_USING_MB85RS16 is not set +# CONFIG_PKG_USING_CW2015 is not set # CONFIG_PKG_USING_RFM300 is not set # CONFIG_PKG_USING_IO_INPUT_FILTER is not set # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set # CONFIG_PKG_USING_LRF_NV7LIDAR is not set -# CONFIG_PKG_USING_AIP650 is not set -# CONFIG_PKG_USING_FINGERPRINT is not set -# CONFIG_PKG_USING_BT_ECB02C is not set -# CONFIG_PKG_USING_UAT is not set -# CONFIG_PKG_USING_SPI_TOOLS is not set # # AI packages @@ -890,15 +885,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_QUEST is not set # CONFIG_PKG_USING_NAXOS is not set -# -# Signal Processing and Control Algorithm Packages -# -# CONFIG_PKG_USING_FIRE_PID_CURVE is not set -# CONFIG_PKG_USING_QPID is not set -# CONFIG_PKG_USING_UKAL is not set -# CONFIG_PKG_USING_DIGITALCTRL is not set -# CONFIG_PKG_USING_KISSFFT is not set - # # miscellaneous packages # @@ -928,7 +914,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_TETRIS is not set # CONFIG_PKG_USING_DONUT is not set # CONFIG_PKG_USING_COWSAY is not set -# CONFIG_PKG_USING_MORSE is not set # CONFIG_PKG_USING_LIBCSV is not set # CONFIG_PKG_USING_OPTPARSE is not set # CONFIG_PKG_USING_FASTLZ is not set @@ -944,12 +929,14 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set # CONFIG_PKG_USING_UPACKER is not set # CONFIG_PKG_USING_UPARAM is not set # CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_VI is not set # CONFIG_PKG_USING_KI is not set # CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_UKAL is not set # CONFIG_PKG_USING_CRCLIB is not set # CONFIG_PKG_USING_LWGPS is not set # CONFIG_PKG_USING_STATE_MACHINE is not set @@ -960,7 +947,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_SLCAN2RTT is not set # CONFIG_PKG_USING_SOEM is not set # CONFIG_PKG_USING_QPARAM is not set -# CONFIG_PKG_USING_CorevMCU_CLI is not set # # Arduino libraries @@ -968,9 +954,8 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_RTDUINO is not set # -# Projects and Demos +# Projects # -# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set # CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set # CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set # CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set @@ -978,17 +963,13 @@ CONFIG_RT_USING_ADT_REF=y # # Sensors # -# CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set # CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set # CONFIG_PKG_USING_ADAFRUIT_MAX31855 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90614 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS1 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AHTX0 is not set @@ -1110,26 +1091,17 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_ARDUINO_SEEED_LSM6DS3 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HDC1000 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HM3301 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set # # Display # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set # CONFIG_PKG_USING_ARDUINO_U8G2 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set # CONFIG_PKG_USING_SEEED_TM1637 is not set # # Timing # # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set -# CONFIG_PKG_USING_ARDUINO_TICKER is not set -# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set # # Data Processing @@ -1153,17 +1125,10 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set # # Other # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set -# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set # # Signal IO @@ -1246,6 +1211,11 @@ CONFIG_BSP_USING_SDCARD_PARTITION="sd0" # CONFIG_USING_SDIF0 is not set CONFIG_USING_SDIF1=y # CONFIG_USING_EMMC is not set +CONFIG_BSP_USING_DC=y +# CONFIG_RT_USING_DC_CHANNEL0 is not set +CONFIG_RT_USING_DC_CHANNEL1=y +# CONFIG_BSP_USING_XHCI is not set +# CONFIG_BSP_USING_PUSB2 is not set # # Board extended module Drivers diff --git a/bsp/phytium/aarch32/configs/e2000q_demo_rtsmart.h b/bsp/phytium/aarch32/configs/e2000q_demo_rtsmart.h index f25be84f4b..f975c268cc 100644 --- a/bsp/phytium/aarch32/configs/e2000q_demo_rtsmart.h +++ b/bsp/phytium/aarch32/configs/e2000q_demo_rtsmart.h @@ -308,6 +308,9 @@ /* u8g2: a monochrome graphic library */ +/* PainterEngine: A cross-platform graphics application framework written in C language */ + + /* tools packages */ @@ -339,9 +342,6 @@ /* AI packages */ -/* Signal Processing and Control Algorithm Packages */ - - /* miscellaneous packages */ /* project laboratory */ @@ -355,7 +355,7 @@ /* Arduino libraries */ -/* Projects and Demos */ +/* Projects */ /* Sensors */ @@ -380,7 +380,6 @@ /* Other */ - /* Signal IO */ @@ -416,6 +415,8 @@ #define BSP_USING_SDCARD_FATFS #define BSP_USING_SDCARD_PARTITION "sd0" #define USING_SDIF1 +#define BSP_USING_DC +#define RT_USING_DC_CHANNEL1 /* Board extended module Drivers */ diff --git a/bsp/phytium/aarch32/configs/e2000q_demo_rtthread b/bsp/phytium/aarch32/configs/e2000q_demo_rtthread index 2c36652b6f..d24cb17920 100644 --- a/bsp/phytium/aarch32/configs/e2000q_demo_rtthread +++ b/bsp/phytium/aarch32/configs/e2000q_demo_rtthread @@ -423,6 +423,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_KAWAII_MQTT is not set # CONFIG_PKG_USING_BC28_MQTT is not set # CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_LIBMODBUS is not set # CONFIG_PKG_USING_FREEMODBUS is not set # CONFIG_PKG_USING_NANOPB is not set @@ -490,8 +491,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AGILE_FTP is not set # CONFIG_PKG_USING_EMBEDDEDPROTO is not set # CONFIG_PKG_USING_RT_LINK_HW is not set -# CONFIG_PKG_USING_RYANMQTT is not set -# CONFIG_PKG_USING_RYANW5500 is not set # CONFIG_PKG_USING_LORA_PKT_FWD is not set # CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set # CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set @@ -499,8 +498,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_SMALL_MODBUS is not set # CONFIG_PKG_USING_NET_SERVER is not set # CONFIG_PKG_USING_ZFTP is not set -# CONFIG_PKG_USING_WOL is not set -# CONFIG_PKG_USING_ZEPHYR_POLLING is not set # # security packages @@ -569,13 +566,18 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MP3PLAYER is not set # CONFIG_PKG_USING_TINYJPEG is not set # CONFIG_PKG_USING_UGUI is not set + +# +# PainterEngine: A cross-platform graphics application framework written in C language +# +# CONFIG_PKG_USING_PAINTERENGINE is not set +# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set # CONFIG_PKG_USING_MCURSES is not set # CONFIG_PKG_USING_TERMBOX is not set # CONFIG_PKG_USING_VT100 is not set # CONFIG_PKG_USING_QRCODE is not set # CONFIG_PKG_USING_GUIENGINE is not set # CONFIG_PKG_USING_PERSIMMON is not set -# CONFIG_PKG_USING_3GPP_AMRNB is not set # # tools packages @@ -585,7 +587,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_EASYLOGGER is not set # CONFIG_PKG_USING_SYSTEMVIEW is not set # CONFIG_PKG_USING_SEGGER_RTT is not set -# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set # CONFIG_PKG_USING_RDB is not set # CONFIG_PKG_USING_ULOG_EASYFLASH is not set # CONFIG_PKG_USING_LOGMGR is not set @@ -621,6 +622,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CBOX is not set # CONFIG_PKG_USING_SNOWFLAKE is not set # CONFIG_PKG_USING_HASH_MATCH is not set +# CONFIG_PKG_USING_FIRE_PID_CURVE is not set # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set # CONFIG_PKG_USING_VOFA_PLUS is not set @@ -693,8 +695,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_TFDB is not set # CONFIG_PKG_USING_QPC is not set # CONFIG_PKG_USING_AGILE_UPGRADE is not set -# CONFIG_PKG_USING_FLASH_BLOB is not set -# CONFIG_PKG_USING_MLIBC is not set # # peripheral libraries and drivers @@ -703,6 +703,7 @@ CONFIG_RT_USING_ADT_REF=y # # sensors drivers # +# CONFIG_PKG_USING_FINGERPRINT is not set # CONFIG_PKG_USING_LSM6DSM is not set # CONFIG_PKG_USING_LSM6DSL is not set # CONFIG_PKG_USING_LPS22HB is not set @@ -762,11 +763,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AD7746 is not set # CONFIG_PKG_USING_ADT74XX is not set # CONFIG_PKG_USING_MAX17048 is not set -# CONFIG_PKG_USING_AS7341 is not set -# CONFIG_PKG_USING_CW2015 is not set -# CONFIG_PKG_USING_ICM20608 is not set -# CONFIG_PKG_USING_PAJ7620 is not set -# CONFIG_PKG_USING_STHS34PF80 is not set # # touch drivers @@ -779,10 +775,11 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_FT5426 is not set # CONFIG_PKG_USING_FT6236 is not set # CONFIG_PKG_USING_XPT2046_TOUCH is not set -# CONFIG_PKG_USING_CST816X is not set # CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_AS7341 is not set # CONFIG_PKG_USING_STM32_SDIO is not set # CONFIG_PKG_USING_ESP_IDF is not set +# CONFIG_PKG_USING_ICM20608 is not set # CONFIG_PKG_USING_BUTTON is not set # CONFIG_PKG_USING_PCF8574 is not set # CONFIG_PKG_USING_SX12XX is not set @@ -792,6 +789,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_LKDGUI is not set # CONFIG_PKG_USING_NRF5X_SDK is not set # CONFIG_PKG_USING_NRFX is not set +# CONFIG_PKG_USING_WM_LIBRARIES is not set # # Kendryte SDK @@ -805,7 +803,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AT24CXX is not set # CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set # CONFIG_PKG_USING_PCA9685 is not set -# CONFIG_PKG_USING_ILI9341 is not set # CONFIG_PKG_USING_I2C_TOOLS is not set # CONFIG_PKG_USING_NRF24L01 is not set # CONFIG_PKG_USING_RPLIDAR is not set @@ -822,6 +819,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CAN_YMODEM is not set # CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set # CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_PAJ7620 is not set # CONFIG_PKG_USING_AGILE_CONSOLE is not set # CONFIG_PKG_USING_LD3320 is not set # CONFIG_PKG_USING_WK2124 is not set @@ -849,17 +847,14 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MISAKA_AT24CXX is not set # CONFIG_PKG_USING_MISAKA_RGB_BLING is not set # CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set +# CONFIG_PKG_USING_BL_MCU_SDK is not set # CONFIG_PKG_USING_SOFT_SERIAL is not set # CONFIG_PKG_USING_MB85RS16 is not set +# CONFIG_PKG_USING_CW2015 is not set # CONFIG_PKG_USING_RFM300 is not set # CONFIG_PKG_USING_IO_INPUT_FILTER is not set # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set # CONFIG_PKG_USING_LRF_NV7LIDAR is not set -# CONFIG_PKG_USING_AIP650 is not set -# CONFIG_PKG_USING_FINGERPRINT is not set -# CONFIG_PKG_USING_BT_ECB02C is not set -# CONFIG_PKG_USING_UAT is not set -# CONFIG_PKG_USING_SPI_TOOLS is not set # # AI packages @@ -874,15 +869,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_QUEST is not set # CONFIG_PKG_USING_NAXOS is not set -# -# Signal Processing and Control Algorithm Packages -# -# CONFIG_PKG_USING_FIRE_PID_CURVE is not set -# CONFIG_PKG_USING_QPID is not set -# CONFIG_PKG_USING_UKAL is not set -# CONFIG_PKG_USING_DIGITALCTRL is not set -# CONFIG_PKG_USING_KISSFFT is not set - # # miscellaneous packages # @@ -912,7 +898,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_TETRIS is not set # CONFIG_PKG_USING_DONUT is not set # CONFIG_PKG_USING_COWSAY is not set -# CONFIG_PKG_USING_MORSE is not set # CONFIG_PKG_USING_LIBCSV is not set # CONFIG_PKG_USING_OPTPARSE is not set # CONFIG_PKG_USING_FASTLZ is not set @@ -928,12 +913,14 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set # CONFIG_PKG_USING_UPACKER is not set # CONFIG_PKG_USING_UPARAM is not set # CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_VI is not set # CONFIG_PKG_USING_KI is not set # CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_UKAL is not set # CONFIG_PKG_USING_CRCLIB is not set # CONFIG_PKG_USING_LWGPS is not set # CONFIG_PKG_USING_STATE_MACHINE is not set @@ -944,7 +931,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_SLCAN2RTT is not set # CONFIG_PKG_USING_SOEM is not set # CONFIG_PKG_USING_QPARAM is not set -# CONFIG_PKG_USING_CorevMCU_CLI is not set # # Arduino libraries @@ -952,9 +938,8 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_RTDUINO is not set # -# Projects and Demos +# Projects # -# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set # CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set # CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set # CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set @@ -962,17 +947,13 @@ CONFIG_RT_USING_ADT_REF=y # # Sensors # -# CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set # CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set # CONFIG_PKG_USING_ADAFRUIT_MAX31855 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90614 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS1 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AHTX0 is not set @@ -1094,26 +1075,17 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_ARDUINO_SEEED_LSM6DS3 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HDC1000 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HM3301 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set # # Display # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set # CONFIG_PKG_USING_ARDUINO_U8G2 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set # CONFIG_PKG_USING_SEEED_TM1637 is not set # # Timing # # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set -# CONFIG_PKG_USING_ARDUINO_TICKER is not set -# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set # # Data Processing @@ -1137,17 +1109,10 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set # # Other # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set -# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set # # Signal IO @@ -1230,6 +1195,11 @@ CONFIG_BSP_USING_SDCARD_PARTITION="sd0" # CONFIG_USING_SDIF0 is not set CONFIG_USING_SDIF1=y # CONFIG_USING_EMMC is not set +CONFIG_BSP_USING_DC=y +# CONFIG_RT_USING_DC_CHANNEL0 is not set +CONFIG_RT_USING_DC_CHANNEL1=y +# CONFIG_BSP_USING_XHCI is not set +# CONFIG_BSP_USING_PUSB2 is not set # # Board extended module Drivers diff --git a/bsp/phytium/aarch32/configs/e2000q_demo_rtthread.h b/bsp/phytium/aarch32/configs/e2000q_demo_rtthread.h index e98ba78016..788ab5c7bf 100644 --- a/bsp/phytium/aarch32/configs/e2000q_demo_rtthread.h +++ b/bsp/phytium/aarch32/configs/e2000q_demo_rtthread.h @@ -297,6 +297,9 @@ /* u8g2: a monochrome graphic library */ +/* PainterEngine: A cross-platform graphics application framework written in C language */ + + /* tools packages */ @@ -328,9 +331,6 @@ /* AI packages */ -/* Signal Processing and Control Algorithm Packages */ - - /* miscellaneous packages */ /* project laboratory */ @@ -344,7 +344,7 @@ /* Arduino libraries */ -/* Projects and Demos */ +/* Projects */ /* Sensors */ @@ -369,7 +369,6 @@ /* Other */ - /* Signal IO */ @@ -405,6 +404,8 @@ #define BSP_USING_SDCARD_FATFS #define BSP_USING_SDCARD_PARTITION "sd0" #define USING_SDIF1 +#define BSP_USING_DC +#define RT_USING_DC_CHANNEL1 /* Board extended module Drivers */ diff --git a/bsp/phytium/aarch32/configs/phytium_pi_rtsmart b/bsp/phytium/aarch32/configs/phytium_pi_rtsmart index d1602f0386..93c77ae976 100644 --- a/bsp/phytium/aarch32/configs/phytium_pi_rtsmart +++ b/bsp/phytium/aarch32/configs/phytium_pi_rtsmart @@ -439,6 +439,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_KAWAII_MQTT is not set # CONFIG_PKG_USING_BC28_MQTT is not set # CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_LIBMODBUS is not set # CONFIG_PKG_USING_FREEMODBUS is not set # CONFIG_PKG_USING_NANOPB is not set @@ -506,8 +507,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AGILE_FTP is not set # CONFIG_PKG_USING_EMBEDDEDPROTO is not set # CONFIG_PKG_USING_RT_LINK_HW is not set -# CONFIG_PKG_USING_RYANMQTT is not set -# CONFIG_PKG_USING_RYANW5500 is not set # CONFIG_PKG_USING_LORA_PKT_FWD is not set # CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set # CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set @@ -515,8 +514,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_SMALL_MODBUS is not set # CONFIG_PKG_USING_NET_SERVER is not set # CONFIG_PKG_USING_ZFTP is not set -# CONFIG_PKG_USING_WOL is not set -# CONFIG_PKG_USING_ZEPHYR_POLLING is not set # # security packages @@ -585,13 +582,18 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MP3PLAYER is not set # CONFIG_PKG_USING_TINYJPEG is not set # CONFIG_PKG_USING_UGUI is not set + +# +# PainterEngine: A cross-platform graphics application framework written in C language +# +# CONFIG_PKG_USING_PAINTERENGINE is not set +# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set # CONFIG_PKG_USING_MCURSES is not set # CONFIG_PKG_USING_TERMBOX is not set # CONFIG_PKG_USING_VT100 is not set # CONFIG_PKG_USING_QRCODE is not set # CONFIG_PKG_USING_GUIENGINE is not set # CONFIG_PKG_USING_PERSIMMON is not set -# CONFIG_PKG_USING_3GPP_AMRNB is not set # # tools packages @@ -601,7 +603,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_EASYLOGGER is not set # CONFIG_PKG_USING_SYSTEMVIEW is not set # CONFIG_PKG_USING_SEGGER_RTT is not set -# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set # CONFIG_PKG_USING_RDB is not set # CONFIG_PKG_USING_ULOG_EASYFLASH is not set # CONFIG_PKG_USING_LOGMGR is not set @@ -637,6 +638,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CBOX is not set # CONFIG_PKG_USING_SNOWFLAKE is not set # CONFIG_PKG_USING_HASH_MATCH is not set +# CONFIG_PKG_USING_FIRE_PID_CURVE is not set # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set # CONFIG_PKG_USING_VOFA_PLUS is not set @@ -709,8 +711,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_TFDB is not set # CONFIG_PKG_USING_QPC is not set # CONFIG_PKG_USING_AGILE_UPGRADE is not set -# CONFIG_PKG_USING_FLASH_BLOB is not set -# CONFIG_PKG_USING_MLIBC is not set # # peripheral libraries and drivers @@ -719,6 +719,7 @@ CONFIG_RT_USING_ADT_REF=y # # sensors drivers # +# CONFIG_PKG_USING_FINGERPRINT is not set # CONFIG_PKG_USING_LSM6DSM is not set # CONFIG_PKG_USING_LSM6DSL is not set # CONFIG_PKG_USING_LPS22HB is not set @@ -778,11 +779,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AD7746 is not set # CONFIG_PKG_USING_ADT74XX is not set # CONFIG_PKG_USING_MAX17048 is not set -# CONFIG_PKG_USING_AS7341 is not set -# CONFIG_PKG_USING_CW2015 is not set -# CONFIG_PKG_USING_ICM20608 is not set -# CONFIG_PKG_USING_PAJ7620 is not set -# CONFIG_PKG_USING_STHS34PF80 is not set # # touch drivers @@ -795,10 +791,11 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_FT5426 is not set # CONFIG_PKG_USING_FT6236 is not set # CONFIG_PKG_USING_XPT2046_TOUCH is not set -# CONFIG_PKG_USING_CST816X is not set # CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_AS7341 is not set # CONFIG_PKG_USING_STM32_SDIO is not set # CONFIG_PKG_USING_ESP_IDF is not set +# CONFIG_PKG_USING_ICM20608 is not set # CONFIG_PKG_USING_BUTTON is not set # CONFIG_PKG_USING_PCF8574 is not set # CONFIG_PKG_USING_SX12XX is not set @@ -808,6 +805,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_LKDGUI is not set # CONFIG_PKG_USING_NRF5X_SDK is not set # CONFIG_PKG_USING_NRFX is not set +# CONFIG_PKG_USING_WM_LIBRARIES is not set # # Kendryte SDK @@ -821,7 +819,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AT24CXX is not set # CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set # CONFIG_PKG_USING_PCA9685 is not set -# CONFIG_PKG_USING_ILI9341 is not set # CONFIG_PKG_USING_I2C_TOOLS is not set # CONFIG_PKG_USING_NRF24L01 is not set # CONFIG_PKG_USING_RPLIDAR is not set @@ -838,6 +835,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CAN_YMODEM is not set # CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set # CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_PAJ7620 is not set # CONFIG_PKG_USING_AGILE_CONSOLE is not set # CONFIG_PKG_USING_LD3320 is not set # CONFIG_PKG_USING_WK2124 is not set @@ -865,17 +863,14 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MISAKA_AT24CXX is not set # CONFIG_PKG_USING_MISAKA_RGB_BLING is not set # CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set +# CONFIG_PKG_USING_BL_MCU_SDK is not set # CONFIG_PKG_USING_SOFT_SERIAL is not set # CONFIG_PKG_USING_MB85RS16 is not set +# CONFIG_PKG_USING_CW2015 is not set # CONFIG_PKG_USING_RFM300 is not set # CONFIG_PKG_USING_IO_INPUT_FILTER is not set # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set # CONFIG_PKG_USING_LRF_NV7LIDAR is not set -# CONFIG_PKG_USING_AIP650 is not set -# CONFIG_PKG_USING_FINGERPRINT is not set -# CONFIG_PKG_USING_BT_ECB02C is not set -# CONFIG_PKG_USING_UAT is not set -# CONFIG_PKG_USING_SPI_TOOLS is not set # # AI packages @@ -890,15 +885,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_QUEST is not set # CONFIG_PKG_USING_NAXOS is not set -# -# Signal Processing and Control Algorithm Packages -# -# CONFIG_PKG_USING_FIRE_PID_CURVE is not set -# CONFIG_PKG_USING_QPID is not set -# CONFIG_PKG_USING_UKAL is not set -# CONFIG_PKG_USING_DIGITALCTRL is not set -# CONFIG_PKG_USING_KISSFFT is not set - # # miscellaneous packages # @@ -928,7 +914,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_TETRIS is not set # CONFIG_PKG_USING_DONUT is not set # CONFIG_PKG_USING_COWSAY is not set -# CONFIG_PKG_USING_MORSE is not set # CONFIG_PKG_USING_LIBCSV is not set # CONFIG_PKG_USING_OPTPARSE is not set # CONFIG_PKG_USING_FASTLZ is not set @@ -944,12 +929,14 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set # CONFIG_PKG_USING_UPACKER is not set # CONFIG_PKG_USING_UPARAM is not set # CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_VI is not set # CONFIG_PKG_USING_KI is not set # CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_UKAL is not set # CONFIG_PKG_USING_CRCLIB is not set # CONFIG_PKG_USING_LWGPS is not set # CONFIG_PKG_USING_STATE_MACHINE is not set @@ -960,7 +947,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_SLCAN2RTT is not set # CONFIG_PKG_USING_SOEM is not set # CONFIG_PKG_USING_QPARAM is not set -# CONFIG_PKG_USING_CorevMCU_CLI is not set # # Arduino libraries @@ -968,9 +954,8 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_RTDUINO is not set # -# Projects and Demos +# Projects # -# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set # CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set # CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set # CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set @@ -978,17 +963,13 @@ CONFIG_RT_USING_ADT_REF=y # # Sensors # -# CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set # CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set # CONFIG_PKG_USING_ADAFRUIT_MAX31855 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90614 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS1 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AHTX0 is not set @@ -1110,26 +1091,17 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_ARDUINO_SEEED_LSM6DS3 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HDC1000 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HM3301 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set # # Display # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set # CONFIG_PKG_USING_ARDUINO_U8G2 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set # CONFIG_PKG_USING_SEEED_TM1637 is not set # # Timing # # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set -# CONFIG_PKG_USING_ARDUINO_TICKER is not set -# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set # # Data Processing @@ -1153,17 +1125,10 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set # # Other # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set -# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set # # Signal IO @@ -1234,6 +1199,11 @@ CONFIG_RT_USING_MIO1=y # CONFIG_RT_USING_MIO15 is not set # CONFIG_I2C_USE_CONTROLLER is not set # CONFIG_BSP_USING_SDIF is not set +CONFIG_BSP_USING_DC=y +# CONFIG_RT_USING_DC_CHANNEL0 is not set +CONFIG_RT_USING_DC_CHANNEL1=y +# CONFIG_BSP_USING_XHCI is not set +# CONFIG_BSP_USING_PUSB2 is not set # # Board extended module Drivers diff --git a/bsp/phytium/aarch32/configs/phytium_pi_rtsmart.h b/bsp/phytium/aarch32/configs/phytium_pi_rtsmart.h index bde9234d29..82fcfdb905 100644 --- a/bsp/phytium/aarch32/configs/phytium_pi_rtsmart.h +++ b/bsp/phytium/aarch32/configs/phytium_pi_rtsmart.h @@ -307,6 +307,9 @@ /* u8g2: a monochrome graphic library */ +/* PainterEngine: A cross-platform graphics application framework written in C language */ + + /* tools packages */ @@ -338,9 +341,6 @@ /* AI packages */ -/* Signal Processing and Control Algorithm Packages */ - - /* miscellaneous packages */ /* project laboratory */ @@ -354,7 +354,7 @@ /* Arduino libraries */ -/* Projects and Demos */ +/* Projects */ /* Sensors */ @@ -379,7 +379,6 @@ /* Other */ - /* Signal IO */ @@ -405,6 +404,8 @@ #define I2C_USE_MIO #define RT_USING_MIO0 #define RT_USING_MIO1 +#define BSP_USING_DC +#define RT_USING_DC_CHANNEL1 /* Board extended module Drivers */ diff --git a/bsp/phytium/aarch32/configs/phytium_pi_rtthread b/bsp/phytium/aarch32/configs/phytium_pi_rtthread index a1cb734547..63421e00e9 100644 --- a/bsp/phytium/aarch32/configs/phytium_pi_rtthread +++ b/bsp/phytium/aarch32/configs/phytium_pi_rtthread @@ -423,6 +423,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_KAWAII_MQTT is not set # CONFIG_PKG_USING_BC28_MQTT is not set # CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_LIBMODBUS is not set # CONFIG_PKG_USING_FREEMODBUS is not set # CONFIG_PKG_USING_NANOPB is not set @@ -490,8 +491,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AGILE_FTP is not set # CONFIG_PKG_USING_EMBEDDEDPROTO is not set # CONFIG_PKG_USING_RT_LINK_HW is not set -# CONFIG_PKG_USING_RYANMQTT is not set -# CONFIG_PKG_USING_RYANW5500 is not set # CONFIG_PKG_USING_LORA_PKT_FWD is not set # CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set # CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set @@ -499,8 +498,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_SMALL_MODBUS is not set # CONFIG_PKG_USING_NET_SERVER is not set # CONFIG_PKG_USING_ZFTP is not set -# CONFIG_PKG_USING_WOL is not set -# CONFIG_PKG_USING_ZEPHYR_POLLING is not set # # security packages @@ -569,13 +566,18 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MP3PLAYER is not set # CONFIG_PKG_USING_TINYJPEG is not set # CONFIG_PKG_USING_UGUI is not set + +# +# PainterEngine: A cross-platform graphics application framework written in C language +# +# CONFIG_PKG_USING_PAINTERENGINE is not set +# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set # CONFIG_PKG_USING_MCURSES is not set # CONFIG_PKG_USING_TERMBOX is not set # CONFIG_PKG_USING_VT100 is not set # CONFIG_PKG_USING_QRCODE is not set # CONFIG_PKG_USING_GUIENGINE is not set # CONFIG_PKG_USING_PERSIMMON is not set -# CONFIG_PKG_USING_3GPP_AMRNB is not set # # tools packages @@ -585,7 +587,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_EASYLOGGER is not set # CONFIG_PKG_USING_SYSTEMVIEW is not set # CONFIG_PKG_USING_SEGGER_RTT is not set -# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set # CONFIG_PKG_USING_RDB is not set # CONFIG_PKG_USING_ULOG_EASYFLASH is not set # CONFIG_PKG_USING_LOGMGR is not set @@ -621,6 +622,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CBOX is not set # CONFIG_PKG_USING_SNOWFLAKE is not set # CONFIG_PKG_USING_HASH_MATCH is not set +# CONFIG_PKG_USING_FIRE_PID_CURVE is not set # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set # CONFIG_PKG_USING_VOFA_PLUS is not set @@ -693,8 +695,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_TFDB is not set # CONFIG_PKG_USING_QPC is not set # CONFIG_PKG_USING_AGILE_UPGRADE is not set -# CONFIG_PKG_USING_FLASH_BLOB is not set -# CONFIG_PKG_USING_MLIBC is not set # # peripheral libraries and drivers @@ -703,6 +703,7 @@ CONFIG_RT_USING_ADT_REF=y # # sensors drivers # +# CONFIG_PKG_USING_FINGERPRINT is not set # CONFIG_PKG_USING_LSM6DSM is not set # CONFIG_PKG_USING_LSM6DSL is not set # CONFIG_PKG_USING_LPS22HB is not set @@ -762,11 +763,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AD7746 is not set # CONFIG_PKG_USING_ADT74XX is not set # CONFIG_PKG_USING_MAX17048 is not set -# CONFIG_PKG_USING_AS7341 is not set -# CONFIG_PKG_USING_CW2015 is not set -# CONFIG_PKG_USING_ICM20608 is not set -# CONFIG_PKG_USING_PAJ7620 is not set -# CONFIG_PKG_USING_STHS34PF80 is not set # # touch drivers @@ -779,10 +775,11 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_FT5426 is not set # CONFIG_PKG_USING_FT6236 is not set # CONFIG_PKG_USING_XPT2046_TOUCH is not set -# CONFIG_PKG_USING_CST816X is not set # CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_AS7341 is not set # CONFIG_PKG_USING_STM32_SDIO is not set # CONFIG_PKG_USING_ESP_IDF is not set +# CONFIG_PKG_USING_ICM20608 is not set # CONFIG_PKG_USING_BUTTON is not set # CONFIG_PKG_USING_PCF8574 is not set # CONFIG_PKG_USING_SX12XX is not set @@ -792,6 +789,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_LKDGUI is not set # CONFIG_PKG_USING_NRF5X_SDK is not set # CONFIG_PKG_USING_NRFX is not set +# CONFIG_PKG_USING_WM_LIBRARIES is not set # # Kendryte SDK @@ -805,7 +803,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AT24CXX is not set # CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set # CONFIG_PKG_USING_PCA9685 is not set -# CONFIG_PKG_USING_ILI9341 is not set # CONFIG_PKG_USING_I2C_TOOLS is not set # CONFIG_PKG_USING_NRF24L01 is not set # CONFIG_PKG_USING_RPLIDAR is not set @@ -822,6 +819,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CAN_YMODEM is not set # CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set # CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_PAJ7620 is not set # CONFIG_PKG_USING_AGILE_CONSOLE is not set # CONFIG_PKG_USING_LD3320 is not set # CONFIG_PKG_USING_WK2124 is not set @@ -849,17 +847,14 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MISAKA_AT24CXX is not set # CONFIG_PKG_USING_MISAKA_RGB_BLING is not set # CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set +# CONFIG_PKG_USING_BL_MCU_SDK is not set # CONFIG_PKG_USING_SOFT_SERIAL is not set # CONFIG_PKG_USING_MB85RS16 is not set +# CONFIG_PKG_USING_CW2015 is not set # CONFIG_PKG_USING_RFM300 is not set # CONFIG_PKG_USING_IO_INPUT_FILTER is not set # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set # CONFIG_PKG_USING_LRF_NV7LIDAR is not set -# CONFIG_PKG_USING_AIP650 is not set -# CONFIG_PKG_USING_FINGERPRINT is not set -# CONFIG_PKG_USING_BT_ECB02C is not set -# CONFIG_PKG_USING_UAT is not set -# CONFIG_PKG_USING_SPI_TOOLS is not set # # AI packages @@ -874,15 +869,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_QUEST is not set # CONFIG_PKG_USING_NAXOS is not set -# -# Signal Processing and Control Algorithm Packages -# -# CONFIG_PKG_USING_FIRE_PID_CURVE is not set -# CONFIG_PKG_USING_QPID is not set -# CONFIG_PKG_USING_UKAL is not set -# CONFIG_PKG_USING_DIGITALCTRL is not set -# CONFIG_PKG_USING_KISSFFT is not set - # # miscellaneous packages # @@ -912,7 +898,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_TETRIS is not set # CONFIG_PKG_USING_DONUT is not set # CONFIG_PKG_USING_COWSAY is not set -# CONFIG_PKG_USING_MORSE is not set # CONFIG_PKG_USING_LIBCSV is not set # CONFIG_PKG_USING_OPTPARSE is not set # CONFIG_PKG_USING_FASTLZ is not set @@ -928,12 +913,14 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set # CONFIG_PKG_USING_UPACKER is not set # CONFIG_PKG_USING_UPARAM is not set # CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_VI is not set # CONFIG_PKG_USING_KI is not set # CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_UKAL is not set # CONFIG_PKG_USING_CRCLIB is not set # CONFIG_PKG_USING_LWGPS is not set # CONFIG_PKG_USING_STATE_MACHINE is not set @@ -944,7 +931,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_SLCAN2RTT is not set # CONFIG_PKG_USING_SOEM is not set # CONFIG_PKG_USING_QPARAM is not set -# CONFIG_PKG_USING_CorevMCU_CLI is not set # # Arduino libraries @@ -952,9 +938,8 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_RTDUINO is not set # -# Projects and Demos +# Projects # -# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set # CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set # CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set # CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set @@ -962,17 +947,13 @@ CONFIG_RT_USING_ADT_REF=y # # Sensors # -# CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set # CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set # CONFIG_PKG_USING_ADAFRUIT_MAX31855 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90614 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS1 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AHTX0 is not set @@ -1094,26 +1075,17 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_ARDUINO_SEEED_LSM6DS3 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HDC1000 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HM3301 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set # # Display # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set # CONFIG_PKG_USING_ARDUINO_U8G2 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set # CONFIG_PKG_USING_SEEED_TM1637 is not set # # Timing # # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set -# CONFIG_PKG_USING_ARDUINO_TICKER is not set -# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set # # Data Processing @@ -1137,17 +1109,10 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set # # Other # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set -# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set # # Signal IO @@ -1218,6 +1183,11 @@ CONFIG_RT_USING_MIO1=y # CONFIG_RT_USING_MIO15 is not set # CONFIG_I2C_USE_CONTROLLER is not set # CONFIG_BSP_USING_SDIF is not set +CONFIG_BSP_USING_DC=y +# CONFIG_RT_USING_DC_CHANNEL0 is not set +CONFIG_RT_USING_DC_CHANNEL1=y +# CONFIG_BSP_USING_XHCI is not set +# CONFIG_BSP_USING_PUSB2 is not set # # Board extended module Drivers diff --git a/bsp/phytium/aarch32/configs/phytium_pi_rtthread.h b/bsp/phytium/aarch32/configs/phytium_pi_rtthread.h index 8625ec3df3..87377a2627 100644 --- a/bsp/phytium/aarch32/configs/phytium_pi_rtthread.h +++ b/bsp/phytium/aarch32/configs/phytium_pi_rtthread.h @@ -296,6 +296,9 @@ /* u8g2: a monochrome graphic library */ +/* PainterEngine: A cross-platform graphics application framework written in C language */ + + /* tools packages */ @@ -327,9 +330,6 @@ /* AI packages */ -/* Signal Processing and Control Algorithm Packages */ - - /* miscellaneous packages */ /* project laboratory */ @@ -343,7 +343,7 @@ /* Arduino libraries */ -/* Projects and Demos */ +/* Projects */ /* Sensors */ @@ -368,7 +368,6 @@ /* Other */ - /* Signal IO */ @@ -394,6 +393,8 @@ #define I2C_USE_MIO #define RT_USING_MIO0 #define RT_USING_MIO1 +#define BSP_USING_DC +#define RT_USING_DC_CHANNEL1 /* Board extended module Drivers */ diff --git a/bsp/phytium/aarch32/rtconfig.h b/bsp/phytium/aarch32/rtconfig.h index b3dd703e38..87377a2627 100644 --- a/bsp/phytium/aarch32/rtconfig.h +++ b/bsp/phytium/aarch32/rtconfig.h @@ -7,7 +7,6 @@ /* RT-Thread Kernel */ #define RT_NAME_MAX 16 -#define RT_USING_SMART #define RT_CPUS_NR 1 #define RT_ALIGN_SIZE 4 #define RT_THREAD_PRIORITY_32 @@ -61,7 +60,6 @@ #define ARCH_MM_MMU #define ARCH_ARM #define ARCH_ARM_MMU -#define KERNEL_VADDR_START 0xc0000000 #define ARCH_ARM_CORTEX_A #define RT_USING_GIC_V3 @@ -113,14 +111,6 @@ #define RT_USING_DFS_DEVFS #define RT_USING_DFS_RAMFS #define RT_USING_DFS_MQUEUE -#define RT_USING_LWP -#define RT_LWP_MAX_NR 30 -#define LWP_TASK_STACK_SIZE 16384 -#define RT_CH_MSG_MAX_NR 1024 -#define LWP_CONSOLE_INPUT_BUFFER_SIZE 1024 -#define LWP_TID_MAX_NR 64 -#define LWP_ENABLE_ASID -#define RT_LWP_SHM_MAX_NR 64 /* Device Drivers */ @@ -133,9 +123,7 @@ #define RT_USING_SERIAL_V1 #define RT_SERIAL_USING_DMA #define RT_SERIAL_RB_BUFSZ 1024 -#define RT_USING_TTY #define RT_USING_CAN -#define RT_CAN_USING_HDR #define RT_CAN_USING_CANFD #define RT_USING_I2C #define RT_USING_I2C_BITOPS @@ -308,6 +296,9 @@ /* u8g2: a monochrome graphic library */ +/* PainterEngine: A cross-platform graphics application framework written in C language */ + + /* tools packages */ @@ -339,9 +330,6 @@ /* AI packages */ -/* Signal Processing and Control Algorithm Packages */ - - /* miscellaneous packages */ /* project laboratory */ @@ -355,7 +343,7 @@ /* Arduino libraries */ -/* Projects and Demos */ +/* Projects */ /* Sensors */ @@ -380,7 +368,6 @@ /* Other */ - /* Signal IO */ @@ -396,29 +383,18 @@ #define RT_USING_UART0 #define RT_USING_UART1 #define BSP_USING_SPI -#define RT_USING_SPIM2 -#define BSP_USING_CAN -#define RT_USING_CANFD -#define RT_USING_FILTER -#define RT_USING_CAN0 -#define RT_USING_CAN1 +#define RT_USING_SPIM0 #define BSP_USING_GPIO -#define BSP_USING_QSPI -#define RT_USING_QSPI0 -#define USING_QSPI_CHANNEL0 #define BSP_USING_ETH #define RT_LWIP_PBUF_POOL_BUFSIZE 1700 #define BSP_USING_PWM -#define RT_USING_PWM6 +#define RT_USING_PWM2 #define BSP_USING_I2C #define I2C_USE_MIO -#define RT_USING_MIO15 -#define I2C_USE_CONTROLLER -#define RT_USING_I2C0 -#define BSP_USING_SDIF -#define BSP_USING_SDCARD_FATFS -#define BSP_USING_SDCARD_PARTITION "sd0" -#define USING_SDIF1 +#define RT_USING_MIO0 +#define RT_USING_MIO1 +#define BSP_USING_DC +#define RT_USING_DC_CHANNEL1 /* Board extended module Drivers */ @@ -431,10 +407,9 @@ /* Soc configuration */ -#define TARGET_E2000D -#define SOC_NAME "e2000" -#define TARGET_TYPE_NAME "d" -#define SOC_CORE_NUM 2 +#define TARGET_PHYTIUMPI +#define SOC_NAME "phytiumpi" +#define SOC_CORE_NUM 4 #define F32BIT_MEMORY_ADDRESS 0x80000000 #define F32BIT_MEMORY_LENGTH 0x80000000 #define F64BIT_MEMORY_ADDRESS 0x2000000000 @@ -444,8 +419,8 @@ /* Board Configuration */ -#define E2000D_DEMO_BOARD -#define BOARD_NAME "demo" +#define BOARD_NAME "firefly" +#define FIREFLY_DEMO_BOARD /* IO mux configuration when board start up */ diff --git a/bsp/phytium/aarch64/.config b/bsp/phytium/aarch64/.config index 1b76defef5..5bda6f3295 100644 --- a/bsp/phytium/aarch64/.config +++ b/bsp/phytium/aarch64/.config @@ -186,7 +186,7 @@ CONFIG_RT_USING_SERIAL_V1=y CONFIG_RT_SERIAL_USING_DMA=y CONFIG_RT_SERIAL_RB_BUFSZ=64 CONFIG_RT_USING_CAN=y -CONFIG_RT_CAN_USING_HDR=y +# CONFIG_RT_CAN_USING_HDR is not set CONFIG_RT_CAN_USING_CANFD=y # CONFIG_RT_USING_HWTIMER is not set # CONFIG_RT_USING_CPUTIME is not set @@ -454,6 +454,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_KAWAII_MQTT is not set # CONFIG_PKG_USING_BC28_MQTT is not set # CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_LIBMODBUS is not set # CONFIG_PKG_USING_FREEMODBUS is not set # CONFIG_PKG_USING_NANOPB is not set @@ -521,8 +522,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AGILE_FTP is not set # CONFIG_PKG_USING_EMBEDDEDPROTO is not set # CONFIG_PKG_USING_RT_LINK_HW is not set -# CONFIG_PKG_USING_RYANMQTT is not set -# CONFIG_PKG_USING_RYANW5500 is not set # CONFIG_PKG_USING_LORA_PKT_FWD is not set # CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set # CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set @@ -530,8 +529,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_SMALL_MODBUS is not set # CONFIG_PKG_USING_NET_SERVER is not set # CONFIG_PKG_USING_ZFTP is not set -# CONFIG_PKG_USING_WOL is not set -# CONFIG_PKG_USING_ZEPHYR_POLLING is not set # # security packages @@ -600,12 +597,17 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MP3PLAYER is not set # CONFIG_PKG_USING_TINYJPEG is not set # CONFIG_PKG_USING_UGUI is not set + +# +# PainterEngine: A cross-platform graphics application framework written in C language +# +# CONFIG_PKG_USING_PAINTERENGINE is not set +# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set # CONFIG_PKG_USING_MCURSES is not set # CONFIG_PKG_USING_TERMBOX is not set # CONFIG_PKG_USING_VT100 is not set # CONFIG_PKG_USING_QRCODE is not set # CONFIG_PKG_USING_GUIENGINE is not set -# CONFIG_PKG_USING_3GPP_AMRNB is not set # # tools packages @@ -615,7 +617,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_EASYLOGGER is not set # CONFIG_PKG_USING_SYSTEMVIEW is not set # CONFIG_PKG_USING_SEGGER_RTT is not set -# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set # CONFIG_PKG_USING_RDB is not set # CONFIG_PKG_USING_ULOG_EASYFLASH is not set # CONFIG_PKG_USING_LOGMGR is not set @@ -651,6 +652,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CBOX is not set # CONFIG_PKG_USING_SNOWFLAKE is not set # CONFIG_PKG_USING_HASH_MATCH is not set +# CONFIG_PKG_USING_FIRE_PID_CURVE is not set # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set # CONFIG_PKG_USING_VOFA_PLUS is not set @@ -723,8 +725,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_TFDB is not set # CONFIG_PKG_USING_QPC is not set # CONFIG_PKG_USING_AGILE_UPGRADE is not set -# CONFIG_PKG_USING_FLASH_BLOB is not set -# CONFIG_PKG_USING_MLIBC is not set # # peripheral libraries and drivers @@ -733,6 +733,7 @@ CONFIG_RT_USING_ADT_REF=y # # sensors drivers # +# CONFIG_PKG_USING_FINGERPRINT is not set # CONFIG_PKG_USING_LSM6DSM is not set # CONFIG_PKG_USING_LSM6DSL is not set # CONFIG_PKG_USING_LPS22HB is not set @@ -792,11 +793,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AD7746 is not set # CONFIG_PKG_USING_ADT74XX is not set # CONFIG_PKG_USING_MAX17048 is not set -# CONFIG_PKG_USING_AS7341 is not set -# CONFIG_PKG_USING_CW2015 is not set -# CONFIG_PKG_USING_ICM20608 is not set -# CONFIG_PKG_USING_PAJ7620 is not set -# CONFIG_PKG_USING_STHS34PF80 is not set # # touch drivers @@ -809,10 +805,11 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_FT5426 is not set # CONFIG_PKG_USING_FT6236 is not set # CONFIG_PKG_USING_XPT2046_TOUCH is not set -# CONFIG_PKG_USING_CST816X is not set # CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_AS7341 is not set # CONFIG_PKG_USING_STM32_SDIO is not set # CONFIG_PKG_USING_ESP_IDF is not set +# CONFIG_PKG_USING_ICM20608 is not set # CONFIG_PKG_USING_BUTTON is not set # CONFIG_PKG_USING_PCF8574 is not set # CONFIG_PKG_USING_SX12XX is not set @@ -822,6 +819,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_LKDGUI is not set # CONFIG_PKG_USING_NRF5X_SDK is not set # CONFIG_PKG_USING_NRFX is not set +# CONFIG_PKG_USING_WM_LIBRARIES is not set # # Kendryte SDK @@ -835,7 +833,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AT24CXX is not set # CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set # CONFIG_PKG_USING_PCA9685 is not set -# CONFIG_PKG_USING_ILI9341 is not set # CONFIG_PKG_USING_I2C_TOOLS is not set # CONFIG_PKG_USING_NRF24L01 is not set # CONFIG_PKG_USING_RPLIDAR is not set @@ -852,6 +849,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CAN_YMODEM is not set # CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set # CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_PAJ7620 is not set # CONFIG_PKG_USING_AGILE_CONSOLE is not set # CONFIG_PKG_USING_LD3320 is not set # CONFIG_PKG_USING_WK2124 is not set @@ -879,17 +877,14 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MISAKA_AT24CXX is not set # CONFIG_PKG_USING_MISAKA_RGB_BLING is not set # CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set +# CONFIG_PKG_USING_BL_MCU_SDK is not set # CONFIG_PKG_USING_SOFT_SERIAL is not set # CONFIG_PKG_USING_MB85RS16 is not set +# CONFIG_PKG_USING_CW2015 is not set # CONFIG_PKG_USING_RFM300 is not set # CONFIG_PKG_USING_IO_INPUT_FILTER is not set # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set # CONFIG_PKG_USING_LRF_NV7LIDAR is not set -# CONFIG_PKG_USING_AIP650 is not set -# CONFIG_PKG_USING_FINGERPRINT is not set -# CONFIG_PKG_USING_BT_ECB02C is not set -# CONFIG_PKG_USING_UAT is not set -# CONFIG_PKG_USING_SPI_TOOLS is not set # # AI packages @@ -903,16 +898,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_ULAPACK is not set # CONFIG_PKG_USING_QUEST is not set # CONFIG_PKG_USING_NAXOS is not set -# CONFIG_PKG_USING_NCNN is not set - -# -# Signal Processing and Control Algorithm Packages -# -# CONFIG_PKG_USING_FIRE_PID_CURVE is not set -# CONFIG_PKG_USING_QPID is not set -# CONFIG_PKG_USING_UKAL is not set -# CONFIG_PKG_USING_DIGITALCTRL is not set -# CONFIG_PKG_USING_KISSFFT is not set # # miscellaneous packages @@ -967,7 +952,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_TETRIS is not set # CONFIG_PKG_USING_DONUT is not set # CONFIG_PKG_USING_COWSAY is not set -# CONFIG_PKG_USING_MORSE is not set # CONFIG_PKG_USING_LIBCSV is not set # CONFIG_PKG_USING_OPTPARSE is not set # CONFIG_PKG_USING_FASTLZ is not set @@ -983,12 +967,14 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set # CONFIG_PKG_USING_UPACKER is not set # CONFIG_PKG_USING_UPARAM is not set # CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_VI is not set # CONFIG_PKG_USING_KI is not set # CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_UKAL is not set # CONFIG_PKG_USING_CRCLIB is not set # CONFIG_PKG_USING_LWGPS is not set # CONFIG_PKG_USING_STATE_MACHINE is not set @@ -999,7 +985,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_SLCAN2RTT is not set # CONFIG_PKG_USING_SOEM is not set # CONFIG_PKG_USING_QPARAM is not set -# CONFIG_PKG_USING_CorevMCU_CLI is not set # # Arduino libraries @@ -1007,9 +992,8 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_RTDUINO is not set # -# Projects and Demos +# Projects # -# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set # CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set # CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set # CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set @@ -1017,17 +1001,13 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # # Sensors # -# CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set # CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set # CONFIG_PKG_USING_ADAFRUIT_MAX31855 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90614 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS1 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AHTX0 is not set @@ -1149,26 +1129,17 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_ARDUINO_SEEED_LSM6DS3 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HDC1000 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HM3301 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set # # Display # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set # CONFIG_PKG_USING_ARDUINO_U8G2 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set # CONFIG_PKG_USING_SEEED_TM1637 is not set # # Timing # # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set -# CONFIG_PKG_USING_ARDUINO_TICKER is not set -# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set # # Data Processing @@ -1192,17 +1163,10 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set # # Other # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set -# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set # # Signal IO @@ -1239,11 +1203,7 @@ CONFIG_RT_USING_SPIM0=y CONFIG_RT_USING_SPIM1=y CONFIG_RT_USING_SPIM2=y CONFIG_RT_USING_SPIM3=y -CONFIG_BSP_USING_CAN=y -CONFIG_RT_USING_CANFD=y -CONFIG_RT_USING_FILTER=y -CONFIG_RT_USING_CAN0=y -CONFIG_RT_USING_CAN1=y +# CONFIG_BSP_USING_CAN is not set CONFIG_BSP_USING_GPIO=y CONFIG_BSP_USING_QSPI=y CONFIG_RT_USING_QSPI0=y @@ -1254,17 +1214,17 @@ CONFIG_RT_LWIP_PBUF_POOL_BUFSIZE=1700 CONFIG_BSP_USING_PWM=y # CONFIG_RT_USING_PWM0 is not set # CONFIG_RT_USING_PWM1 is not set -# CONFIG_RT_USING_PWM2 is not set +CONFIG_RT_USING_PWM2=y # CONFIG_RT_USING_PWM3 is not set # CONFIG_RT_USING_PWM4 is not set # CONFIG_RT_USING_PWM5 is not set -CONFIG_RT_USING_PWM6=y +# CONFIG_RT_USING_PWM6 is not set # CONFIG_RT_USING_PWM7 is not set CONFIG_BSP_USING_I2C=y CONFIG_I2C_USE_MIO=y -# CONFIG_RT_USING_MIO0 is not set -# CONFIG_RT_USING_MIO1 is not set -# CONFIG_RT_USING_MIO2 is not set +CONFIG_RT_USING_MIO0=y +CONFIG_RT_USING_MIO1=y +CONFIG_RT_USING_MIO2=y # CONFIG_RT_USING_MIO3 is not set # CONFIG_RT_USING_MIO4 is not set # CONFIG_RT_USING_MIO5 is not set @@ -1272,19 +1232,19 @@ CONFIG_I2C_USE_MIO=y # CONFIG_RT_USING_MIO7 is not set # CONFIG_RT_USING_MIO8 is not set # CONFIG_RT_USING_MIO9 is not set -# CONFIG_RT_USING_MIO10 is not set +CONFIG_RT_USING_MIO10=y # CONFIG_RT_USING_MIO11 is not set # CONFIG_RT_USING_MIO12 is not set # CONFIG_RT_USING_MIO13 is not set # CONFIG_RT_USING_MIO14 is not set -CONFIG_RT_USING_MIO15=y +# CONFIG_RT_USING_MIO15 is not set # CONFIG_I2C_USE_CONTROLLER is not set -CONFIG_BSP_USING_SDIF=y -CONFIG_BSP_USING_SDCARD_FATFS=y -CONFIG_BSP_USING_SDCARD_PARTITION="sd0" -# CONFIG_USING_SDIF0 is not set -CONFIG_USING_SDIF1=y -# CONFIG_USING_EMMC is not set +# CONFIG_BSP_USING_SDIF is not set +CONFIG_BSP_USING_DC=y +# CONFIG_RT_USING_DC_CHANNEL0 is not set +CONFIG_RT_USING_DC_CHANNEL1=y +# CONFIG_BSP_USING_XHCI is not set +# CONFIG_BSP_USING_PUSB2 is not set # # Board extended module Drivers @@ -1302,14 +1262,13 @@ CONFIG_TARGET_ARMV8_AARCH64=y # # Soc configuration # -# CONFIG_TARGET_PHYTIUMPI is not set -CONFIG_TARGET_E2000Q=y +CONFIG_TARGET_PHYTIUMPI=y +# CONFIG_TARGET_E2000Q is not set # CONFIG_TARGET_E2000D is not set # CONFIG_TARGET_E2000S is not set # CONFIG_TARGET_FT2004 is not set # CONFIG_TARGET_D2000 is not set -CONFIG_SOC_NAME="e2000" -CONFIG_TARGET_TYPE_NAME="q" +CONFIG_SOC_NAME="phytiumpi" CONFIG_SOC_CORE_NUM=4 CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000 CONFIG_F32BIT_MEMORY_LENGTH=0x80000000 @@ -1324,7 +1283,7 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y # # Board Configuration # -CONFIG_BOARD_NAME="demo" +CONFIG_BOARD_NAME="firefly" # CONFIG_USE_SPI_IOPAD is not set # CONFIG_USE_GPIO_IOPAD is not set # CONFIG_USE_CAN_IOPAD is not set @@ -1334,7 +1293,7 @@ CONFIG_BOARD_NAME="demo" # CONFIG_USE_TACHO_IOPAD is not set # CONFIG_USE_UART_IOPAD is not set # CONFIG_USE_THIRD_PARTY_IOPAD is not set -CONFIG_E2000Q_DEMO_BOARD=y +CONFIG_FIREFLY_DEMO_BOARD=y # # IO mux configuration when board start up diff --git a/bsp/phytium/aarch64/configs/e2000d_demo_rtsmart b/bsp/phytium/aarch64/configs/e2000d_demo_rtsmart index 7226f68dd5..96812821fc 100644 --- a/bsp/phytium/aarch64/configs/e2000d_demo_rtsmart +++ b/bsp/phytium/aarch64/configs/e2000d_demo_rtsmart @@ -468,6 +468,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_KAWAII_MQTT is not set # CONFIG_PKG_USING_BC28_MQTT is not set # CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_LIBMODBUS is not set # CONFIG_PKG_USING_FREEMODBUS is not set # CONFIG_PKG_USING_NANOPB is not set @@ -535,8 +536,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AGILE_FTP is not set # CONFIG_PKG_USING_EMBEDDEDPROTO is not set # CONFIG_PKG_USING_RT_LINK_HW is not set -# CONFIG_PKG_USING_RYANMQTT is not set -# CONFIG_PKG_USING_RYANW5500 is not set # CONFIG_PKG_USING_LORA_PKT_FWD is not set # CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set # CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set @@ -544,8 +543,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_SMALL_MODBUS is not set # CONFIG_PKG_USING_NET_SERVER is not set # CONFIG_PKG_USING_ZFTP is not set -# CONFIG_PKG_USING_WOL is not set -# CONFIG_PKG_USING_ZEPHYR_POLLING is not set # # security packages @@ -614,12 +611,17 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MP3PLAYER is not set # CONFIG_PKG_USING_TINYJPEG is not set # CONFIG_PKG_USING_UGUI is not set + +# +# PainterEngine: A cross-platform graphics application framework written in C language +# +# CONFIG_PKG_USING_PAINTERENGINE is not set +# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set # CONFIG_PKG_USING_MCURSES is not set # CONFIG_PKG_USING_TERMBOX is not set # CONFIG_PKG_USING_VT100 is not set # CONFIG_PKG_USING_QRCODE is not set # CONFIG_PKG_USING_GUIENGINE is not set -# CONFIG_PKG_USING_3GPP_AMRNB is not set # # tools packages @@ -629,7 +631,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_EASYLOGGER is not set # CONFIG_PKG_USING_SYSTEMVIEW is not set # CONFIG_PKG_USING_SEGGER_RTT is not set -# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set # CONFIG_PKG_USING_RDB is not set # CONFIG_PKG_USING_ULOG_EASYFLASH is not set # CONFIG_PKG_USING_LOGMGR is not set @@ -665,6 +666,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CBOX is not set # CONFIG_PKG_USING_SNOWFLAKE is not set # CONFIG_PKG_USING_HASH_MATCH is not set +# CONFIG_PKG_USING_FIRE_PID_CURVE is not set # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set # CONFIG_PKG_USING_VOFA_PLUS is not set @@ -737,8 +739,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_TFDB is not set # CONFIG_PKG_USING_QPC is not set # CONFIG_PKG_USING_AGILE_UPGRADE is not set -# CONFIG_PKG_USING_FLASH_BLOB is not set -# CONFIG_PKG_USING_MLIBC is not set # # peripheral libraries and drivers @@ -747,6 +747,7 @@ CONFIG_RT_USING_ADT_REF=y # # sensors drivers # +# CONFIG_PKG_USING_FINGERPRINT is not set # CONFIG_PKG_USING_LSM6DSM is not set # CONFIG_PKG_USING_LSM6DSL is not set # CONFIG_PKG_USING_LPS22HB is not set @@ -806,11 +807,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AD7746 is not set # CONFIG_PKG_USING_ADT74XX is not set # CONFIG_PKG_USING_MAX17048 is not set -# CONFIG_PKG_USING_AS7341 is not set -# CONFIG_PKG_USING_CW2015 is not set -# CONFIG_PKG_USING_ICM20608 is not set -# CONFIG_PKG_USING_PAJ7620 is not set -# CONFIG_PKG_USING_STHS34PF80 is not set # # touch drivers @@ -823,10 +819,11 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_FT5426 is not set # CONFIG_PKG_USING_FT6236 is not set # CONFIG_PKG_USING_XPT2046_TOUCH is not set -# CONFIG_PKG_USING_CST816X is not set # CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_AS7341 is not set # CONFIG_PKG_USING_STM32_SDIO is not set # CONFIG_PKG_USING_ESP_IDF is not set +# CONFIG_PKG_USING_ICM20608 is not set # CONFIG_PKG_USING_BUTTON is not set # CONFIG_PKG_USING_PCF8574 is not set # CONFIG_PKG_USING_SX12XX is not set @@ -836,6 +833,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_LKDGUI is not set # CONFIG_PKG_USING_NRF5X_SDK is not set # CONFIG_PKG_USING_NRFX is not set +# CONFIG_PKG_USING_WM_LIBRARIES is not set # # Kendryte SDK @@ -849,7 +847,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AT24CXX is not set # CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set # CONFIG_PKG_USING_PCA9685 is not set -# CONFIG_PKG_USING_ILI9341 is not set # CONFIG_PKG_USING_I2C_TOOLS is not set # CONFIG_PKG_USING_NRF24L01 is not set # CONFIG_PKG_USING_RPLIDAR is not set @@ -866,6 +863,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CAN_YMODEM is not set # CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set # CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_PAJ7620 is not set # CONFIG_PKG_USING_AGILE_CONSOLE is not set # CONFIG_PKG_USING_LD3320 is not set # CONFIG_PKG_USING_WK2124 is not set @@ -893,17 +891,14 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MISAKA_AT24CXX is not set # CONFIG_PKG_USING_MISAKA_RGB_BLING is not set # CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set +# CONFIG_PKG_USING_BL_MCU_SDK is not set # CONFIG_PKG_USING_SOFT_SERIAL is not set # CONFIG_PKG_USING_MB85RS16 is not set +# CONFIG_PKG_USING_CW2015 is not set # CONFIG_PKG_USING_RFM300 is not set # CONFIG_PKG_USING_IO_INPUT_FILTER is not set # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set # CONFIG_PKG_USING_LRF_NV7LIDAR is not set -# CONFIG_PKG_USING_AIP650 is not set -# CONFIG_PKG_USING_FINGERPRINT is not set -# CONFIG_PKG_USING_BT_ECB02C is not set -# CONFIG_PKG_USING_UAT is not set -# CONFIG_PKG_USING_SPI_TOOLS is not set # # AI packages @@ -917,16 +912,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_ULAPACK is not set # CONFIG_PKG_USING_QUEST is not set # CONFIG_PKG_USING_NAXOS is not set -# CONFIG_PKG_USING_NCNN is not set - -# -# Signal Processing and Control Algorithm Packages -# -# CONFIG_PKG_USING_FIRE_PID_CURVE is not set -# CONFIG_PKG_USING_QPID is not set -# CONFIG_PKG_USING_UKAL is not set -# CONFIG_PKG_USING_DIGITALCTRL is not set -# CONFIG_PKG_USING_KISSFFT is not set # # miscellaneous packages @@ -981,7 +966,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_TETRIS is not set # CONFIG_PKG_USING_DONUT is not set # CONFIG_PKG_USING_COWSAY is not set -# CONFIG_PKG_USING_MORSE is not set # CONFIG_PKG_USING_LIBCSV is not set # CONFIG_PKG_USING_OPTPARSE is not set # CONFIG_PKG_USING_FASTLZ is not set @@ -997,12 +981,14 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set # CONFIG_PKG_USING_UPACKER is not set # CONFIG_PKG_USING_UPARAM is not set # CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_VI is not set # CONFIG_PKG_USING_KI is not set # CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_UKAL is not set # CONFIG_PKG_USING_CRCLIB is not set # CONFIG_PKG_USING_LWGPS is not set # CONFIG_PKG_USING_STATE_MACHINE is not set @@ -1013,7 +999,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_SLCAN2RTT is not set # CONFIG_PKG_USING_SOEM is not set # CONFIG_PKG_USING_QPARAM is not set -# CONFIG_PKG_USING_CorevMCU_CLI is not set # # Arduino libraries @@ -1021,9 +1006,8 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_RTDUINO is not set # -# Projects and Demos +# Projects # -# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set # CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set # CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set # CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set @@ -1031,17 +1015,13 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # # Sensors # -# CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set # CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set # CONFIG_PKG_USING_ADAFRUIT_MAX31855 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90614 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS1 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AHTX0 is not set @@ -1163,26 +1143,17 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_ARDUINO_SEEED_LSM6DS3 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HDC1000 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HM3301 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set # # Display # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set # CONFIG_PKG_USING_ARDUINO_U8G2 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set # CONFIG_PKG_USING_SEEED_TM1637 is not set # # Timing # # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set -# CONFIG_PKG_USING_ARDUINO_TICKER is not set -# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set # # Data Processing @@ -1206,17 +1177,10 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set # # Other # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set -# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set # # Signal IO @@ -1299,6 +1263,11 @@ CONFIG_BSP_USING_SDCARD_PARTITION="sd0" # CONFIG_USING_SDIF0 is not set CONFIG_USING_SDIF1=y # CONFIG_USING_EMMC is not set +CONFIG_BSP_USING_DC=y +# CONFIG_RT_USING_DC_CHANNEL0 is not set +CONFIG_RT_USING_DC_CHANNEL1=y +# CONFIG_BSP_USING_XHCI is not set +# CONFIG_BSP_USING_PUSB2 is not set # # Board extended module Drivers diff --git a/bsp/phytium/aarch64/configs/e2000d_demo_rtsmart.h b/bsp/phytium/aarch64/configs/e2000d_demo_rtsmart.h index a4b50c1c82..c5d666135a 100644 --- a/bsp/phytium/aarch64/configs/e2000d_demo_rtsmart.h +++ b/bsp/phytium/aarch64/configs/e2000d_demo_rtsmart.h @@ -307,6 +307,9 @@ /* u8g2: a monochrome graphic library */ +/* PainterEngine: A cross-platform graphics application framework written in C language */ + + /* tools packages */ @@ -338,9 +341,6 @@ /* AI packages */ -/* Signal Processing and Control Algorithm Packages */ - - /* miscellaneous packages */ /* project laboratory */ @@ -357,7 +357,7 @@ /* Arduino libraries */ -/* Projects and Demos */ +/* Projects */ /* Sensors */ @@ -382,7 +382,6 @@ /* Other */ - /* Signal IO */ @@ -422,6 +421,8 @@ #define BSP_USING_SDCARD_FATFS #define BSP_USING_SDCARD_PARTITION "sd0" #define USING_SDIF1 +#define BSP_USING_DC +#define RT_USING_DC_CHANNEL1 /* Board extended module Drivers */ diff --git a/bsp/phytium/aarch64/configs/e2000d_demo_rtthread b/bsp/phytium/aarch64/configs/e2000d_demo_rtthread index b04163fb8f..0d3e43caec 100644 --- a/bsp/phytium/aarch64/configs/e2000d_demo_rtthread +++ b/bsp/phytium/aarch64/configs/e2000d_demo_rtthread @@ -454,6 +454,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_KAWAII_MQTT is not set # CONFIG_PKG_USING_BC28_MQTT is not set # CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_LIBMODBUS is not set # CONFIG_PKG_USING_FREEMODBUS is not set # CONFIG_PKG_USING_NANOPB is not set @@ -521,8 +522,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AGILE_FTP is not set # CONFIG_PKG_USING_EMBEDDEDPROTO is not set # CONFIG_PKG_USING_RT_LINK_HW is not set -# CONFIG_PKG_USING_RYANMQTT is not set -# CONFIG_PKG_USING_RYANW5500 is not set # CONFIG_PKG_USING_LORA_PKT_FWD is not set # CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set # CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set @@ -530,8 +529,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_SMALL_MODBUS is not set # CONFIG_PKG_USING_NET_SERVER is not set # CONFIG_PKG_USING_ZFTP is not set -# CONFIG_PKG_USING_WOL is not set -# CONFIG_PKG_USING_ZEPHYR_POLLING is not set # # security packages @@ -600,12 +597,17 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MP3PLAYER is not set # CONFIG_PKG_USING_TINYJPEG is not set # CONFIG_PKG_USING_UGUI is not set + +# +# PainterEngine: A cross-platform graphics application framework written in C language +# +# CONFIG_PKG_USING_PAINTERENGINE is not set +# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set # CONFIG_PKG_USING_MCURSES is not set # CONFIG_PKG_USING_TERMBOX is not set # CONFIG_PKG_USING_VT100 is not set # CONFIG_PKG_USING_QRCODE is not set # CONFIG_PKG_USING_GUIENGINE is not set -# CONFIG_PKG_USING_3GPP_AMRNB is not set # # tools packages @@ -615,7 +617,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_EASYLOGGER is not set # CONFIG_PKG_USING_SYSTEMVIEW is not set # CONFIG_PKG_USING_SEGGER_RTT is not set -# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set # CONFIG_PKG_USING_RDB is not set # CONFIG_PKG_USING_ULOG_EASYFLASH is not set # CONFIG_PKG_USING_LOGMGR is not set @@ -651,6 +652,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CBOX is not set # CONFIG_PKG_USING_SNOWFLAKE is not set # CONFIG_PKG_USING_HASH_MATCH is not set +# CONFIG_PKG_USING_FIRE_PID_CURVE is not set # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set # CONFIG_PKG_USING_VOFA_PLUS is not set @@ -723,8 +725,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_TFDB is not set # CONFIG_PKG_USING_QPC is not set # CONFIG_PKG_USING_AGILE_UPGRADE is not set -# CONFIG_PKG_USING_FLASH_BLOB is not set -# CONFIG_PKG_USING_MLIBC is not set # # peripheral libraries and drivers @@ -733,6 +733,7 @@ CONFIG_RT_USING_ADT_REF=y # # sensors drivers # +# CONFIG_PKG_USING_FINGERPRINT is not set # CONFIG_PKG_USING_LSM6DSM is not set # CONFIG_PKG_USING_LSM6DSL is not set # CONFIG_PKG_USING_LPS22HB is not set @@ -792,11 +793,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AD7746 is not set # CONFIG_PKG_USING_ADT74XX is not set # CONFIG_PKG_USING_MAX17048 is not set -# CONFIG_PKG_USING_AS7341 is not set -# CONFIG_PKG_USING_CW2015 is not set -# CONFIG_PKG_USING_ICM20608 is not set -# CONFIG_PKG_USING_PAJ7620 is not set -# CONFIG_PKG_USING_STHS34PF80 is not set # # touch drivers @@ -809,10 +805,11 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_FT5426 is not set # CONFIG_PKG_USING_FT6236 is not set # CONFIG_PKG_USING_XPT2046_TOUCH is not set -# CONFIG_PKG_USING_CST816X is not set # CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_AS7341 is not set # CONFIG_PKG_USING_STM32_SDIO is not set # CONFIG_PKG_USING_ESP_IDF is not set +# CONFIG_PKG_USING_ICM20608 is not set # CONFIG_PKG_USING_BUTTON is not set # CONFIG_PKG_USING_PCF8574 is not set # CONFIG_PKG_USING_SX12XX is not set @@ -822,6 +819,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_LKDGUI is not set # CONFIG_PKG_USING_NRF5X_SDK is not set # CONFIG_PKG_USING_NRFX is not set +# CONFIG_PKG_USING_WM_LIBRARIES is not set # # Kendryte SDK @@ -835,7 +833,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AT24CXX is not set # CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set # CONFIG_PKG_USING_PCA9685 is not set -# CONFIG_PKG_USING_ILI9341 is not set # CONFIG_PKG_USING_I2C_TOOLS is not set # CONFIG_PKG_USING_NRF24L01 is not set # CONFIG_PKG_USING_RPLIDAR is not set @@ -852,6 +849,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CAN_YMODEM is not set # CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set # CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_PAJ7620 is not set # CONFIG_PKG_USING_AGILE_CONSOLE is not set # CONFIG_PKG_USING_LD3320 is not set # CONFIG_PKG_USING_WK2124 is not set @@ -879,17 +877,14 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MISAKA_AT24CXX is not set # CONFIG_PKG_USING_MISAKA_RGB_BLING is not set # CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set +# CONFIG_PKG_USING_BL_MCU_SDK is not set # CONFIG_PKG_USING_SOFT_SERIAL is not set # CONFIG_PKG_USING_MB85RS16 is not set +# CONFIG_PKG_USING_CW2015 is not set # CONFIG_PKG_USING_RFM300 is not set # CONFIG_PKG_USING_IO_INPUT_FILTER is not set # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set # CONFIG_PKG_USING_LRF_NV7LIDAR is not set -# CONFIG_PKG_USING_AIP650 is not set -# CONFIG_PKG_USING_FINGERPRINT is not set -# CONFIG_PKG_USING_BT_ECB02C is not set -# CONFIG_PKG_USING_UAT is not set -# CONFIG_PKG_USING_SPI_TOOLS is not set # # AI packages @@ -903,16 +898,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_ULAPACK is not set # CONFIG_PKG_USING_QUEST is not set # CONFIG_PKG_USING_NAXOS is not set -# CONFIG_PKG_USING_NCNN is not set - -# -# Signal Processing and Control Algorithm Packages -# -# CONFIG_PKG_USING_FIRE_PID_CURVE is not set -# CONFIG_PKG_USING_QPID is not set -# CONFIG_PKG_USING_UKAL is not set -# CONFIG_PKG_USING_DIGITALCTRL is not set -# CONFIG_PKG_USING_KISSFFT is not set # # miscellaneous packages @@ -967,7 +952,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_TETRIS is not set # CONFIG_PKG_USING_DONUT is not set # CONFIG_PKG_USING_COWSAY is not set -# CONFIG_PKG_USING_MORSE is not set # CONFIG_PKG_USING_LIBCSV is not set # CONFIG_PKG_USING_OPTPARSE is not set # CONFIG_PKG_USING_FASTLZ is not set @@ -983,12 +967,14 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set # CONFIG_PKG_USING_UPACKER is not set # CONFIG_PKG_USING_UPARAM is not set # CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_VI is not set # CONFIG_PKG_USING_KI is not set # CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_UKAL is not set # CONFIG_PKG_USING_CRCLIB is not set # CONFIG_PKG_USING_LWGPS is not set # CONFIG_PKG_USING_STATE_MACHINE is not set @@ -999,7 +985,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_SLCAN2RTT is not set # CONFIG_PKG_USING_SOEM is not set # CONFIG_PKG_USING_QPARAM is not set -# CONFIG_PKG_USING_CorevMCU_CLI is not set # # Arduino libraries @@ -1007,9 +992,8 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_RTDUINO is not set # -# Projects and Demos +# Projects # -# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set # CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set # CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set # CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set @@ -1017,17 +1001,13 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # # Sensors # -# CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set # CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set # CONFIG_PKG_USING_ADAFRUIT_MAX31855 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90614 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS1 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AHTX0 is not set @@ -1149,26 +1129,17 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_ARDUINO_SEEED_LSM6DS3 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HDC1000 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HM3301 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set # # Display # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set # CONFIG_PKG_USING_ARDUINO_U8G2 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set # CONFIG_PKG_USING_SEEED_TM1637 is not set # # Timing # # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set -# CONFIG_PKG_USING_ARDUINO_TICKER is not set -# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set # # Data Processing @@ -1192,17 +1163,10 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set # # Other # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set -# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set # # Signal IO @@ -1285,6 +1249,11 @@ CONFIG_BSP_USING_SDCARD_PARTITION="sd0" # CONFIG_USING_SDIF0 is not set CONFIG_USING_SDIF1=y # CONFIG_USING_EMMC is not set +CONFIG_BSP_USING_DC=y +# CONFIG_RT_USING_DC_CHANNEL0 is not set +CONFIG_RT_USING_DC_CHANNEL1=y +# CONFIG_BSP_USING_XHCI is not set +# CONFIG_BSP_USING_PUSB2 is not set # # Board extended module Drivers diff --git a/bsp/phytium/aarch64/configs/e2000d_demo_rtthread.h b/bsp/phytium/aarch64/configs/e2000d_demo_rtthread.h index bbb66a6ab4..3fe238d702 100644 --- a/bsp/phytium/aarch64/configs/e2000d_demo_rtthread.h +++ b/bsp/phytium/aarch64/configs/e2000d_demo_rtthread.h @@ -297,6 +297,9 @@ /* u8g2: a monochrome graphic library */ +/* PainterEngine: A cross-platform graphics application framework written in C language */ + + /* tools packages */ @@ -328,9 +331,6 @@ /* AI packages */ -/* Signal Processing and Control Algorithm Packages */ - - /* miscellaneous packages */ /* project laboratory */ @@ -347,7 +347,7 @@ /* Arduino libraries */ -/* Projects and Demos */ +/* Projects */ /* Sensors */ @@ -372,7 +372,6 @@ /* Other */ - /* Signal IO */ @@ -412,6 +411,8 @@ #define BSP_USING_SDCARD_FATFS #define BSP_USING_SDCARD_PARTITION "sd0" #define USING_SDIF1 +#define BSP_USING_DC +#define RT_USING_DC_CHANNEL1 /* Board extended module Drivers */ diff --git a/bsp/phytium/aarch64/configs/e2000q_demo_rtsmart b/bsp/phytium/aarch64/configs/e2000q_demo_rtsmart index d03d884258..cf3afda9f8 100644 --- a/bsp/phytium/aarch64/configs/e2000q_demo_rtsmart +++ b/bsp/phytium/aarch64/configs/e2000q_demo_rtsmart @@ -468,6 +468,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_KAWAII_MQTT is not set # CONFIG_PKG_USING_BC28_MQTT is not set # CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_LIBMODBUS is not set # CONFIG_PKG_USING_FREEMODBUS is not set # CONFIG_PKG_USING_NANOPB is not set @@ -535,8 +536,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AGILE_FTP is not set # CONFIG_PKG_USING_EMBEDDEDPROTO is not set # CONFIG_PKG_USING_RT_LINK_HW is not set -# CONFIG_PKG_USING_RYANMQTT is not set -# CONFIG_PKG_USING_RYANW5500 is not set # CONFIG_PKG_USING_LORA_PKT_FWD is not set # CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set # CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set @@ -544,8 +543,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_SMALL_MODBUS is not set # CONFIG_PKG_USING_NET_SERVER is not set # CONFIG_PKG_USING_ZFTP is not set -# CONFIG_PKG_USING_WOL is not set -# CONFIG_PKG_USING_ZEPHYR_POLLING is not set # # security packages @@ -614,12 +611,17 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MP3PLAYER is not set # CONFIG_PKG_USING_TINYJPEG is not set # CONFIG_PKG_USING_UGUI is not set + +# +# PainterEngine: A cross-platform graphics application framework written in C language +# +# CONFIG_PKG_USING_PAINTERENGINE is not set +# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set # CONFIG_PKG_USING_MCURSES is not set # CONFIG_PKG_USING_TERMBOX is not set # CONFIG_PKG_USING_VT100 is not set # CONFIG_PKG_USING_QRCODE is not set # CONFIG_PKG_USING_GUIENGINE is not set -# CONFIG_PKG_USING_3GPP_AMRNB is not set # # tools packages @@ -629,7 +631,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_EASYLOGGER is not set # CONFIG_PKG_USING_SYSTEMVIEW is not set # CONFIG_PKG_USING_SEGGER_RTT is not set -# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set # CONFIG_PKG_USING_RDB is not set # CONFIG_PKG_USING_ULOG_EASYFLASH is not set # CONFIG_PKG_USING_LOGMGR is not set @@ -665,6 +666,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CBOX is not set # CONFIG_PKG_USING_SNOWFLAKE is not set # CONFIG_PKG_USING_HASH_MATCH is not set +# CONFIG_PKG_USING_FIRE_PID_CURVE is not set # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set # CONFIG_PKG_USING_VOFA_PLUS is not set @@ -737,8 +739,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_TFDB is not set # CONFIG_PKG_USING_QPC is not set # CONFIG_PKG_USING_AGILE_UPGRADE is not set -# CONFIG_PKG_USING_FLASH_BLOB is not set -# CONFIG_PKG_USING_MLIBC is not set # # peripheral libraries and drivers @@ -747,6 +747,7 @@ CONFIG_RT_USING_ADT_REF=y # # sensors drivers # +# CONFIG_PKG_USING_FINGERPRINT is not set # CONFIG_PKG_USING_LSM6DSM is not set # CONFIG_PKG_USING_LSM6DSL is not set # CONFIG_PKG_USING_LPS22HB is not set @@ -806,11 +807,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AD7746 is not set # CONFIG_PKG_USING_ADT74XX is not set # CONFIG_PKG_USING_MAX17048 is not set -# CONFIG_PKG_USING_AS7341 is not set -# CONFIG_PKG_USING_CW2015 is not set -# CONFIG_PKG_USING_ICM20608 is not set -# CONFIG_PKG_USING_PAJ7620 is not set -# CONFIG_PKG_USING_STHS34PF80 is not set # # touch drivers @@ -823,10 +819,11 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_FT5426 is not set # CONFIG_PKG_USING_FT6236 is not set # CONFIG_PKG_USING_XPT2046_TOUCH is not set -# CONFIG_PKG_USING_CST816X is not set # CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_AS7341 is not set # CONFIG_PKG_USING_STM32_SDIO is not set # CONFIG_PKG_USING_ESP_IDF is not set +# CONFIG_PKG_USING_ICM20608 is not set # CONFIG_PKG_USING_BUTTON is not set # CONFIG_PKG_USING_PCF8574 is not set # CONFIG_PKG_USING_SX12XX is not set @@ -836,6 +833,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_LKDGUI is not set # CONFIG_PKG_USING_NRF5X_SDK is not set # CONFIG_PKG_USING_NRFX is not set +# CONFIG_PKG_USING_WM_LIBRARIES is not set # # Kendryte SDK @@ -849,7 +847,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AT24CXX is not set # CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set # CONFIG_PKG_USING_PCA9685 is not set -# CONFIG_PKG_USING_ILI9341 is not set # CONFIG_PKG_USING_I2C_TOOLS is not set # CONFIG_PKG_USING_NRF24L01 is not set # CONFIG_PKG_USING_RPLIDAR is not set @@ -866,6 +863,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CAN_YMODEM is not set # CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set # CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_PAJ7620 is not set # CONFIG_PKG_USING_AGILE_CONSOLE is not set # CONFIG_PKG_USING_LD3320 is not set # CONFIG_PKG_USING_WK2124 is not set @@ -893,17 +891,14 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MISAKA_AT24CXX is not set # CONFIG_PKG_USING_MISAKA_RGB_BLING is not set # CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set +# CONFIG_PKG_USING_BL_MCU_SDK is not set # CONFIG_PKG_USING_SOFT_SERIAL is not set # CONFIG_PKG_USING_MB85RS16 is not set +# CONFIG_PKG_USING_CW2015 is not set # CONFIG_PKG_USING_RFM300 is not set # CONFIG_PKG_USING_IO_INPUT_FILTER is not set # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set # CONFIG_PKG_USING_LRF_NV7LIDAR is not set -# CONFIG_PKG_USING_AIP650 is not set -# CONFIG_PKG_USING_FINGERPRINT is not set -# CONFIG_PKG_USING_BT_ECB02C is not set -# CONFIG_PKG_USING_UAT is not set -# CONFIG_PKG_USING_SPI_TOOLS is not set # # AI packages @@ -917,16 +912,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_ULAPACK is not set # CONFIG_PKG_USING_QUEST is not set # CONFIG_PKG_USING_NAXOS is not set -# CONFIG_PKG_USING_NCNN is not set - -# -# Signal Processing and Control Algorithm Packages -# -# CONFIG_PKG_USING_FIRE_PID_CURVE is not set -# CONFIG_PKG_USING_QPID is not set -# CONFIG_PKG_USING_UKAL is not set -# CONFIG_PKG_USING_DIGITALCTRL is not set -# CONFIG_PKG_USING_KISSFFT is not set # # miscellaneous packages @@ -981,7 +966,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_TETRIS is not set # CONFIG_PKG_USING_DONUT is not set # CONFIG_PKG_USING_COWSAY is not set -# CONFIG_PKG_USING_MORSE is not set # CONFIG_PKG_USING_LIBCSV is not set # CONFIG_PKG_USING_OPTPARSE is not set # CONFIG_PKG_USING_FASTLZ is not set @@ -997,12 +981,14 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set # CONFIG_PKG_USING_UPACKER is not set # CONFIG_PKG_USING_UPARAM is not set # CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_VI is not set # CONFIG_PKG_USING_KI is not set # CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_UKAL is not set # CONFIG_PKG_USING_CRCLIB is not set # CONFIG_PKG_USING_LWGPS is not set # CONFIG_PKG_USING_STATE_MACHINE is not set @@ -1013,7 +999,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_SLCAN2RTT is not set # CONFIG_PKG_USING_SOEM is not set # CONFIG_PKG_USING_QPARAM is not set -# CONFIG_PKG_USING_CorevMCU_CLI is not set # # Arduino libraries @@ -1021,9 +1006,8 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_RTDUINO is not set # -# Projects and Demos +# Projects # -# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set # CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set # CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set # CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set @@ -1031,17 +1015,13 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # # Sensors # -# CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set # CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set # CONFIG_PKG_USING_ADAFRUIT_MAX31855 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90614 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS1 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AHTX0 is not set @@ -1163,26 +1143,17 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_ARDUINO_SEEED_LSM6DS3 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HDC1000 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HM3301 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set # # Display # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set # CONFIG_PKG_USING_ARDUINO_U8G2 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set # CONFIG_PKG_USING_SEEED_TM1637 is not set # # Timing # # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set -# CONFIG_PKG_USING_ARDUINO_TICKER is not set -# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set # # Data Processing @@ -1206,17 +1177,10 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set # # Other # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set -# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set # # Signal IO @@ -1299,6 +1263,11 @@ CONFIG_BSP_USING_SDCARD_PARTITION="sd0" # CONFIG_USING_SDIF0 is not set CONFIG_USING_SDIF1=y # CONFIG_USING_EMMC is not set +CONFIG_BSP_USING_DC=y +# CONFIG_RT_USING_DC_CHANNEL0 is not set +CONFIG_RT_USING_DC_CHANNEL1=y +# CONFIG_BSP_USING_XHCI is not set +# CONFIG_BSP_USING_PUSB2 is not set # # Board extended module Drivers diff --git a/bsp/phytium/aarch64/configs/e2000q_demo_rtsmart.h b/bsp/phytium/aarch64/configs/e2000q_demo_rtsmart.h index 201bbed7e0..49164785f7 100644 --- a/bsp/phytium/aarch64/configs/e2000q_demo_rtsmart.h +++ b/bsp/phytium/aarch64/configs/e2000q_demo_rtsmart.h @@ -307,6 +307,9 @@ /* u8g2: a monochrome graphic library */ +/* PainterEngine: A cross-platform graphics application framework written in C language */ + + /* tools packages */ @@ -338,9 +341,6 @@ /* AI packages */ -/* Signal Processing and Control Algorithm Packages */ - - /* miscellaneous packages */ /* project laboratory */ @@ -357,7 +357,7 @@ /* Arduino libraries */ -/* Projects and Demos */ +/* Projects */ /* Sensors */ @@ -382,7 +382,6 @@ /* Other */ - /* Signal IO */ @@ -422,6 +421,8 @@ #define BSP_USING_SDCARD_FATFS #define BSP_USING_SDCARD_PARTITION "sd0" #define USING_SDIF1 +#define BSP_USING_DC +#define RT_USING_DC_CHANNEL1 /* Board extended module Drivers */ diff --git a/bsp/phytium/aarch64/configs/e2000q_demo_rtthread b/bsp/phytium/aarch64/configs/e2000q_demo_rtthread index 1b76defef5..5df348cb44 100644 --- a/bsp/phytium/aarch64/configs/e2000q_demo_rtthread +++ b/bsp/phytium/aarch64/configs/e2000q_demo_rtthread @@ -454,6 +454,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_KAWAII_MQTT is not set # CONFIG_PKG_USING_BC28_MQTT is not set # CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_LIBMODBUS is not set # CONFIG_PKG_USING_FREEMODBUS is not set # CONFIG_PKG_USING_NANOPB is not set @@ -521,8 +522,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AGILE_FTP is not set # CONFIG_PKG_USING_EMBEDDEDPROTO is not set # CONFIG_PKG_USING_RT_LINK_HW is not set -# CONFIG_PKG_USING_RYANMQTT is not set -# CONFIG_PKG_USING_RYANW5500 is not set # CONFIG_PKG_USING_LORA_PKT_FWD is not set # CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set # CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set @@ -530,8 +529,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_SMALL_MODBUS is not set # CONFIG_PKG_USING_NET_SERVER is not set # CONFIG_PKG_USING_ZFTP is not set -# CONFIG_PKG_USING_WOL is not set -# CONFIG_PKG_USING_ZEPHYR_POLLING is not set # # security packages @@ -600,12 +597,17 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MP3PLAYER is not set # CONFIG_PKG_USING_TINYJPEG is not set # CONFIG_PKG_USING_UGUI is not set + +# +# PainterEngine: A cross-platform graphics application framework written in C language +# +# CONFIG_PKG_USING_PAINTERENGINE is not set +# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set # CONFIG_PKG_USING_MCURSES is not set # CONFIG_PKG_USING_TERMBOX is not set # CONFIG_PKG_USING_VT100 is not set # CONFIG_PKG_USING_QRCODE is not set # CONFIG_PKG_USING_GUIENGINE is not set -# CONFIG_PKG_USING_3GPP_AMRNB is not set # # tools packages @@ -615,7 +617,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_EASYLOGGER is not set # CONFIG_PKG_USING_SYSTEMVIEW is not set # CONFIG_PKG_USING_SEGGER_RTT is not set -# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set # CONFIG_PKG_USING_RDB is not set # CONFIG_PKG_USING_ULOG_EASYFLASH is not set # CONFIG_PKG_USING_LOGMGR is not set @@ -651,6 +652,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CBOX is not set # CONFIG_PKG_USING_SNOWFLAKE is not set # CONFIG_PKG_USING_HASH_MATCH is not set +# CONFIG_PKG_USING_FIRE_PID_CURVE is not set # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set # CONFIG_PKG_USING_VOFA_PLUS is not set @@ -723,8 +725,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_TFDB is not set # CONFIG_PKG_USING_QPC is not set # CONFIG_PKG_USING_AGILE_UPGRADE is not set -# CONFIG_PKG_USING_FLASH_BLOB is not set -# CONFIG_PKG_USING_MLIBC is not set # # peripheral libraries and drivers @@ -733,6 +733,7 @@ CONFIG_RT_USING_ADT_REF=y # # sensors drivers # +# CONFIG_PKG_USING_FINGERPRINT is not set # CONFIG_PKG_USING_LSM6DSM is not set # CONFIG_PKG_USING_LSM6DSL is not set # CONFIG_PKG_USING_LPS22HB is not set @@ -792,11 +793,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AD7746 is not set # CONFIG_PKG_USING_ADT74XX is not set # CONFIG_PKG_USING_MAX17048 is not set -# CONFIG_PKG_USING_AS7341 is not set -# CONFIG_PKG_USING_CW2015 is not set -# CONFIG_PKG_USING_ICM20608 is not set -# CONFIG_PKG_USING_PAJ7620 is not set -# CONFIG_PKG_USING_STHS34PF80 is not set # # touch drivers @@ -809,10 +805,11 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_FT5426 is not set # CONFIG_PKG_USING_FT6236 is not set # CONFIG_PKG_USING_XPT2046_TOUCH is not set -# CONFIG_PKG_USING_CST816X is not set # CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_AS7341 is not set # CONFIG_PKG_USING_STM32_SDIO is not set # CONFIG_PKG_USING_ESP_IDF is not set +# CONFIG_PKG_USING_ICM20608 is not set # CONFIG_PKG_USING_BUTTON is not set # CONFIG_PKG_USING_PCF8574 is not set # CONFIG_PKG_USING_SX12XX is not set @@ -822,6 +819,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_LKDGUI is not set # CONFIG_PKG_USING_NRF5X_SDK is not set # CONFIG_PKG_USING_NRFX is not set +# CONFIG_PKG_USING_WM_LIBRARIES is not set # # Kendryte SDK @@ -835,7 +833,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AT24CXX is not set # CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set # CONFIG_PKG_USING_PCA9685 is not set -# CONFIG_PKG_USING_ILI9341 is not set # CONFIG_PKG_USING_I2C_TOOLS is not set # CONFIG_PKG_USING_NRF24L01 is not set # CONFIG_PKG_USING_RPLIDAR is not set @@ -852,6 +849,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CAN_YMODEM is not set # CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set # CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_PAJ7620 is not set # CONFIG_PKG_USING_AGILE_CONSOLE is not set # CONFIG_PKG_USING_LD3320 is not set # CONFIG_PKG_USING_WK2124 is not set @@ -879,17 +877,14 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MISAKA_AT24CXX is not set # CONFIG_PKG_USING_MISAKA_RGB_BLING is not set # CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set +# CONFIG_PKG_USING_BL_MCU_SDK is not set # CONFIG_PKG_USING_SOFT_SERIAL is not set # CONFIG_PKG_USING_MB85RS16 is not set +# CONFIG_PKG_USING_CW2015 is not set # CONFIG_PKG_USING_RFM300 is not set # CONFIG_PKG_USING_IO_INPUT_FILTER is not set # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set # CONFIG_PKG_USING_LRF_NV7LIDAR is not set -# CONFIG_PKG_USING_AIP650 is not set -# CONFIG_PKG_USING_FINGERPRINT is not set -# CONFIG_PKG_USING_BT_ECB02C is not set -# CONFIG_PKG_USING_UAT is not set -# CONFIG_PKG_USING_SPI_TOOLS is not set # # AI packages @@ -903,16 +898,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_ULAPACK is not set # CONFIG_PKG_USING_QUEST is not set # CONFIG_PKG_USING_NAXOS is not set -# CONFIG_PKG_USING_NCNN is not set - -# -# Signal Processing and Control Algorithm Packages -# -# CONFIG_PKG_USING_FIRE_PID_CURVE is not set -# CONFIG_PKG_USING_QPID is not set -# CONFIG_PKG_USING_UKAL is not set -# CONFIG_PKG_USING_DIGITALCTRL is not set -# CONFIG_PKG_USING_KISSFFT is not set # # miscellaneous packages @@ -967,7 +952,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_TETRIS is not set # CONFIG_PKG_USING_DONUT is not set # CONFIG_PKG_USING_COWSAY is not set -# CONFIG_PKG_USING_MORSE is not set # CONFIG_PKG_USING_LIBCSV is not set # CONFIG_PKG_USING_OPTPARSE is not set # CONFIG_PKG_USING_FASTLZ is not set @@ -983,12 +967,14 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set # CONFIG_PKG_USING_UPACKER is not set # CONFIG_PKG_USING_UPARAM is not set # CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_VI is not set # CONFIG_PKG_USING_KI is not set # CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_UKAL is not set # CONFIG_PKG_USING_CRCLIB is not set # CONFIG_PKG_USING_LWGPS is not set # CONFIG_PKG_USING_STATE_MACHINE is not set @@ -999,7 +985,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_SLCAN2RTT is not set # CONFIG_PKG_USING_SOEM is not set # CONFIG_PKG_USING_QPARAM is not set -# CONFIG_PKG_USING_CorevMCU_CLI is not set # # Arduino libraries @@ -1007,9 +992,8 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_RTDUINO is not set # -# Projects and Demos +# Projects # -# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set # CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set # CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set # CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set @@ -1017,17 +1001,13 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # # Sensors # -# CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set # CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set # CONFIG_PKG_USING_ADAFRUIT_MAX31855 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90614 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS1 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AHTX0 is not set @@ -1149,26 +1129,17 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_ARDUINO_SEEED_LSM6DS3 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HDC1000 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HM3301 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set # # Display # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set # CONFIG_PKG_USING_ARDUINO_U8G2 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set # CONFIG_PKG_USING_SEEED_TM1637 is not set # # Timing # # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set -# CONFIG_PKG_USING_ARDUINO_TICKER is not set -# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set # # Data Processing @@ -1192,17 +1163,10 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set # # Other # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set -# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set # # Signal IO @@ -1285,6 +1249,11 @@ CONFIG_BSP_USING_SDCARD_PARTITION="sd0" # CONFIG_USING_SDIF0 is not set CONFIG_USING_SDIF1=y # CONFIG_USING_EMMC is not set +CONFIG_BSP_USING_DC=y +CONFIG_RT_USING_DC_CHANNEL0=y +# CONFIG_RT_USING_DC_CHANNEL1 is not set +# CONFIG_BSP_USING_XHCI is not set +# CONFIG_BSP_USING_PUSB2 is not set # # Board extended module Drivers diff --git a/bsp/phytium/aarch64/configs/e2000q_demo_rtthread.h b/bsp/phytium/aarch64/configs/e2000q_demo_rtthread.h index 6150145f1c..b7c71f51a8 100644 --- a/bsp/phytium/aarch64/configs/e2000q_demo_rtthread.h +++ b/bsp/phytium/aarch64/configs/e2000q_demo_rtthread.h @@ -297,6 +297,9 @@ /* u8g2: a monochrome graphic library */ +/* PainterEngine: A cross-platform graphics application framework written in C language */ + + /* tools packages */ @@ -328,9 +331,6 @@ /* AI packages */ -/* Signal Processing and Control Algorithm Packages */ - - /* miscellaneous packages */ /* project laboratory */ @@ -347,7 +347,7 @@ /* Arduino libraries */ -/* Projects and Demos */ +/* Projects */ /* Sensors */ @@ -372,7 +372,6 @@ /* Other */ - /* Signal IO */ @@ -412,6 +411,8 @@ #define BSP_USING_SDCARD_FATFS #define BSP_USING_SDCARD_PARTITION "sd0" #define USING_SDIF1 +#define BSP_USING_DC +#define RT_USING_DC_CHANNEL0 /* Board extended module Drivers */ diff --git a/bsp/phytium/aarch64/configs/phytium_pi_rtsmart b/bsp/phytium/aarch64/configs/phytium_pi_rtsmart index 844a84a05f..fc5a79a563 100644 --- a/bsp/phytium/aarch64/configs/phytium_pi_rtsmart +++ b/bsp/phytium/aarch64/configs/phytium_pi_rtsmart @@ -468,6 +468,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_KAWAII_MQTT is not set # CONFIG_PKG_USING_BC28_MQTT is not set # CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_LIBMODBUS is not set # CONFIG_PKG_USING_FREEMODBUS is not set # CONFIG_PKG_USING_NANOPB is not set @@ -535,8 +536,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AGILE_FTP is not set # CONFIG_PKG_USING_EMBEDDEDPROTO is not set # CONFIG_PKG_USING_RT_LINK_HW is not set -# CONFIG_PKG_USING_RYANMQTT is not set -# CONFIG_PKG_USING_RYANW5500 is not set # CONFIG_PKG_USING_LORA_PKT_FWD is not set # CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set # CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set @@ -544,8 +543,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_SMALL_MODBUS is not set # CONFIG_PKG_USING_NET_SERVER is not set # CONFIG_PKG_USING_ZFTP is not set -# CONFIG_PKG_USING_WOL is not set -# CONFIG_PKG_USING_ZEPHYR_POLLING is not set # # security packages @@ -614,12 +611,17 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MP3PLAYER is not set # CONFIG_PKG_USING_TINYJPEG is not set # CONFIG_PKG_USING_UGUI is not set + +# +# PainterEngine: A cross-platform graphics application framework written in C language +# +# CONFIG_PKG_USING_PAINTERENGINE is not set +# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set # CONFIG_PKG_USING_MCURSES is not set # CONFIG_PKG_USING_TERMBOX is not set # CONFIG_PKG_USING_VT100 is not set # CONFIG_PKG_USING_QRCODE is not set # CONFIG_PKG_USING_GUIENGINE is not set -# CONFIG_PKG_USING_3GPP_AMRNB is not set # # tools packages @@ -629,7 +631,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_EASYLOGGER is not set # CONFIG_PKG_USING_SYSTEMVIEW is not set # CONFIG_PKG_USING_SEGGER_RTT is not set -# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set # CONFIG_PKG_USING_RDB is not set # CONFIG_PKG_USING_ULOG_EASYFLASH is not set # CONFIG_PKG_USING_LOGMGR is not set @@ -665,6 +666,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CBOX is not set # CONFIG_PKG_USING_SNOWFLAKE is not set # CONFIG_PKG_USING_HASH_MATCH is not set +# CONFIG_PKG_USING_FIRE_PID_CURVE is not set # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set # CONFIG_PKG_USING_VOFA_PLUS is not set @@ -737,8 +739,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_TFDB is not set # CONFIG_PKG_USING_QPC is not set # CONFIG_PKG_USING_AGILE_UPGRADE is not set -# CONFIG_PKG_USING_FLASH_BLOB is not set -# CONFIG_PKG_USING_MLIBC is not set # # peripheral libraries and drivers @@ -747,6 +747,7 @@ CONFIG_RT_USING_ADT_REF=y # # sensors drivers # +# CONFIG_PKG_USING_FINGERPRINT is not set # CONFIG_PKG_USING_LSM6DSM is not set # CONFIG_PKG_USING_LSM6DSL is not set # CONFIG_PKG_USING_LPS22HB is not set @@ -806,11 +807,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AD7746 is not set # CONFIG_PKG_USING_ADT74XX is not set # CONFIG_PKG_USING_MAX17048 is not set -# CONFIG_PKG_USING_AS7341 is not set -# CONFIG_PKG_USING_CW2015 is not set -# CONFIG_PKG_USING_ICM20608 is not set -# CONFIG_PKG_USING_PAJ7620 is not set -# CONFIG_PKG_USING_STHS34PF80 is not set # # touch drivers @@ -823,10 +819,11 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_FT5426 is not set # CONFIG_PKG_USING_FT6236 is not set # CONFIG_PKG_USING_XPT2046_TOUCH is not set -# CONFIG_PKG_USING_CST816X is not set # CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_AS7341 is not set # CONFIG_PKG_USING_STM32_SDIO is not set # CONFIG_PKG_USING_ESP_IDF is not set +# CONFIG_PKG_USING_ICM20608 is not set # CONFIG_PKG_USING_BUTTON is not set # CONFIG_PKG_USING_PCF8574 is not set # CONFIG_PKG_USING_SX12XX is not set @@ -836,6 +833,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_LKDGUI is not set # CONFIG_PKG_USING_NRF5X_SDK is not set # CONFIG_PKG_USING_NRFX is not set +# CONFIG_PKG_USING_WM_LIBRARIES is not set # # Kendryte SDK @@ -849,7 +847,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AT24CXX is not set # CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set # CONFIG_PKG_USING_PCA9685 is not set -# CONFIG_PKG_USING_ILI9341 is not set # CONFIG_PKG_USING_I2C_TOOLS is not set # CONFIG_PKG_USING_NRF24L01 is not set # CONFIG_PKG_USING_RPLIDAR is not set @@ -866,6 +863,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CAN_YMODEM is not set # CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set # CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_PAJ7620 is not set # CONFIG_PKG_USING_AGILE_CONSOLE is not set # CONFIG_PKG_USING_LD3320 is not set # CONFIG_PKG_USING_WK2124 is not set @@ -893,17 +891,14 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MISAKA_AT24CXX is not set # CONFIG_PKG_USING_MISAKA_RGB_BLING is not set # CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set +# CONFIG_PKG_USING_BL_MCU_SDK is not set # CONFIG_PKG_USING_SOFT_SERIAL is not set # CONFIG_PKG_USING_MB85RS16 is not set +# CONFIG_PKG_USING_CW2015 is not set # CONFIG_PKG_USING_RFM300 is not set # CONFIG_PKG_USING_IO_INPUT_FILTER is not set # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set # CONFIG_PKG_USING_LRF_NV7LIDAR is not set -# CONFIG_PKG_USING_AIP650 is not set -# CONFIG_PKG_USING_FINGERPRINT is not set -# CONFIG_PKG_USING_BT_ECB02C is not set -# CONFIG_PKG_USING_UAT is not set -# CONFIG_PKG_USING_SPI_TOOLS is not set # # AI packages @@ -917,16 +912,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_ULAPACK is not set # CONFIG_PKG_USING_QUEST is not set # CONFIG_PKG_USING_NAXOS is not set -# CONFIG_PKG_USING_NCNN is not set - -# -# Signal Processing and Control Algorithm Packages -# -# CONFIG_PKG_USING_FIRE_PID_CURVE is not set -# CONFIG_PKG_USING_QPID is not set -# CONFIG_PKG_USING_UKAL is not set -# CONFIG_PKG_USING_DIGITALCTRL is not set -# CONFIG_PKG_USING_KISSFFT is not set # # miscellaneous packages @@ -981,7 +966,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_TETRIS is not set # CONFIG_PKG_USING_DONUT is not set # CONFIG_PKG_USING_COWSAY is not set -# CONFIG_PKG_USING_MORSE is not set # CONFIG_PKG_USING_LIBCSV is not set # CONFIG_PKG_USING_OPTPARSE is not set # CONFIG_PKG_USING_FASTLZ is not set @@ -997,12 +981,14 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set # CONFIG_PKG_USING_UPACKER is not set # CONFIG_PKG_USING_UPARAM is not set # CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_VI is not set # CONFIG_PKG_USING_KI is not set # CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_UKAL is not set # CONFIG_PKG_USING_CRCLIB is not set # CONFIG_PKG_USING_LWGPS is not set # CONFIG_PKG_USING_STATE_MACHINE is not set @@ -1013,7 +999,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_SLCAN2RTT is not set # CONFIG_PKG_USING_SOEM is not set # CONFIG_PKG_USING_QPARAM is not set -# CONFIG_PKG_USING_CorevMCU_CLI is not set # # Arduino libraries @@ -1021,9 +1006,8 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_RTDUINO is not set # -# Projects and Demos +# Projects # -# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set # CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set # CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set # CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set @@ -1031,17 +1015,13 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # # Sensors # -# CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set # CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set # CONFIG_PKG_USING_ADAFRUIT_MAX31855 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90614 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS1 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AHTX0 is not set @@ -1163,26 +1143,17 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_ARDUINO_SEEED_LSM6DS3 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HDC1000 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HM3301 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set # # Display # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set # CONFIG_PKG_USING_ARDUINO_U8G2 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set # CONFIG_PKG_USING_SEEED_TM1637 is not set # # Timing # # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set -# CONFIG_PKG_USING_ARDUINO_TICKER is not set -# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set # # Data Processing @@ -1206,17 +1177,10 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set # # Other # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set -# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set # # Signal IO @@ -1290,6 +1254,11 @@ CONFIG_RT_USING_MIO10=y # CONFIG_RT_USING_MIO15 is not set # CONFIG_I2C_USE_CONTROLLER is not set # CONFIG_BSP_USING_SDIF is not set +CONFIG_BSP_USING_DC=y +# CONFIG_RT_USING_DC_CHANNEL0 is not set +CONFIG_RT_USING_DC_CHANNEL1=y +# CONFIG_BSP_USING_XHCI is not set +# CONFIG_BSP_USING_PUSB2 is not set # # Board extended module Drivers diff --git a/bsp/phytium/aarch64/configs/phytium_pi_rtsmart.h b/bsp/phytium/aarch64/configs/phytium_pi_rtsmart.h index 3bc08868c1..45fe5119b0 100644 --- a/bsp/phytium/aarch64/configs/phytium_pi_rtsmart.h +++ b/bsp/phytium/aarch64/configs/phytium_pi_rtsmart.h @@ -306,6 +306,9 @@ /* u8g2: a monochrome graphic library */ +/* PainterEngine: A cross-platform graphics application framework written in C language */ + + /* tools packages */ @@ -337,9 +340,6 @@ /* AI packages */ -/* Signal Processing and Control Algorithm Packages */ - - /* miscellaneous packages */ /* project laboratory */ @@ -356,7 +356,7 @@ /* Arduino libraries */ -/* Projects and Demos */ +/* Projects */ /* Sensors */ @@ -381,7 +381,6 @@ /* Other */ - /* Signal IO */ @@ -415,6 +414,8 @@ #define RT_USING_MIO1 #define RT_USING_MIO2 #define RT_USING_MIO10 +#define BSP_USING_DC +#define RT_USING_DC_CHANNEL1 /* Board extended module Drivers */ diff --git a/bsp/phytium/aarch64/configs/phytium_pi_rtthread b/bsp/phytium/aarch64/configs/phytium_pi_rtthread index 9632a40734..5bda6f3295 100644 --- a/bsp/phytium/aarch64/configs/phytium_pi_rtthread +++ b/bsp/phytium/aarch64/configs/phytium_pi_rtthread @@ -454,6 +454,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_KAWAII_MQTT is not set # CONFIG_PKG_USING_BC28_MQTT is not set # CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_LIBMODBUS is not set # CONFIG_PKG_USING_FREEMODBUS is not set # CONFIG_PKG_USING_NANOPB is not set @@ -521,8 +522,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AGILE_FTP is not set # CONFIG_PKG_USING_EMBEDDEDPROTO is not set # CONFIG_PKG_USING_RT_LINK_HW is not set -# CONFIG_PKG_USING_RYANMQTT is not set -# CONFIG_PKG_USING_RYANW5500 is not set # CONFIG_PKG_USING_LORA_PKT_FWD is not set # CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set # CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set @@ -530,8 +529,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_SMALL_MODBUS is not set # CONFIG_PKG_USING_NET_SERVER is not set # CONFIG_PKG_USING_ZFTP is not set -# CONFIG_PKG_USING_WOL is not set -# CONFIG_PKG_USING_ZEPHYR_POLLING is not set # # security packages @@ -600,12 +597,17 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MP3PLAYER is not set # CONFIG_PKG_USING_TINYJPEG is not set # CONFIG_PKG_USING_UGUI is not set + +# +# PainterEngine: A cross-platform graphics application framework written in C language +# +# CONFIG_PKG_USING_PAINTERENGINE is not set +# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set # CONFIG_PKG_USING_MCURSES is not set # CONFIG_PKG_USING_TERMBOX is not set # CONFIG_PKG_USING_VT100 is not set # CONFIG_PKG_USING_QRCODE is not set # CONFIG_PKG_USING_GUIENGINE is not set -# CONFIG_PKG_USING_3GPP_AMRNB is not set # # tools packages @@ -615,7 +617,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_EASYLOGGER is not set # CONFIG_PKG_USING_SYSTEMVIEW is not set # CONFIG_PKG_USING_SEGGER_RTT is not set -# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set # CONFIG_PKG_USING_RDB is not set # CONFIG_PKG_USING_ULOG_EASYFLASH is not set # CONFIG_PKG_USING_LOGMGR is not set @@ -651,6 +652,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CBOX is not set # CONFIG_PKG_USING_SNOWFLAKE is not set # CONFIG_PKG_USING_HASH_MATCH is not set +# CONFIG_PKG_USING_FIRE_PID_CURVE is not set # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set # CONFIG_PKG_USING_VOFA_PLUS is not set @@ -723,8 +725,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_TFDB is not set # CONFIG_PKG_USING_QPC is not set # CONFIG_PKG_USING_AGILE_UPGRADE is not set -# CONFIG_PKG_USING_FLASH_BLOB is not set -# CONFIG_PKG_USING_MLIBC is not set # # peripheral libraries and drivers @@ -733,6 +733,7 @@ CONFIG_RT_USING_ADT_REF=y # # sensors drivers # +# CONFIG_PKG_USING_FINGERPRINT is not set # CONFIG_PKG_USING_LSM6DSM is not set # CONFIG_PKG_USING_LSM6DSL is not set # CONFIG_PKG_USING_LPS22HB is not set @@ -792,11 +793,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AD7746 is not set # CONFIG_PKG_USING_ADT74XX is not set # CONFIG_PKG_USING_MAX17048 is not set -# CONFIG_PKG_USING_AS7341 is not set -# CONFIG_PKG_USING_CW2015 is not set -# CONFIG_PKG_USING_ICM20608 is not set -# CONFIG_PKG_USING_PAJ7620 is not set -# CONFIG_PKG_USING_STHS34PF80 is not set # # touch drivers @@ -809,10 +805,11 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_FT5426 is not set # CONFIG_PKG_USING_FT6236 is not set # CONFIG_PKG_USING_XPT2046_TOUCH is not set -# CONFIG_PKG_USING_CST816X is not set # CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_AS7341 is not set # CONFIG_PKG_USING_STM32_SDIO is not set # CONFIG_PKG_USING_ESP_IDF is not set +# CONFIG_PKG_USING_ICM20608 is not set # CONFIG_PKG_USING_BUTTON is not set # CONFIG_PKG_USING_PCF8574 is not set # CONFIG_PKG_USING_SX12XX is not set @@ -822,6 +819,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_LKDGUI is not set # CONFIG_PKG_USING_NRF5X_SDK is not set # CONFIG_PKG_USING_NRFX is not set +# CONFIG_PKG_USING_WM_LIBRARIES is not set # # Kendryte SDK @@ -835,7 +833,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_AT24CXX is not set # CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set # CONFIG_PKG_USING_PCA9685 is not set -# CONFIG_PKG_USING_ILI9341 is not set # CONFIG_PKG_USING_I2C_TOOLS is not set # CONFIG_PKG_USING_NRF24L01 is not set # CONFIG_PKG_USING_RPLIDAR is not set @@ -852,6 +849,7 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_CAN_YMODEM is not set # CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set # CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_PAJ7620 is not set # CONFIG_PKG_USING_AGILE_CONSOLE is not set # CONFIG_PKG_USING_LD3320 is not set # CONFIG_PKG_USING_WK2124 is not set @@ -879,17 +877,14 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_MISAKA_AT24CXX is not set # CONFIG_PKG_USING_MISAKA_RGB_BLING is not set # CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set +# CONFIG_PKG_USING_BL_MCU_SDK is not set # CONFIG_PKG_USING_SOFT_SERIAL is not set # CONFIG_PKG_USING_MB85RS16 is not set +# CONFIG_PKG_USING_CW2015 is not set # CONFIG_PKG_USING_RFM300 is not set # CONFIG_PKG_USING_IO_INPUT_FILTER is not set # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set # CONFIG_PKG_USING_LRF_NV7LIDAR is not set -# CONFIG_PKG_USING_AIP650 is not set -# CONFIG_PKG_USING_FINGERPRINT is not set -# CONFIG_PKG_USING_BT_ECB02C is not set -# CONFIG_PKG_USING_UAT is not set -# CONFIG_PKG_USING_SPI_TOOLS is not set # # AI packages @@ -903,16 +898,6 @@ CONFIG_RT_USING_ADT_REF=y # CONFIG_PKG_USING_ULAPACK is not set # CONFIG_PKG_USING_QUEST is not set # CONFIG_PKG_USING_NAXOS is not set -# CONFIG_PKG_USING_NCNN is not set - -# -# Signal Processing and Control Algorithm Packages -# -# CONFIG_PKG_USING_FIRE_PID_CURVE is not set -# CONFIG_PKG_USING_QPID is not set -# CONFIG_PKG_USING_UKAL is not set -# CONFIG_PKG_USING_DIGITALCTRL is not set -# CONFIG_PKG_USING_KISSFFT is not set # # miscellaneous packages @@ -967,7 +952,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_TETRIS is not set # CONFIG_PKG_USING_DONUT is not set # CONFIG_PKG_USING_COWSAY is not set -# CONFIG_PKG_USING_MORSE is not set # CONFIG_PKG_USING_LIBCSV is not set # CONFIG_PKG_USING_OPTPARSE is not set # CONFIG_PKG_USING_FASTLZ is not set @@ -983,12 +967,14 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set # CONFIG_PKG_USING_UPACKER is not set # CONFIG_PKG_USING_UPARAM is not set # CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_VI is not set # CONFIG_PKG_USING_KI is not set # CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_UKAL is not set # CONFIG_PKG_USING_CRCLIB is not set # CONFIG_PKG_USING_LWGPS is not set # CONFIG_PKG_USING_STATE_MACHINE is not set @@ -999,7 +985,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_SLCAN2RTT is not set # CONFIG_PKG_USING_SOEM is not set # CONFIG_PKG_USING_QPARAM is not set -# CONFIG_PKG_USING_CorevMCU_CLI is not set # # Arduino libraries @@ -1007,9 +992,8 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_RTDUINO is not set # -# Projects and Demos +# Projects # -# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set # CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set # CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set # CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set @@ -1017,17 +1001,13 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # # Sensors # -# CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set # CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set # CONFIG_PKG_USING_ADAFRUIT_MAX31855 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90614 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS1 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AHTX0 is not set @@ -1149,26 +1129,17 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_ARDUINO_SEEED_LSM6DS3 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HDC1000 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_HM3301 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set -# CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set # # Display # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set # CONFIG_PKG_USING_ARDUINO_U8G2 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set # CONFIG_PKG_USING_SEEED_TM1637 is not set # # Timing # # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set -# CONFIG_PKG_USING_ARDUINO_TICKER is not set -# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set # # Data Processing @@ -1192,17 +1163,10 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set # # Other # -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set -# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set -# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set # # Signal IO @@ -1276,6 +1240,11 @@ CONFIG_RT_USING_MIO10=y # CONFIG_RT_USING_MIO15 is not set # CONFIG_I2C_USE_CONTROLLER is not set # CONFIG_BSP_USING_SDIF is not set +CONFIG_BSP_USING_DC=y +# CONFIG_RT_USING_DC_CHANNEL0 is not set +CONFIG_RT_USING_DC_CHANNEL1=y +# CONFIG_BSP_USING_XHCI is not set +# CONFIG_BSP_USING_PUSB2 is not set # # Board extended module Drivers diff --git a/bsp/phytium/aarch64/configs/phytium_pi_rtthread.h b/bsp/phytium/aarch64/configs/phytium_pi_rtthread.h index 3b0e6b27ac..964df3b17a 100644 --- a/bsp/phytium/aarch64/configs/phytium_pi_rtthread.h +++ b/bsp/phytium/aarch64/configs/phytium_pi_rtthread.h @@ -296,6 +296,9 @@ /* u8g2: a monochrome graphic library */ +/* PainterEngine: A cross-platform graphics application framework written in C language */ + + /* tools packages */ @@ -327,9 +330,6 @@ /* AI packages */ -/* Signal Processing and Control Algorithm Packages */ - - /* miscellaneous packages */ /* project laboratory */ @@ -346,7 +346,7 @@ /* Arduino libraries */ -/* Projects and Demos */ +/* Projects */ /* Sensors */ @@ -371,7 +371,6 @@ /* Other */ - /* Signal IO */ @@ -405,6 +404,8 @@ #define RT_USING_MIO1 #define RT_USING_MIO2 #define RT_USING_MIO10 +#define BSP_USING_DC +#define RT_USING_DC_CHANNEL1 /* Board extended module Drivers */ diff --git a/bsp/phytium/aarch64/rtconfig.h b/bsp/phytium/aarch64/rtconfig.h index 6150145f1c..964df3b17a 100644 --- a/bsp/phytium/aarch64/rtconfig.h +++ b/bsp/phytium/aarch64/rtconfig.h @@ -132,7 +132,6 @@ #define RT_SERIAL_USING_DMA #define RT_SERIAL_RB_BUFSZ 64 #define RT_USING_CAN -#define RT_CAN_USING_HDR #define RT_CAN_USING_CANFD #define RT_USING_I2C #define RT_USING_I2C_BITOPS @@ -297,6 +296,9 @@ /* u8g2: a monochrome graphic library */ +/* PainterEngine: A cross-platform graphics application framework written in C language */ + + /* tools packages */ @@ -328,9 +330,6 @@ /* AI packages */ -/* Signal Processing and Control Algorithm Packages */ - - /* miscellaneous packages */ /* project laboratory */ @@ -347,7 +346,7 @@ /* Arduino libraries */ -/* Projects and Demos */ +/* Projects */ /* Sensors */ @@ -372,7 +371,6 @@ /* Other */ - /* Signal IO */ @@ -392,11 +390,6 @@ #define RT_USING_SPIM1 #define RT_USING_SPIM2 #define RT_USING_SPIM3 -#define BSP_USING_CAN -#define RT_USING_CANFD -#define RT_USING_FILTER -#define RT_USING_CAN0 -#define RT_USING_CAN1 #define BSP_USING_GPIO #define BSP_USING_QSPI #define RT_USING_QSPI0 @@ -404,14 +397,15 @@ #define BSP_USING_ETH #define RT_LWIP_PBUF_POOL_BUFSIZE 1700 #define BSP_USING_PWM -#define RT_USING_PWM6 +#define RT_USING_PWM2 #define BSP_USING_I2C #define I2C_USE_MIO -#define RT_USING_MIO15 -#define BSP_USING_SDIF -#define BSP_USING_SDCARD_FATFS -#define BSP_USING_SDCARD_PARTITION "sd0" -#define USING_SDIF1 +#define RT_USING_MIO0 +#define RT_USING_MIO1 +#define RT_USING_MIO2 +#define RT_USING_MIO10 +#define BSP_USING_DC +#define RT_USING_DC_CHANNEL1 /* Board extended module Drivers */ @@ -426,9 +420,8 @@ /* Soc configuration */ -#define TARGET_E2000Q -#define SOC_NAME "e2000" -#define TARGET_TYPE_NAME "q" +#define TARGET_PHYTIUMPI +#define SOC_NAME "phytiumpi" #define SOC_CORE_NUM 4 #define F32BIT_MEMORY_ADDRESS 0x80000000 #define F32BIT_MEMORY_LENGTH 0x80000000 @@ -439,8 +432,8 @@ /* Board Configuration */ -#define BOARD_NAME "demo" -#define E2000Q_DEMO_BOARD +#define BOARD_NAME "firefly" +#define FIREFLY_DEMO_BOARD /* IO mux configuration when board start up */ diff --git a/bsp/phytium/doc/use_phytium_dc_with_lvgl.md b/bsp/phytium/doc/use_phytium_dc_with_lvgl.md new file mode 100644 index 0000000000..342c9df79d --- /dev/null +++ b/bsp/phytium/doc/use_phytium_dc_with_lvgl.md @@ -0,0 +1,43 @@ +# 基于飞腾BSP包开发lvgl应用程序 + +> 本文主要介绍如何利用飞腾BSP包中DC驱动开发lvgl应用程序 + +- DC 是一个显示控制器,主要完成将 CPU/GPU/VPU 处理后的图像数据,按照 Display 协议处理后送给 DP PHY 接入显示器。飞腾DC主要具有以下特性: + 支持两路 Display,两路 Display 互相独立,支持的 size 有 640×480、 800×600、 1024×768、 1152×864、 1280×720、 1280×960、 1366×768 、 1440×900、 1600×90、 1920×1080 , 最 大 帧 率 为5.4Gbps/(size*32bit);输出支持像素格式:RGB2101010,RGB888,RGB666,RGB555;兼容 DisplayPort1.4/Embedded DisplayPort1.4 协议等。 + +- lvgl集成了占用小、多平台使用、移植简单、操作简单、开源免费等一系列特点,是当前最流行的免费开源嵌入式图形库,可为任何 MCU、MPU 和显示类型创建漂亮的 UI。 + +## 在bsp/phytium 下拉取lvgl package包 + +- rt-thread 仓库已包含lvgl在线包,在实际开发时,使用者可按照需求拉取多种版本的仓库代码,下面以lvgl-8.3.2为例,其他版本与此类似。 + +-1.在rt-thread menuconfig中选中lvgl,在ENV环境或ubuntu中使用pkgs --update 更新 packages: + +![lvgl_select](../figures/lvgl_select.png) + +![lvgl_packages](../figures/lvgl_packages.png) + +## 在bsp/phytium 下选择DC驱动 + +![dc_select](../figures/dc_select.png) + +## lvgl与 DC驱动交互 + +-1.lvgl仓库支持适配rt-thread环境,在static void lvgl_thread_entry(void *parameter)中,用户可根据自身需要,添加或裁剪lvgl组件,其中 lv_init(); lv_port_disp_init()必须初始化后才能使用。 + +![lvgl_env](../figures/lvgl_rtthread_env.png) + +-2.在lvgl例程中找到并使用DC驱动 + +![lvgl_open](../figures/lvgl_open_dc.png) + +在void lv_port_disp_init(void)设备注册函数中利用device接口,找到并打开dc驱动,请确保此时在rt-thread中DC设备已成功注册,否则将无法使用 + +-3 创建一个lvgl demo线程 + +![lvgl_demo](../figures/lvgl_demo_thread.png) + + +利用rt-thread time组件给lvgl 提供心跳,并创建一个demo线程,在线程中,用户可根据自身开发情况,选择demo或者利用lvgl提供的接口创建合适的UI界面。 + +以上步骤已在E2000D demo板上进行测试,lvgl版本为lvgl-8.3.2,测试验证通过。 \ No newline at end of file diff --git a/bsp/phytium/figures/dc_select.png b/bsp/phytium/figures/dc_select.png new file mode 100644 index 0000000000000000000000000000000000000000..378f688335295e523ca9748de96e4101a6423b05 GIT binary patch literal 19385 zcmeFYXH-*N*EWi`A~wX^hJb)d6Dd)u5UQv&DT30AO7Fdds-mJIAT>Y;MY<3|uK`4) zh7funp@@*si6jsRA#f7!=Xsy^`_4PQGtR&B%I{S%dt)tmLqZ}jx&CF{#nR}@o~h@Nb?>``M}j>#+PGG>U!!dES2%6_n)&e zzMu5gGWTO)IorYfJJRh{Y|p}?tFL`u{YkLR`ZPx}uW9&CYPLdBrqC|Hv%m6@l53aI ze9z6Q@0GAPHn!nJ#jHsiC-=K$SezK(htY!I;+a&(SNIxSxS7bOi)n8wKYxls#M)*H znjOVOtJMpxrTs0j@ch1JyMQ2wTyq?0H#E_6qB6;k5=?}zjE6pjmwJws?i9_g?nQ+4 zg*+YGCeBzMMi6Ick|2!N6zN@!6?{rAxIjtOI(7AUq;Z4_y{xARh_B+${45qp)1eN< zVEW+Mhws963Vsq>0jlxhoS$q(iB-t9h1mM>fTnmrtGF*6?@On)B`w0u0QD^$1N)mh z3*V?b4k`7sH^B5RD1ltIzxJ_oAzHP`NN#FNTERQt-NZL~N*EmyIZr$cF%L-ZL1(Mp zWII5j`{h&&t(`g*s2iqRS4z7h8^JcSpZRSfqTL(r?G()NL@r|jnh#W#>io0HgN|Sj zg(LLV8QNCfa$6D-p%nT!!a5!g6ke6}utCgh#5a()svxBD;IX&-4DpUnKsfJWr1rm6wC|TAA*&%hv11A$u_Q6K@Z1QRrRT;D#jz)T^_`$-~ zV{Y(MO#w*WZqwdsWUFY9JKc>)WM~OXPQf_+RoFq)4TFPKK;L6v311rpx6>1#YHg8&Rt z))&Y2>o0Zal0?hnY69bpol%Os>r>!I_Ct}NI^Tults7Km*H)aVB1+Y z73XvLrZ&TPCp4A(2^^QU37-f!*bO~!0$d|dh7;1hX={RFtR&%(!=@fxZuhWw_uW{r z^*0nMH8MSg6HWv_HJvya^9$~Pq-7;{x9vul)A)GK87Fb{@jC8TlZh#Ivyj9V$eKTT zY*+xU!*ef{$>Tv^&bDd;K5CF{s;1xZAEV9iRx8P@!-O3w=3w$vBV}K@YIVLje`|II zfIF;TCm9Cs<^l29>21y18TA;I2Um}rAVfEA5hn>i#+XjsBo4C<9E!`OrH-Y@Pm2ca*b2ZQ z+k%bmV<8X|*(me!@JFo?iw>#)w#boudu~-j?&jH(F4NqqN&Nc!$((SGg1Miyq+dZ_ zW!r}*rCxyB))gaH0_bBdLGY1lE)vxq0MuIX@yAhZm|WY1=JjHUqC2}g`n{DzDyJd+ zT|3SFIKA-sdgyB}!BNRZT1*j2Wmf!fFMT$N4|s{m)27MJ!@WdAru4PKgJsKEaq?mu zC>sz#gxh1=K7nuQe>>v&RO=jmYZ$muK@7lCaD<)>mDj4i5VRp zX4{v^q7%etZ8ar1{0*Tl6tOXubh&mOg!%$CDn&RA8%BD+h1>oyc%!EB z(K6X(GAFm=a3Nr zJ8Oc68Bmyrdq?dj5mTD=3kqR1f><$y(8y%mBjB$rmwv7cBwV6XB(qha}tH zkww&!YOCZS`ZWA~^RIMCG8(@Reuy6;PHM;eLXpsiOY>D!`RaO%;$cvvQ1<@Lte!&a zU2re$&^h`HurA<$<~ZFbDqS9=?Bpno%?oECO|@iKW?QVLim1A({vlD( z@E=;vDkuMt`k$ZwpJ@K)x5kBZK+E1c`k8-T=Hg$njF8K`4DT|7?>{4UwoV(>Z69iq z2(hxG8^6Q~)W`zU6+QM|@&f(}?bpn%pI;wWaEb75s#6l@owg;!1bhC)eDvIync>>^ zBcjSd7WSPTq{h%}sgCSE7#ItBMXjP&oajFY&pnT*h+;o>|0vH~J8zGV1V-82P*BO= z`{fUgiuGE%$uYv%f$7?(hyEey^-=}qY-=KaUMi*_H)mqiDLdf;VHTJQCyCrIOKfh* zX}=6?egB%JYj67oIUXe2C}~SAk}KY5}=KJ(Vevbb<4wQ&#z`x#}1$4lb9Y=C99BrC<=%fDPLobr`cAk2D z*wLWpF+cgpw2y3-WpHR=4Q3Mo3i{I`kG zoMLN(g*Er?Nmo1-f75LIO!>>Sy$6#V*E$K+t5?F-Z;>Z|fWi4v38{{~v~+3fKZ{y2 z@*2K2#4FDx8)(wIXKC`jU)8QV_7aEYQ4@HJAc-O|6GJZA@`}~DEg)g`+y)V;1n`{) zVs`VuHX;$cC6|Hp&-~x+20wg9BpsEMxCC}Q;GLd<5^VJyX|tnd=#MzM&!zh8({-j2fPu5y(C!_? z)loHLG+poXr`Cv>HMjHKcb@ngrN{TO>8<{dN-&-A|6}Jly0ZJLN!#W^#6heioc@Eq z7VryWm2myhGq;r|(Ta*Tm_j@C_0$e7T8gWEsQwt%ECQCL3LAA-+?=ZGqo`c)Ji<8% zjz-8B5BxN^tX^@uu4L{zy}zZUX5QG;+DTPrgCv%UGdL}q=@{Ua(;s@75G9{wC`@vV zZ2H5(iiXR_I&H#Xau!2>rDRyLagM8KzhF-7ZL4K|OxBhUNfCR)?gc;VwG5Lfv8>Qr z=SLPMsp>_A>KU0AaT&QObt0eGSaowcJHiB-TXe47deEIp6@-ajxbC6N`DcpDy^t-3 zy-6ZlZBZ8Zu#DI)wy~`VLCNKvX2bybD@omW*oxoY zD-jW^eeD{**gw?ecBav)m1G0hJ#T9BH9Voyn=ji#XZeIlEBzL|ZPxwvh3b~sk$|j- zn^gmOnjClIbA_ssK|JTmjQ^j&@47oMGZw;lNMUp3DKPX-m_Mvf?gnPB^5g=ETVfq!T0Z57m!}HdbVwK-ZqJESN9tx!`A^~ zhj#>#mIPF5nJtm^Sbzm#-!J8)mId6|cSLw9ud^-xRELj08Vu_{ z#H%OFHM`qto1GuHIu_Ak@)@2C`omvEBTFDQezhMG5tI7faB2p z5PpZ_o&HHj86lWk9PCmzrrqJ!cze-;-;Rnu;Sg;<_$0pBrwd{P?-B$W1@Xawq(2a>MdYPs30D8{D%s4 zYI!A0dVd_`y3d@>jN9n-i`rV(uYgz^_7BTPNliOa%V_xc?Gu2V&q{7ZA;=#HEz_dK zX&b%RSfwLz^NqD&ocYmL$2K!80_%hyu2tpI{rPP@n(Rw^clIWo z7T#R#-``o;Ha5uEx47O>`kIsWwCdn;(rq$24Sf(1HaGfe@L;rh!#Os|```oOq7Gz5 zF=@DID7>V>KWaaV(5%op;o;by*F}*&n0T5M?gQ1-Yi~?cw`eWGKlV-c*4C-+{|<5+ zuHTw+0lW;`!O{T%qiSuiNng6bsnmhD)y@>B7-;lT2uFJ%cZI9`a)jilPt3`!(QwcEBW!%qp zLvqgUx{&O1i`K9f>Y{-+~8o*l}ZC*Qo?CD_J%Bg+ZA{ry|q$vo7o@v@x92rq8@A^=v-T5a#0j!)X z{3=&kmuA!OXBST#3*NUIfM~L>JAJQQoCa@^i+wW1CIz8lC7>sw7bcMb)$k}%OjYLX z>@Dn{q)B&3h!}B5o2|&!FzNYiT?DQHIduy53x(nA_V#$wk855HC%uKIbD}K+O<#*!oW@HR zZQ}=rtaRN9?o*_>8$jJV^Yxti;1ylx0N{+w=1!yU8SE3UG2H?BBSjTnaEBt=>(@oS zytVyp2{2}B{zwoMOSkb5mV5mqa@sjZo;D4#V1V&5^CpuDyweWPAUyhE7{uc`{y^G{uzov{qT zKP1PuHc*kQQS%ROt6PnV3Q)TVHdhCM9Y<3>1)$bkd9(kk*OAMJVski z4ziWGIl4fWJG-cJbfrJ?t{4+E5FWLjhj%hg()|uexx^?9<^6r1Za2D2tS3V^x059fjAMH zsk8MLNESkE4l|tw`yEbrNKYiKJuBv}dt;1JYb*ugD=%Xjm$o9ql zS7i;DxW&1m5B;j+HLV$!8@#{idYSt)t7d6d_a*9%)7`yoS5)Fx+8c*2rjv^G@C7$A z>m8vp@rIcZH+^ULlr!pQRhX+-691rHnfI&h97q*?xS&kx#cXUxrijOa61c~?xd{(+ zz_d?FR@NKCs|(x;5+VdlC;)2VxAp_ky19(V#7TSdj%HkDYr)^r=sH`Nt?YbwkTd({ zW=r~KTgZLzChdF`j-5UX!F*^?ko4f=wy|xcmwBRjYFyIfs!zGfE9|Nt@lbiHNxqZB z5n0R|iQ6at#cGi!)IqUIo!v_YXQyn9=f>F?=&a^sf|iHh(A{O?Ga9oSDV-obp*5#2 z+oA<4?csiegq1gaOkK#3B2I`EM_o)F)oOso@NOsabh zCBj&k)X>jS&4ml?pMlrvf@KEr>okHJzG!y$t5Ov)Szh_X`=$}jdv(Q5d_WMHeRb#z-oQeYf0)0D@3&ewCyq5t>t)%Mb$!_$p4 zVKR|JKL+7zMsZ`Wgv{`iaEhPDwnq&7?BUb z4+fy%?2!4f!ej>d2j0Cre@bRUt+stUV67r z%S+7lk2=RA5BRNawUND41nFKo!V+u7YbhO7JF^Fdf}{LtZB{yMc6A1o-m1^llX_`H z#3-%4F1}L6D}rpvbf+&j?rYK*(~4d`R&>i1*bhJXvD4oha8mt_s+Q13j@i_n5-94$ zjqHiAbb0s;Q~YZ6c}#s!6LW@1vOjbADdxQ5?9@qJj@d)TgL}v1u3cWu5WC-D!u{=( z;*T9RO*L`#ik4?k)$qqWj~RvgMYcceyL@VICF5}Xj`kXLHKl`8uX_7%rsg~ER0wUI zwBc66QB558pRg@zJLH-4stekN)`M2}dEp~;FQjoK5p7aU+udepYemga*m)L~YY(il zU)Zo$(0)vY4HJpTLq9sL8IP+vv?`|NL-8fn(W3X^YD!OySb z7>@Xv=#BqsjQo#^{vVb9KaQMw**XjBU@0EPSP7#k5FD_%Mq>J~U@0L`6oI&RwP)F>?P7mD%?bE;eHD2PD2 z)SE28%BxSH_twWz#LMO~HTiy zABZ_iPpmvaJts*E(R0VsTP`We#&e(gh(Zs%|D<|-UP@pJ!-+X-+&~BnT14_yO*Rr< z^?=4zBfd2kAM4o2wz_&ccr0M;zH+jPjvJ;N$QMxIn{weNGM9K)(>NOgRi%G_ z`YWF&t5{_u7Az0gs~&p+t#2o94DP0FfhiBO!fR8tOCtLt2_C;2U#=!vZnfA!x4;|| zXxU&6=Mo*2Ol6^J`s#iCtZk<&(hf-giZpd_LSfp_&^>VP{g$My1U>4;NcEVQ$!|UV zh7haIn&qHdB)t!@Y9is%$wjB?+74XrkI^pQn6PmW(aY7L7Rpvxb)8rrm6I6l*66-s zEm<{iZ7-_|;PUhwXBhcn)3;6!fZ428?*eh@-OB!8lif)Fb)+In-9Z<821f>*G7ePm zLv(YFJ3q205{vgw|4nF_@2gUct(rZPEZsUN!mA+wT2=Bg_1fW|@eQ-PIBAnd^;7_p z2cRqazwbEcgEQ#<+7|jn(Lo;1%|D7p#XKobipyQ+zUh<^nD>JJi`$ctA7^p{il$4g zUXZT~9r{A+Z9wI{NewP16G?KgM`^K!Dt>0+vuQm`7XsaV-XQ&C48jx0?L0DGYmd6a z6}7AD7nS(S@_h@xll^&7=jxR)5pup~TrdTQMGgB##qua^TDoMT_=CPT(_nFz%LI5{ z)64|D-<#eK$wJ+(2}siF<+vx4$Wd;mmBBeP@O@jz7XDQ55OFr|;{(5!_1u0gTqfeq!uU+F#>&O{ zpeAFy;X2rdd_Iq@uFMPC|L)5dkW1m->g-0W+pjo^%H!!QQLPzmhf`w}j~3h7Nh<8`ntH=l)H`w za_)~2D3AZkJOA3 z{N$|t2W9kh!HC7sgVp<6VQE*g%4~k(tjc*5-kJ0m4g}6S><_;wQ+vy zP6FLIiRHRf;?tApY?EQiFl9ujL|n)^X=GU3eKUL8Qoul^A+B8(9Wc{Wj%fmv`(Z`r zK&EYvPPoP_tGG#2de<$2Bzr=`w9yH%#i+L50is?raz8d_D#M&(w#E@eHqwH|ug&yO z{Kf~p!hY2SRsQsFZc&e~e0I6y=Z&B&iBJq|Uit=)o8+s;tR!BvXZfPNX$C%JCt^Xd zNLKIlHY(j$h`@cxO5=O?XW-33JrSoUHm{b-CwyxXenY1`O_b?81(B5GoyiOGX#0bu zwL+~f+L$9puzLN=jj+#mMVv6&vrsz8mY_|LESG>?oxKduX&eY$lSnMeT;4g+f^?Ib z@j;hpiIROXsXu#EYp=~Bo%a8Z9t}-7jjvwc@)2&}s2{Ljn5l65fmm|-8RBTzNWQ5q zRtGj4AQagfpb(B)Vi-_<`AC3upN~qu3Wu;eJi#s=g%iiv7Y%^Mz1~3yh_O}Y2Qy*b zycz@Zx{C561IvN~i`Layn?4Cc;mu!af86s`j#L!nwbei;_!yPzvg19@x)6Co3}z>Q zsk@!}E!3Y%tz$S;lgw-p!k<5@_&DTa28T_-6%F(usb4ZZfjwcdOl^8m<9ju3(7ao= z@xjh0VkfUGFiy)py8{IIBUCX?6}$Q030fEWdg@7p*LA>)3VNBCw&BD2@v4+zFPpOj ze1j+pB)>lKZcDoU`^lj@qP>cKK4i0zCWPOKl$YR<<_*f$CiJ0fz!3I=S9YNvjE2jWEh<{ByO8h5sG;wG zd+G}uotK)DuQR0PKboNRbVu;R;^Ubx1M`ji#z=`1pX@*Hgn3~D?!hA|c8Mk_t5e<2 zNH@a5KZMz(1kL<4*_S?yh)?lHS5|>RVqTMaiF1y`Ceubk6%E?(CsKOlnp`QN83O7# zJbT$WJpI;mjUg2{^nfOa~F3kC7MrMpQv5Bb3<lt#3DCQ*G4keCh8c$xe>i#)he2?~bs|z0Lgco)C0Lu19yJ%e?U)OCd znku!rncY74hLoPW_O)6hUMsTh)`rJoh@BdrYhwnK(5xUC($#c>0|ZK7Bs4lp8s8#y$vC0qAk3RT zyWA_}_XjP%2TvEmP7EBOLtM}EpWJDgog(K7p?iBtv++h(XN3gLb3TC+JX&+ocFrl8 zn17IW#%*GSlea58XdSG*a6WUGVpvz^%e~l+s@AIhHEG&l^VER0>4$~mymga2&l?WY zEG(3(Y8H=78kd`heHtlCsy@G+m7O@mnlKb#q~d4gSQJ`4eG{dKaE;AX`f5E;t4zeL zVXry8lkxjtU8Ea@i;)(Jg;g7|Pi0!2cEzOoZ+*dS`+KK#Wpajirf6pDNH~a*OaR{m z2uj)^fA@d!<-<>dlkrgs2T>ihe638zZE zaj7Z4mGK{LsThCZWMVlfeVZAS+~X$-5wM1!QLzqb4P)7cmL{T|BV#vdHp(2UR8S{? zZ*sUhYrW_pw$b@~JCmb)vE58>3jOg6W}$}WZ<)OfoI}8*`K=tj%&j`*VLoS~n^D0B z{kPT?hJ`39jwHZl)2QXr)NBt{cQ3Jb~?mryyBaj0|$yn1KY)eyD z5p*L^Z`bzw=mi#}r)*EcOs048WHQ)fQNqfyAc)w_!r4Oc;1d*+s~-2v0dy|C*ou(Z z+iB{hy2m+3RjNnwM#NgYuGTd9HQG~h2fQq06ITPyIpHQ;lb`0H+bRCo_c*9kqrXTxsS;bkL&k7)3bl#wbhabLDhZXy~#%Vb*b(rjtga##BZrFrVw@g zZmT$sJkoa%D{;HTh48sXAN;TmEJ#$O$5csVhnn==ul|B@d1T|t{$^&7U44uqI_|8p zpzqe=(|aMoORvfss#zYcElz&trl9QE7EAvQx+Q8&$|5q{yQuD*MZ-wcknlxqi^t_; zzEIr-aVH&GOGYepOckRn0-st;m~&N}M??t!v6q-{N@=XBhBaodWlDF_+l73fu#_~IYVe!cHX_AD*4JB!Y&IIV8Qi_HN;s9=ziJksq%S0 zUX4_ckAuqNsKpwQIgtG0D0FrJZ+0#ou&gj#tB(oqXM`w7Jzr9)O+q5&foG6qCVWF)~&1YH>lZ+^tF)C8gBdiGMspOK^i4 z=h;b#$zlp~9=#z^5@R?4h&jCnWl%yPHmDdo_X0CmTrB!1p{{PGhKp;hYyQZ~<4f$) zZY)lBmJXKThYRd!{_8DY)wX!1l*4%~j^pV4-=t3|p1`1me`apnO|j6>JCm3bv7iyu zGd&dXxAXM@tcy?g2N&`x{e^QEzX;3Af**(Dx9027)`g|Sr>t|b61O=zq1?$HH0h)0 zn@i`cR3UHtn*5ygN@b6|xXeo(d|E7exg%!Dwb^W49u{-j2Y>fg4J>kr=PJw1^Wkcf z)l~xURgmjPiImW%f3I0p>jwJo((9+uXO!}u-SMHjs|>iXOn>}Oq5JPX(ao#>#v%N- zQD#@v3kvws{@g1eD$+(x9$T`wP$vqk3r5gychouBURB)3=C#S0PPRe2*GC6(pmTB( zs;7cE2K6_A;<}uAjCNglkx|@>a?9?ZE->up-WQE=B^Q~)U*#~E(ku=nVStPl1d(zt zWu$O`kO9VUn6>a~We};QGU=kIvNguO@AS(+=esxS{Opb1iNy6zWuA?f+plicrM|kc zKR5y73_@l1+(~<0Nh(dEJP6R8^w^2m_+8H4ogd_{VT=r`hAUShUZN#|FFN&NhNQQO z>%IO|$-FNjbSTMky&J+pW|pM(uPyH`6R2iLE4E_|maxeEm$q^D+Kv@r#88V4;VlW9 zYTn^o#QF=DwXxJ0i5<2}U=EiiA^xU}#z3!9(7=#y3O-^~JJp|0;&nk*Rx&5c`kS@|{kz;4n zu(R!|lDxGM>G^DN&$CG9hw=+i3Wdv)0YmiixxVNgL=rxYCG+mlP? z59B&l-&<+8jzj&|6sJ?hCCh6(wXo7UurEbL^H*car2WrqPXR9%y0xyFZ_FQk`PoXn zvM&nTlg|aQ^1d@14IY{ixiw2z)e~w+8!$*eJsrFaIq=~k6IjRWMBcf%9@_8gnDNW8 z>3eRb4&ACNP(J7!Zvk-JC!kOsJB5H$M}7^B?jre)S9g}7JvOwyMrG?+E%Po8R`Qos zUaSYHHK;#1FOBE9$hz*QnyOOyHE(uK39`B8)CcN}v|zJ{Tsn#L`S6;1oKt>H?|y9L zC+(*w9_8-Ls)Yp5H3_8RvZZ5pY{-ZOc`RUETX!|zPaJ@0Tn@bdkd2~~EfIC0gJ71i zc^jO_kr7caCvn>5grW-nqjdf?jLZm|Cs0BVtt|4n0U(O`Fsvne*hLeOCWMk3h_{;d&=$nF~lr0Y8(zzhQY22f^lb zuN(yGLwc`r10Vq=wqZaQTi-hzm-DKJ4j}KkYPp_=wB99$ZwFRK-pHdBBIdcWiUod7 z+Pi@455651jw*fDdDMhS8Xs^oNUhPo+dXwpou3z>_8G7}<$vP!1=sC|eoA=h11a%`*{)9Pf{ms%5vbwE4LQ3`LqQ-7}eQv1!_tt!Ck?&MY4bALqxm~tsI{gd@cUs)_ z4tYcZw${a$tpKi7ZTju&gCInRMkb}C>ROLYCgFR6^Dbvba+UW&3yu4p*?@>X<{NVX z+6+0<(l^73O^0j44n9SmT?+WBRITf1A5|uIIQErB?X)@?wZ0_nQZbNQ9p?s$iBn#0 zO4dvb&C~sRWF#Q2VA?n-%VWhxvO~7<5}sA$Hi3xyD`7;|$+JiEG}k_L zZLN+(sI@tadR;W8Jg{9ucnPc_0>hdOxl1-;A}lYqD#$Tv0KV+jyUnAN`AbvrRyd%` z#^Xsy%hfv^-y{4P(Lt#GAcdmAJ3Jtu5$}UgB82OXFDw=}<>M1Hk8%h{e#eLBju!>2 zDWvu(`M>Q;<3AxKweZ+lighWmfDm=OG=HxmtIU|(4j|j`UFDYcLh|f;C618V`-7(a z5-A0(t3PgND^OJYoC~-hV1k#Jo*~3K5ch05ZsoM`h=is2I=E!owa>{~)~Lz+om85C zyxVGH&P}{(}MTP>7W|o*>i93 zs_&G#i)5t;!XYi(TwJaIO+gO;H5aB+s?PC=vWLWp{M5&Sr(C0W<08_&Oi{~eca?X4 zd@iR?go$&Sj^0H$0N^23;&CMF=&?@Z5e{}FFisR$5ycs=dpzddi7eAv- zQA2>db_ib;ELm|IT+?tFXe~(yq9QpoQ)R3Vq$D1lt44uzr<)G%Suh>fn?N=H09wHnt;utrQoY^DvdP7`i%RnN;+omSQR7GRa zb{fsibr;_JAlc+N?@q(R0n`K{AjJ(6;i$y#>oa9+odJ@_wjea5I^Ct1s8(a%Zk6d` z6;ijeENJdY0gYHU-!hX_h7TJ_%y_W}`xH^lSw74?b!>wNa~cL!@zy!+)++k@D>5d~ z)#b3uW^F(E1}<_mD@7_{6BmJLb&dwlEn7TL4PA#(dPC2!^Jh2CEy+)`$Q}V>BM?<< zF@(}tk&f?pM6@mFJAGZB5msL3SC!INo%L#;g^Y)3^#@hQTRcDvcYoA|z_7Wc>u;3q z1`=~ci-pdIIBQ`I;&(njKY-EYq+{MF>5Qsbi1b3nK@JM?Nu>6%WJl?uWfyAa~HdpSAh>@+31rv8FOA@p8 zj(ktGWUr8lkb}l7S*t~V4b1d0m({gEhKDNm8%c32|HI72;bC$v!6Jf^uOJMT zvqeH(Qprkvq1JtZgqfu$Kezm$b}l=keM-`AvYDn9re{+_`YXp!vN3q`I}b&gIC-gu^*SsPm`W^Up-R!{lju;SLvObEy>I?DBl=c zRo{xjJ^P2Wm%j+`51uK!`Zn^FDO+3hQWveuB}K$e5|CYE9NXc+jS1Xg6JtGf|#6pB9qOGqg?KVGBP4-e%~$1N+6uz?ISjg1759keZ${hgo;UNys9+n}x<&mugabJ+*oa z=o#EbKgOhJ`G?}z=~*h`y(w}9y&y+z4O=JDxy@7~HY&~>mqn`VcKb$!DP!X&KA@42 z*7N8#w{-Ij?~s?J*!*En;@aW`ny_CZ2__FYjI>_3XKr&l+cS7ocE+DUo@F|QQK9Fs zw%Wj;4(~*4gHihOuCC_2R4^iP#z(gpP$6$CqPz!(E}oRY_`RjhPIhcyU$li;M0lIf zj?zp6?`2P29Nq0(z84(HBW&aj_vMmu#Jntwe>uyyJO!Y3oBHA*FI zyTxs{mpybLCc?DIQU*K#)0-hro3E5yPvPlT-9skC@@X=m0RTkEz#m{yPUznZN%()t zftQ~K>_7F@tF%>-h%A+D^+Zhb8;}S)NIhgt;Y4J`1>e11+hEy#gkzc`v~6CteLwBd z;g4(>A!{DPM2Wog{C`qt*}#b5t+M@r^>r;Zx0lm5q+qBUE$DE^F9+CsE?Y{sRNVoc zG{1Nc#ez7~wE^4ExF04fb{_aM4tNp7Vh6 z)HAhNj9`F4;CcM=<@hIYkjdD1f`g(-M5MTX$i)VJdKfA2+S;*{-+cH5<5MZ{NE zV?VJ4F3m!oBWCrTb0-Z{CF7OMq}PBBi*mN;!MvGDUT#~bBLD0H?=zrF)CmT|2d^?t zbmV+9A>I|{aT@RYwv_+rY*~tOIGcU9E70$;l~~Xrl?mJNp49<{FaQ24HuoD7{^OSb$o>1K(9`YV}vWXr$KcZB4U?tP2VNIY3j#s`@(M@3z5#m3u6JP@|a`q zelZ{}h^eWmK%fY$(U!Ei+?xDuU6CX9L!CWuR`8Q|M!&$I`1aH9W0PA*=fsr7VTCHy9R*yL&8Rip z)|w*Mnn7>b@wmAK_W{S6?FEg?>{l7cE|$-%3{;PrDNf3B5LBVS`@ zQp1#vx@Tl3KGtLxg1h9@srqkb+;m(G71x_#F@CF%rHp-Z`{Kn@JH(XYS9XJhn1Tdn zryX+#RP>{aG$ztpjoGq%dG`Fe@mfN7(b|^%PORIxZaFy5U7;vh+2mW~{@cpIIp?38 ziWnPoBXExXs5+9CI~`H9(eA5gU$S|Lj@NEW+7-v?GWt=L8mK!_*C)UxSEJ;PD9hNC zhc?!P^>hTB`6nQrXk7T!dD?3N{b5VpxD9%o#b1PesZBY2?4@Cg42zHN>WiT7wrW@d z%s0_V-n~n@k=RdX_*Rl5ellK@0l?B@Xslui<&~rAae|Xme~ryw%rjqVQGcwnKhE|uX=y)q9C$a4ylw53lB%@2!^RxfJ*{F4(=#*Daz_Mk$0f=5j)IOLsug>8PAu+Z-OSO`|o5BRk<>pNp#U*~YQqvTbsg$q)M zR|7pr>5-ZP-EvV#$&?(L=fO6Wh%(l!hxHiAa1yw2!Ox(lB3XK@k7<>|f95l{;BkKu zTs52z&&|*^v2D|G>5^m5%uZzVOr<8W&!zM&EtF{yNqd-tAcbi!z@R-F<9Mb(|6ZSw zo|D&=^crcN+d$!?M~m$1O=<4UWm&3rbt8}~$C!!E3e$a8bl<|1w9Io`us=bjQ8b zWMPT}pTNcsrju+Kh)*E${Q)U|_V2KBKTZ)qdTdb{wl3<>tm~89u5nyv%w4k?n^b}Y ze>bC&EN|3S*Q77zZu(BI_BUr9e6*_oxG{I)7>OtQIt7S{$APU}Jc3t~EBp2e**NS^ z-(#Lw9og8Xy+?Yo4S`DS}mhV?L5I*plF zH89ov$(AIsGP|i$6tvRbjc0iNFZ0$QvzwekgQ!zcD?KT|rPj6iNLK}6-UT7lU#e}i$lIFC{lQ_=_ax4EV!ypoYscxBNA{`t8Ud?5U@Hz6A-pc4^sIAt@VcN2{)T z?KKN_2D;$in+zCabSlz`O?H>b;Cp`(uNrE;99Su|>MED5kq+Bh^xm7J*7T@Vd&+`2 zk^HE)ALo3b#7XNo?LnWD(Q8$*aaB=`HsSpFAXjw$R=jE^w^?aQoz?K2Ee2Fc{6bby zVybcP@_FUfTo}Zj0g;PiI4>3`6a1}aLezpUkH*%>O)xU00&UwoS@4rTF2$q>@-LS% zYxWD8iNg5H5`CLyajzZY9Isqae&MuWKW>`psuDP2y%0@# znX6YU%T-6sv1@D*$Gh(Pj{g2y@TyLUBw0U#^P;)sJND2@KR<@tS}i>z6UlHsYHUmu zS&CR303Bvd?RcDQnu<@7fB)ofnW!_Y5mMXqF~&ZUl=(7TkEY0IcfwKUbOna=SF3xP zGrx}BmhP6pI_uqmb1mB&D`J>Q2lg$qsEUClhsxQC`EEp$dZOZy5g_y=evXk6 z_Jw~!rwb% z16N2`H&clTKl8ji+@(H{AIKn|%Eyqt;W_#|8-ic2cMqB5`Y(6z=5hvoYo5V;*^XA@ zKu_{EBe&qig<@G>i%q+5YNka9>t72gX(`y83>R*JZtbOfc~kRP!E{@*etA5 zzGh7B)<7u)O)98(jGMaX)aQVlNxlqI9v@NyAf_1BUh^IGxPxYn6CZNpzB1_;$}A_o zN;RS~b-FkF^7ZRSrwL9{|Op()W&+T6?~j z7`QFdV0<>CVnq=Z;mA&^AzwkfoM3FqtyBCblt=BH9_|Q*st7J-yV-2mF9vkNAzXv zJORPtmFn`FGD5){Y{U?Kf~;vT{+J%xygbD$xF8GEAz0WK|F*|8`m^_}UHadWW20(# zYAx$Cx2&r{-^>tQk0eo}%QN^VjmjTO!wmt7*$V z%TE6}weMSa{`5p+{X6p0?)wyOmKD~VzwvY5`=V=`vR)cW+^X4VBJ}o+-RdQIZ2T z)fT7iKV7OneHwoyaM^3=8=$uw#1NT1BWp4%gG2eH_>Z?Qhx0DG;>|3e4qUUc!|n+v z3oeij1lH|f0Irj{lFTyZZ3lMsJ+}w{zsIw9XH^TR*lIZE3g5TGhwXp`P&k4B@}Uc( iVxyrk$WnxX(trC|C8CbT2iJlRQu1{5b6Mw<&;$SgQ!IY~ literal 0 HcmV?d00001 diff --git a/bsp/phytium/figures/lvgl_demo_thread.png b/bsp/phytium/figures/lvgl_demo_thread.png new file mode 100644 index 0000000000000000000000000000000000000000..1ca1572e390146c5852480ac9ccd435a622e518e GIT binary patch literal 36068 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 literal 0 HcmV?d00001 diff --git a/bsp/phytium/figures/lvgl_open_dc.png b/bsp/phytium/figures/lvgl_open_dc.png new file mode 100644 index 0000000000000000000000000000000000000000..d6f03bc13a35bdbed24a193258d6200a1af015ec GIT binary patch literal 33393 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 literal 0 HcmV?d00001 diff --git a/bsp/phytium/figures/lvgl_packages.png b/bsp/phytium/figures/lvgl_packages.png new file mode 100644 index 0000000000000000000000000000000000000000..5664c4bfc2f2656b853b7d3ca0d278f65af79ac5 GIT binary patch literal 14703 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�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 X8WS(|bp^ael<*T3?Z*{LmSO(~W^=No literal 0 HcmV?d00001 diff --git a/bsp/phytium/libraries/SConscript b/bsp/phytium/libraries/SConscript index 7b0f2947c8..63e8a1766e 100644 --- a/bsp/phytium/libraries/SConscript +++ b/bsp/phytium/libraries/SConscript @@ -129,6 +129,20 @@ if GetDepend(['FIREFLY_DEMO_BOARD']): if GetDepend(['BSP_USING_SDIF']): src += Glob(PHYTIUM_SDK_DIR+'/board/firefly/fsdif_timing.c') + +LIBS = [] +LIBPATH = [] +# fdriver dc +if GetDepend(['BSP_USING_DC']): + src += Glob(PORT_DRV_DIR+'/drv_dc.c') + path += [PHYTIUM_SDK_DIR + '/drivers/media/fdcdp_lib/inc'] + if GetDepend(['TARGET_ARMV8_AARCH64']): + LIBPATH = [PHYTIUM_SDK_DIR + '/drivers/media/fdcdp_lib/'] + LIBS = ['libfdcdp_standalone_a64.a'] + + elif GetDepend(['TARGET_ARMV8_AARCH32']): + LIBPATH = [PHYTIUM_SDK_DIR + '/drivers/media/fdcdp_lib/'] + LIBS = ['libfdcdp_standalone_soft_a32.a'] ## fdriver port src += Glob(cwd+'/port/fdriver_port/*.c') path += [cwd + '/port/fdriver_port'] @@ -141,10 +155,6 @@ path += [cwd + '/port/fboard_port'] src += Glob(cwd+'/port/lwip_port/*.c') path += [cwd + '/port/lwip_port'] -## lwip port -src += Glob(cwd+'/port/lwip_port/*.c') -path += [cwd + '/port/lwip_port'] - ## cherryusb port if GetDepend(['BSP_USING_XHCI']): src += Glob(cwd +'/port/cherryusb_port/drv_xhci.c') @@ -168,7 +178,7 @@ path += [cwd] # add group ASFLAGS = '' group = DefineGroup('FT_DRIVER', src, depend=[ - ''], CPPPATH=path, ASFLAGS = ASFLAGS) + ''],LIBS = LIBS,LIBPATH=LIBPATH, CPPPATH=path, ASFLAGS = ASFLAGS) Return('group') diff --git a/bsp/phytium/libraries/drivers/Kconfig b/bsp/phytium/libraries/drivers/Kconfig index 06d36e704a..361413c6b5 100644 --- a/bsp/phytium/libraries/drivers/Kconfig +++ b/bsp/phytium/libraries/drivers/Kconfig @@ -250,6 +250,20 @@ menu "On-chip Peripheral Drivers" endif + menuconfig BSP_USING_DC + bool "Enable DC" + default n + select RT_USING_DC + if BSP_USING_DC + config RT_USING_DC_CHANNEL0 + bool "using dc channel_0" + default n + config RT_USING_DC_CHANNEL1 + bool "using dc channel_1" + default n + endif + + menuconfig BSP_USING_XHCI bool "Enable USB3.0(XHCI)" default n diff --git a/bsp/phytium/libraries/drivers/drv_dc.c b/bsp/phytium/libraries/drivers/drv_dc.c new file mode 100644 index 0000000000..c4bae0f4c7 --- /dev/null +++ b/bsp/phytium/libraries/drivers/drv_dc.c @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2006-2023, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Email: opensource_embedded@phytium.com.cn + * + * Change Logs: + * Date Author Notes + * 2023-11-07 wangzongqiang first version + * + */ +#include +#include "rtconfig.h" +#include +#include +#define LOG_TAG "dc_drv" +#include "mm_aspace.h" +#include "drv_log.h" +#include "drv_dc.h" +#include "fparameters.h" +#include "fdcdp.h" +#include "fdc.h" +#include "fdp_hw.h" +#include "fdc_common_hw.h" + +#ifdef RT_USING_SMART + #include "ioremap.h" +#endif + +static rt_uint16_t _rt_framebuffer[1024*768*4] __aligned(128); +struct phytium_dc_bus +{ + struct rt_device parent; + FDcDp dc_handle;/* data */ + const char *name; + rt_uint32_t fdc_id; +}; + +static struct rt_device_graphic_info _dc_info; +static struct phytium_dc_bus dev_dc; + +static rt_err_t dc_config(struct phytium_dc_bus *dc_control_bus) +{ + RT_ASSERT(dc_control_bus); + rt_uint32_t chan = dc_control_bus->fdc_id; + FDcDp *instance_p = &dc_control_bus->dc_handle; + + return RT_EOK; +} + +static rt_err_t rt_dc_init(struct rt_device *dev) +{ + RT_ASSERT(dev != RT_NULL); + rt_err_t ret; + struct phytium_dc_bus *device; + device = (struct phytium_dc_bus *)dev; + FDcDp *instance_p = &device->dc_handle; + int chan = device->fdc_id; + dc_config(device); + + ret = FDcDpInitialize(instance_p, chan); + if (ret != RT_EOK) + { + LOG_E("Init dc failed, ret: 0x%x", ret); + return -RT_ERROR;; + } + return RT_EOK; +} + +static rt_err_t rt_dc_control(rt_device_t dev, int cmd, void *args) +{ + RT_ASSERT(dev); + struct phytium_dc_bus *dc_bus; + dc_bus = (struct phytium_dc_bus *)(dev); + + switch (cmd) + { + case RTGRAPHIC_CTRL_RECT_UPDATE: + break; + case RTGRAPHIC_CTRL_POWERON: + break; + case RTGRAPHIC_CTRL_POWEROFF: + break; + case RTGRAPHIC_CTRL_GET_INFO: + rt_memcpy(args, &_dc_info, sizeof(_dc_info)); + break; + case RTGRAPHIC_CTRL_SET_MODE: + break; + } + return RT_EOK; +} +static void rt_hw_dc_register(struct phytium_dc_bus *dc_control_bus, const char *name, rt_uint32_t flag, void *data) +{ + RT_ASSERT(dc_control_bus != RT_NULL); + struct rt_device *dc; + dc = &(dc_control_bus->parent); + dc->type = RT_Device_Class_Graphic; + dc->init = rt_dc_init; + dc->open = RT_NULL; + dc->close = RT_NULL; + dc->control = rt_dc_control; + dc->user_data = data; + /* register Display Controller device to RT-Thread */ + rt_device_register(dc, "dc", RT_DEVICE_FLAG_RDWR); +} + +int rt_hw_dc_init(void) +{ +#if defined(RT_USING_DC_CHANNEL0) + dev_dc.name = "DC0"; + dev_dc.fdc_id = FDCDP_ID0; +#elif defined(RT_USING_DC_CHANNEL1) + dev_dc.name = "DC1"; + dev_dc.fdc_id = FDCDP_ID1; +#elif defined(RT_USING_DOUBLE) + dev_dc.name = "DC0 + DC1"; + dev_dc.fdc_id = FDCDP_INSTANCE_NUM; +#endif + FDcDpCfgInitialize(&dev_dc.dc_handle); + + dev_dc.dc_handle.user_config[dev_dc.fdc_id].color_depth = DISPLAY_COLOR_DEPTH; + dev_dc.dc_handle.user_config[dev_dc.fdc_id].width = FB_XSIZE; + dev_dc.dc_handle.user_config[dev_dc.fdc_id].height = FB_YSIZE; + dev_dc.dc_handle.user_config[dev_dc.fdc_id].refresh_rate = DISPLAY_REFRESH_RATE_60; + dev_dc.dc_handle.user_config[dev_dc.fdc_id].multi_mode = 0; + dev_dc.dc_handle.user_config[dev_dc.fdc_id].fb_phy = _rt_framebuffer; + dev_dc.dc_handle.user_config[dev_dc.fdc_id].fb_virtual = _rt_framebuffer; + dev_dc.dc_handle.dc_instance_p[dev_dc.fdc_id].config = *FDcLookupConfig(dev_dc.fdc_id); + dev_dc.dc_handle.dp_instance_p[dev_dc.fdc_id].config = *FDpLookupConfig(dev_dc.fdc_id); +#ifdef RT_USING_SMART + dev_dc.dc_handle.user_config[dev_dc.fdc_id].fb_phy = dev_dc.dc_handle.user_config[dev_dc.fdc_id].fb_phy + PV_OFFSET;/*the FB addr iomap length is x_size * y_size * 4 */ + dev_dc.dc_handle.dc_instance_p[dev_dc.fdc_id].config.dcch_baseaddr = (uintptr)rt_ioremap((void *)dev_dc.dc_handle.dc_instance_p[dev_dc.fdc_id].config.dcch_baseaddr, 0x1000);/*the dc channel addr iomap length is 0x1000*/ + dev_dc.dc_handle.dc_instance_p[dev_dc.fdc_id].config.dcctrl_baseaddr = (uintptr)rt_ioremap((void *)dev_dc.dc_handle.dc_instance_p[dev_dc.fdc_id].config.dcctrl_baseaddr, 0x4000);/*the dc control addr iomap length is 0x4000*/ + dev_dc.dc_handle.dp_instance_p[dev_dc.fdc_id].config.dp_channe_base_addr = (uintptr)rt_ioremap((void *)dev_dc.dc_handle.dp_instance_p[dev_dc.fdc_id].config.dp_channe_base_addr, 0x4000); /*the dc control addr iomap length is 0x4000*/ + dev_dc.dc_handle.dp_instance_p[dev_dc.fdc_id].config.dp_phy_base_addr = (size_t)rt_ioremap((void *) dev_dc.dc_handle.dp_instance_p[dev_dc.fdc_id].config.dp_phy_base_addr, 0x100000);/*the dc control addr iomap length is 0x100000*/ +#endif + _dc_info.bits_per_pixel = DISPLAY_COLOR_DEPTH; + _dc_info.pixel_format = RTGRAPHIC_PIXEL_FORMAT_RGB565P; + _dc_info.framebuffer = (rt_uint8_t *)dev_dc.dc_handle.user_config[dev_dc.fdc_id].fb_virtual; + _dc_info.width = FB_XSIZE; + _dc_info.height = FB_YSIZE; + rt_hw_dc_register(&dev_dc,"dc",RT_DEVICE_FLAG_RDWR,NULL); + return RT_EOK; +} + +INIT_DEVICE_EXPORT(rt_hw_dc_init); + diff --git a/bsp/phytium/libraries/drivers/drv_dc.h b/bsp/phytium/libraries/drivers/drv_dc.h new file mode 100644 index 0000000000..559d7d74d0 --- /dev/null +++ b/bsp/phytium/libraries/drivers/drv_dc.h @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Email: opensource_embedded@phytium.com.cn + * + * Change Logs: + * Date Author Notes + * 2023-11-7 wangzongqiang first version + * + */ + +#ifndef __DRV_DC_H__ +#define __DRV_DC_H__ +#include + + +#ifdef __cplusplus +extern "C" +{ +#endif + +#define FB_XSIZE 1024 +#define FB_YSIZE 768 +#define DISPLAY_COLOR_DEPTH 32 +#define DISPLAY_REFRESH_RATE_60 60 +#define DISPLAY_REFRESH_RATE_59 59 +#define DISPLAY_REFRESH_RATE_40 40 +#define DISPLAY_REFRESH_RATE_30 30 + + +int rt_hw_dc_init(void); + +#ifdef __cplusplus +} +#endif + +#endif /* __DRV_DC_H__ */ \ No newline at end of file