فهرست منبع

[bsp/phytium] driver and config update (#8344)

更新驱动代码,完成对新版rt-thread内核的支持工作。更新默认config文件,保证各驱动被顺利添加后,程序能正常运行
Macro 1 سال پیش
والد
کامیت
f4b2035c03
59فایلهای تغییر یافته به همراه2534 افزوده شده و 1797 حذف شده
  1. 1 1
      bsp/phytium/.gitignore
  2. 1 0
      bsp/phytium/README.md
  3. 114 59
      bsp/phytium/aarch32/.config
  4. 5 5
      bsp/phytium/aarch32/README.md
  5. 2 0
      bsp/phytium/aarch32/SConstruct
  6. 95 46
      bsp/phytium/aarch32/configs/e2000d_demo_rtsmart
  7. 45 7
      bsp/phytium/aarch32/configs/e2000d_demo_rtsmart.h
  8. 101 50
      bsp/phytium/aarch32/configs/e2000d_demo_rtthread
  9. 49 7
      bsp/phytium/aarch32/configs/e2000d_demo_rtthread.h
  10. 91 46
      bsp/phytium/aarch32/configs/e2000q_demo_rtsmart
  11. 42 7
      bsp/phytium/aarch32/configs/e2000q_demo_rtsmart.h
  12. 91 46
      bsp/phytium/aarch32/configs/e2000q_demo_rtthread
  13. 42 7
      bsp/phytium/aarch32/configs/e2000q_demo_rtthread.h
  14. 70 48
      bsp/phytium/aarch32/configs/phytium_pi_rtsmart
  15. 25 11
      bsp/phytium/aarch32/configs/phytium_pi_rtsmart.h
  16. 70 48
      bsp/phytium/aarch32/configs/phytium_pi_rtthread
  17. 25 11
      bsp/phytium/aarch32/configs/phytium_pi_rtthread.h
  18. 0 0
      bsp/phytium/aarch32/figures/rtsmart_config.png
  19. 54 14
      bsp/phytium/aarch32/rtconfig.h
  20. 91 53
      bsp/phytium/aarch64/.config
  21. 1 0
      bsp/phytium/aarch64/Kconfig
  22. 5 5
      bsp/phytium/aarch64/README.md
  23. 2 0
      bsp/phytium/aarch64/SConstruct
  24. 97 49
      bsp/phytium/aarch64/configs/e2000d_demo_rtsmart
  25. 50 7
      bsp/phytium/aarch64/configs/e2000d_demo_rtsmart.h
  26. 103 53
      bsp/phytium/aarch64/configs/e2000d_demo_rtthread
  27. 54 7
      bsp/phytium/aarch64/configs/e2000d_demo_rtthread.h
  28. 97 49
      bsp/phytium/aarch64/configs/e2000q_demo_rtsmart
  29. 50 7
      bsp/phytium/aarch64/configs/e2000q_demo_rtsmart.h
  30. 97 49
      bsp/phytium/aarch64/configs/e2000q_demo_rtthread
  31. 50 7
      bsp/phytium/aarch64/configs/e2000q_demo_rtthread.h
  32. 77 49
      bsp/phytium/aarch64/configs/phytium_pi_rtsmart
  33. 35 9
      bsp/phytium/aarch64/configs/phytium_pi_rtsmart.h
  34. 78 50
      bsp/phytium/aarch64/configs/phytium_pi_rtthread
  35. 38 10
      bsp/phytium/aarch64/configs/phytium_pi_rtthread.h
  36. 0 0
      bsp/phytium/aarch64/figures/rtsmart_config.png
  37. 48 12
      bsp/phytium/aarch64/rtconfig.h
  38. 3 1
      bsp/phytium/board/README.md
  39. 0 9
      bsp/phytium/board/board.c
  40. 3 31
      bsp/phytium/board/board.kconfig
  41. 4 0
      bsp/phytium/libraries/SConscript
  42. 85 73
      bsp/phytium/libraries/drivers/Kconfig
  43. 65 178
      bsp/phytium/libraries/drivers/drv_can.c
  44. 0 5
      bsp/phytium/libraries/drivers/drv_can.h
  45. 6 8
      bsp/phytium/libraries/drivers/drv_gpio.c
  46. 144 208
      bsp/phytium/libraries/drivers/drv_i2c.c
  47. 1 3
      bsp/phytium/libraries/drivers/drv_i2c.h
  48. 66 77
      bsp/phytium/libraries/drivers/drv_pwm.c
  49. 2 3
      bsp/phytium/libraries/drivers/drv_pwm.h
  50. 36 100
      bsp/phytium/libraries/drivers/drv_qspi.c
  51. 3 17
      bsp/phytium/libraries/drivers/drv_qspi.h
  52. 4 4
      bsp/phytium/libraries/drivers/drv_sdif.c
  53. 51 126
      bsp/phytium/libraries/drivers/drv_spi.c
  54. 7 7
      bsp/phytium/libraries/drivers/drv_spi.h
  55. 36 59
      bsp/phytium/libraries/drivers/drv_usart.c
  56. 4 6
      bsp/phytium/libraries/drivers/drv_usart.h
  57. 81 53
      bsp/phytium/libraries/drivers/drv_xmac.c
  58. 5 0
      bsp/phytium/libraries/port/fdriver_port/sdkconfig.h
  59. 32 0
      bsp/phytium/libraries/port/lwip_port/lwip_port.h

+ 1 - 1
bsp/phytium/.gitignore

@@ -14,4 +14,4 @@
 /aarch64/smart-env.bat
 **/**/makefile
 /libraries/tests/*
-/libraries/phytium_standalone_sdk/*
+/libraries/phytium_standalone_sdk/

+ 1 - 0
bsp/phytium/README.md

@@ -36,6 +36,7 @@
 | PWM               |     支持     | PWM 脉宽调制电压输出        |
 | CAN               |     支持     | CAN/CANFD设备通信 |
 | I2C               |     支持     | I2C设备通信 |
+| SPI               |     支持     | SPI设备通信 |
 
 | **芯片**      | **支持情况** | **备注**                              |
 | :----------------- | :----------: | :------------------------------------- |

+ 114 - 59
bsp/phytium/aarch32/.config

@@ -8,10 +8,10 @@
 #
 CONFIG_RT_NAME_MAX=16
 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set
-# CONFIG_RT_USING_SMART is not set
+CONFIG_RT_USING_SMART=y
 # CONFIG_RT_USING_AMP is not set
-CONFIG_RT_USING_SMP=y
-CONFIG_RT_CPUS_NR=4
+# CONFIG_RT_USING_SMP is not set
+CONFIG_RT_CPUS_NR=1
 CONFIG_RT_ALIGN_SIZE=4
 # CONFIG_RT_THREAD_PRIORITY_8 is not set
 CONFIG_RT_THREAD_PRIORITY_32=y
@@ -24,7 +24,6 @@ CONFIG_RT_HOOK_USING_FUNC_PTR=y
 CONFIG_RT_USING_IDLE_HOOK=y
 CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
 CONFIG_IDLE_THREAD_STACK_SIZE=4096
-CONFIG_SYSTEM_THREAD_STACK_SIZE=4096
 CONFIG_RT_USING_TIMER_SOFT=y
 CONFIG_RT_TIMER_THREAD_PRIO=4
 CONFIG_RT_TIMER_THREAD_STACK_SIZE=4096
@@ -40,7 +39,7 @@ CONFIG_RT_KPRINTF_USING_LONGLONG=y
 CONFIG_RT_USING_DEBUG=y
 CONFIG_RT_DEBUGING_COLOR=y
 CONFIG_RT_DEBUGING_CONTEXT=y
-CONFIG_RT_DEBUGING_INIT=y
+# CONFIG_RT_DEBUGING_AUTO_INIT is not set
 # CONFIG_RT_DEBUGING_PAGE_LEAK is not set
 
 #
@@ -89,6 +88,8 @@ 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
@@ -156,6 +157,7 @@ CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512
 # CONFIG_RT_DFS_ELM_USE_ERASE is not set
 CONFIG_RT_DFS_ELM_REENTRANT=y
 CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000
+# CONFIG_RT_DFS_ELM_USE_EXFAT is not set
 CONFIG_RT_USING_DFS_DEVFS=y
 # CONFIG_RT_USING_DFS_ROMFS is not set
 # CONFIG_RT_USING_DFS_CROMFS is not set
@@ -164,6 +166,16 @@ 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
@@ -179,18 +191,26 @@ 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_CAN is not set
+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_CANFD=y
 # CONFIG_RT_USING_HWTIMER is not set
 # CONFIG_RT_USING_CPUTIME is not set
-# CONFIG_RT_USING_I2C is not set
+CONFIG_RT_USING_I2C=y
+# CONFIG_RT_I2C_DEBUG is not set
+CONFIG_RT_USING_I2C_BITOPS=y
+# CONFIG_RT_I2C_BITOPS_DEBUG is not set
+# CONFIG_RT_USING_SOFT_I2C is not set
 # CONFIG_RT_USING_PHY is not set
-# CONFIG_RT_USING_PIN is not set
+CONFIG_RT_USING_PIN=y
 # CONFIG_RT_USING_ADC is not set
 # CONFIG_RT_USING_DAC is not set
 CONFIG_RT_USING_NULL=y
 CONFIG_RT_USING_ZERO=y
 CONFIG_RT_USING_RANDOM=y
-# CONFIG_RT_USING_PWM is not set
+CONFIG_RT_USING_PWM=y
 # CONFIG_RT_USING_MTD_NOR is not set
 # CONFIG_RT_USING_MTD_NAND is not set
 # CONFIG_RT_USING_PM is not set
@@ -204,7 +224,13 @@ CONFIG_RT_MMCSD_STACK_SIZE=4096
 CONFIG_RT_MMCSD_THREAD_PREORITY=22
 CONFIG_RT_MMCSD_MAX_PARTITION=16
 # CONFIG_RT_SDIO_DEBUG is not set
-# CONFIG_RT_USING_SPI is not set
+CONFIG_RT_USING_SPI=y
+# CONFIG_RT_USING_SPI_BITOPS is not set
+CONFIG_RT_USING_QSPI=y
+# CONFIG_RT_USING_SPI_MSD is not set
+# CONFIG_RT_USING_SFUD is not set
+# CONFIG_RT_USING_ENC28J60 is not set
+# CONFIG_RT_USING_SPI_WIFI is not set
 # CONFIG_RT_USING_WDT is not set
 # CONFIG_RT_USING_AUDIO is not set
 # CONFIG_RT_USING_SENSOR is not set
@@ -228,6 +254,7 @@ CONFIG_RT_USING_KTIME=y
 #
 # C/C++ and POSIX layer
 #
+# CONFIG_RT_USING_INTERNAL_LIBC_ONLY is not set
 
 #
 # ISO-ANSI C layer
@@ -251,6 +278,8 @@ 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
@@ -381,6 +410,12 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_RT_USING_MEMBLOCK is not set
 
+#
+# Memory protection
+#
+# CONFIG_RT_USING_MEM_PROTECTION is not set
+# CONFIG_RT_USING_HW_STACK_GUARD is not set
+
 #
 # RT-Thread Utestcases
 #
@@ -421,11 +456,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_WLAN_WICED is not set
 # CONFIG_PKG_USING_RW007 is not set
-
-#
-# CYW43012 WiFi
-#
-# CONFIG_PKG_USING_WLAN_CYW43012 is not set
 # CONFIG_PKG_USING_COAP is not set
 # CONFIG_PKG_USING_NOPOLL is not set
 # CONFIG_PKG_USING_NETUTILS is not set
@@ -468,7 +498,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_NMEALIB is not set
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK is not set
-# CONFIG_PKG_USING_BT_CYW43012 is not set
 # CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
 # CONFIG_PKG_USING_WAYZ_IOTKIT is not set
 # CONFIG_PKG_USING_MAVLINK is not set
@@ -488,8 +517,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ZFTP is not set
 # CONFIG_PKG_USING_WOL is not set
 # CONFIG_PKG_USING_ZEPHYR_POLLING is not set
-# CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set
-# CONFIG_PKG_USING_LHC_MODBUS is not set
 
 #
 # security packages
@@ -536,6 +563,7 @@ CONFIG_RT_USING_ADT_REF=y
 # LVGL: powerful and easy-to-use embedded GUI library
 #
 # CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
 # CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
 # CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
 
@@ -611,7 +639,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_HASH_MATCH is not set
 # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set
 # CONFIG_PKG_USING_VOFA_PLUS is not set
-# CONFIG_PKG_USING_ZDEBUG is not set
 
 #
 # system packages
@@ -648,8 +675,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
 # CONFIG_PKG_USING_FREERTOS_WRAPPER is not set
-# CONFIG_PKG_USING_LITEOS_SDK is not set
-# CONFIG_PKG_USING_TZ_DATABASE is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
@@ -673,7 +698,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QBOOT is not set
 # CONFIG_PKG_USING_PPOOL is not set
 # CONFIG_PKG_USING_OPENAMP is not set
-# CONFIG_PKG_USING_RPMSG_LITE is not set
 # CONFIG_PKG_USING_LPM is not set
 # CONFIG_PKG_USING_TLSF is not set
 # CONFIG_PKG_USING_EVENT_RECORDER is not set
@@ -687,11 +711,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_AGILE_UPGRADE is not set
 # CONFIG_PKG_USING_FLASH_BLOB is not set
 # CONFIG_PKG_USING_MLIBC is not set
-# CONFIG_PKG_USING_TASK_MSG_BUS is not set
-# CONFIG_PKG_USING_SFDB is not set
-# CONFIG_PKG_USING_RTP is not set
-# CONFIG_PKG_USING_REB is not set
-# CONFIG_PKG_USING_R_RHEALSTONE is not set
 
 #
 # peripheral libraries and drivers
@@ -756,7 +775,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_BALANCE is not set
 # CONFIG_PKG_USING_SHT2X is not set
 # CONFIG_PKG_USING_SHT3X is not set
-# CONFIG_PKG_USING_SHT4X is not set
 # CONFIG_PKG_USING_AD7746 is not set
 # CONFIG_PKG_USING_ADT74XX is not set
 # CONFIG_PKG_USING_MAX17048 is not set
@@ -857,11 +875,6 @@ CONFIG_RT_USING_ADT_REF=y
 # 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_ST7789 is not set
-# CONFIG_PKG_USING_VS1003 is not set
-# CONFIG_PKG_USING_X9555 is not set
-# CONFIG_PKG_USING_SYSTEM_RUN_LED is not set
-# CONFIG_PKG_USING_PHYTIUM_SDK is not set
 # CONFIG_PKG_USING_SPI_TOOLS is not set
 
 #
@@ -876,7 +889,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_R_TINYMAIX is not set
 
 #
 # Signal Processing and Control Algorithm Packages
@@ -886,7 +898,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UKAL is not set
 # CONFIG_PKG_USING_DIGITALCTRL is not set
 # CONFIG_PKG_USING_KISSFFT is not set
-# CONFIG_PKG_USING_CMSIS_DSP is not set
 
 #
 # miscellaneous packages
@@ -924,7 +935,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_MINILZO is not set
 # CONFIG_PKG_USING_QUICKLZ is not set
 # CONFIG_PKG_USING_LZMA is not set
-# CONFIG_PKG_USING_RALARAM is not set
 # CONFIG_PKG_USING_MULTIBUTTON is not set
 # CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
 # CONFIG_PKG_USING_CANFESTIVAL is not set
@@ -1109,7 +1119,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set
 # CONFIG_PKG_USING_ARDUINO_U8G2 is not set
-# CONFIG_PKG_USING_ARDUINO_TFT_ESPI 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
@@ -1118,7 +1127,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # Timing
 #
-# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set
 # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set
 # CONFIG_PKG_USING_ARDUINO_TICKER is not set
 # CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set
@@ -1155,6 +1163,7 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # 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
@@ -1182,20 +1191,64 @@ CONFIG_RT_USING_ADT_REF=y
 #
 CONFIG_BSP_USING_IOPAD=y
 CONFIG_BSP_USING_UART=y
+CONFIG_RT_USING_UART0=y
 CONFIG_RT_USING_UART1=y
-# CONFIG_RT_USING_UART0 is not set
-# CONFIG_BSP_USING_SPI is not set
-# CONFIG_BSP_USING_CAN is not set
-# CONFIG_BSP_USING_GPIO is not set
-# CONFIG_BSP_USING_QSPI is not set
-# CONFIG_BSP_USING_ETH is not set
-# CONFIG_BSP_USING_PWM is not set
-# CONFIG_BSP_USING_I2C is not set
+# 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_SPIM1 is not set
+CONFIG_RT_USING_SPIM2=y
+# 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_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_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_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_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_MIO3 is not set
+# CONFIG_RT_USING_MIO4 is not set
+# CONFIG_RT_USING_MIO5 is not set
+# CONFIG_RT_USING_MIO6 is not set
+# 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_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_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="sd1"
-CONFIG_USING_SDIF0=y
-# CONFIG_USING_SDIF1 is not set
+CONFIG_BSP_USING_SDCARD_PARTITION="sd0"
+# CONFIG_USING_SDIF0 is not set
+CONFIG_USING_SDIF1=y
 # CONFIG_USING_EMMC is not set
 
 #
@@ -1212,14 +1265,15 @@ CONFIG_USE_AARCH64_L1_TO_AARCH32=y
 #
 # Soc configuration
 #
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
 # CONFIG_TARGET_E2000Q is not set
-# CONFIG_TARGET_E2000D is not set
+CONFIG_TARGET_E2000D=y
 # CONFIG_TARGET_E2000S is not set
 # CONFIG_TARGET_FT2004 is not set
 # CONFIG_TARGET_D2000 is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="e2000"
+CONFIG_TARGET_TYPE_NAME="d"
+CONFIG_SOC_CORE_NUM=2
 CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
 CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
 CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
@@ -1233,21 +1287,22 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
 #
 # Board Configuration
 #
-CONFIG_BOARD_NAME="firefly"
+CONFIG_E2000D_DEMO_BOARD=y
+CONFIG_BOARD_NAME="demo"
+
+#
+# IO mux configuration when board start up
+#
 # 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
 
 #

+ 5 - 5
bsp/phytium/aarch32/README.md

@@ -100,7 +100,7 @@ Hardware Drivers > On-chip Peripheral Drivers
 
 ```
 
-![1682477587050](figures/1682477587050.png)
+![rtsmart_config](figures/rtsmart_config.png)
 
 开发者通过以上配置开启RT-Thread Smart 功能
 
@@ -163,17 +163,17 @@ config BSP_DIR
     option env="BSP_ROOT"
     default "."
 
-config STANDALONE_DIR
+config SDK_DIR
     string
-    option env="STANDALONE_DIR"
-    default "libraries/standalone"
+    option env="SDK_DIR"
+    default "./libraries/phytium_standalone_sdk"
 ```
 
 - 输入 menuconfig 和 scons 完成编译
 
 ## 9. 将工程导入 RT-Studio
 
-- 在 RT-Studio 使用功能 `RT-Thread Bsp 到工作空间`,导入 5. 中导出的 BSP 工程
+- 在 RT-Studio 使用功能 `RT-Thread Bsp 到工作空间`,导入 8. 中导出的 BSP 工程
 - 设置 BSP 工程的交叉编译链后进行后续开发
 
 ![](./figures/import_project.png)

+ 2 - 0
bsp/phytium/aarch32/SConstruct

@@ -54,6 +54,8 @@ def install_phytium_sdk():
     print("Checking for the presence of phytium_standalone_sdk_install.py script...")
     sconstruct_dir = os.getcwd()
     install_script_path = os.path.join(sconstruct_dir, "phytium_standalone_sdk_install.py")
+    if os.path.exists(install_script_path):
+        subprocess.call(["rm","-rf", install_script_path])
 
     try:
         subprocess.call(["wget", "https://gitee.com/phytium_embedded/phytium-standalone-sdk/raw/Standalone-Sdk_RT-thread/phytium_standalone_sdk_install.py"])

+ 95 - 46
bsp/phytium/aarch32/configs/e2000d_demo_rtsmart

@@ -10,8 +10,8 @@ CONFIG_RT_NAME_MAX=16
 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set
 CONFIG_RT_USING_SMART=y
 # CONFIG_RT_USING_AMP is not set
-CONFIG_RT_USING_SMP=y
-CONFIG_RT_CPUS_NR=2
+# CONFIG_RT_USING_SMP is not set
+CONFIG_RT_CPUS_NR=1
 CONFIG_RT_ALIGN_SIZE=4
 # CONFIG_RT_THREAD_PRIORITY_8 is not set
 CONFIG_RT_THREAD_PRIORITY_32=y
@@ -24,7 +24,6 @@ CONFIG_RT_HOOK_USING_FUNC_PTR=y
 CONFIG_RT_USING_IDLE_HOOK=y
 CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
 CONFIG_IDLE_THREAD_STACK_SIZE=4096
-CONFIG_SYSTEM_THREAD_STACK_SIZE=4096
 CONFIG_RT_USING_TIMER_SOFT=y
 CONFIG_RT_TIMER_THREAD_PRIO=4
 CONFIG_RT_TIMER_THREAD_STACK_SIZE=4096
@@ -40,7 +39,7 @@ CONFIG_RT_KPRINTF_USING_LONGLONG=y
 CONFIG_RT_USING_DEBUG=y
 CONFIG_RT_DEBUGING_COLOR=y
 CONFIG_RT_DEBUGING_CONTEXT=y
-CONFIG_RT_DEBUGING_INIT=y
+# CONFIG_RT_DEBUGING_AUTO_INIT is not set
 # CONFIG_RT_DEBUGING_PAGE_LEAK is not set
 
 #
@@ -158,6 +157,7 @@ CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512
 # CONFIG_RT_DFS_ELM_USE_ERASE is not set
 CONFIG_RT_DFS_ELM_REENTRANT=y
 CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000
+# CONFIG_RT_DFS_ELM_USE_EXFAT is not set
 CONFIG_RT_USING_DFS_DEVFS=y
 # CONFIG_RT_USING_DFS_ROMFS is not set
 # CONFIG_RT_USING_DFS_CROMFS is not set
@@ -193,26 +193,44 @@ 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 is not set
+CONFIG_RT_USING_CAN=y
+CONFIG_RT_CAN_USING_HDR=y
+CONFIG_RT_CAN_USING_CANFD=y
 # CONFIG_RT_USING_HWTIMER is not set
 # CONFIG_RT_USING_CPUTIME is not set
-# CONFIG_RT_USING_I2C is not set
+CONFIG_RT_USING_I2C=y
+# CONFIG_RT_I2C_DEBUG is not set
+CONFIG_RT_USING_I2C_BITOPS=y
+# CONFIG_RT_I2C_BITOPS_DEBUG is not set
+# CONFIG_RT_USING_SOFT_I2C is not set
 # CONFIG_RT_USING_PHY is not set
-# CONFIG_RT_USING_PIN is not set
+CONFIG_RT_USING_PIN=y
 # CONFIG_RT_USING_ADC is not set
 # CONFIG_RT_USING_DAC is not set
 CONFIG_RT_USING_NULL=y
 CONFIG_RT_USING_ZERO=y
 CONFIG_RT_USING_RANDOM=y
-# CONFIG_RT_USING_PWM is not set
+CONFIG_RT_USING_PWM=y
 # CONFIG_RT_USING_MTD_NOR is not set
 # CONFIG_RT_USING_MTD_NAND is not set
 # CONFIG_RT_USING_PM is not set
 CONFIG_RT_USING_RTC=y
 # CONFIG_RT_USING_ALARM is not set
 # CONFIG_RT_USING_SOFT_RTC is not set
-# CONFIG_RT_USING_SDIO is not set
-# CONFIG_RT_USING_SPI is not set
+CONFIG_RT_USING_SDIO=y
+CONFIG_RT_SDIO_STACK_SIZE=4096
+CONFIG_RT_SDIO_THREAD_PRIORITY=15
+CONFIG_RT_MMCSD_STACK_SIZE=4096
+CONFIG_RT_MMCSD_THREAD_PREORITY=22
+CONFIG_RT_MMCSD_MAX_PARTITION=16
+# CONFIG_RT_SDIO_DEBUG is not set
+CONFIG_RT_USING_SPI=y
+# CONFIG_RT_USING_SPI_BITOPS is not set
+CONFIG_RT_USING_QSPI=y
+# CONFIG_RT_USING_SPI_MSD is not set
+# CONFIG_RT_USING_SFUD is not set
+# CONFIG_RT_USING_ENC28J60 is not set
+# CONFIG_RT_USING_SPI_WIFI is not set
 # CONFIG_RT_USING_WDT is not set
 # CONFIG_RT_USING_AUDIO is not set
 # CONFIG_RT_USING_SENSOR is not set
@@ -236,6 +254,7 @@ CONFIG_RT_USING_KTIME=y
 #
 # C/C++ and POSIX layer
 #
+# CONFIG_RT_USING_INTERNAL_LIBC_ONLY is not set
 
 #
 # ISO-ANSI C layer
@@ -391,6 +410,12 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_RT_USING_MEMBLOCK is not set
 
+#
+# Memory protection
+#
+# CONFIG_RT_USING_MEM_PROTECTION is not set
+# CONFIG_RT_USING_HW_STACK_GUARD is not set
+
 #
 # RT-Thread Utestcases
 #
@@ -431,11 +456,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_WLAN_WICED is not set
 # CONFIG_PKG_USING_RW007 is not set
-
-#
-# CYW43012 WiFi
-#
-# CONFIG_PKG_USING_WLAN_CYW43012 is not set
 # CONFIG_PKG_USING_COAP is not set
 # CONFIG_PKG_USING_NOPOLL is not set
 # CONFIG_PKG_USING_NETUTILS is not set
@@ -478,7 +498,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_NMEALIB is not set
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK is not set
-# CONFIG_PKG_USING_BT_CYW43012 is not set
 # CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
 # CONFIG_PKG_USING_WAYZ_IOTKIT is not set
 # CONFIG_PKG_USING_MAVLINK is not set
@@ -498,8 +517,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ZFTP is not set
 # CONFIG_PKG_USING_WOL is not set
 # CONFIG_PKG_USING_ZEPHYR_POLLING is not set
-# CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set
-# CONFIG_PKG_USING_LHC_MODBUS is not set
 
 #
 # security packages
@@ -546,6 +563,7 @@ CONFIG_RT_USING_ADT_REF=y
 # LVGL: powerful and easy-to-use embedded GUI library
 #
 # CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
 # CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
 # CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
 
@@ -621,7 +639,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_HASH_MATCH is not set
 # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set
 # CONFIG_PKG_USING_VOFA_PLUS is not set
-# CONFIG_PKG_USING_ZDEBUG is not set
 
 #
 # system packages
@@ -658,8 +675,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
 # CONFIG_PKG_USING_FREERTOS_WRAPPER is not set
-# CONFIG_PKG_USING_LITEOS_SDK is not set
-# CONFIG_PKG_USING_TZ_DATABASE is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
@@ -683,7 +698,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QBOOT is not set
 # CONFIG_PKG_USING_PPOOL is not set
 # CONFIG_PKG_USING_OPENAMP is not set
-# CONFIG_PKG_USING_RPMSG_LITE is not set
 # CONFIG_PKG_USING_LPM is not set
 # CONFIG_PKG_USING_TLSF is not set
 # CONFIG_PKG_USING_EVENT_RECORDER is not set
@@ -697,11 +711,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_AGILE_UPGRADE is not set
 # CONFIG_PKG_USING_FLASH_BLOB is not set
 # CONFIG_PKG_USING_MLIBC is not set
-# CONFIG_PKG_USING_TASK_MSG_BUS is not set
-# CONFIG_PKG_USING_SFDB is not set
-# CONFIG_PKG_USING_RTP is not set
-# CONFIG_PKG_USING_REB is not set
-# CONFIG_PKG_USING_R_RHEALSTONE is not set
 
 #
 # peripheral libraries and drivers
@@ -766,7 +775,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_BALANCE is not set
 # CONFIG_PKG_USING_SHT2X is not set
 # CONFIG_PKG_USING_SHT3X is not set
-# CONFIG_PKG_USING_SHT4X is not set
 # CONFIG_PKG_USING_AD7746 is not set
 # CONFIG_PKG_USING_ADT74XX is not set
 # CONFIG_PKG_USING_MAX17048 is not set
@@ -867,10 +875,6 @@ CONFIG_RT_USING_ADT_REF=y
 # 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_ST7789 is not set
-# CONFIG_PKG_USING_VS1003 is not set
-# CONFIG_PKG_USING_X9555 is not set
-# CONFIG_PKG_USING_SYSTEM_RUN_LED is not set
 # CONFIG_PKG_USING_SPI_TOOLS is not set
 
 #
@@ -885,7 +889,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_R_TINYMAIX is not set
 
 #
 # Signal Processing and Control Algorithm Packages
@@ -895,7 +898,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UKAL is not set
 # CONFIG_PKG_USING_DIGITALCTRL is not set
 # CONFIG_PKG_USING_KISSFFT is not set
-# CONFIG_PKG_USING_CMSIS_DSP is not set
 
 #
 # miscellaneous packages
@@ -933,7 +935,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_MINILZO is not set
 # CONFIG_PKG_USING_QUICKLZ is not set
 # CONFIG_PKG_USING_LZMA is not set
-# CONFIG_PKG_USING_RALARAM is not set
 # CONFIG_PKG_USING_MULTIBUTTON is not set
 # CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
 # CONFIG_PKG_USING_CANFESTIVAL is not set
@@ -1118,7 +1119,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set
 # CONFIG_PKG_USING_ARDUINO_U8G2 is not set
-# CONFIG_PKG_USING_ARDUINO_TFT_ESPI 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
@@ -1127,7 +1127,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # Timing
 #
-# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set
 # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set
 # CONFIG_PKG_USING_ARDUINO_TICKER is not set
 # CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set
@@ -1164,6 +1163,7 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # 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
@@ -1191,16 +1191,65 @@ CONFIG_RT_USING_ADT_REF=y
 #
 CONFIG_BSP_USING_IOPAD=y
 CONFIG_BSP_USING_UART=y
+CONFIG_RT_USING_UART0=y
 CONFIG_RT_USING_UART1=y
-# CONFIG_RT_USING_UART0 is not set
-# CONFIG_BSP_USING_SPI is not set
-# CONFIG_BSP_USING_CAN is not set
-# CONFIG_BSP_USING_GPIO is not set
-# CONFIG_BSP_USING_QSPI is not set
-# CONFIG_BSP_USING_ETH is not set
-# CONFIG_BSP_USING_PWM is not set
-# CONFIG_BSP_USING_I2C is not set
-# CONFIG_BSP_USING_SDIF is not set
+# 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_SPIM1 is not set
+CONFIG_RT_USING_SPIM2=y
+# 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_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_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_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_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_MIO3 is not set
+# CONFIG_RT_USING_MIO4 is not set
+# CONFIG_RT_USING_MIO5 is not set
+# CONFIG_RT_USING_MIO6 is not set
+# 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_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_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
 
 #
 # Board extended module Drivers

+ 45 - 7
bsp/phytium/aarch32/configs/e2000d_demo_rtsmart.h

@@ -8,8 +8,7 @@
 
 #define RT_NAME_MAX 16
 #define RT_USING_SMART
-#define RT_USING_SMP
-#define RT_CPUS_NR 2
+#define RT_CPUS_NR 1
 #define RT_ALIGN_SIZE 4
 #define RT_THREAD_PRIORITY_32
 #define RT_THREAD_PRIORITY_MAX 32
@@ -20,7 +19,6 @@
 #define RT_USING_IDLE_HOOK
 #define RT_IDLE_HOOK_LIST_SIZE 4
 #define IDLE_THREAD_STACK_SIZE 4096
-#define SYSTEM_THREAD_STACK_SIZE 4096
 #define RT_USING_TIMER_SOFT
 #define RT_TIMER_THREAD_PRIO 4
 #define RT_TIMER_THREAD_STACK_SIZE 4096
@@ -32,7 +30,6 @@
 #define RT_USING_DEBUG
 #define RT_DEBUGING_COLOR
 #define RT_DEBUGING_CONTEXT
-#define RT_DEBUGING_INIT
 
 /* Inter-Thread communication */
 
@@ -137,10 +134,25 @@
 #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
+#define RT_USING_PIN
 #define RT_USING_NULL
 #define RT_USING_ZERO
 #define RT_USING_RANDOM
+#define RT_USING_PWM
 #define RT_USING_RTC
+#define RT_USING_SDIO
+#define RT_SDIO_STACK_SIZE 4096
+#define RT_SDIO_THREAD_PRIORITY 15
+#define RT_MMCSD_STACK_SIZE 4096
+#define RT_MMCSD_THREAD_PREORITY 22
+#define RT_MMCSD_MAX_PARTITION 16
+#define RT_USING_SPI
+#define RT_USING_QSPI
 #define RT_USING_DEV_BUS
 #define RT_USING_KTIME
 
@@ -149,6 +161,7 @@
 
 /* C/C++ and POSIX layer */
 
+
 /* ISO-ANSI C layer */
 
 /* Timezone and Daylight Saving Time */
@@ -254,6 +267,9 @@
 /* Memory management */
 
 
+/* Memory protection */
+
+
 /* RT-Thread Utestcases */
 
 
@@ -270,9 +286,6 @@
 /* Wiced WiFi */
 
 
-/* CYW43012 WiFi */
-
-
 /* IoT Cloud */
 
 
@@ -380,7 +393,32 @@
 
 #define BSP_USING_IOPAD
 #define BSP_USING_UART
+#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 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 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
 
 /* Board extended module Drivers */
 

+ 101 - 50
bsp/phytium/aarch32/configs/e2000d_demo_rtthread

@@ -10,8 +10,8 @@ CONFIG_RT_NAME_MAX=16
 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set
 # CONFIG_RT_USING_SMART is not set
 # CONFIG_RT_USING_AMP is not set
-CONFIG_RT_USING_SMP=y
-CONFIG_RT_CPUS_NR=2
+# CONFIG_RT_USING_SMP is not set
+CONFIG_RT_CPUS_NR=1
 CONFIG_RT_ALIGN_SIZE=4
 # CONFIG_RT_THREAD_PRIORITY_8 is not set
 CONFIG_RT_THREAD_PRIORITY_32=y
@@ -24,7 +24,6 @@ CONFIG_RT_HOOK_USING_FUNC_PTR=y
 CONFIG_RT_USING_IDLE_HOOK=y
 CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
 CONFIG_IDLE_THREAD_STACK_SIZE=4096
-CONFIG_SYSTEM_THREAD_STACK_SIZE=4096
 CONFIG_RT_USING_TIMER_SOFT=y
 CONFIG_RT_TIMER_THREAD_PRIO=4
 CONFIG_RT_TIMER_THREAD_STACK_SIZE=4096
@@ -40,7 +39,7 @@ CONFIG_RT_KPRINTF_USING_LONGLONG=y
 CONFIG_RT_USING_DEBUG=y
 CONFIG_RT_DEBUGING_COLOR=y
 CONFIG_RT_DEBUGING_CONTEXT=y
-CONFIG_RT_DEBUGING_INIT=y
+# CONFIG_RT_DEBUGING_AUTO_INIT is not set
 # CONFIG_RT_DEBUGING_PAGE_LEAK is not set
 
 #
@@ -156,6 +155,7 @@ CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512
 # CONFIG_RT_DFS_ELM_USE_ERASE is not set
 CONFIG_RT_DFS_ELM_REENTRANT=y
 CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000
+# CONFIG_RT_DFS_ELM_USE_EXFAT is not set
 CONFIG_RT_USING_DFS_DEVFS=y
 # CONFIG_RT_USING_DFS_ROMFS is not set
 # CONFIG_RT_USING_DFS_CROMFS is not set
@@ -179,24 +179,44 @@ 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_CAN is not set
+CONFIG_RT_USING_CAN=y
+CONFIG_RT_CAN_USING_HDR=y
+CONFIG_RT_CAN_USING_CANFD=y
 # CONFIG_RT_USING_HWTIMER is not set
 # CONFIG_RT_USING_CPUTIME is not set
-# CONFIG_RT_USING_I2C is not set
+CONFIG_RT_USING_I2C=y
+# CONFIG_RT_I2C_DEBUG is not set
+CONFIG_RT_USING_I2C_BITOPS=y
+# CONFIG_RT_I2C_BITOPS_DEBUG is not set
+# CONFIG_RT_USING_SOFT_I2C is not set
 # CONFIG_RT_USING_PHY is not set
-# CONFIG_RT_USING_PIN is not set
+CONFIG_RT_USING_PIN=y
 # CONFIG_RT_USING_ADC is not set
 # CONFIG_RT_USING_DAC is not set
-# CONFIG_RT_USING_NULL is not set
-# CONFIG_RT_USING_ZERO is not set
-# CONFIG_RT_USING_RANDOM is not set
-# CONFIG_RT_USING_PWM is not set
+CONFIG_RT_USING_NULL=y
+CONFIG_RT_USING_ZERO=y
+CONFIG_RT_USING_RANDOM=y
+CONFIG_RT_USING_PWM=y
 # CONFIG_RT_USING_MTD_NOR is not set
 # CONFIG_RT_USING_MTD_NAND is not set
 # CONFIG_RT_USING_PM is not set
-# CONFIG_RT_USING_RTC is not set
-# CONFIG_RT_USING_SDIO is not set
-# CONFIG_RT_USING_SPI is not set
+CONFIG_RT_USING_RTC=y
+# CONFIG_RT_USING_ALARM is not set
+# CONFIG_RT_USING_SOFT_RTC is not set
+CONFIG_RT_USING_SDIO=y
+CONFIG_RT_SDIO_STACK_SIZE=4096
+CONFIG_RT_SDIO_THREAD_PRIORITY=15
+CONFIG_RT_MMCSD_STACK_SIZE=4096
+CONFIG_RT_MMCSD_THREAD_PREORITY=22
+CONFIG_RT_MMCSD_MAX_PARTITION=16
+# CONFIG_RT_SDIO_DEBUG is not set
+CONFIG_RT_USING_SPI=y
+# CONFIG_RT_USING_SPI_BITOPS is not set
+CONFIG_RT_USING_QSPI=y
+# CONFIG_RT_USING_SPI_MSD is not set
+# CONFIG_RT_USING_SFUD is not set
+# CONFIG_RT_USING_ENC28J60 is not set
+# CONFIG_RT_USING_SPI_WIFI is not set
 # CONFIG_RT_USING_WDT is not set
 # CONFIG_RT_USING_AUDIO is not set
 # CONFIG_RT_USING_SENSOR is not set
@@ -220,6 +240,7 @@ CONFIG_RT_USING_KTIME=y
 #
 # C/C++ and POSIX layer
 #
+# CONFIG_RT_USING_INTERNAL_LIBC_ONLY is not set
 
 #
 # ISO-ANSI C layer
@@ -373,6 +394,12 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_RT_USING_MEMBLOCK is not set
 
+#
+# Memory protection
+#
+# CONFIG_RT_USING_MEM_PROTECTION is not set
+# CONFIG_RT_USING_HW_STACK_GUARD is not set
+
 #
 # RT-Thread Utestcases
 #
@@ -413,11 +440,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_WLAN_WICED is not set
 # CONFIG_PKG_USING_RW007 is not set
-
-#
-# CYW43012 WiFi
-#
-# CONFIG_PKG_USING_WLAN_CYW43012 is not set
 # CONFIG_PKG_USING_COAP is not set
 # CONFIG_PKG_USING_NOPOLL is not set
 # CONFIG_PKG_USING_NETUTILS is not set
@@ -460,7 +482,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_NMEALIB is not set
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK is not set
-# CONFIG_PKG_USING_BT_CYW43012 is not set
 # CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
 # CONFIG_PKG_USING_WAYZ_IOTKIT is not set
 # CONFIG_PKG_USING_MAVLINK is not set
@@ -480,8 +501,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ZFTP is not set
 # CONFIG_PKG_USING_WOL is not set
 # CONFIG_PKG_USING_ZEPHYR_POLLING is not set
-# CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set
-# CONFIG_PKG_USING_LHC_MODBUS is not set
 
 #
 # security packages
@@ -528,6 +547,7 @@ CONFIG_RT_USING_ADT_REF=y
 # LVGL: powerful and easy-to-use embedded GUI library
 #
 # CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
 # CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
 # CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
 
@@ -603,7 +623,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_HASH_MATCH is not set
 # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set
 # CONFIG_PKG_USING_VOFA_PLUS is not set
-# CONFIG_PKG_USING_ZDEBUG is not set
 
 #
 # system packages
@@ -640,8 +659,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
 # CONFIG_PKG_USING_FREERTOS_WRAPPER is not set
-# CONFIG_PKG_USING_LITEOS_SDK is not set
-# CONFIG_PKG_USING_TZ_DATABASE is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
@@ -665,7 +682,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QBOOT is not set
 # CONFIG_PKG_USING_PPOOL is not set
 # CONFIG_PKG_USING_OPENAMP is not set
-# CONFIG_PKG_USING_RPMSG_LITE is not set
 # CONFIG_PKG_USING_LPM is not set
 # CONFIG_PKG_USING_TLSF is not set
 # CONFIG_PKG_USING_EVENT_RECORDER is not set
@@ -679,11 +695,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_AGILE_UPGRADE is not set
 # CONFIG_PKG_USING_FLASH_BLOB is not set
 # CONFIG_PKG_USING_MLIBC is not set
-# CONFIG_PKG_USING_TASK_MSG_BUS is not set
-# CONFIG_PKG_USING_SFDB is not set
-# CONFIG_PKG_USING_RTP is not set
-# CONFIG_PKG_USING_REB is not set
-# CONFIG_PKG_USING_R_RHEALSTONE is not set
 
 #
 # peripheral libraries and drivers
@@ -748,7 +759,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_BALANCE is not set
 # CONFIG_PKG_USING_SHT2X is not set
 # CONFIG_PKG_USING_SHT3X is not set
-# CONFIG_PKG_USING_SHT4X is not set
 # CONFIG_PKG_USING_AD7746 is not set
 # CONFIG_PKG_USING_ADT74XX is not set
 # CONFIG_PKG_USING_MAX17048 is not set
@@ -849,10 +859,6 @@ CONFIG_RT_USING_ADT_REF=y
 # 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_ST7789 is not set
-# CONFIG_PKG_USING_VS1003 is not set
-# CONFIG_PKG_USING_X9555 is not set
-# CONFIG_PKG_USING_SYSTEM_RUN_LED is not set
 # CONFIG_PKG_USING_SPI_TOOLS is not set
 
 #
@@ -867,7 +873,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_R_TINYMAIX is not set
 
 #
 # Signal Processing and Control Algorithm Packages
@@ -877,7 +882,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UKAL is not set
 # CONFIG_PKG_USING_DIGITALCTRL is not set
 # CONFIG_PKG_USING_KISSFFT is not set
-# CONFIG_PKG_USING_CMSIS_DSP is not set
 
 #
 # miscellaneous packages
@@ -915,7 +919,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_MINILZO is not set
 # CONFIG_PKG_USING_QUICKLZ is not set
 # CONFIG_PKG_USING_LZMA is not set
-# CONFIG_PKG_USING_RALARAM is not set
 # CONFIG_PKG_USING_MULTIBUTTON is not set
 # CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
 # CONFIG_PKG_USING_CANFESTIVAL is not set
@@ -1100,7 +1103,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set
 # CONFIG_PKG_USING_ARDUINO_U8G2 is not set
-# CONFIG_PKG_USING_ARDUINO_TFT_ESPI 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
@@ -1109,7 +1111,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # Timing
 #
-# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set
 # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set
 # CONFIG_PKG_USING_ARDUINO_TICKER is not set
 # CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set
@@ -1146,6 +1147,7 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # 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
@@ -1173,16 +1175,65 @@ CONFIG_RT_USING_ADT_REF=y
 #
 CONFIG_BSP_USING_IOPAD=y
 CONFIG_BSP_USING_UART=y
+CONFIG_RT_USING_UART0=y
 CONFIG_RT_USING_UART1=y
-# CONFIG_RT_USING_UART0 is not set
-# CONFIG_BSP_USING_SPI is not set
-# CONFIG_BSP_USING_CAN is not set
-# CONFIG_BSP_USING_GPIO is not set
-# CONFIG_BSP_USING_QSPI is not set
-# CONFIG_BSP_USING_ETH is not set
-# CONFIG_BSP_USING_PWM is not set
-# CONFIG_BSP_USING_I2C is not set
-# CONFIG_BSP_USING_SDIF is not set
+# 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_SPIM1 is not set
+CONFIG_RT_USING_SPIM2=y
+# 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_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_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_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_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_MIO3 is not set
+# CONFIG_RT_USING_MIO4 is not set
+# CONFIG_RT_USING_MIO5 is not set
+# CONFIG_RT_USING_MIO6 is not set
+# 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_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_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
 
 #
 # Board extended module Drivers

+ 49 - 7
bsp/phytium/aarch32/configs/e2000d_demo_rtthread.h

@@ -7,8 +7,7 @@
 /* RT-Thread Kernel */
 
 #define RT_NAME_MAX 16
-#define RT_USING_SMP
-#define RT_CPUS_NR 2
+#define RT_CPUS_NR 1
 #define RT_ALIGN_SIZE 4
 #define RT_THREAD_PRIORITY_32
 #define RT_THREAD_PRIORITY_MAX 32
@@ -19,7 +18,6 @@
 #define RT_USING_IDLE_HOOK
 #define RT_IDLE_HOOK_LIST_SIZE 4
 #define IDLE_THREAD_STACK_SIZE 4096
-#define SYSTEM_THREAD_STACK_SIZE 4096
 #define RT_USING_TIMER_SOFT
 #define RT_TIMER_THREAD_PRIO 4
 #define RT_TIMER_THREAD_STACK_SIZE 4096
@@ -31,7 +29,6 @@
 #define RT_USING_DEBUG
 #define RT_DEBUGING_COLOR
 #define RT_DEBUGING_CONTEXT
-#define RT_DEBUGING_INIT
 
 /* Inter-Thread communication */
 
@@ -126,6 +123,25 @@
 #define RT_USING_SERIAL_V1
 #define RT_SERIAL_USING_DMA
 #define RT_SERIAL_RB_BUFSZ 1024
+#define RT_USING_CAN
+#define RT_CAN_USING_HDR
+#define RT_CAN_USING_CANFD
+#define RT_USING_I2C
+#define RT_USING_I2C_BITOPS
+#define RT_USING_PIN
+#define RT_USING_NULL
+#define RT_USING_ZERO
+#define RT_USING_RANDOM
+#define RT_USING_PWM
+#define RT_USING_RTC
+#define RT_USING_SDIO
+#define RT_SDIO_STACK_SIZE 4096
+#define RT_SDIO_THREAD_PRIORITY 15
+#define RT_MMCSD_STACK_SIZE 4096
+#define RT_MMCSD_THREAD_PREORITY 22
+#define RT_MMCSD_MAX_PARTITION 16
+#define RT_USING_SPI
+#define RT_USING_QSPI
 #define RT_USING_DEV_BUS
 #define RT_USING_KTIME
 
@@ -134,6 +150,7 @@
 
 /* C/C++ and POSIX layer */
 
+
 /* ISO-ANSI C layer */
 
 /* Timezone and Daylight Saving Time */
@@ -239,6 +256,9 @@
 /* Memory management */
 
 
+/* Memory protection */
+
+
 /* RT-Thread Utestcases */
 
 
@@ -255,9 +275,6 @@
 /* Wiced WiFi */
 
 
-/* CYW43012 WiFi */
-
-
 /* IoT Cloud */
 
 
@@ -365,7 +382,32 @@
 
 #define BSP_USING_IOPAD
 #define BSP_USING_UART
+#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 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 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
 
 /* Board extended module Drivers */
 

+ 91 - 46
bsp/phytium/aarch32/configs/e2000q_demo_rtsmart

@@ -10,8 +10,8 @@ CONFIG_RT_NAME_MAX=16
 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set
 CONFIG_RT_USING_SMART=y
 # CONFIG_RT_USING_AMP is not set
-CONFIG_RT_USING_SMP=y
-CONFIG_RT_CPUS_NR=2
+# CONFIG_RT_USING_SMP is not set
+CONFIG_RT_CPUS_NR=1
 CONFIG_RT_ALIGN_SIZE=4
 # CONFIG_RT_THREAD_PRIORITY_8 is not set
 CONFIG_RT_THREAD_PRIORITY_32=y
@@ -24,7 +24,6 @@ CONFIG_RT_HOOK_USING_FUNC_PTR=y
 CONFIG_RT_USING_IDLE_HOOK=y
 CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
 CONFIG_IDLE_THREAD_STACK_SIZE=4096
-CONFIG_SYSTEM_THREAD_STACK_SIZE=4096
 CONFIG_RT_USING_TIMER_SOFT=y
 CONFIG_RT_TIMER_THREAD_PRIO=4
 CONFIG_RT_TIMER_THREAD_STACK_SIZE=4096
@@ -40,7 +39,7 @@ CONFIG_RT_KPRINTF_USING_LONGLONG=y
 CONFIG_RT_USING_DEBUG=y
 CONFIG_RT_DEBUGING_COLOR=y
 CONFIG_RT_DEBUGING_CONTEXT=y
-CONFIG_RT_DEBUGING_INIT=y
+# CONFIG_RT_DEBUGING_AUTO_INIT is not set
 # CONFIG_RT_DEBUGING_PAGE_LEAK is not set
 
 #
@@ -158,6 +157,7 @@ CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512
 # CONFIG_RT_DFS_ELM_USE_ERASE is not set
 CONFIG_RT_DFS_ELM_REENTRANT=y
 CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000
+# CONFIG_RT_DFS_ELM_USE_EXFAT is not set
 CONFIG_RT_USING_DFS_DEVFS=y
 # CONFIG_RT_USING_DFS_ROMFS is not set
 # CONFIG_RT_USING_DFS_CROMFS is not set
@@ -193,26 +193,44 @@ 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 is not set
+CONFIG_RT_USING_CAN=y
+CONFIG_RT_CAN_USING_HDR=y
+CONFIG_RT_CAN_USING_CANFD=y
 # CONFIG_RT_USING_HWTIMER is not set
 # CONFIG_RT_USING_CPUTIME is not set
-# CONFIG_RT_USING_I2C is not set
+CONFIG_RT_USING_I2C=y
+# CONFIG_RT_I2C_DEBUG is not set
+CONFIG_RT_USING_I2C_BITOPS=y
+# CONFIG_RT_I2C_BITOPS_DEBUG is not set
+# CONFIG_RT_USING_SOFT_I2C is not set
 # CONFIG_RT_USING_PHY is not set
-# CONFIG_RT_USING_PIN is not set
+CONFIG_RT_USING_PIN=y
 # CONFIG_RT_USING_ADC is not set
 # CONFIG_RT_USING_DAC is not set
 CONFIG_RT_USING_NULL=y
 CONFIG_RT_USING_ZERO=y
 CONFIG_RT_USING_RANDOM=y
-# CONFIG_RT_USING_PWM is not set
+CONFIG_RT_USING_PWM=y
 # CONFIG_RT_USING_MTD_NOR is not set
 # CONFIG_RT_USING_MTD_NAND is not set
 # CONFIG_RT_USING_PM is not set
 CONFIG_RT_USING_RTC=y
 # CONFIG_RT_USING_ALARM is not set
 # CONFIG_RT_USING_SOFT_RTC is not set
-# CONFIG_RT_USING_SDIO is not set
-# CONFIG_RT_USING_SPI is not set
+CONFIG_RT_USING_SDIO=y
+CONFIG_RT_SDIO_STACK_SIZE=4096
+CONFIG_RT_SDIO_THREAD_PRIORITY=15
+CONFIG_RT_MMCSD_STACK_SIZE=4096
+CONFIG_RT_MMCSD_THREAD_PREORITY=22
+CONFIG_RT_MMCSD_MAX_PARTITION=16
+# CONFIG_RT_SDIO_DEBUG is not set
+CONFIG_RT_USING_SPI=y
+# CONFIG_RT_USING_SPI_BITOPS is not set
+CONFIG_RT_USING_QSPI=y
+# CONFIG_RT_USING_SPI_MSD is not set
+# CONFIG_RT_USING_SFUD is not set
+# CONFIG_RT_USING_ENC28J60 is not set
+# CONFIG_RT_USING_SPI_WIFI is not set
 # CONFIG_RT_USING_WDT is not set
 # CONFIG_RT_USING_AUDIO is not set
 # CONFIG_RT_USING_SENSOR is not set
@@ -236,6 +254,7 @@ CONFIG_RT_USING_KTIME=y
 #
 # C/C++ and POSIX layer
 #
+# CONFIG_RT_USING_INTERNAL_LIBC_ONLY is not set
 
 #
 # ISO-ANSI C layer
@@ -391,6 +410,12 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_RT_USING_MEMBLOCK is not set
 
+#
+# Memory protection
+#
+# CONFIG_RT_USING_MEM_PROTECTION is not set
+# CONFIG_RT_USING_HW_STACK_GUARD is not set
+
 #
 # RT-Thread Utestcases
 #
@@ -431,11 +456,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_WLAN_WICED is not set
 # CONFIG_PKG_USING_RW007 is not set
-
-#
-# CYW43012 WiFi
-#
-# CONFIG_PKG_USING_WLAN_CYW43012 is not set
 # CONFIG_PKG_USING_COAP is not set
 # CONFIG_PKG_USING_NOPOLL is not set
 # CONFIG_PKG_USING_NETUTILS is not set
@@ -478,7 +498,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_NMEALIB is not set
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK is not set
-# CONFIG_PKG_USING_BT_CYW43012 is not set
 # CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
 # CONFIG_PKG_USING_WAYZ_IOTKIT is not set
 # CONFIG_PKG_USING_MAVLINK is not set
@@ -498,8 +517,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ZFTP is not set
 # CONFIG_PKG_USING_WOL is not set
 # CONFIG_PKG_USING_ZEPHYR_POLLING is not set
-# CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set
-# CONFIG_PKG_USING_LHC_MODBUS is not set
 
 #
 # security packages
@@ -546,6 +563,7 @@ CONFIG_RT_USING_ADT_REF=y
 # LVGL: powerful and easy-to-use embedded GUI library
 #
 # CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
 # CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
 # CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
 
@@ -621,7 +639,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_HASH_MATCH is not set
 # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set
 # CONFIG_PKG_USING_VOFA_PLUS is not set
-# CONFIG_PKG_USING_ZDEBUG is not set
 
 #
 # system packages
@@ -658,8 +675,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
 # CONFIG_PKG_USING_FREERTOS_WRAPPER is not set
-# CONFIG_PKG_USING_LITEOS_SDK is not set
-# CONFIG_PKG_USING_TZ_DATABASE is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
@@ -683,7 +698,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QBOOT is not set
 # CONFIG_PKG_USING_PPOOL is not set
 # CONFIG_PKG_USING_OPENAMP is not set
-# CONFIG_PKG_USING_RPMSG_LITE is not set
 # CONFIG_PKG_USING_LPM is not set
 # CONFIG_PKG_USING_TLSF is not set
 # CONFIG_PKG_USING_EVENT_RECORDER is not set
@@ -697,11 +711,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_AGILE_UPGRADE is not set
 # CONFIG_PKG_USING_FLASH_BLOB is not set
 # CONFIG_PKG_USING_MLIBC is not set
-# CONFIG_PKG_USING_TASK_MSG_BUS is not set
-# CONFIG_PKG_USING_SFDB is not set
-# CONFIG_PKG_USING_RTP is not set
-# CONFIG_PKG_USING_REB is not set
-# CONFIG_PKG_USING_R_RHEALSTONE is not set
 
 #
 # peripheral libraries and drivers
@@ -766,7 +775,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_BALANCE is not set
 # CONFIG_PKG_USING_SHT2X is not set
 # CONFIG_PKG_USING_SHT3X is not set
-# CONFIG_PKG_USING_SHT4X is not set
 # CONFIG_PKG_USING_AD7746 is not set
 # CONFIG_PKG_USING_ADT74XX is not set
 # CONFIG_PKG_USING_MAX17048 is not set
@@ -867,10 +875,6 @@ CONFIG_RT_USING_ADT_REF=y
 # 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_ST7789 is not set
-# CONFIG_PKG_USING_VS1003 is not set
-# CONFIG_PKG_USING_X9555 is not set
-# CONFIG_PKG_USING_SYSTEM_RUN_LED is not set
 # CONFIG_PKG_USING_SPI_TOOLS is not set
 
 #
@@ -885,7 +889,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_R_TINYMAIX is not set
 
 #
 # Signal Processing and Control Algorithm Packages
@@ -895,7 +898,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UKAL is not set
 # CONFIG_PKG_USING_DIGITALCTRL is not set
 # CONFIG_PKG_USING_KISSFFT is not set
-# CONFIG_PKG_USING_CMSIS_DSP is not set
 
 #
 # miscellaneous packages
@@ -933,7 +935,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_MINILZO is not set
 # CONFIG_PKG_USING_QUICKLZ is not set
 # CONFIG_PKG_USING_LZMA is not set
-# CONFIG_PKG_USING_RALARAM is not set
 # CONFIG_PKG_USING_MULTIBUTTON is not set
 # CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
 # CONFIG_PKG_USING_CANFESTIVAL is not set
@@ -1118,7 +1119,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set
 # CONFIG_PKG_USING_ARDUINO_U8G2 is not set
-# CONFIG_PKG_USING_ARDUINO_TFT_ESPI 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
@@ -1127,7 +1127,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # Timing
 #
-# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set
 # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set
 # CONFIG_PKG_USING_ARDUINO_TICKER is not set
 # CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set
@@ -1164,6 +1163,7 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # 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
@@ -1191,16 +1191,61 @@ CONFIG_RT_USING_ADT_REF=y
 #
 CONFIG_BSP_USING_IOPAD=y
 CONFIG_BSP_USING_UART=y
+CONFIG_RT_USING_UART0=y
 CONFIG_RT_USING_UART1=y
-# CONFIG_RT_USING_UART0 is not set
-# CONFIG_BSP_USING_SPI is not set
-# CONFIG_BSP_USING_CAN is not set
-# CONFIG_BSP_USING_GPIO is not set
-# CONFIG_BSP_USING_QSPI is not set
-# CONFIG_BSP_USING_ETH is not set
-# CONFIG_BSP_USING_PWM is not set
-# CONFIG_BSP_USING_I2C is not set
-# CONFIG_BSP_USING_SDIF is not set
+# 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_SPIM1 is not set
+CONFIG_RT_USING_SPIM2=y
+# 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 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_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_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_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_MIO3 is not set
+# CONFIG_RT_USING_MIO4 is not set
+# CONFIG_RT_USING_MIO5 is not set
+# CONFIG_RT_USING_MIO6 is not set
+# 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_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_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
 
 #
 # Board extended module Drivers

+ 42 - 7
bsp/phytium/aarch32/configs/e2000q_demo_rtsmart.h

@@ -8,8 +8,7 @@
 
 #define RT_NAME_MAX 16
 #define RT_USING_SMART
-#define RT_USING_SMP
-#define RT_CPUS_NR 2
+#define RT_CPUS_NR 1
 #define RT_ALIGN_SIZE 4
 #define RT_THREAD_PRIORITY_32
 #define RT_THREAD_PRIORITY_MAX 32
@@ -20,7 +19,6 @@
 #define RT_USING_IDLE_HOOK
 #define RT_IDLE_HOOK_LIST_SIZE 4
 #define IDLE_THREAD_STACK_SIZE 4096
-#define SYSTEM_THREAD_STACK_SIZE 4096
 #define RT_USING_TIMER_SOFT
 #define RT_TIMER_THREAD_PRIO 4
 #define RT_TIMER_THREAD_STACK_SIZE 4096
@@ -32,7 +30,6 @@
 #define RT_USING_DEBUG
 #define RT_DEBUGING_COLOR
 #define RT_DEBUGING_CONTEXT
-#define RT_DEBUGING_INIT
 
 /* Inter-Thread communication */
 
@@ -137,10 +134,25 @@
 #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
+#define RT_USING_PIN
 #define RT_USING_NULL
 #define RT_USING_ZERO
 #define RT_USING_RANDOM
+#define RT_USING_PWM
 #define RT_USING_RTC
+#define RT_USING_SDIO
+#define RT_SDIO_STACK_SIZE 4096
+#define RT_SDIO_THREAD_PRIORITY 15
+#define RT_MMCSD_STACK_SIZE 4096
+#define RT_MMCSD_THREAD_PREORITY 22
+#define RT_MMCSD_MAX_PARTITION 16
+#define RT_USING_SPI
+#define RT_USING_QSPI
 #define RT_USING_DEV_BUS
 #define RT_USING_KTIME
 
@@ -149,6 +161,7 @@
 
 /* C/C++ and POSIX layer */
 
+
 /* ISO-ANSI C layer */
 
 /* Timezone and Daylight Saving Time */
@@ -254,6 +267,9 @@
 /* Memory management */
 
 
+/* Memory protection */
+
+
 /* RT-Thread Utestcases */
 
 
@@ -270,9 +286,6 @@
 /* Wiced WiFi */
 
 
-/* CYW43012 WiFi */
-
-
 /* IoT Cloud */
 
 
@@ -380,7 +393,29 @@
 
 #define BSP_USING_IOPAD
 #define BSP_USING_UART
+#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 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 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
 
 /* Board extended module Drivers */
 

+ 91 - 46
bsp/phytium/aarch32/configs/e2000q_demo_rtthread

@@ -10,8 +10,8 @@ CONFIG_RT_NAME_MAX=16
 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set
 # CONFIG_RT_USING_SMART is not set
 # CONFIG_RT_USING_AMP is not set
-CONFIG_RT_USING_SMP=y
-CONFIG_RT_CPUS_NR=2
+# CONFIG_RT_USING_SMP is not set
+CONFIG_RT_CPUS_NR=1
 CONFIG_RT_ALIGN_SIZE=4
 # CONFIG_RT_THREAD_PRIORITY_8 is not set
 CONFIG_RT_THREAD_PRIORITY_32=y
@@ -24,7 +24,6 @@ CONFIG_RT_HOOK_USING_FUNC_PTR=y
 CONFIG_RT_USING_IDLE_HOOK=y
 CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
 CONFIG_IDLE_THREAD_STACK_SIZE=4096
-CONFIG_SYSTEM_THREAD_STACK_SIZE=4096
 CONFIG_RT_USING_TIMER_SOFT=y
 CONFIG_RT_TIMER_THREAD_PRIO=4
 CONFIG_RT_TIMER_THREAD_STACK_SIZE=4096
@@ -40,7 +39,7 @@ CONFIG_RT_KPRINTF_USING_LONGLONG=y
 CONFIG_RT_USING_DEBUG=y
 CONFIG_RT_DEBUGING_COLOR=y
 CONFIG_RT_DEBUGING_CONTEXT=y
-CONFIG_RT_DEBUGING_INIT=y
+# CONFIG_RT_DEBUGING_AUTO_INIT is not set
 # CONFIG_RT_DEBUGING_PAGE_LEAK is not set
 
 #
@@ -156,6 +155,7 @@ CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512
 # CONFIG_RT_DFS_ELM_USE_ERASE is not set
 CONFIG_RT_DFS_ELM_REENTRANT=y
 CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000
+# CONFIG_RT_DFS_ELM_USE_EXFAT is not set
 CONFIG_RT_USING_DFS_DEVFS=y
 # CONFIG_RT_USING_DFS_ROMFS is not set
 # CONFIG_RT_USING_DFS_CROMFS is not set
@@ -179,26 +179,44 @@ 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_CAN is not set
+CONFIG_RT_USING_CAN=y
+CONFIG_RT_CAN_USING_HDR=y
+CONFIG_RT_CAN_USING_CANFD=y
 # CONFIG_RT_USING_HWTIMER is not set
 # CONFIG_RT_USING_CPUTIME is not set
-# CONFIG_RT_USING_I2C is not set
+CONFIG_RT_USING_I2C=y
+# CONFIG_RT_I2C_DEBUG is not set
+CONFIG_RT_USING_I2C_BITOPS=y
+# CONFIG_RT_I2C_BITOPS_DEBUG is not set
+# CONFIG_RT_USING_SOFT_I2C is not set
 # CONFIG_RT_USING_PHY is not set
-# CONFIG_RT_USING_PIN is not set
+CONFIG_RT_USING_PIN=y
 # CONFIG_RT_USING_ADC is not set
 # CONFIG_RT_USING_DAC is not set
 CONFIG_RT_USING_NULL=y
 CONFIG_RT_USING_ZERO=y
 CONFIG_RT_USING_RANDOM=y
-# CONFIG_RT_USING_PWM is not set
+CONFIG_RT_USING_PWM=y
 # CONFIG_RT_USING_MTD_NOR is not set
 # CONFIG_RT_USING_MTD_NAND is not set
 # CONFIG_RT_USING_PM is not set
 CONFIG_RT_USING_RTC=y
 # CONFIG_RT_USING_ALARM is not set
 # CONFIG_RT_USING_SOFT_RTC is not set
-# CONFIG_RT_USING_SDIO is not set
-# CONFIG_RT_USING_SPI is not set
+CONFIG_RT_USING_SDIO=y
+CONFIG_RT_SDIO_STACK_SIZE=4096
+CONFIG_RT_SDIO_THREAD_PRIORITY=15
+CONFIG_RT_MMCSD_STACK_SIZE=4096
+CONFIG_RT_MMCSD_THREAD_PREORITY=22
+CONFIG_RT_MMCSD_MAX_PARTITION=16
+# CONFIG_RT_SDIO_DEBUG is not set
+CONFIG_RT_USING_SPI=y
+# CONFIG_RT_USING_SPI_BITOPS is not set
+CONFIG_RT_USING_QSPI=y
+# CONFIG_RT_USING_SPI_MSD is not set
+# CONFIG_RT_USING_SFUD is not set
+# CONFIG_RT_USING_ENC28J60 is not set
+# CONFIG_RT_USING_SPI_WIFI is not set
 # CONFIG_RT_USING_WDT is not set
 # CONFIG_RT_USING_AUDIO is not set
 # CONFIG_RT_USING_SENSOR is not set
@@ -222,6 +240,7 @@ CONFIG_RT_USING_KTIME=y
 #
 # C/C++ and POSIX layer
 #
+# CONFIG_RT_USING_INTERNAL_LIBC_ONLY is not set
 
 #
 # ISO-ANSI C layer
@@ -375,6 +394,12 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_RT_USING_MEMBLOCK is not set
 
+#
+# Memory protection
+#
+# CONFIG_RT_USING_MEM_PROTECTION is not set
+# CONFIG_RT_USING_HW_STACK_GUARD is not set
+
 #
 # RT-Thread Utestcases
 #
@@ -415,11 +440,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_WLAN_WICED is not set
 # CONFIG_PKG_USING_RW007 is not set
-
-#
-# CYW43012 WiFi
-#
-# CONFIG_PKG_USING_WLAN_CYW43012 is not set
 # CONFIG_PKG_USING_COAP is not set
 # CONFIG_PKG_USING_NOPOLL is not set
 # CONFIG_PKG_USING_NETUTILS is not set
@@ -462,7 +482,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_NMEALIB is not set
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK is not set
-# CONFIG_PKG_USING_BT_CYW43012 is not set
 # CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
 # CONFIG_PKG_USING_WAYZ_IOTKIT is not set
 # CONFIG_PKG_USING_MAVLINK is not set
@@ -482,8 +501,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ZFTP is not set
 # CONFIG_PKG_USING_WOL is not set
 # CONFIG_PKG_USING_ZEPHYR_POLLING is not set
-# CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set
-# CONFIG_PKG_USING_LHC_MODBUS is not set
 
 #
 # security packages
@@ -530,6 +547,7 @@ CONFIG_RT_USING_ADT_REF=y
 # LVGL: powerful and easy-to-use embedded GUI library
 #
 # CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
 # CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
 # CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
 
@@ -605,7 +623,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_HASH_MATCH is not set
 # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set
 # CONFIG_PKG_USING_VOFA_PLUS is not set
-# CONFIG_PKG_USING_ZDEBUG is not set
 
 #
 # system packages
@@ -642,8 +659,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
 # CONFIG_PKG_USING_FREERTOS_WRAPPER is not set
-# CONFIG_PKG_USING_LITEOS_SDK is not set
-# CONFIG_PKG_USING_TZ_DATABASE is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
@@ -667,7 +682,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QBOOT is not set
 # CONFIG_PKG_USING_PPOOL is not set
 # CONFIG_PKG_USING_OPENAMP is not set
-# CONFIG_PKG_USING_RPMSG_LITE is not set
 # CONFIG_PKG_USING_LPM is not set
 # CONFIG_PKG_USING_TLSF is not set
 # CONFIG_PKG_USING_EVENT_RECORDER is not set
@@ -681,11 +695,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_AGILE_UPGRADE is not set
 # CONFIG_PKG_USING_FLASH_BLOB is not set
 # CONFIG_PKG_USING_MLIBC is not set
-# CONFIG_PKG_USING_TASK_MSG_BUS is not set
-# CONFIG_PKG_USING_SFDB is not set
-# CONFIG_PKG_USING_RTP is not set
-# CONFIG_PKG_USING_REB is not set
-# CONFIG_PKG_USING_R_RHEALSTONE is not set
 
 #
 # peripheral libraries and drivers
@@ -750,7 +759,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_BALANCE is not set
 # CONFIG_PKG_USING_SHT2X is not set
 # CONFIG_PKG_USING_SHT3X is not set
-# CONFIG_PKG_USING_SHT4X is not set
 # CONFIG_PKG_USING_AD7746 is not set
 # CONFIG_PKG_USING_ADT74XX is not set
 # CONFIG_PKG_USING_MAX17048 is not set
@@ -851,10 +859,6 @@ CONFIG_RT_USING_ADT_REF=y
 # 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_ST7789 is not set
-# CONFIG_PKG_USING_VS1003 is not set
-# CONFIG_PKG_USING_X9555 is not set
-# CONFIG_PKG_USING_SYSTEM_RUN_LED is not set
 # CONFIG_PKG_USING_SPI_TOOLS is not set
 
 #
@@ -869,7 +873,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_R_TINYMAIX is not set
 
 #
 # Signal Processing and Control Algorithm Packages
@@ -879,7 +882,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UKAL is not set
 # CONFIG_PKG_USING_DIGITALCTRL is not set
 # CONFIG_PKG_USING_KISSFFT is not set
-# CONFIG_PKG_USING_CMSIS_DSP is not set
 
 #
 # miscellaneous packages
@@ -917,7 +919,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_MINILZO is not set
 # CONFIG_PKG_USING_QUICKLZ is not set
 # CONFIG_PKG_USING_LZMA is not set
-# CONFIG_PKG_USING_RALARAM is not set
 # CONFIG_PKG_USING_MULTIBUTTON is not set
 # CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
 # CONFIG_PKG_USING_CANFESTIVAL is not set
@@ -1102,7 +1103,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set
 # CONFIG_PKG_USING_ARDUINO_U8G2 is not set
-# CONFIG_PKG_USING_ARDUINO_TFT_ESPI 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
@@ -1111,7 +1111,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # Timing
 #
-# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set
 # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set
 # CONFIG_PKG_USING_ARDUINO_TICKER is not set
 # CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set
@@ -1148,6 +1147,7 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # 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
@@ -1175,16 +1175,61 @@ CONFIG_RT_USING_ADT_REF=y
 #
 CONFIG_BSP_USING_IOPAD=y
 CONFIG_BSP_USING_UART=y
+CONFIG_RT_USING_UART0=y
 CONFIG_RT_USING_UART1=y
-# CONFIG_RT_USING_UART0 is not set
-# CONFIG_BSP_USING_SPI is not set
-# CONFIG_BSP_USING_CAN is not set
-# CONFIG_BSP_USING_GPIO is not set
-# CONFIG_BSP_USING_QSPI is not set
-# CONFIG_BSP_USING_ETH is not set
-# CONFIG_BSP_USING_PWM is not set
-# CONFIG_BSP_USING_I2C is not set
-# CONFIG_BSP_USING_SDIF is not set
+# 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_SPIM1 is not set
+CONFIG_RT_USING_SPIM2=y
+# 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 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_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_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_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_MIO3 is not set
+# CONFIG_RT_USING_MIO4 is not set
+# CONFIG_RT_USING_MIO5 is not set
+# CONFIG_RT_USING_MIO6 is not set
+# 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_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_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
 
 #
 # Board extended module Drivers

+ 42 - 7
bsp/phytium/aarch32/configs/e2000q_demo_rtthread.h

@@ -7,8 +7,7 @@
 /* RT-Thread Kernel */
 
 #define RT_NAME_MAX 16
-#define RT_USING_SMP
-#define RT_CPUS_NR 2
+#define RT_CPUS_NR 1
 #define RT_ALIGN_SIZE 4
 #define RT_THREAD_PRIORITY_32
 #define RT_THREAD_PRIORITY_MAX 32
@@ -19,7 +18,6 @@
 #define RT_USING_IDLE_HOOK
 #define RT_IDLE_HOOK_LIST_SIZE 4
 #define IDLE_THREAD_STACK_SIZE 4096
-#define SYSTEM_THREAD_STACK_SIZE 4096
 #define RT_USING_TIMER_SOFT
 #define RT_TIMER_THREAD_PRIO 4
 #define RT_TIMER_THREAD_STACK_SIZE 4096
@@ -31,7 +29,6 @@
 #define RT_USING_DEBUG
 #define RT_DEBUGING_COLOR
 #define RT_DEBUGING_CONTEXT
-#define RT_DEBUGING_INIT
 
 /* Inter-Thread communication */
 
@@ -126,10 +123,25 @@
 #define RT_USING_SERIAL_V1
 #define RT_SERIAL_USING_DMA
 #define RT_SERIAL_RB_BUFSZ 1024
+#define RT_USING_CAN
+#define RT_CAN_USING_HDR
+#define RT_CAN_USING_CANFD
+#define RT_USING_I2C
+#define RT_USING_I2C_BITOPS
+#define RT_USING_PIN
 #define RT_USING_NULL
 #define RT_USING_ZERO
 #define RT_USING_RANDOM
+#define RT_USING_PWM
 #define RT_USING_RTC
+#define RT_USING_SDIO
+#define RT_SDIO_STACK_SIZE 4096
+#define RT_SDIO_THREAD_PRIORITY 15
+#define RT_MMCSD_STACK_SIZE 4096
+#define RT_MMCSD_THREAD_PREORITY 22
+#define RT_MMCSD_MAX_PARTITION 16
+#define RT_USING_SPI
+#define RT_USING_QSPI
 #define RT_USING_DEV_BUS
 #define RT_USING_KTIME
 
@@ -138,6 +150,7 @@
 
 /* C/C++ and POSIX layer */
 
+
 /* ISO-ANSI C layer */
 
 /* Timezone and Daylight Saving Time */
@@ -243,6 +256,9 @@
 /* Memory management */
 
 
+/* Memory protection */
+
+
 /* RT-Thread Utestcases */
 
 
@@ -259,9 +275,6 @@
 /* Wiced WiFi */
 
 
-/* CYW43012 WiFi */
-
-
 /* IoT Cloud */
 
 
@@ -369,7 +382,29 @@
 
 #define BSP_USING_IOPAD
 #define BSP_USING_UART
+#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 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 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
 
 /* Board extended module Drivers */
 

+ 70 - 48
bsp/phytium/aarch32/configs/phytium_pi_rtsmart

@@ -10,8 +10,8 @@ CONFIG_RT_NAME_MAX=16
 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set
 CONFIG_RT_USING_SMART=y
 # CONFIG_RT_USING_AMP is not set
-CONFIG_RT_USING_SMP=y
-CONFIG_RT_CPUS_NR=4
+# CONFIG_RT_USING_SMP is not set
+CONFIG_RT_CPUS_NR=1
 CONFIG_RT_ALIGN_SIZE=4
 # CONFIG_RT_THREAD_PRIORITY_8 is not set
 CONFIG_RT_THREAD_PRIORITY_32=y
@@ -24,7 +24,6 @@ CONFIG_RT_HOOK_USING_FUNC_PTR=y
 CONFIG_RT_USING_IDLE_HOOK=y
 CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
 CONFIG_IDLE_THREAD_STACK_SIZE=4096
-CONFIG_SYSTEM_THREAD_STACK_SIZE=4096
 CONFIG_RT_USING_TIMER_SOFT=y
 CONFIG_RT_TIMER_THREAD_PRIO=4
 CONFIG_RT_TIMER_THREAD_STACK_SIZE=4096
@@ -40,7 +39,7 @@ CONFIG_RT_KPRINTF_USING_LONGLONG=y
 CONFIG_RT_USING_DEBUG=y
 CONFIG_RT_DEBUGING_COLOR=y
 CONFIG_RT_DEBUGING_CONTEXT=y
-CONFIG_RT_DEBUGING_INIT=y
+# CONFIG_RT_DEBUGING_AUTO_INIT is not set
 # CONFIG_RT_DEBUGING_PAGE_LEAK is not set
 
 #
@@ -158,6 +157,7 @@ CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512
 # CONFIG_RT_DFS_ELM_USE_ERASE is not set
 CONFIG_RT_DFS_ELM_REENTRANT=y
 CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000
+# CONFIG_RT_DFS_ELM_USE_EXFAT is not set
 CONFIG_RT_USING_DFS_DEVFS=y
 # CONFIG_RT_USING_DFS_ROMFS is not set
 # CONFIG_RT_USING_DFS_CROMFS is not set
@@ -193,18 +193,24 @@ 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 is not set
+CONFIG_RT_USING_CAN=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
-# CONFIG_RT_USING_I2C is not set
+CONFIG_RT_USING_I2C=y
+# CONFIG_RT_I2C_DEBUG is not set
+CONFIG_RT_USING_I2C_BITOPS=y
+# CONFIG_RT_I2C_BITOPS_DEBUG is not set
+# CONFIG_RT_USING_SOFT_I2C is not set
 # CONFIG_RT_USING_PHY is not set
-# CONFIG_RT_USING_PIN is not set
+CONFIG_RT_USING_PIN=y
 # CONFIG_RT_USING_ADC is not set
 # CONFIG_RT_USING_DAC is not set
 CONFIG_RT_USING_NULL=y
 CONFIG_RT_USING_ZERO=y
 CONFIG_RT_USING_RANDOM=y
-# CONFIG_RT_USING_PWM is not set
+CONFIG_RT_USING_PWM=y
 # CONFIG_RT_USING_MTD_NOR is not set
 # CONFIG_RT_USING_MTD_NAND is not set
 # CONFIG_RT_USING_PM is not set
@@ -218,7 +224,13 @@ CONFIG_RT_MMCSD_STACK_SIZE=4096
 CONFIG_RT_MMCSD_THREAD_PREORITY=22
 CONFIG_RT_MMCSD_MAX_PARTITION=16
 # CONFIG_RT_SDIO_DEBUG is not set
-# CONFIG_RT_USING_SPI is not set
+CONFIG_RT_USING_SPI=y
+# CONFIG_RT_USING_SPI_BITOPS is not set
+CONFIG_RT_USING_QSPI=y
+# CONFIG_RT_USING_SPI_MSD is not set
+# CONFIG_RT_USING_SFUD is not set
+# CONFIG_RT_USING_ENC28J60 is not set
+# CONFIG_RT_USING_SPI_WIFI is not set
 # CONFIG_RT_USING_WDT is not set
 # CONFIG_RT_USING_AUDIO is not set
 # CONFIG_RT_USING_SENSOR is not set
@@ -242,6 +254,7 @@ CONFIG_RT_USING_KTIME=y
 #
 # C/C++ and POSIX layer
 #
+# CONFIG_RT_USING_INTERNAL_LIBC_ONLY is not set
 
 #
 # ISO-ANSI C layer
@@ -397,6 +410,12 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_RT_USING_MEMBLOCK is not set
 
+#
+# Memory protection
+#
+# CONFIG_RT_USING_MEM_PROTECTION is not set
+# CONFIG_RT_USING_HW_STACK_GUARD is not set
+
 #
 # RT-Thread Utestcases
 #
@@ -437,11 +456,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_WLAN_WICED is not set
 # CONFIG_PKG_USING_RW007 is not set
-
-#
-# CYW43012 WiFi
-#
-# CONFIG_PKG_USING_WLAN_CYW43012 is not set
 # CONFIG_PKG_USING_COAP is not set
 # CONFIG_PKG_USING_NOPOLL is not set
 # CONFIG_PKG_USING_NETUTILS is not set
@@ -484,7 +498,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_NMEALIB is not set
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK is not set
-# CONFIG_PKG_USING_BT_CYW43012 is not set
 # CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
 # CONFIG_PKG_USING_WAYZ_IOTKIT is not set
 # CONFIG_PKG_USING_MAVLINK is not set
@@ -504,8 +517,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ZFTP is not set
 # CONFIG_PKG_USING_WOL is not set
 # CONFIG_PKG_USING_ZEPHYR_POLLING is not set
-# CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set
-# CONFIG_PKG_USING_LHC_MODBUS is not set
 
 #
 # security packages
@@ -552,6 +563,7 @@ CONFIG_RT_USING_ADT_REF=y
 # LVGL: powerful and easy-to-use embedded GUI library
 #
 # CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
 # CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
 # CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
 
@@ -627,7 +639,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_HASH_MATCH is not set
 # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set
 # CONFIG_PKG_USING_VOFA_PLUS is not set
-# CONFIG_PKG_USING_ZDEBUG is not set
 
 #
 # system packages
@@ -664,8 +675,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
 # CONFIG_PKG_USING_FREERTOS_WRAPPER is not set
-# CONFIG_PKG_USING_LITEOS_SDK is not set
-# CONFIG_PKG_USING_TZ_DATABASE is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
@@ -689,7 +698,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QBOOT is not set
 # CONFIG_PKG_USING_PPOOL is not set
 # CONFIG_PKG_USING_OPENAMP is not set
-# CONFIG_PKG_USING_RPMSG_LITE is not set
 # CONFIG_PKG_USING_LPM is not set
 # CONFIG_PKG_USING_TLSF is not set
 # CONFIG_PKG_USING_EVENT_RECORDER is not set
@@ -703,11 +711,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_AGILE_UPGRADE is not set
 # CONFIG_PKG_USING_FLASH_BLOB is not set
 # CONFIG_PKG_USING_MLIBC is not set
-# CONFIG_PKG_USING_TASK_MSG_BUS is not set
-# CONFIG_PKG_USING_SFDB is not set
-# CONFIG_PKG_USING_RTP is not set
-# CONFIG_PKG_USING_REB is not set
-# CONFIG_PKG_USING_R_RHEALSTONE is not set
 
 #
 # peripheral libraries and drivers
@@ -772,7 +775,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_BALANCE is not set
 # CONFIG_PKG_USING_SHT2X is not set
 # CONFIG_PKG_USING_SHT3X is not set
-# CONFIG_PKG_USING_SHT4X is not set
 # CONFIG_PKG_USING_AD7746 is not set
 # CONFIG_PKG_USING_ADT74XX is not set
 # CONFIG_PKG_USING_MAX17048 is not set
@@ -873,10 +875,6 @@ CONFIG_RT_USING_ADT_REF=y
 # 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_ST7789 is not set
-# CONFIG_PKG_USING_VS1003 is not set
-# CONFIG_PKG_USING_X9555 is not set
-# CONFIG_PKG_USING_SYSTEM_RUN_LED is not set
 # CONFIG_PKG_USING_SPI_TOOLS is not set
 
 #
@@ -891,7 +889,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_R_TINYMAIX is not set
 
 #
 # Signal Processing and Control Algorithm Packages
@@ -901,7 +898,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UKAL is not set
 # CONFIG_PKG_USING_DIGITALCTRL is not set
 # CONFIG_PKG_USING_KISSFFT is not set
-# CONFIG_PKG_USING_CMSIS_DSP is not set
 
 #
 # miscellaneous packages
@@ -939,7 +935,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_MINILZO is not set
 # CONFIG_PKG_USING_QUICKLZ is not set
 # CONFIG_PKG_USING_LZMA is not set
-# CONFIG_PKG_USING_RALARAM is not set
 # CONFIG_PKG_USING_MULTIBUTTON is not set
 # CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
 # CONFIG_PKG_USING_CANFESTIVAL is not set
@@ -1124,7 +1119,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set
 # CONFIG_PKG_USING_ARDUINO_U8G2 is not set
-# CONFIG_PKG_USING_ARDUINO_TFT_ESPI 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
@@ -1133,7 +1127,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # Timing
 #
-# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set
 # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set
 # CONFIG_PKG_USING_ARDUINO_TICKER is not set
 # CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set
@@ -1170,6 +1163,7 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # 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
@@ -1197,21 +1191,49 @@ CONFIG_RT_USING_ADT_REF=y
 #
 CONFIG_BSP_USING_IOPAD=y
 CONFIG_BSP_USING_UART=y
+CONFIG_RT_USING_UART0=y
 CONFIG_RT_USING_UART1=y
-# CONFIG_RT_USING_UART0 is not set
-# CONFIG_BSP_USING_SPI is not set
+# CONFIG_RT_USING_UART2 is not set
+# CONFIG_RT_USING_UART3 is not set
+CONFIG_BSP_USING_SPI=y
+CONFIG_RT_USING_SPIM0=y
+# CONFIG_RT_USING_SPIM1 is not set
+# CONFIG_RT_USING_SPIM2 is not set
+# CONFIG_RT_USING_SPIM3 is not set
 # CONFIG_BSP_USING_CAN is not set
-# CONFIG_BSP_USING_GPIO is not set
+CONFIG_BSP_USING_GPIO=y
 # CONFIG_BSP_USING_QSPI is not set
-# CONFIG_BSP_USING_ETH is not set
-# CONFIG_BSP_USING_PWM is not set
-# CONFIG_BSP_USING_I2C is not set
-CONFIG_BSP_USING_SDIF=y
-CONFIG_BSP_USING_SDCARD_FATFS=y
-CONFIG_BSP_USING_SDCARD_PARTITION="sd1"
-CONFIG_USING_SDIF0=y
-# CONFIG_USING_SDIF1 is not set
-# CONFIG_USING_EMMC 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=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 is not set
+# CONFIG_RT_USING_PWM7 is not set
+CONFIG_BSP_USING_I2C=y
+CONFIG_I2C_USE_MIO=y
+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
+# CONFIG_RT_USING_MIO5 is not set
+# CONFIG_RT_USING_MIO6 is not set
+# 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_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 is not set
+# CONFIG_I2C_USE_CONTROLLER is not set
+# CONFIG_BSP_USING_SDIF is not set
 
 #
 # Board extended module Drivers

+ 25 - 11
bsp/phytium/aarch32/configs/phytium_pi_rtsmart.h

@@ -8,8 +8,7 @@
 
 #define RT_NAME_MAX 16
 #define RT_USING_SMART
-#define RT_USING_SMP
-#define RT_CPUS_NR 4
+#define RT_CPUS_NR 1
 #define RT_ALIGN_SIZE 4
 #define RT_THREAD_PRIORITY_32
 #define RT_THREAD_PRIORITY_MAX 32
@@ -20,7 +19,6 @@
 #define RT_USING_IDLE_HOOK
 #define RT_IDLE_HOOK_LIST_SIZE 4
 #define IDLE_THREAD_STACK_SIZE 4096
-#define SYSTEM_THREAD_STACK_SIZE 4096
 #define RT_USING_TIMER_SOFT
 #define RT_TIMER_THREAD_PRIO 4
 #define RT_TIMER_THREAD_STACK_SIZE 4096
@@ -32,7 +30,6 @@
 #define RT_USING_DEBUG
 #define RT_DEBUGING_COLOR
 #define RT_DEBUGING_CONTEXT
-#define RT_DEBUGING_INIT
 
 /* Inter-Thread communication */
 
@@ -137,9 +134,15 @@
 #define RT_SERIAL_USING_DMA
 #define RT_SERIAL_RB_BUFSZ 1024
 #define RT_USING_TTY
+#define RT_USING_CAN
+#define RT_CAN_USING_CANFD
+#define RT_USING_I2C
+#define RT_USING_I2C_BITOPS
+#define RT_USING_PIN
 #define RT_USING_NULL
 #define RT_USING_ZERO
 #define RT_USING_RANDOM
+#define RT_USING_PWM
 #define RT_USING_RTC
 #define RT_USING_SDIO
 #define RT_SDIO_STACK_SIZE 4096
@@ -147,6 +150,8 @@
 #define RT_MMCSD_STACK_SIZE 4096
 #define RT_MMCSD_THREAD_PREORITY 22
 #define RT_MMCSD_MAX_PARTITION 16
+#define RT_USING_SPI
+#define RT_USING_QSPI
 #define RT_USING_DEV_BUS
 #define RT_USING_KTIME
 
@@ -155,6 +160,7 @@
 
 /* C/C++ and POSIX layer */
 
+
 /* ISO-ANSI C layer */
 
 /* Timezone and Daylight Saving Time */
@@ -260,6 +266,9 @@
 /* Memory management */
 
 
+/* Memory protection */
+
+
 /* RT-Thread Utestcases */
 
 
@@ -276,9 +285,6 @@
 /* Wiced WiFi */
 
 
-/* CYW43012 WiFi */
-
-
 /* IoT Cloud */
 
 
@@ -386,11 +392,19 @@
 
 #define BSP_USING_IOPAD
 #define BSP_USING_UART
+#define RT_USING_UART0
 #define RT_USING_UART1
-#define BSP_USING_SDIF
-#define BSP_USING_SDCARD_FATFS
-#define BSP_USING_SDCARD_PARTITION "sd1"
-#define USING_SDIF0
+#define BSP_USING_SPI
+#define RT_USING_SPIM0
+#define BSP_USING_GPIO
+#define BSP_USING_ETH
+#define RT_LWIP_PBUF_POOL_BUFSIZE 1700
+#define BSP_USING_PWM
+#define RT_USING_PWM2
+#define BSP_USING_I2C
+#define I2C_USE_MIO
+#define RT_USING_MIO0
+#define RT_USING_MIO1
 
 /* Board extended module Drivers */
 

+ 70 - 48
bsp/phytium/aarch32/configs/phytium_pi_rtthread

@@ -10,8 +10,8 @@ CONFIG_RT_NAME_MAX=16
 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set
 # CONFIG_RT_USING_SMART is not set
 # CONFIG_RT_USING_AMP is not set
-CONFIG_RT_USING_SMP=y
-CONFIG_RT_CPUS_NR=4
+# CONFIG_RT_USING_SMP is not set
+CONFIG_RT_CPUS_NR=1
 CONFIG_RT_ALIGN_SIZE=4
 # CONFIG_RT_THREAD_PRIORITY_8 is not set
 CONFIG_RT_THREAD_PRIORITY_32=y
@@ -24,7 +24,6 @@ CONFIG_RT_HOOK_USING_FUNC_PTR=y
 CONFIG_RT_USING_IDLE_HOOK=y
 CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
 CONFIG_IDLE_THREAD_STACK_SIZE=4096
-CONFIG_SYSTEM_THREAD_STACK_SIZE=4096
 CONFIG_RT_USING_TIMER_SOFT=y
 CONFIG_RT_TIMER_THREAD_PRIO=4
 CONFIG_RT_TIMER_THREAD_STACK_SIZE=4096
@@ -40,7 +39,7 @@ CONFIG_RT_KPRINTF_USING_LONGLONG=y
 CONFIG_RT_USING_DEBUG=y
 CONFIG_RT_DEBUGING_COLOR=y
 CONFIG_RT_DEBUGING_CONTEXT=y
-CONFIG_RT_DEBUGING_INIT=y
+# CONFIG_RT_DEBUGING_AUTO_INIT is not set
 # CONFIG_RT_DEBUGING_PAGE_LEAK is not set
 
 #
@@ -156,6 +155,7 @@ CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512
 # CONFIG_RT_DFS_ELM_USE_ERASE is not set
 CONFIG_RT_DFS_ELM_REENTRANT=y
 CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000
+# CONFIG_RT_DFS_ELM_USE_EXFAT is not set
 CONFIG_RT_USING_DFS_DEVFS=y
 # CONFIG_RT_USING_DFS_ROMFS is not set
 # CONFIG_RT_USING_DFS_CROMFS is not set
@@ -179,18 +179,24 @@ 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_CAN is not set
+CONFIG_RT_USING_CAN=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
-# CONFIG_RT_USING_I2C is not set
+CONFIG_RT_USING_I2C=y
+# CONFIG_RT_I2C_DEBUG is not set
+CONFIG_RT_USING_I2C_BITOPS=y
+# CONFIG_RT_I2C_BITOPS_DEBUG is not set
+# CONFIG_RT_USING_SOFT_I2C is not set
 # CONFIG_RT_USING_PHY is not set
-# CONFIG_RT_USING_PIN is not set
+CONFIG_RT_USING_PIN=y
 # CONFIG_RT_USING_ADC is not set
 # CONFIG_RT_USING_DAC is not set
 CONFIG_RT_USING_NULL=y
 CONFIG_RT_USING_ZERO=y
 CONFIG_RT_USING_RANDOM=y
-# CONFIG_RT_USING_PWM is not set
+CONFIG_RT_USING_PWM=y
 # CONFIG_RT_USING_MTD_NOR is not set
 # CONFIG_RT_USING_MTD_NAND is not set
 # CONFIG_RT_USING_PM is not set
@@ -204,7 +210,13 @@ CONFIG_RT_MMCSD_STACK_SIZE=4096
 CONFIG_RT_MMCSD_THREAD_PREORITY=22
 CONFIG_RT_MMCSD_MAX_PARTITION=16
 # CONFIG_RT_SDIO_DEBUG is not set
-# CONFIG_RT_USING_SPI is not set
+CONFIG_RT_USING_SPI=y
+# CONFIG_RT_USING_SPI_BITOPS is not set
+CONFIG_RT_USING_QSPI=y
+# CONFIG_RT_USING_SPI_MSD is not set
+# CONFIG_RT_USING_SFUD is not set
+# CONFIG_RT_USING_ENC28J60 is not set
+# CONFIG_RT_USING_SPI_WIFI is not set
 # CONFIG_RT_USING_WDT is not set
 # CONFIG_RT_USING_AUDIO is not set
 # CONFIG_RT_USING_SENSOR is not set
@@ -228,6 +240,7 @@ CONFIG_RT_USING_KTIME=y
 #
 # C/C++ and POSIX layer
 #
+# CONFIG_RT_USING_INTERNAL_LIBC_ONLY is not set
 
 #
 # ISO-ANSI C layer
@@ -381,6 +394,12 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_RT_USING_MEMBLOCK is not set
 
+#
+# Memory protection
+#
+# CONFIG_RT_USING_MEM_PROTECTION is not set
+# CONFIG_RT_USING_HW_STACK_GUARD is not set
+
 #
 # RT-Thread Utestcases
 #
@@ -421,11 +440,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_WLAN_WICED is not set
 # CONFIG_PKG_USING_RW007 is not set
-
-#
-# CYW43012 WiFi
-#
-# CONFIG_PKG_USING_WLAN_CYW43012 is not set
 # CONFIG_PKG_USING_COAP is not set
 # CONFIG_PKG_USING_NOPOLL is not set
 # CONFIG_PKG_USING_NETUTILS is not set
@@ -468,7 +482,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_NMEALIB is not set
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK is not set
-# CONFIG_PKG_USING_BT_CYW43012 is not set
 # CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
 # CONFIG_PKG_USING_WAYZ_IOTKIT is not set
 # CONFIG_PKG_USING_MAVLINK is not set
@@ -488,8 +501,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ZFTP is not set
 # CONFIG_PKG_USING_WOL is not set
 # CONFIG_PKG_USING_ZEPHYR_POLLING is not set
-# CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set
-# CONFIG_PKG_USING_LHC_MODBUS is not set
 
 #
 # security packages
@@ -536,6 +547,7 @@ CONFIG_RT_USING_ADT_REF=y
 # LVGL: powerful and easy-to-use embedded GUI library
 #
 # CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
 # CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
 # CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
 
@@ -611,7 +623,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_HASH_MATCH is not set
 # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set
 # CONFIG_PKG_USING_VOFA_PLUS is not set
-# CONFIG_PKG_USING_ZDEBUG is not set
 
 #
 # system packages
@@ -648,8 +659,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
 # CONFIG_PKG_USING_FREERTOS_WRAPPER is not set
-# CONFIG_PKG_USING_LITEOS_SDK is not set
-# CONFIG_PKG_USING_TZ_DATABASE is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
@@ -673,7 +682,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QBOOT is not set
 # CONFIG_PKG_USING_PPOOL is not set
 # CONFIG_PKG_USING_OPENAMP is not set
-# CONFIG_PKG_USING_RPMSG_LITE is not set
 # CONFIG_PKG_USING_LPM is not set
 # CONFIG_PKG_USING_TLSF is not set
 # CONFIG_PKG_USING_EVENT_RECORDER is not set
@@ -687,11 +695,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_AGILE_UPGRADE is not set
 # CONFIG_PKG_USING_FLASH_BLOB is not set
 # CONFIG_PKG_USING_MLIBC is not set
-# CONFIG_PKG_USING_TASK_MSG_BUS is not set
-# CONFIG_PKG_USING_SFDB is not set
-# CONFIG_PKG_USING_RTP is not set
-# CONFIG_PKG_USING_REB is not set
-# CONFIG_PKG_USING_R_RHEALSTONE is not set
 
 #
 # peripheral libraries and drivers
@@ -756,7 +759,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_BALANCE is not set
 # CONFIG_PKG_USING_SHT2X is not set
 # CONFIG_PKG_USING_SHT3X is not set
-# CONFIG_PKG_USING_SHT4X is not set
 # CONFIG_PKG_USING_AD7746 is not set
 # CONFIG_PKG_USING_ADT74XX is not set
 # CONFIG_PKG_USING_MAX17048 is not set
@@ -857,10 +859,6 @@ CONFIG_RT_USING_ADT_REF=y
 # 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_ST7789 is not set
-# CONFIG_PKG_USING_VS1003 is not set
-# CONFIG_PKG_USING_X9555 is not set
-# CONFIG_PKG_USING_SYSTEM_RUN_LED is not set
 # CONFIG_PKG_USING_SPI_TOOLS is not set
 
 #
@@ -875,7 +873,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_R_TINYMAIX is not set
 
 #
 # Signal Processing and Control Algorithm Packages
@@ -885,7 +882,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UKAL is not set
 # CONFIG_PKG_USING_DIGITALCTRL is not set
 # CONFIG_PKG_USING_KISSFFT is not set
-# CONFIG_PKG_USING_CMSIS_DSP is not set
 
 #
 # miscellaneous packages
@@ -923,7 +919,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_MINILZO is not set
 # CONFIG_PKG_USING_QUICKLZ is not set
 # CONFIG_PKG_USING_LZMA is not set
-# CONFIG_PKG_USING_RALARAM is not set
 # CONFIG_PKG_USING_MULTIBUTTON is not set
 # CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
 # CONFIG_PKG_USING_CANFESTIVAL is not set
@@ -1108,7 +1103,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set
 # CONFIG_PKG_USING_ARDUINO_U8G2 is not set
-# CONFIG_PKG_USING_ARDUINO_TFT_ESPI 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
@@ -1117,7 +1111,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # Timing
 #
-# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set
 # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set
 # CONFIG_PKG_USING_ARDUINO_TICKER is not set
 # CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set
@@ -1154,6 +1147,7 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # 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
@@ -1181,21 +1175,49 @@ CONFIG_RT_USING_ADT_REF=y
 #
 CONFIG_BSP_USING_IOPAD=y
 CONFIG_BSP_USING_UART=y
+CONFIG_RT_USING_UART0=y
 CONFIG_RT_USING_UART1=y
-# CONFIG_RT_USING_UART0 is not set
-# CONFIG_BSP_USING_SPI is not set
+# CONFIG_RT_USING_UART2 is not set
+# CONFIG_RT_USING_UART3 is not set
+CONFIG_BSP_USING_SPI=y
+CONFIG_RT_USING_SPIM0=y
+# CONFIG_RT_USING_SPIM1 is not set
+# CONFIG_RT_USING_SPIM2 is not set
+# CONFIG_RT_USING_SPIM3 is not set
 # CONFIG_BSP_USING_CAN is not set
-# CONFIG_BSP_USING_GPIO is not set
+CONFIG_BSP_USING_GPIO=y
 # CONFIG_BSP_USING_QSPI is not set
-# CONFIG_BSP_USING_ETH is not set
-# CONFIG_BSP_USING_PWM is not set
-# CONFIG_BSP_USING_I2C is not set
-CONFIG_BSP_USING_SDIF=y
-CONFIG_BSP_USING_SDCARD_FATFS=y
-CONFIG_BSP_USING_SDCARD_PARTITION="sd1"
-CONFIG_USING_SDIF0=y
-# CONFIG_USING_SDIF1 is not set
-# CONFIG_USING_EMMC 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=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 is not set
+# CONFIG_RT_USING_PWM7 is not set
+CONFIG_BSP_USING_I2C=y
+CONFIG_I2C_USE_MIO=y
+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
+# CONFIG_RT_USING_MIO5 is not set
+# CONFIG_RT_USING_MIO6 is not set
+# 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_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 is not set
+# CONFIG_I2C_USE_CONTROLLER is not set
+# CONFIG_BSP_USING_SDIF is not set
 
 #
 # Board extended module Drivers

+ 25 - 11
bsp/phytium/aarch32/configs/phytium_pi_rtthread.h

@@ -7,8 +7,7 @@
 /* RT-Thread Kernel */
 
 #define RT_NAME_MAX 16
-#define RT_USING_SMP
-#define RT_CPUS_NR 4
+#define RT_CPUS_NR 1
 #define RT_ALIGN_SIZE 4
 #define RT_THREAD_PRIORITY_32
 #define RT_THREAD_PRIORITY_MAX 32
@@ -19,7 +18,6 @@
 #define RT_USING_IDLE_HOOK
 #define RT_IDLE_HOOK_LIST_SIZE 4
 #define IDLE_THREAD_STACK_SIZE 4096
-#define SYSTEM_THREAD_STACK_SIZE 4096
 #define RT_USING_TIMER_SOFT
 #define RT_TIMER_THREAD_PRIO 4
 #define RT_TIMER_THREAD_STACK_SIZE 4096
@@ -31,7 +29,6 @@
 #define RT_USING_DEBUG
 #define RT_DEBUGING_COLOR
 #define RT_DEBUGING_CONTEXT
-#define RT_DEBUGING_INIT
 
 /* Inter-Thread communication */
 
@@ -126,9 +123,15 @@
 #define RT_USING_SERIAL_V1
 #define RT_SERIAL_USING_DMA
 #define RT_SERIAL_RB_BUFSZ 1024
+#define RT_USING_CAN
+#define RT_CAN_USING_CANFD
+#define RT_USING_I2C
+#define RT_USING_I2C_BITOPS
+#define RT_USING_PIN
 #define RT_USING_NULL
 #define RT_USING_ZERO
 #define RT_USING_RANDOM
+#define RT_USING_PWM
 #define RT_USING_RTC
 #define RT_USING_SDIO
 #define RT_SDIO_STACK_SIZE 4096
@@ -136,6 +139,8 @@
 #define RT_MMCSD_STACK_SIZE 4096
 #define RT_MMCSD_THREAD_PREORITY 22
 #define RT_MMCSD_MAX_PARTITION 16
+#define RT_USING_SPI
+#define RT_USING_QSPI
 #define RT_USING_DEV_BUS
 #define RT_USING_KTIME
 
@@ -144,6 +149,7 @@
 
 /* C/C++ and POSIX layer */
 
+
 /* ISO-ANSI C layer */
 
 /* Timezone and Daylight Saving Time */
@@ -249,6 +255,9 @@
 /* Memory management */
 
 
+/* Memory protection */
+
+
 /* RT-Thread Utestcases */
 
 
@@ -265,9 +274,6 @@
 /* Wiced WiFi */
 
 
-/* CYW43012 WiFi */
-
-
 /* IoT Cloud */
 
 
@@ -375,11 +381,19 @@
 
 #define BSP_USING_IOPAD
 #define BSP_USING_UART
+#define RT_USING_UART0
 #define RT_USING_UART1
-#define BSP_USING_SDIF
-#define BSP_USING_SDCARD_FATFS
-#define BSP_USING_SDCARD_PARTITION "sd1"
-#define USING_SDIF0
+#define BSP_USING_SPI
+#define RT_USING_SPIM0
+#define BSP_USING_GPIO
+#define BSP_USING_ETH
+#define RT_LWIP_PBUF_POOL_BUFSIZE 1700
+#define BSP_USING_PWM
+#define RT_USING_PWM2
+#define BSP_USING_I2C
+#define I2C_USE_MIO
+#define RT_USING_MIO0
+#define RT_USING_MIO1
 
 /* Board extended module Drivers */
 

+ 0 - 0
bsp/phytium/aarch32/figures/1682477587050.png → bsp/phytium/aarch32/figures/rtsmart_config.png


+ 54 - 14
bsp/phytium/aarch32/rtconfig.h

@@ -7,8 +7,8 @@
 /* RT-Thread Kernel */
 
 #define RT_NAME_MAX 16
-#define RT_USING_SMP
-#define RT_CPUS_NR 4
+#define RT_USING_SMART
+#define RT_CPUS_NR 1
 #define RT_ALIGN_SIZE 4
 #define RT_THREAD_PRIORITY_32
 #define RT_THREAD_PRIORITY_MAX 32
@@ -19,7 +19,6 @@
 #define RT_USING_IDLE_HOOK
 #define RT_IDLE_HOOK_LIST_SIZE 4
 #define IDLE_THREAD_STACK_SIZE 4096
-#define SYSTEM_THREAD_STACK_SIZE 4096
 #define RT_USING_TIMER_SOFT
 #define RT_TIMER_THREAD_PRIO 4
 #define RT_TIMER_THREAD_STACK_SIZE 4096
@@ -31,7 +30,6 @@
 #define RT_USING_DEBUG
 #define RT_DEBUGING_COLOR
 #define RT_DEBUGING_CONTEXT
-#define RT_DEBUGING_INIT
 
 /* Inter-Thread communication */
 
@@ -63,6 +61,7 @@
 #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
 
@@ -114,6 +113,14 @@
 #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 */
 
@@ -126,9 +133,17 @@
 #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
+#define RT_USING_PIN
 #define RT_USING_NULL
 #define RT_USING_ZERO
 #define RT_USING_RANDOM
+#define RT_USING_PWM
 #define RT_USING_RTC
 #define RT_USING_SDIO
 #define RT_SDIO_STACK_SIZE 4096
@@ -136,6 +151,8 @@
 #define RT_MMCSD_STACK_SIZE 4096
 #define RT_MMCSD_THREAD_PREORITY 22
 #define RT_MMCSD_MAX_PARTITION 16
+#define RT_USING_SPI
+#define RT_USING_QSPI
 #define RT_USING_DEV_BUS
 #define RT_USING_KTIME
 
@@ -144,6 +161,7 @@
 
 /* C/C++ and POSIX layer */
 
+
 /* ISO-ANSI C layer */
 
 /* Timezone and Daylight Saving Time */
@@ -249,6 +267,9 @@
 /* Memory management */
 
 
+/* Memory protection */
+
+
 /* RT-Thread Utestcases */
 
 
@@ -265,9 +286,6 @@
 /* Wiced WiFi */
 
 
-/* CYW43012 WiFi */
-
-
 /* IoT Cloud */
 
 
@@ -375,11 +393,32 @@
 
 #define BSP_USING_IOPAD
 #define BSP_USING_UART
+#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 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 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 "sd1"
-#define USING_SDIF0
+#define BSP_USING_SDCARD_PARTITION "sd0"
+#define USING_SDIF1
 
 /* Board extended module Drivers */
 
@@ -392,9 +431,10 @@
 
 /* Soc configuration */
 
-#define TARGET_PHYTIUMPI
-#define SOC_NAME "phytiumpi"
-#define SOC_CORE_NUM 4
+#define TARGET_E2000D
+#define SOC_NAME "e2000"
+#define TARGET_TYPE_NAME "d"
+#define SOC_CORE_NUM 2
 #define F32BIT_MEMORY_ADDRESS 0x80000000
 #define F32BIT_MEMORY_LENGTH 0x80000000
 #define F64BIT_MEMORY_ADDRESS 0x2000000000
@@ -404,8 +444,8 @@
 
 /* Board Configuration */
 
-#define BOARD_NAME "firefly"
-#define FIREFLY_DEMO_BOARD
+#define E2000D_DEMO_BOARD
+#define BOARD_NAME "demo"
 
 /* IO mux configuration when board start up */
 

+ 91 - 53
bsp/phytium/aarch64/.config

@@ -24,6 +24,7 @@ CONFIG_RT_HOOK_USING_FUNC_PTR=y
 CONFIG_RT_USING_IDLE_HOOK=y
 CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
 CONFIG_IDLE_THREAD_STACK_SIZE=8192
+CONFIG_SYSTEM_THREAD_STACK_SIZE=8192
 CONFIG_RT_USING_TIMER_SOFT=y
 CONFIG_RT_TIMER_THREAD_PRIO=4
 CONFIG_RT_TIMER_THREAD_STACK_SIZE=8192
@@ -39,8 +40,9 @@ CONFIG_RT_KPRINTF_USING_LONGLONG=y
 CONFIG_RT_USING_DEBUG=y
 CONFIG_RT_DEBUGING_COLOR=y
 CONFIG_RT_DEBUGING_CONTEXT=y
-CONFIG_RT_DEBUGING_INIT=y
+# CONFIG_RT_DEBUGING_AUTO_INIT is not set
 # CONFIG_RT_DEBUGING_PAGE_LEAK is not set
+# CONFIG_RT_DEBUGING_SPINLOCK is not set
 
 #
 # Inter-Thread communication
@@ -90,10 +92,10 @@ CONFIG_ARCH_SECONDARY_CPU_STACK_SIZE=4096
 CONFIG_ARCH_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
 CONFIG_ARCH_CPU_64BIT=y
 CONFIG_RT_USING_CACHE=y
-# CONFIG_RT_USING_HW_ATOMIC is not set
+CONFIG_RT_USING_HW_ATOMIC=y
 CONFIG_ARCH_ARM_BOOTWITH_FLUSH_CACHE=y
 # CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
-# CONFIG_RT_USING_CPU_FFS is not set
+CONFIG_RT_USING_CPU_FFS=y
 CONFIG_ARCH_MM_MMU=y
 CONFIG_ARCH_ARM=y
 CONFIG_ARCH_ARM_MMU=y
@@ -159,6 +161,7 @@ CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512
 # CONFIG_RT_DFS_ELM_USE_ERASE is not set
 CONFIG_RT_DFS_ELM_REENTRANT=y
 CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000
+# CONFIG_RT_DFS_ELM_USE_EXFAT is not set
 CONFIG_RT_USING_DFS_DEVFS=y
 # CONFIG_RT_USING_DFS_ROMFS is not set
 # CONFIG_RT_USING_DFS_CROMFS is not set
@@ -182,18 +185,24 @@ 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=64
-# CONFIG_RT_USING_CAN is not set
+CONFIG_RT_USING_CAN=y
+CONFIG_RT_CAN_USING_HDR=y
+CONFIG_RT_CAN_USING_CANFD=y
 # CONFIG_RT_USING_HWTIMER is not set
 # CONFIG_RT_USING_CPUTIME is not set
-# CONFIG_RT_USING_I2C is not set
+CONFIG_RT_USING_I2C=y
+# CONFIG_RT_I2C_DEBUG is not set
+CONFIG_RT_USING_I2C_BITOPS=y
+# CONFIG_RT_I2C_BITOPS_DEBUG is not set
+# CONFIG_RT_USING_SOFT_I2C is not set
 # CONFIG_RT_USING_PHY is not set
-# CONFIG_RT_USING_PIN is not set
+CONFIG_RT_USING_PIN=y
 # CONFIG_RT_USING_ADC is not set
 # CONFIG_RT_USING_DAC is not set
 CONFIG_RT_USING_NULL=y
 CONFIG_RT_USING_ZERO=y
 CONFIG_RT_USING_RANDOM=y
-# CONFIG_RT_USING_PWM is not set
+CONFIG_RT_USING_PWM=y
 # CONFIG_RT_USING_MTD_NOR is not set
 # CONFIG_RT_USING_MTD_NAND is not set
 # CONFIG_RT_USING_PM is not set
@@ -207,7 +216,13 @@ CONFIG_RT_MMCSD_STACK_SIZE=8192
 CONFIG_RT_MMCSD_THREAD_PREORITY=22
 CONFIG_RT_MMCSD_MAX_PARTITION=16
 # CONFIG_RT_SDIO_DEBUG is not set
-# CONFIG_RT_USING_SPI is not set
+CONFIG_RT_USING_SPI=y
+# CONFIG_RT_USING_SPI_BITOPS is not set
+CONFIG_RT_USING_QSPI=y
+# CONFIG_RT_USING_SPI_MSD is not set
+# CONFIG_RT_USING_SFUD is not set
+# CONFIG_RT_USING_ENC28J60 is not set
+# CONFIG_RT_USING_SPI_WIFI is not set
 # CONFIG_RT_USING_WDT is not set
 # CONFIG_RT_USING_AUDIO is not set
 # CONFIG_RT_USING_SENSOR is not set
@@ -216,7 +231,7 @@ CONFIG_RT_MMCSD_MAX_PARTITION=16
 # CONFIG_RT_USING_HWCRYPTO is not set
 # CONFIG_RT_USING_PULSE_ENCODER is not set
 # CONFIG_RT_USING_INPUT_CAPTURE is not set
-# CONFIG_RT_USING_DEV_BUS is not set
+CONFIG_RT_USING_DEV_BUS=y
 # CONFIG_RT_USING_WIFI is not set
 # CONFIG_RT_USING_VIRTIO is not set
 CONFIG_RT_USING_KTIME=y
@@ -231,6 +246,7 @@ CONFIG_RT_USING_KTIME=y
 #
 # C/C++ and POSIX layer
 #
+# CONFIG_RT_USING_INTERNAL_LIBC_ONLY is not set
 
 #
 # ISO-ANSI C layer
@@ -409,6 +425,12 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_RT_USING_MEMBLOCK is not set
 
+#
+# Memory protection
+#
+# CONFIG_RT_USING_MEM_PROTECTION is not set
+# CONFIG_RT_USING_HW_STACK_GUARD is not set
+
 #
 # RT-Thread Utestcases
 #
@@ -449,11 +471,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_WLAN_WICED is not set
 # CONFIG_PKG_USING_RW007 is not set
-
-#
-# CYW43012 WiFi
-#
-# CONFIG_PKG_USING_WLAN_CYW43012 is not set
 # CONFIG_PKG_USING_COAP is not set
 # CONFIG_PKG_USING_NOPOLL is not set
 # CONFIG_PKG_USING_NETUTILS is not set
@@ -496,7 +513,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_NMEALIB is not set
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK is not set
-# CONFIG_PKG_USING_BT_CYW43012 is not set
 # CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
 # CONFIG_PKG_USING_WAYZ_IOTKIT is not set
 # CONFIG_PKG_USING_MAVLINK is not set
@@ -516,8 +532,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ZFTP is not set
 # CONFIG_PKG_USING_WOL is not set
 # CONFIG_PKG_USING_ZEPHYR_POLLING is not set
-# CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set
-# CONFIG_PKG_USING_LHC_MODBUS is not set
 
 #
 # security packages
@@ -564,6 +578,7 @@ CONFIG_RT_USING_ADT_REF=y
 # LVGL: powerful and easy-to-use embedded GUI library
 #
 # CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
 # CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
 # CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
 
@@ -638,7 +653,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_HASH_MATCH is not set
 # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set
 # CONFIG_PKG_USING_VOFA_PLUS is not set
-# CONFIG_PKG_USING_ZDEBUG is not set
 
 #
 # system packages
@@ -675,8 +689,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
 # CONFIG_PKG_USING_FREERTOS_WRAPPER is not set
-# CONFIG_PKG_USING_LITEOS_SDK is not set
-# CONFIG_PKG_USING_TZ_DATABASE is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
@@ -700,7 +712,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QBOOT is not set
 # CONFIG_PKG_USING_PPOOL is not set
 # CONFIG_PKG_USING_OPENAMP is not set
-# CONFIG_PKG_USING_RPMSG_LITE is not set
 # CONFIG_PKG_USING_LPM is not set
 # CONFIG_PKG_USING_TLSF is not set
 # CONFIG_PKG_USING_EVENT_RECORDER is not set
@@ -714,11 +725,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_AGILE_UPGRADE is not set
 # CONFIG_PKG_USING_FLASH_BLOB is not set
 # CONFIG_PKG_USING_MLIBC is not set
-# CONFIG_PKG_USING_TASK_MSG_BUS is not set
-# CONFIG_PKG_USING_SFDB is not set
-# CONFIG_PKG_USING_RTP is not set
-# CONFIG_PKG_USING_REB is not set
-# CONFIG_PKG_USING_R_RHEALSTONE is not set
 
 #
 # peripheral libraries and drivers
@@ -783,7 +789,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_BALANCE is not set
 # CONFIG_PKG_USING_SHT2X is not set
 # CONFIG_PKG_USING_SHT3X is not set
-# CONFIG_PKG_USING_SHT4X is not set
 # CONFIG_PKG_USING_AD7746 is not set
 # CONFIG_PKG_USING_ADT74XX is not set
 # CONFIG_PKG_USING_MAX17048 is not set
@@ -884,10 +889,6 @@ CONFIG_RT_USING_ADT_REF=y
 # 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_ST7789 is not set
-# CONFIG_PKG_USING_VS1003 is not set
-# CONFIG_PKG_USING_X9555 is not set
-# CONFIG_PKG_USING_SYSTEM_RUN_LED is not set
 # CONFIG_PKG_USING_SPI_TOOLS is not set
 
 #
@@ -903,7 +904,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QUEST is not set
 # CONFIG_PKG_USING_NAXOS is not set
 # CONFIG_PKG_USING_NCNN is not set
-# CONFIG_PKG_USING_R_TINYMAIX is not set
 
 #
 # Signal Processing and Control Algorithm Packages
@@ -974,7 +974,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 # CONFIG_PKG_USING_MINILZO is not set
 # CONFIG_PKG_USING_QUICKLZ is not set
 # CONFIG_PKG_USING_LZMA is not set
-# CONFIG_PKG_USING_RALARAM is not set
 # CONFIG_PKG_USING_MULTIBUTTON is not set
 # CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
 # CONFIG_PKG_USING_CANFESTIVAL is not set
@@ -1159,7 +1158,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set
 # CONFIG_PKG_USING_ARDUINO_U8G2 is not set
-# CONFIG_PKG_USING_ARDUINO_TFT_ESPI 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
@@ -1168,7 +1166,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # Timing
 #
-# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set
 # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set
 # CONFIG_PKG_USING_ARDUINO_TICKER is not set
 # CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set
@@ -1205,6 +1202,7 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # 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
@@ -1225,27 +1223,67 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # Hardware Drivers
 #
-CONFIG_DRV_DEBUG=y
+# CONFIG_DRV_DEBUG is not set
 
 #
 # On-chip Peripheral Drivers
 #
 CONFIG_BSP_USING_IOPAD=y
 CONFIG_BSP_USING_UART=y
+CONFIG_RT_USING_UART0=y
 CONFIG_RT_USING_UART1=y
-# CONFIG_RT_USING_UART0 is not set
-# CONFIG_BSP_USING_SPI is not set
-# CONFIG_BSP_USING_CAN is not set
-# CONFIG_BSP_USING_GPIO is not set
-# CONFIG_BSP_USING_QSPI is not set
-# CONFIG_BSP_USING_ETH is not set
-# CONFIG_BSP_USING_PWM is not set
-# CONFIG_BSP_USING_I2C is not set
+# CONFIG_RT_USING_UART2 is not set
+# CONFIG_RT_USING_UART3 is not set
+CONFIG_BSP_USING_SPI=y
+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_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_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_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_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_MIO3 is not set
+# CONFIG_RT_USING_MIO4 is not set
+# CONFIG_RT_USING_MIO5 is not set
+# CONFIG_RT_USING_MIO6 is not set
+# 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_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_I2C_USE_CONTROLLER is not set
 CONFIG_BSP_USING_SDIF=y
 CONFIG_BSP_USING_SDCARD_FATFS=y
-CONFIG_BSP_USING_SDCARD_PARTITION="sd1"
-CONFIG_USING_SDIF0=y
-# CONFIG_USING_SDIF1 is not set
+CONFIG_BSP_USING_SDCARD_PARTITION="sd0"
+# CONFIG_USING_SDIF0 is not set
+CONFIG_USING_SDIF1=y
 # CONFIG_USING_EMMC is not set
 
 #
@@ -1264,13 +1302,14 @@ CONFIG_TARGET_ARMV8_AARCH64=y
 #
 # Soc configuration
 #
-CONFIG_TARGET_PHYTIUMPI=y
-# CONFIG_TARGET_E2000Q is not set
+# CONFIG_TARGET_PHYTIUMPI is not set
+CONFIG_TARGET_E2000Q=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="phytiumpi"
+CONFIG_SOC_NAME="e2000"
+CONFIG_TARGET_TYPE_NAME="q"
 CONFIG_SOC_CORE_NUM=4
 CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
 CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
@@ -1285,7 +1324,7 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
 #
 # Board Configuration
 #
-CONFIG_BOARD_NAME="firefly"
+CONFIG_BOARD_NAME="demo"
 # CONFIG_USE_SPI_IOPAD is not set
 # CONFIG_USE_GPIO_IOPAD is not set
 # CONFIG_USE_CAN_IOPAD is not set
@@ -1295,8 +1334,7 @@ CONFIG_BOARD_NAME="firefly"
 # 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 is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
+CONFIG_E2000Q_DEMO_BOARD=y
 
 #
 # IO mux configuration when board start up

+ 1 - 0
bsp/phytium/aarch64/Kconfig

@@ -40,6 +40,7 @@ config PHYTIUM_ARCH_AARCH64
     select RT_USING_CACHE
     select TARGET_ARMV8_AARCH64
     select ARCH_ARM_BOOTWITH_FLUSH_CACHE
+    select RT_USING_HW_ATOMIC
     default y
     
 

+ 5 - 5
bsp/phytium/aarch64/README.md

@@ -88,7 +88,7 @@ Hardware Drivers Config > On-chip Peripheral Drivers
  scons --menuconfig
 ```
 
-![1682474861110](./figures/1682474861110.png)
+![rtsmart_config](./figures/rtsmart_config.png)
 
 开发者通过以上配置开启RT-Thread Smart 功能
 
@@ -164,17 +164,17 @@ config BSP_DIR
     option env="BSP_ROOT"
     default "."
 
-config STANDALONE_DIR
+config SDK_DIR
     string
-    option env="STANDALONE_DIR"
-    default "libraries/standalone"
+    option env="SDK_DIR"
+    default "./libraries/phytium_standalone_sdk"
 ```
 
 - 输入 menuconfig 和 scons 完成编译
 
 ## 9. 将工程导入 RT-Studio
 
-- 在 RT-Studio 使用功能 `RT-Thread Bsp 到工作空间`,导入 5. 中导出的 BSP 工程
+- 在 RT-Studio 使用功能 `RT-Thread Bsp 到工作空间`,导入 8. 中导出的 BSP 工程
 - 设置 BSP 工程的交叉编译链后进行后续开发
 
 ![](./figures/import_project.png)

+ 2 - 0
bsp/phytium/aarch64/SConstruct

@@ -54,6 +54,8 @@ def install_phytium_sdk():
     print("Checking for the presence of phytium_standalone_sdk_install.py script...")
     sconstruct_dir = os.getcwd()
     install_script_path = os.path.join(sconstruct_dir, "phytium_standalone_sdk_install.py")
+    if os.path.exists(install_script_path):
+        subprocess.call(["rm","-rf", install_script_path])
 
     try:
         subprocess.call(["wget", "https://gitee.com/phytium_embedded/phytium-standalone-sdk/raw/Standalone-Sdk_RT-thread/phytium_standalone_sdk_install.py"])

+ 97 - 49
bsp/phytium/aarch64/configs/e2000d_demo_rtsmart

@@ -40,8 +40,9 @@ CONFIG_RT_KPRINTF_USING_LONGLONG=y
 CONFIG_RT_USING_DEBUG=y
 CONFIG_RT_DEBUGING_COLOR=y
 CONFIG_RT_DEBUGING_CONTEXT=y
-CONFIG_RT_DEBUGING_INIT=y
+# CONFIG_RT_DEBUGING_AUTO_INIT is not set
 # CONFIG_RT_DEBUGING_PAGE_LEAK is not set
+# CONFIG_RT_DEBUGING_SPINLOCK is not set
 
 #
 # Inter-Thread communication
@@ -91,10 +92,10 @@ CONFIG_ARCH_SECONDARY_CPU_STACK_SIZE=4096
 CONFIG_ARCH_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
 CONFIG_ARCH_CPU_64BIT=y
 CONFIG_RT_USING_CACHE=y
-# CONFIG_RT_USING_HW_ATOMIC is not set
+CONFIG_RT_USING_HW_ATOMIC=y
 CONFIG_ARCH_ARM_BOOTWITH_FLUSH_CACHE=y
 # CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
-# CONFIG_RT_USING_CPU_FFS is not set
+CONFIG_RT_USING_CPU_FFS=y
 CONFIG_ARCH_MM_MMU=y
 CONFIG_ARCH_ARM=y
 CONFIG_ARCH_ARM_MMU=y
@@ -161,6 +162,7 @@ CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512
 # CONFIG_RT_DFS_ELM_USE_ERASE is not set
 CONFIG_RT_DFS_ELM_REENTRANT=y
 CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000
+# CONFIG_RT_DFS_ELM_USE_EXFAT is not set
 CONFIG_RT_USING_DFS_DEVFS=y
 # CONFIG_RT_USING_DFS_ROMFS is not set
 # CONFIG_RT_USING_DFS_CROMFS is not set
@@ -195,26 +197,44 @@ CONFIG_RT_SERIAL_USING_DMA=y
 CONFIG_RT_SERIAL_RB_BUFSZ=64
 CONFIG_RT_USING_TTY=y
 # CONFIG_RT_TTY_DEBUG is not set
-# CONFIG_RT_USING_CAN is not set
+CONFIG_RT_USING_CAN=y
+CONFIG_RT_CAN_USING_HDR=y
+CONFIG_RT_CAN_USING_CANFD=y
 # CONFIG_RT_USING_HWTIMER is not set
 # CONFIG_RT_USING_CPUTIME is not set
-# CONFIG_RT_USING_I2C is not set
+CONFIG_RT_USING_I2C=y
+# CONFIG_RT_I2C_DEBUG is not set
+CONFIG_RT_USING_I2C_BITOPS=y
+# CONFIG_RT_I2C_BITOPS_DEBUG is not set
+# CONFIG_RT_USING_SOFT_I2C is not set
 # CONFIG_RT_USING_PHY is not set
-# CONFIG_RT_USING_PIN is not set
+CONFIG_RT_USING_PIN=y
 # CONFIG_RT_USING_ADC is not set
 # CONFIG_RT_USING_DAC is not set
 CONFIG_RT_USING_NULL=y
 CONFIG_RT_USING_ZERO=y
 CONFIG_RT_USING_RANDOM=y
-# CONFIG_RT_USING_PWM is not set
+CONFIG_RT_USING_PWM=y
 # CONFIG_RT_USING_MTD_NOR is not set
 # CONFIG_RT_USING_MTD_NAND is not set
 # CONFIG_RT_USING_PM is not set
 CONFIG_RT_USING_RTC=y
 # CONFIG_RT_USING_ALARM is not set
 # CONFIG_RT_USING_SOFT_RTC is not set
-# CONFIG_RT_USING_SDIO is not set
-# CONFIG_RT_USING_SPI is not set
+CONFIG_RT_USING_SDIO=y
+CONFIG_RT_SDIO_STACK_SIZE=8192
+CONFIG_RT_SDIO_THREAD_PRIORITY=15
+CONFIG_RT_MMCSD_STACK_SIZE=8192
+CONFIG_RT_MMCSD_THREAD_PREORITY=22
+CONFIG_RT_MMCSD_MAX_PARTITION=16
+# CONFIG_RT_SDIO_DEBUG is not set
+CONFIG_RT_USING_SPI=y
+# CONFIG_RT_USING_SPI_BITOPS is not set
+CONFIG_RT_USING_QSPI=y
+# CONFIG_RT_USING_SPI_MSD is not set
+# CONFIG_RT_USING_SFUD is not set
+# CONFIG_RT_USING_ENC28J60 is not set
+# CONFIG_RT_USING_SPI_WIFI is not set
 # CONFIG_RT_USING_WDT is not set
 # CONFIG_RT_USING_AUDIO is not set
 # CONFIG_RT_USING_SENSOR is not set
@@ -223,7 +243,7 @@ CONFIG_RT_USING_RTC=y
 # CONFIG_RT_USING_HWCRYPTO is not set
 # CONFIG_RT_USING_PULSE_ENCODER is not set
 # CONFIG_RT_USING_INPUT_CAPTURE is not set
-# CONFIG_RT_USING_DEV_BUS is not set
+CONFIG_RT_USING_DEV_BUS=y
 # CONFIG_RT_USING_WIFI is not set
 # CONFIG_RT_USING_VIRTIO is not set
 CONFIG_RT_USING_KTIME=y
@@ -238,6 +258,7 @@ CONFIG_RT_USING_KTIME=y
 #
 # C/C++ and POSIX layer
 #
+# CONFIG_RT_USING_INTERNAL_LIBC_ONLY is not set
 
 #
 # ISO-ANSI C layer
@@ -348,7 +369,7 @@ CONFIG_RT_LWIP_TCPTHREAD_STACKSIZE=16184
 # CONFIG_LWIP_NO_RX_THREAD is not set
 # CONFIG_LWIP_NO_TX_THREAD is not set
 CONFIG_RT_LWIP_ETHTHREAD_PRIORITY=12
-CONFIG_RT_LWIP_ETHTHREAD_STACKSIZE=2048
+CONFIG_RT_LWIP_ETHTHREAD_STACKSIZE=8192
 CONFIG_RT_LWIP_ETHTHREAD_MBOX_SIZE=8
 # CONFIG_RT_LWIP_REASSEMBLY_FRAG is not set
 CONFIG_LWIP_NETIF_STATUS_CALLBACK=1
@@ -418,6 +439,12 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_RT_USING_MEMBLOCK is not set
 
+#
+# Memory protection
+#
+# CONFIG_RT_USING_MEM_PROTECTION is not set
+# CONFIG_RT_USING_HW_STACK_GUARD is not set
+
 #
 # RT-Thread Utestcases
 #
@@ -458,11 +485,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_WLAN_WICED is not set
 # CONFIG_PKG_USING_RW007 is not set
-
-#
-# CYW43012 WiFi
-#
-# CONFIG_PKG_USING_WLAN_CYW43012 is not set
 # CONFIG_PKG_USING_COAP is not set
 # CONFIG_PKG_USING_NOPOLL is not set
 # CONFIG_PKG_USING_NETUTILS is not set
@@ -505,7 +527,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_NMEALIB is not set
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK is not set
-# CONFIG_PKG_USING_BT_CYW43012 is not set
 # CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
 # CONFIG_PKG_USING_WAYZ_IOTKIT is not set
 # CONFIG_PKG_USING_MAVLINK is not set
@@ -525,8 +546,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ZFTP is not set
 # CONFIG_PKG_USING_WOL is not set
 # CONFIG_PKG_USING_ZEPHYR_POLLING is not set
-# CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set
-# CONFIG_PKG_USING_LHC_MODBUS is not set
 
 #
 # security packages
@@ -573,6 +592,7 @@ CONFIG_RT_USING_ADT_REF=y
 # LVGL: powerful and easy-to-use embedded GUI library
 #
 # CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
 # CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
 # CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
 
@@ -647,7 +667,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_HASH_MATCH is not set
 # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set
 # CONFIG_PKG_USING_VOFA_PLUS is not set
-# CONFIG_PKG_USING_ZDEBUG is not set
 
 #
 # system packages
@@ -684,8 +703,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
 # CONFIG_PKG_USING_FREERTOS_WRAPPER is not set
-# CONFIG_PKG_USING_LITEOS_SDK is not set
-# CONFIG_PKG_USING_TZ_DATABASE is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
@@ -709,7 +726,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QBOOT is not set
 # CONFIG_PKG_USING_PPOOL is not set
 # CONFIG_PKG_USING_OPENAMP is not set
-# CONFIG_PKG_USING_RPMSG_LITE is not set
 # CONFIG_PKG_USING_LPM is not set
 # CONFIG_PKG_USING_TLSF is not set
 # CONFIG_PKG_USING_EVENT_RECORDER is not set
@@ -723,11 +739,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_AGILE_UPGRADE is not set
 # CONFIG_PKG_USING_FLASH_BLOB is not set
 # CONFIG_PKG_USING_MLIBC is not set
-# CONFIG_PKG_USING_TASK_MSG_BUS is not set
-# CONFIG_PKG_USING_SFDB is not set
-# CONFIG_PKG_USING_RTP is not set
-# CONFIG_PKG_USING_REB is not set
-# CONFIG_PKG_USING_R_RHEALSTONE is not set
 
 #
 # peripheral libraries and drivers
@@ -792,7 +803,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_BALANCE is not set
 # CONFIG_PKG_USING_SHT2X is not set
 # CONFIG_PKG_USING_SHT3X is not set
-# CONFIG_PKG_USING_SHT4X is not set
 # CONFIG_PKG_USING_AD7746 is not set
 # CONFIG_PKG_USING_ADT74XX is not set
 # CONFIG_PKG_USING_MAX17048 is not set
@@ -893,10 +903,6 @@ CONFIG_RT_USING_ADT_REF=y
 # 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_ST7789 is not set
-# CONFIG_PKG_USING_VS1003 is not set
-# CONFIG_PKG_USING_X9555 is not set
-# CONFIG_PKG_USING_SYSTEM_RUN_LED is not set
 # CONFIG_PKG_USING_SPI_TOOLS is not set
 
 #
@@ -912,7 +918,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QUEST is not set
 # CONFIG_PKG_USING_NAXOS is not set
 # CONFIG_PKG_USING_NCNN is not set
-# CONFIG_PKG_USING_R_TINYMAIX is not set
 
 #
 # Signal Processing and Control Algorithm Packages
@@ -983,7 +988,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 # CONFIG_PKG_USING_MINILZO is not set
 # CONFIG_PKG_USING_QUICKLZ is not set
 # CONFIG_PKG_USING_LZMA is not set
-# CONFIG_PKG_USING_RALARAM is not set
 # CONFIG_PKG_USING_MULTIBUTTON is not set
 # CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
 # CONFIG_PKG_USING_CANFESTIVAL is not set
@@ -1168,7 +1172,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set
 # CONFIG_PKG_USING_ARDUINO_U8G2 is not set
-# CONFIG_PKG_USING_ARDUINO_TFT_ESPI 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
@@ -1177,7 +1180,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # Timing
 #
-# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set
 # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set
 # CONFIG_PKG_USING_ARDUINO_TICKER is not set
 # CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set
@@ -1214,6 +1216,7 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # 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,23 +1237,68 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # Hardware Drivers
 #
-CONFIG_DRV_DEBUG=y
+# CONFIG_DRV_DEBUG is not set
 
 #
 # On-chip Peripheral Drivers
 #
 CONFIG_BSP_USING_IOPAD=y
 CONFIG_BSP_USING_UART=y
+CONFIG_RT_USING_UART0=y
 CONFIG_RT_USING_UART1=y
-# CONFIG_RT_USING_UART0 is not set
-# CONFIG_BSP_USING_SPI is not set
-# CONFIG_BSP_USING_CAN is not set
-# CONFIG_BSP_USING_GPIO is not set
-# CONFIG_BSP_USING_QSPI is not set
-# CONFIG_BSP_USING_ETH is not set
-# CONFIG_BSP_USING_PWM is not set
-# CONFIG_BSP_USING_I2C is not set
-# CONFIG_BSP_USING_SDIF is not set
+# CONFIG_RT_USING_UART2 is not set
+# CONFIG_RT_USING_UART3 is not set
+CONFIG_BSP_USING_SPI=y
+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_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_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_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_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_MIO3 is not set
+# CONFIG_RT_USING_MIO4 is not set
+# CONFIG_RT_USING_MIO5 is not set
+# CONFIG_RT_USING_MIO6 is not set
+# 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_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_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
 
 #
 # Board extended module Drivers
@@ -1312,10 +1360,10 @@ CONFIG_BOARD_NAME="demo"
 # Sdk common configuration
 #
 # CONFIG_LOG_VERBOS is not set
-# CONFIG_LOG_DEBUG is not set
+CONFIG_LOG_DEBUG=y
 # CONFIG_LOG_INFO is not set
 # CONFIG_LOG_WARN is not set
-CONFIG_LOG_ERROR=y
+# CONFIG_LOG_ERROR is not set
 # CONFIG_LOG_NONE is not set
 # CONFIG_LOG_EXTRA_INFO is not set
 # CONFIG_LOG_DISPALY_CORE_NUM is not set

+ 50 - 7
bsp/phytium/aarch64/configs/e2000d_demo_rtsmart.h

@@ -32,7 +32,6 @@
 #define RT_USING_DEBUG
 #define RT_DEBUGING_COLOR
 #define RT_DEBUGING_CONTEXT
-#define RT_DEBUGING_INIT
 
 /* Inter-Thread communication */
 
@@ -66,7 +65,9 @@
 #define ARCH_HAVE_EFFICIENT_UNALIGNED_ACCESS
 #define ARCH_CPU_64BIT
 #define RT_USING_CACHE
+#define RT_USING_HW_ATOMIC
 #define ARCH_ARM_BOOTWITH_FLUSH_CACHE
+#define RT_USING_CPU_FFS
 #define ARCH_MM_MMU
 #define ARCH_ARM
 #define ARCH_ARM_MMU
@@ -140,10 +141,26 @@
 #define RT_SERIAL_USING_DMA
 #define RT_SERIAL_RB_BUFSZ 64
 #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
+#define RT_USING_PIN
 #define RT_USING_NULL
 #define RT_USING_ZERO
 #define RT_USING_RANDOM
+#define RT_USING_PWM
 #define RT_USING_RTC
+#define RT_USING_SDIO
+#define RT_SDIO_STACK_SIZE 8192
+#define RT_SDIO_THREAD_PRIORITY 15
+#define RT_MMCSD_STACK_SIZE 8192
+#define RT_MMCSD_THREAD_PREORITY 22
+#define RT_MMCSD_MAX_PARTITION 16
+#define RT_USING_SPI
+#define RT_USING_QSPI
+#define RT_USING_DEV_BUS
 #define RT_USING_KTIME
 
 /* Using USB */
@@ -151,6 +168,7 @@
 
 /* C/C++ and POSIX layer */
 
+
 /* ISO-ANSI C layer */
 
 /* Timezone and Daylight Saving Time */
@@ -220,7 +238,7 @@
 #define RT_LWIP_TCPTHREAD_MBOX_SIZE 8
 #define RT_LWIP_TCPTHREAD_STACKSIZE 16184
 #define RT_LWIP_ETHTHREAD_PRIORITY 12
-#define RT_LWIP_ETHTHREAD_STACKSIZE 2048
+#define RT_LWIP_ETHTHREAD_STACKSIZE 8192
 #define RT_LWIP_ETHTHREAD_MBOX_SIZE 8
 #define LWIP_NETIF_STATUS_CALLBACK 1
 #define LWIP_NETIF_LINK_CALLBACK 1
@@ -248,6 +266,9 @@
 /* Memory management */
 
 
+/* Memory protection */
+
+
 /* RT-Thread Utestcases */
 
 
@@ -264,9 +285,6 @@
 /* Wiced WiFi */
 
 
-/* CYW43012 WiFi */
-
-
 /* IoT Cloud */
 
 
@@ -372,13 +390,38 @@
 
 /* Hardware Drivers */
 
-#define DRV_DEBUG
 
 /* On-chip Peripheral Drivers */
 
 #define BSP_USING_IOPAD
 #define BSP_USING_UART
+#define RT_USING_UART0
 #define RT_USING_UART1
+#define BSP_USING_SPI
+#define RT_USING_SPIM0
+#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
+#define USING_QSPI_CHANNEL0
+#define BSP_USING_ETH
+#define RT_LWIP_PBUF_POOL_BUFSIZE 1700
+#define BSP_USING_PWM
+#define RT_USING_PWM6
+#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
 
 /* Board extended module Drivers */
 
@@ -414,7 +457,7 @@
 
 /* Sdk common configuration */
 
-#define LOG_ERROR
+#define LOG_DEBUG
 
 /* Image information configuration */
 

+ 103 - 53
bsp/phytium/aarch64/configs/e2000d_demo_rtthread

@@ -40,8 +40,9 @@ CONFIG_RT_KPRINTF_USING_LONGLONG=y
 CONFIG_RT_USING_DEBUG=y
 CONFIG_RT_DEBUGING_COLOR=y
 CONFIG_RT_DEBUGING_CONTEXT=y
-CONFIG_RT_DEBUGING_INIT=y
+# CONFIG_RT_DEBUGING_AUTO_INIT is not set
 # CONFIG_RT_DEBUGING_PAGE_LEAK is not set
+# CONFIG_RT_DEBUGING_SPINLOCK is not set
 
 #
 # Inter-Thread communication
@@ -91,10 +92,10 @@ CONFIG_ARCH_SECONDARY_CPU_STACK_SIZE=4096
 CONFIG_ARCH_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
 CONFIG_ARCH_CPU_64BIT=y
 CONFIG_RT_USING_CACHE=y
-# CONFIG_RT_USING_HW_ATOMIC is not set
+CONFIG_RT_USING_HW_ATOMIC=y
 CONFIG_ARCH_ARM_BOOTWITH_FLUSH_CACHE=y
 # CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
-# CONFIG_RT_USING_CPU_FFS is not set
+CONFIG_RT_USING_CPU_FFS=y
 CONFIG_ARCH_MM_MMU=y
 CONFIG_ARCH_ARM=y
 CONFIG_ARCH_ARM_MMU=y
@@ -160,6 +161,7 @@ CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512
 # CONFIG_RT_DFS_ELM_USE_ERASE is not set
 CONFIG_RT_DFS_ELM_REENTRANT=y
 CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000
+# CONFIG_RT_DFS_ELM_USE_EXFAT is not set
 CONFIG_RT_USING_DFS_DEVFS=y
 # CONFIG_RT_USING_DFS_ROMFS is not set
 # CONFIG_RT_USING_DFS_CROMFS is not set
@@ -183,24 +185,44 @@ 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=64
-# CONFIG_RT_USING_CAN is not set
+CONFIG_RT_USING_CAN=y
+CONFIG_RT_CAN_USING_HDR=y
+CONFIG_RT_CAN_USING_CANFD=y
 # CONFIG_RT_USING_HWTIMER is not set
 # CONFIG_RT_USING_CPUTIME is not set
-# CONFIG_RT_USING_I2C is not set
+CONFIG_RT_USING_I2C=y
+# CONFIG_RT_I2C_DEBUG is not set
+CONFIG_RT_USING_I2C_BITOPS=y
+# CONFIG_RT_I2C_BITOPS_DEBUG is not set
+# CONFIG_RT_USING_SOFT_I2C is not set
 # CONFIG_RT_USING_PHY is not set
-# CONFIG_RT_USING_PIN is not set
+CONFIG_RT_USING_PIN=y
 # CONFIG_RT_USING_ADC is not set
 # CONFIG_RT_USING_DAC is not set
-# CONFIG_RT_USING_NULL is not set
-# CONFIG_RT_USING_ZERO is not set
-# CONFIG_RT_USING_RANDOM is not set
-# CONFIG_RT_USING_PWM is not set
+CONFIG_RT_USING_NULL=y
+CONFIG_RT_USING_ZERO=y
+CONFIG_RT_USING_RANDOM=y
+CONFIG_RT_USING_PWM=y
 # CONFIG_RT_USING_MTD_NOR is not set
 # CONFIG_RT_USING_MTD_NAND is not set
 # CONFIG_RT_USING_PM is not set
-# CONFIG_RT_USING_RTC is not set
-# CONFIG_RT_USING_SDIO is not set
-# CONFIG_RT_USING_SPI is not set
+CONFIG_RT_USING_RTC=y
+# CONFIG_RT_USING_ALARM is not set
+# CONFIG_RT_USING_SOFT_RTC is not set
+CONFIG_RT_USING_SDIO=y
+CONFIG_RT_SDIO_STACK_SIZE=8192
+CONFIG_RT_SDIO_THREAD_PRIORITY=15
+CONFIG_RT_MMCSD_STACK_SIZE=8192
+CONFIG_RT_MMCSD_THREAD_PREORITY=22
+CONFIG_RT_MMCSD_MAX_PARTITION=16
+# CONFIG_RT_SDIO_DEBUG is not set
+CONFIG_RT_USING_SPI=y
+# CONFIG_RT_USING_SPI_BITOPS is not set
+CONFIG_RT_USING_QSPI=y
+# CONFIG_RT_USING_SPI_MSD is not set
+# CONFIG_RT_USING_SFUD is not set
+# CONFIG_RT_USING_ENC28J60 is not set
+# CONFIG_RT_USING_SPI_WIFI is not set
 # CONFIG_RT_USING_WDT is not set
 # CONFIG_RT_USING_AUDIO is not set
 # CONFIG_RT_USING_SENSOR is not set
@@ -209,7 +231,7 @@ CONFIG_RT_SERIAL_RB_BUFSZ=64
 # CONFIG_RT_USING_HWCRYPTO is not set
 # CONFIG_RT_USING_PULSE_ENCODER is not set
 # CONFIG_RT_USING_INPUT_CAPTURE is not set
-# CONFIG_RT_USING_DEV_BUS is not set
+CONFIG_RT_USING_DEV_BUS=y
 # CONFIG_RT_USING_WIFI is not set
 # CONFIG_RT_USING_VIRTIO is not set
 CONFIG_RT_USING_KTIME=y
@@ -224,6 +246,7 @@ CONFIG_RT_USING_KTIME=y
 #
 # C/C++ and POSIX layer
 #
+# CONFIG_RT_USING_INTERNAL_LIBC_ONLY is not set
 
 #
 # ISO-ANSI C layer
@@ -332,7 +355,7 @@ CONFIG_RT_LWIP_TCPTHREAD_STACKSIZE=16184
 # CONFIG_LWIP_NO_RX_THREAD is not set
 # CONFIG_LWIP_NO_TX_THREAD is not set
 CONFIG_RT_LWIP_ETHTHREAD_PRIORITY=12
-CONFIG_RT_LWIP_ETHTHREAD_STACKSIZE=2048
+CONFIG_RT_LWIP_ETHTHREAD_STACKSIZE=8192
 CONFIG_RT_LWIP_ETHTHREAD_MBOX_SIZE=8
 # CONFIG_RT_LWIP_REASSEMBLY_FRAG is not set
 CONFIG_LWIP_NETIF_STATUS_CALLBACK=1
@@ -402,6 +425,12 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_RT_USING_MEMBLOCK is not set
 
+#
+# Memory protection
+#
+# CONFIG_RT_USING_MEM_PROTECTION is not set
+# CONFIG_RT_USING_HW_STACK_GUARD is not set
+
 #
 # RT-Thread Utestcases
 #
@@ -442,11 +471,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_WLAN_WICED is not set
 # CONFIG_PKG_USING_RW007 is not set
-
-#
-# CYW43012 WiFi
-#
-# CONFIG_PKG_USING_WLAN_CYW43012 is not set
 # CONFIG_PKG_USING_COAP is not set
 # CONFIG_PKG_USING_NOPOLL is not set
 # CONFIG_PKG_USING_NETUTILS is not set
@@ -489,7 +513,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_NMEALIB is not set
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK is not set
-# CONFIG_PKG_USING_BT_CYW43012 is not set
 # CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
 # CONFIG_PKG_USING_WAYZ_IOTKIT is not set
 # CONFIG_PKG_USING_MAVLINK is not set
@@ -509,8 +532,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ZFTP is not set
 # CONFIG_PKG_USING_WOL is not set
 # CONFIG_PKG_USING_ZEPHYR_POLLING is not set
-# CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set
-# CONFIG_PKG_USING_LHC_MODBUS is not set
 
 #
 # security packages
@@ -557,6 +578,7 @@ CONFIG_RT_USING_ADT_REF=y
 # LVGL: powerful and easy-to-use embedded GUI library
 #
 # CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
 # CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
 # CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
 
@@ -631,7 +653,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_HASH_MATCH is not set
 # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set
 # CONFIG_PKG_USING_VOFA_PLUS is not set
-# CONFIG_PKG_USING_ZDEBUG is not set
 
 #
 # system packages
@@ -668,8 +689,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
 # CONFIG_PKG_USING_FREERTOS_WRAPPER is not set
-# CONFIG_PKG_USING_LITEOS_SDK is not set
-# CONFIG_PKG_USING_TZ_DATABASE is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
@@ -693,7 +712,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QBOOT is not set
 # CONFIG_PKG_USING_PPOOL is not set
 # CONFIG_PKG_USING_OPENAMP is not set
-# CONFIG_PKG_USING_RPMSG_LITE is not set
 # CONFIG_PKG_USING_LPM is not set
 # CONFIG_PKG_USING_TLSF is not set
 # CONFIG_PKG_USING_EVENT_RECORDER is not set
@@ -707,11 +725,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_AGILE_UPGRADE is not set
 # CONFIG_PKG_USING_FLASH_BLOB is not set
 # CONFIG_PKG_USING_MLIBC is not set
-# CONFIG_PKG_USING_TASK_MSG_BUS is not set
-# CONFIG_PKG_USING_SFDB is not set
-# CONFIG_PKG_USING_RTP is not set
-# CONFIG_PKG_USING_REB is not set
-# CONFIG_PKG_USING_R_RHEALSTONE is not set
 
 #
 # peripheral libraries and drivers
@@ -776,7 +789,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_BALANCE is not set
 # CONFIG_PKG_USING_SHT2X is not set
 # CONFIG_PKG_USING_SHT3X is not set
-# CONFIG_PKG_USING_SHT4X is not set
 # CONFIG_PKG_USING_AD7746 is not set
 # CONFIG_PKG_USING_ADT74XX is not set
 # CONFIG_PKG_USING_MAX17048 is not set
@@ -877,10 +889,6 @@ CONFIG_RT_USING_ADT_REF=y
 # 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_ST7789 is not set
-# CONFIG_PKG_USING_VS1003 is not set
-# CONFIG_PKG_USING_X9555 is not set
-# CONFIG_PKG_USING_SYSTEM_RUN_LED is not set
 # CONFIG_PKG_USING_SPI_TOOLS is not set
 
 #
@@ -896,7 +904,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QUEST is not set
 # CONFIG_PKG_USING_NAXOS is not set
 # CONFIG_PKG_USING_NCNN is not set
-# CONFIG_PKG_USING_R_TINYMAIX is not set
 
 #
 # Signal Processing and Control Algorithm Packages
@@ -967,7 +974,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 # CONFIG_PKG_USING_MINILZO is not set
 # CONFIG_PKG_USING_QUICKLZ is not set
 # CONFIG_PKG_USING_LZMA is not set
-# CONFIG_PKG_USING_RALARAM is not set
 # CONFIG_PKG_USING_MULTIBUTTON is not set
 # CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
 # CONFIG_PKG_USING_CANFESTIVAL is not set
@@ -1152,7 +1158,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set
 # CONFIG_PKG_USING_ARDUINO_U8G2 is not set
-# CONFIG_PKG_USING_ARDUINO_TFT_ESPI 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
@@ -1161,7 +1166,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # Timing
 #
-# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set
 # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set
 # CONFIG_PKG_USING_ARDUINO_TICKER is not set
 # CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set
@@ -1198,6 +1202,7 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # 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,23 +1223,68 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # Hardware Drivers
 #
-CONFIG_DRV_DEBUG=y
+# CONFIG_DRV_DEBUG is not set
 
 #
 # On-chip Peripheral Drivers
 #
 CONFIG_BSP_USING_IOPAD=y
 CONFIG_BSP_USING_UART=y
+CONFIG_RT_USING_UART0=y
 CONFIG_RT_USING_UART1=y
-# CONFIG_RT_USING_UART0 is not set
-# CONFIG_BSP_USING_SPI is not set
-# CONFIG_BSP_USING_CAN is not set
-# CONFIG_BSP_USING_GPIO is not set
-# CONFIG_BSP_USING_QSPI is not set
-# CONFIG_BSP_USING_ETH is not set
-# CONFIG_BSP_USING_PWM is not set
-# CONFIG_BSP_USING_I2C is not set
-# CONFIG_BSP_USING_SDIF is not set
+# CONFIG_RT_USING_UART2 is not set
+# CONFIG_RT_USING_UART3 is not set
+CONFIG_BSP_USING_SPI=y
+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_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_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_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_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_MIO3 is not set
+# CONFIG_RT_USING_MIO4 is not set
+# CONFIG_RT_USING_MIO5 is not set
+# CONFIG_RT_USING_MIO6 is not set
+# 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_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_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
 
 #
 # Board extended module Drivers
@@ -1296,10 +1346,10 @@ CONFIG_BOARD_NAME="demo"
 # Sdk common configuration
 #
 # CONFIG_LOG_VERBOS is not set
-# CONFIG_LOG_DEBUG is not set
+CONFIG_LOG_DEBUG=y
 # CONFIG_LOG_INFO is not set
 # CONFIG_LOG_WARN is not set
-CONFIG_LOG_ERROR=y
+# CONFIG_LOG_ERROR is not set
 # CONFIG_LOG_NONE is not set
 # CONFIG_LOG_EXTRA_INFO is not set
 # CONFIG_LOG_DISPALY_CORE_NUM is not set

+ 54 - 7
bsp/phytium/aarch64/configs/e2000d_demo_rtthread.h

@@ -31,7 +31,6 @@
 #define RT_USING_DEBUG
 #define RT_DEBUGING_COLOR
 #define RT_DEBUGING_CONTEXT
-#define RT_DEBUGING_INIT
 
 /* Inter-Thread communication */
 
@@ -65,7 +64,9 @@
 #define ARCH_HAVE_EFFICIENT_UNALIGNED_ACCESS
 #define ARCH_CPU_64BIT
 #define RT_USING_CACHE
+#define RT_USING_HW_ATOMIC
 #define ARCH_ARM_BOOTWITH_FLUSH_CACHE
+#define RT_USING_CPU_FFS
 #define ARCH_MM_MMU
 #define ARCH_ARM
 #define ARCH_ARM_MMU
@@ -130,6 +131,26 @@
 #define RT_USING_SERIAL_V1
 #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
+#define RT_USING_PIN
+#define RT_USING_NULL
+#define RT_USING_ZERO
+#define RT_USING_RANDOM
+#define RT_USING_PWM
+#define RT_USING_RTC
+#define RT_USING_SDIO
+#define RT_SDIO_STACK_SIZE 8192
+#define RT_SDIO_THREAD_PRIORITY 15
+#define RT_MMCSD_STACK_SIZE 8192
+#define RT_MMCSD_THREAD_PREORITY 22
+#define RT_MMCSD_MAX_PARTITION 16
+#define RT_USING_SPI
+#define RT_USING_QSPI
+#define RT_USING_DEV_BUS
 #define RT_USING_KTIME
 
 /* Using USB */
@@ -137,6 +158,7 @@
 
 /* C/C++ and POSIX layer */
 
+
 /* ISO-ANSI C layer */
 
 /* Timezone and Daylight Saving Time */
@@ -206,7 +228,7 @@
 #define RT_LWIP_TCPTHREAD_MBOX_SIZE 8
 #define RT_LWIP_TCPTHREAD_STACKSIZE 16184
 #define RT_LWIP_ETHTHREAD_PRIORITY 12
-#define RT_LWIP_ETHTHREAD_STACKSIZE 2048
+#define RT_LWIP_ETHTHREAD_STACKSIZE 8192
 #define RT_LWIP_ETHTHREAD_MBOX_SIZE 8
 #define LWIP_NETIF_STATUS_CALLBACK 1
 #define LWIP_NETIF_LINK_CALLBACK 1
@@ -234,6 +256,9 @@
 /* Memory management */
 
 
+/* Memory protection */
+
+
 /* RT-Thread Utestcases */
 
 
@@ -250,9 +275,6 @@
 /* Wiced WiFi */
 
 
-/* CYW43012 WiFi */
-
-
 /* IoT Cloud */
 
 
@@ -358,13 +380,38 @@
 
 /* Hardware Drivers */
 
-#define DRV_DEBUG
 
 /* On-chip Peripheral Drivers */
 
 #define BSP_USING_IOPAD
 #define BSP_USING_UART
+#define RT_USING_UART0
 #define RT_USING_UART1
+#define BSP_USING_SPI
+#define RT_USING_SPIM0
+#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
+#define USING_QSPI_CHANNEL0
+#define BSP_USING_ETH
+#define RT_LWIP_PBUF_POOL_BUFSIZE 1700
+#define BSP_USING_PWM
+#define RT_USING_PWM6
+#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
 
 /* Board extended module Drivers */
 
@@ -400,7 +447,7 @@
 
 /* Sdk common configuration */
 
-#define LOG_ERROR
+#define LOG_DEBUG
 
 /* Image information configuration */
 

+ 97 - 49
bsp/phytium/aarch64/configs/e2000q_demo_rtsmart

@@ -40,8 +40,9 @@ CONFIG_RT_KPRINTF_USING_LONGLONG=y
 CONFIG_RT_USING_DEBUG=y
 CONFIG_RT_DEBUGING_COLOR=y
 CONFIG_RT_DEBUGING_CONTEXT=y
-CONFIG_RT_DEBUGING_INIT=y
+# CONFIG_RT_DEBUGING_AUTO_INIT is not set
 # CONFIG_RT_DEBUGING_PAGE_LEAK is not set
+# CONFIG_RT_DEBUGING_SPINLOCK is not set
 
 #
 # Inter-Thread communication
@@ -91,10 +92,10 @@ CONFIG_ARCH_SECONDARY_CPU_STACK_SIZE=4096
 CONFIG_ARCH_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
 CONFIG_ARCH_CPU_64BIT=y
 CONFIG_RT_USING_CACHE=y
-# CONFIG_RT_USING_HW_ATOMIC is not set
+CONFIG_RT_USING_HW_ATOMIC=y
 CONFIG_ARCH_ARM_BOOTWITH_FLUSH_CACHE=y
 # CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
-# CONFIG_RT_USING_CPU_FFS is not set
+CONFIG_RT_USING_CPU_FFS=y
 CONFIG_ARCH_MM_MMU=y
 CONFIG_ARCH_ARM=y
 CONFIG_ARCH_ARM_MMU=y
@@ -161,6 +162,7 @@ CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512
 # CONFIG_RT_DFS_ELM_USE_ERASE is not set
 CONFIG_RT_DFS_ELM_REENTRANT=y
 CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000
+# CONFIG_RT_DFS_ELM_USE_EXFAT is not set
 CONFIG_RT_USING_DFS_DEVFS=y
 # CONFIG_RT_USING_DFS_ROMFS is not set
 # CONFIG_RT_USING_DFS_CROMFS is not set
@@ -195,26 +197,44 @@ CONFIG_RT_SERIAL_USING_DMA=y
 CONFIG_RT_SERIAL_RB_BUFSZ=64
 CONFIG_RT_USING_TTY=y
 # CONFIG_RT_TTY_DEBUG is not set
-# CONFIG_RT_USING_CAN is not set
+CONFIG_RT_USING_CAN=y
+CONFIG_RT_CAN_USING_HDR=y
+CONFIG_RT_CAN_USING_CANFD=y
 # CONFIG_RT_USING_HWTIMER is not set
 # CONFIG_RT_USING_CPUTIME is not set
-# CONFIG_RT_USING_I2C is not set
+CONFIG_RT_USING_I2C=y
+# CONFIG_RT_I2C_DEBUG is not set
+CONFIG_RT_USING_I2C_BITOPS=y
+# CONFIG_RT_I2C_BITOPS_DEBUG is not set
+# CONFIG_RT_USING_SOFT_I2C is not set
 # CONFIG_RT_USING_PHY is not set
-# CONFIG_RT_USING_PIN is not set
+CONFIG_RT_USING_PIN=y
 # CONFIG_RT_USING_ADC is not set
 # CONFIG_RT_USING_DAC is not set
 CONFIG_RT_USING_NULL=y
 CONFIG_RT_USING_ZERO=y
 CONFIG_RT_USING_RANDOM=y
-# CONFIG_RT_USING_PWM is not set
+CONFIG_RT_USING_PWM=y
 # CONFIG_RT_USING_MTD_NOR is not set
 # CONFIG_RT_USING_MTD_NAND is not set
 # CONFIG_RT_USING_PM is not set
 CONFIG_RT_USING_RTC=y
 # CONFIG_RT_USING_ALARM is not set
 # CONFIG_RT_USING_SOFT_RTC is not set
-# CONFIG_RT_USING_SDIO is not set
-# CONFIG_RT_USING_SPI is not set
+CONFIG_RT_USING_SDIO=y
+CONFIG_RT_SDIO_STACK_SIZE=8192
+CONFIG_RT_SDIO_THREAD_PRIORITY=15
+CONFIG_RT_MMCSD_STACK_SIZE=8192
+CONFIG_RT_MMCSD_THREAD_PREORITY=22
+CONFIG_RT_MMCSD_MAX_PARTITION=16
+# CONFIG_RT_SDIO_DEBUG is not set
+CONFIG_RT_USING_SPI=y
+# CONFIG_RT_USING_SPI_BITOPS is not set
+CONFIG_RT_USING_QSPI=y
+# CONFIG_RT_USING_SPI_MSD is not set
+# CONFIG_RT_USING_SFUD is not set
+# CONFIG_RT_USING_ENC28J60 is not set
+# CONFIG_RT_USING_SPI_WIFI is not set
 # CONFIG_RT_USING_WDT is not set
 # CONFIG_RT_USING_AUDIO is not set
 # CONFIG_RT_USING_SENSOR is not set
@@ -223,7 +243,7 @@ CONFIG_RT_USING_RTC=y
 # CONFIG_RT_USING_HWCRYPTO is not set
 # CONFIG_RT_USING_PULSE_ENCODER is not set
 # CONFIG_RT_USING_INPUT_CAPTURE is not set
-# CONFIG_RT_USING_DEV_BUS is not set
+CONFIG_RT_USING_DEV_BUS=y
 # CONFIG_RT_USING_WIFI is not set
 # CONFIG_RT_USING_VIRTIO is not set
 CONFIG_RT_USING_KTIME=y
@@ -238,6 +258,7 @@ CONFIG_RT_USING_KTIME=y
 #
 # C/C++ and POSIX layer
 #
+# CONFIG_RT_USING_INTERNAL_LIBC_ONLY is not set
 
 #
 # ISO-ANSI C layer
@@ -348,7 +369,7 @@ CONFIG_RT_LWIP_TCPTHREAD_STACKSIZE=16184
 # CONFIG_LWIP_NO_RX_THREAD is not set
 # CONFIG_LWIP_NO_TX_THREAD is not set
 CONFIG_RT_LWIP_ETHTHREAD_PRIORITY=12
-CONFIG_RT_LWIP_ETHTHREAD_STACKSIZE=2048
+CONFIG_RT_LWIP_ETHTHREAD_STACKSIZE=8192
 CONFIG_RT_LWIP_ETHTHREAD_MBOX_SIZE=8
 # CONFIG_RT_LWIP_REASSEMBLY_FRAG is not set
 CONFIG_LWIP_NETIF_STATUS_CALLBACK=1
@@ -418,6 +439,12 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_RT_USING_MEMBLOCK is not set
 
+#
+# Memory protection
+#
+# CONFIG_RT_USING_MEM_PROTECTION is not set
+# CONFIG_RT_USING_HW_STACK_GUARD is not set
+
 #
 # RT-Thread Utestcases
 #
@@ -458,11 +485,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_WLAN_WICED is not set
 # CONFIG_PKG_USING_RW007 is not set
-
-#
-# CYW43012 WiFi
-#
-# CONFIG_PKG_USING_WLAN_CYW43012 is not set
 # CONFIG_PKG_USING_COAP is not set
 # CONFIG_PKG_USING_NOPOLL is not set
 # CONFIG_PKG_USING_NETUTILS is not set
@@ -505,7 +527,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_NMEALIB is not set
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK is not set
-# CONFIG_PKG_USING_BT_CYW43012 is not set
 # CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
 # CONFIG_PKG_USING_WAYZ_IOTKIT is not set
 # CONFIG_PKG_USING_MAVLINK is not set
@@ -525,8 +546,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ZFTP is not set
 # CONFIG_PKG_USING_WOL is not set
 # CONFIG_PKG_USING_ZEPHYR_POLLING is not set
-# CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set
-# CONFIG_PKG_USING_LHC_MODBUS is not set
 
 #
 # security packages
@@ -573,6 +592,7 @@ CONFIG_RT_USING_ADT_REF=y
 # LVGL: powerful and easy-to-use embedded GUI library
 #
 # CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
 # CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
 # CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
 
@@ -647,7 +667,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_HASH_MATCH is not set
 # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set
 # CONFIG_PKG_USING_VOFA_PLUS is not set
-# CONFIG_PKG_USING_ZDEBUG is not set
 
 #
 # system packages
@@ -684,8 +703,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
 # CONFIG_PKG_USING_FREERTOS_WRAPPER is not set
-# CONFIG_PKG_USING_LITEOS_SDK is not set
-# CONFIG_PKG_USING_TZ_DATABASE is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
@@ -709,7 +726,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QBOOT is not set
 # CONFIG_PKG_USING_PPOOL is not set
 # CONFIG_PKG_USING_OPENAMP is not set
-# CONFIG_PKG_USING_RPMSG_LITE is not set
 # CONFIG_PKG_USING_LPM is not set
 # CONFIG_PKG_USING_TLSF is not set
 # CONFIG_PKG_USING_EVENT_RECORDER is not set
@@ -723,11 +739,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_AGILE_UPGRADE is not set
 # CONFIG_PKG_USING_FLASH_BLOB is not set
 # CONFIG_PKG_USING_MLIBC is not set
-# CONFIG_PKG_USING_TASK_MSG_BUS is not set
-# CONFIG_PKG_USING_SFDB is not set
-# CONFIG_PKG_USING_RTP is not set
-# CONFIG_PKG_USING_REB is not set
-# CONFIG_PKG_USING_R_RHEALSTONE is not set
 
 #
 # peripheral libraries and drivers
@@ -792,7 +803,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_BALANCE is not set
 # CONFIG_PKG_USING_SHT2X is not set
 # CONFIG_PKG_USING_SHT3X is not set
-# CONFIG_PKG_USING_SHT4X is not set
 # CONFIG_PKG_USING_AD7746 is not set
 # CONFIG_PKG_USING_ADT74XX is not set
 # CONFIG_PKG_USING_MAX17048 is not set
@@ -893,10 +903,6 @@ CONFIG_RT_USING_ADT_REF=y
 # 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_ST7789 is not set
-# CONFIG_PKG_USING_VS1003 is not set
-# CONFIG_PKG_USING_X9555 is not set
-# CONFIG_PKG_USING_SYSTEM_RUN_LED is not set
 # CONFIG_PKG_USING_SPI_TOOLS is not set
 
 #
@@ -912,7 +918,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QUEST is not set
 # CONFIG_PKG_USING_NAXOS is not set
 # CONFIG_PKG_USING_NCNN is not set
-# CONFIG_PKG_USING_R_TINYMAIX is not set
 
 #
 # Signal Processing and Control Algorithm Packages
@@ -983,7 +988,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 # CONFIG_PKG_USING_MINILZO is not set
 # CONFIG_PKG_USING_QUICKLZ is not set
 # CONFIG_PKG_USING_LZMA is not set
-# CONFIG_PKG_USING_RALARAM is not set
 # CONFIG_PKG_USING_MULTIBUTTON is not set
 # CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
 # CONFIG_PKG_USING_CANFESTIVAL is not set
@@ -1168,7 +1172,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set
 # CONFIG_PKG_USING_ARDUINO_U8G2 is not set
-# CONFIG_PKG_USING_ARDUINO_TFT_ESPI 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
@@ -1177,7 +1180,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # Timing
 #
-# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set
 # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set
 # CONFIG_PKG_USING_ARDUINO_TICKER is not set
 # CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set
@@ -1214,6 +1216,7 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # 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,23 +1237,68 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # Hardware Drivers
 #
-CONFIG_DRV_DEBUG=y
+# CONFIG_DRV_DEBUG is not set
 
 #
 # On-chip Peripheral Drivers
 #
 CONFIG_BSP_USING_IOPAD=y
 CONFIG_BSP_USING_UART=y
+CONFIG_RT_USING_UART0=y
 CONFIG_RT_USING_UART1=y
-# CONFIG_RT_USING_UART0 is not set
-# CONFIG_BSP_USING_SPI is not set
-# CONFIG_BSP_USING_CAN is not set
-# CONFIG_BSP_USING_GPIO is not set
-# CONFIG_BSP_USING_QSPI is not set
-# CONFIG_BSP_USING_ETH is not set
-# CONFIG_BSP_USING_PWM is not set
-# CONFIG_BSP_USING_I2C is not set
-# CONFIG_BSP_USING_SDIF is not set
+# CONFIG_RT_USING_UART2 is not set
+# CONFIG_RT_USING_UART3 is not set
+CONFIG_BSP_USING_SPI=y
+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_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_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_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_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_MIO3 is not set
+# CONFIG_RT_USING_MIO4 is not set
+# CONFIG_RT_USING_MIO5 is not set
+# CONFIG_RT_USING_MIO6 is not set
+# 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_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_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
 
 #
 # Board extended module Drivers
@@ -1311,10 +1359,10 @@ CONFIG_E2000Q_DEMO_BOARD=y
 # Sdk common configuration
 #
 # CONFIG_LOG_VERBOS is not set
-# CONFIG_LOG_DEBUG is not set
+CONFIG_LOG_DEBUG=y
 # CONFIG_LOG_INFO is not set
 # CONFIG_LOG_WARN is not set
-CONFIG_LOG_ERROR=y
+# CONFIG_LOG_ERROR is not set
 # CONFIG_LOG_NONE is not set
 # CONFIG_LOG_EXTRA_INFO is not set
 # CONFIG_LOG_DISPALY_CORE_NUM is not set

+ 50 - 7
bsp/phytium/aarch64/configs/e2000q_demo_rtsmart.h

@@ -32,7 +32,6 @@
 #define RT_USING_DEBUG
 #define RT_DEBUGING_COLOR
 #define RT_DEBUGING_CONTEXT
-#define RT_DEBUGING_INIT
 
 /* Inter-Thread communication */
 
@@ -66,7 +65,9 @@
 #define ARCH_HAVE_EFFICIENT_UNALIGNED_ACCESS
 #define ARCH_CPU_64BIT
 #define RT_USING_CACHE
+#define RT_USING_HW_ATOMIC
 #define ARCH_ARM_BOOTWITH_FLUSH_CACHE
+#define RT_USING_CPU_FFS
 #define ARCH_MM_MMU
 #define ARCH_ARM
 #define ARCH_ARM_MMU
@@ -140,10 +141,26 @@
 #define RT_SERIAL_USING_DMA
 #define RT_SERIAL_RB_BUFSZ 64
 #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
+#define RT_USING_PIN
 #define RT_USING_NULL
 #define RT_USING_ZERO
 #define RT_USING_RANDOM
+#define RT_USING_PWM
 #define RT_USING_RTC
+#define RT_USING_SDIO
+#define RT_SDIO_STACK_SIZE 8192
+#define RT_SDIO_THREAD_PRIORITY 15
+#define RT_MMCSD_STACK_SIZE 8192
+#define RT_MMCSD_THREAD_PREORITY 22
+#define RT_MMCSD_MAX_PARTITION 16
+#define RT_USING_SPI
+#define RT_USING_QSPI
+#define RT_USING_DEV_BUS
 #define RT_USING_KTIME
 
 /* Using USB */
@@ -151,6 +168,7 @@
 
 /* C/C++ and POSIX layer */
 
+
 /* ISO-ANSI C layer */
 
 /* Timezone and Daylight Saving Time */
@@ -220,7 +238,7 @@
 #define RT_LWIP_TCPTHREAD_MBOX_SIZE 8
 #define RT_LWIP_TCPTHREAD_STACKSIZE 16184
 #define RT_LWIP_ETHTHREAD_PRIORITY 12
-#define RT_LWIP_ETHTHREAD_STACKSIZE 2048
+#define RT_LWIP_ETHTHREAD_STACKSIZE 8192
 #define RT_LWIP_ETHTHREAD_MBOX_SIZE 8
 #define LWIP_NETIF_STATUS_CALLBACK 1
 #define LWIP_NETIF_LINK_CALLBACK 1
@@ -248,6 +266,9 @@
 /* Memory management */
 
 
+/* Memory protection */
+
+
 /* RT-Thread Utestcases */
 
 
@@ -264,9 +285,6 @@
 /* Wiced WiFi */
 
 
-/* CYW43012 WiFi */
-
-
 /* IoT Cloud */
 
 
@@ -372,13 +390,38 @@
 
 /* Hardware Drivers */
 
-#define DRV_DEBUG
 
 /* On-chip Peripheral Drivers */
 
 #define BSP_USING_IOPAD
 #define BSP_USING_UART
+#define RT_USING_UART0
 #define RT_USING_UART1
+#define BSP_USING_SPI
+#define RT_USING_SPIM0
+#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
+#define USING_QSPI_CHANNEL0
+#define BSP_USING_ETH
+#define RT_LWIP_PBUF_POOL_BUFSIZE 1700
+#define BSP_USING_PWM
+#define RT_USING_PWM6
+#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
 
 /* Board extended module Drivers */
 
@@ -414,7 +457,7 @@
 
 /* Sdk common configuration */
 
-#define LOG_ERROR
+#define LOG_DEBUG
 
 /* Image information configuration */
 

+ 97 - 49
bsp/phytium/aarch64/configs/e2000q_demo_rtthread

@@ -40,8 +40,9 @@ CONFIG_RT_KPRINTF_USING_LONGLONG=y
 CONFIG_RT_USING_DEBUG=y
 CONFIG_RT_DEBUGING_COLOR=y
 CONFIG_RT_DEBUGING_CONTEXT=y
-CONFIG_RT_DEBUGING_INIT=y
+# CONFIG_RT_DEBUGING_AUTO_INIT is not set
 # CONFIG_RT_DEBUGING_PAGE_LEAK is not set
+# CONFIG_RT_DEBUGING_SPINLOCK is not set
 
 #
 # Inter-Thread communication
@@ -91,10 +92,10 @@ CONFIG_ARCH_SECONDARY_CPU_STACK_SIZE=4096
 CONFIG_ARCH_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
 CONFIG_ARCH_CPU_64BIT=y
 CONFIG_RT_USING_CACHE=y
-# CONFIG_RT_USING_HW_ATOMIC is not set
+CONFIG_RT_USING_HW_ATOMIC=y
 CONFIG_ARCH_ARM_BOOTWITH_FLUSH_CACHE=y
 # CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
-# CONFIG_RT_USING_CPU_FFS is not set
+CONFIG_RT_USING_CPU_FFS=y
 CONFIG_ARCH_MM_MMU=y
 CONFIG_ARCH_ARM=y
 CONFIG_ARCH_ARM_MMU=y
@@ -160,6 +161,7 @@ CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512
 # CONFIG_RT_DFS_ELM_USE_ERASE is not set
 CONFIG_RT_DFS_ELM_REENTRANT=y
 CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000
+# CONFIG_RT_DFS_ELM_USE_EXFAT is not set
 CONFIG_RT_USING_DFS_DEVFS=y
 # CONFIG_RT_USING_DFS_ROMFS is not set
 # CONFIG_RT_USING_DFS_CROMFS is not set
@@ -183,26 +185,44 @@ 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=64
-# CONFIG_RT_USING_CAN is not set
+CONFIG_RT_USING_CAN=y
+CONFIG_RT_CAN_USING_HDR=y
+CONFIG_RT_CAN_USING_CANFD=y
 # CONFIG_RT_USING_HWTIMER is not set
 # CONFIG_RT_USING_CPUTIME is not set
-# CONFIG_RT_USING_I2C is not set
+CONFIG_RT_USING_I2C=y
+# CONFIG_RT_I2C_DEBUG is not set
+CONFIG_RT_USING_I2C_BITOPS=y
+# CONFIG_RT_I2C_BITOPS_DEBUG is not set
+# CONFIG_RT_USING_SOFT_I2C is not set
 # CONFIG_RT_USING_PHY is not set
-# CONFIG_RT_USING_PIN is not set
+CONFIG_RT_USING_PIN=y
 # CONFIG_RT_USING_ADC is not set
 # CONFIG_RT_USING_DAC is not set
 CONFIG_RT_USING_NULL=y
 CONFIG_RT_USING_ZERO=y
 CONFIG_RT_USING_RANDOM=y
-# CONFIG_RT_USING_PWM is not set
+CONFIG_RT_USING_PWM=y
 # CONFIG_RT_USING_MTD_NOR is not set
 # CONFIG_RT_USING_MTD_NAND is not set
 # CONFIG_RT_USING_PM is not set
 CONFIG_RT_USING_RTC=y
 # CONFIG_RT_USING_ALARM is not set
 # CONFIG_RT_USING_SOFT_RTC is not set
-# CONFIG_RT_USING_SDIO is not set
-# CONFIG_RT_USING_SPI is not set
+CONFIG_RT_USING_SDIO=y
+CONFIG_RT_SDIO_STACK_SIZE=8192
+CONFIG_RT_SDIO_THREAD_PRIORITY=15
+CONFIG_RT_MMCSD_STACK_SIZE=8192
+CONFIG_RT_MMCSD_THREAD_PREORITY=22
+CONFIG_RT_MMCSD_MAX_PARTITION=16
+# CONFIG_RT_SDIO_DEBUG is not set
+CONFIG_RT_USING_SPI=y
+# CONFIG_RT_USING_SPI_BITOPS is not set
+CONFIG_RT_USING_QSPI=y
+# CONFIG_RT_USING_SPI_MSD is not set
+# CONFIG_RT_USING_SFUD is not set
+# CONFIG_RT_USING_ENC28J60 is not set
+# CONFIG_RT_USING_SPI_WIFI is not set
 # CONFIG_RT_USING_WDT is not set
 # CONFIG_RT_USING_AUDIO is not set
 # CONFIG_RT_USING_SENSOR is not set
@@ -211,7 +231,7 @@ CONFIG_RT_USING_RTC=y
 # CONFIG_RT_USING_HWCRYPTO is not set
 # CONFIG_RT_USING_PULSE_ENCODER is not set
 # CONFIG_RT_USING_INPUT_CAPTURE is not set
-# CONFIG_RT_USING_DEV_BUS is not set
+CONFIG_RT_USING_DEV_BUS=y
 # CONFIG_RT_USING_WIFI is not set
 # CONFIG_RT_USING_VIRTIO is not set
 CONFIG_RT_USING_KTIME=y
@@ -226,6 +246,7 @@ CONFIG_RT_USING_KTIME=y
 #
 # C/C++ and POSIX layer
 #
+# CONFIG_RT_USING_INTERNAL_LIBC_ONLY is not set
 
 #
 # ISO-ANSI C layer
@@ -334,7 +355,7 @@ CONFIG_RT_LWIP_TCPTHREAD_STACKSIZE=16184
 # CONFIG_LWIP_NO_RX_THREAD is not set
 # CONFIG_LWIP_NO_TX_THREAD is not set
 CONFIG_RT_LWIP_ETHTHREAD_PRIORITY=12
-CONFIG_RT_LWIP_ETHTHREAD_STACKSIZE=2048
+CONFIG_RT_LWIP_ETHTHREAD_STACKSIZE=8192
 CONFIG_RT_LWIP_ETHTHREAD_MBOX_SIZE=8
 # CONFIG_RT_LWIP_REASSEMBLY_FRAG is not set
 CONFIG_LWIP_NETIF_STATUS_CALLBACK=1
@@ -404,6 +425,12 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_RT_USING_MEMBLOCK is not set
 
+#
+# Memory protection
+#
+# CONFIG_RT_USING_MEM_PROTECTION is not set
+# CONFIG_RT_USING_HW_STACK_GUARD is not set
+
 #
 # RT-Thread Utestcases
 #
@@ -444,11 +471,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_WLAN_WICED is not set
 # CONFIG_PKG_USING_RW007 is not set
-
-#
-# CYW43012 WiFi
-#
-# CONFIG_PKG_USING_WLAN_CYW43012 is not set
 # CONFIG_PKG_USING_COAP is not set
 # CONFIG_PKG_USING_NOPOLL is not set
 # CONFIG_PKG_USING_NETUTILS is not set
@@ -491,7 +513,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_NMEALIB is not set
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK is not set
-# CONFIG_PKG_USING_BT_CYW43012 is not set
 # CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
 # CONFIG_PKG_USING_WAYZ_IOTKIT is not set
 # CONFIG_PKG_USING_MAVLINK is not set
@@ -511,8 +532,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ZFTP is not set
 # CONFIG_PKG_USING_WOL is not set
 # CONFIG_PKG_USING_ZEPHYR_POLLING is not set
-# CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set
-# CONFIG_PKG_USING_LHC_MODBUS is not set
 
 #
 # security packages
@@ -559,6 +578,7 @@ CONFIG_RT_USING_ADT_REF=y
 # LVGL: powerful and easy-to-use embedded GUI library
 #
 # CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
 # CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
 # CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
 
@@ -633,7 +653,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_HASH_MATCH is not set
 # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set
 # CONFIG_PKG_USING_VOFA_PLUS is not set
-# CONFIG_PKG_USING_ZDEBUG is not set
 
 #
 # system packages
@@ -670,8 +689,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
 # CONFIG_PKG_USING_FREERTOS_WRAPPER is not set
-# CONFIG_PKG_USING_LITEOS_SDK is not set
-# CONFIG_PKG_USING_TZ_DATABASE is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
@@ -695,7 +712,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QBOOT is not set
 # CONFIG_PKG_USING_PPOOL is not set
 # CONFIG_PKG_USING_OPENAMP is not set
-# CONFIG_PKG_USING_RPMSG_LITE is not set
 # CONFIG_PKG_USING_LPM is not set
 # CONFIG_PKG_USING_TLSF is not set
 # CONFIG_PKG_USING_EVENT_RECORDER is not set
@@ -709,11 +725,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_AGILE_UPGRADE is not set
 # CONFIG_PKG_USING_FLASH_BLOB is not set
 # CONFIG_PKG_USING_MLIBC is not set
-# CONFIG_PKG_USING_TASK_MSG_BUS is not set
-# CONFIG_PKG_USING_SFDB is not set
-# CONFIG_PKG_USING_RTP is not set
-# CONFIG_PKG_USING_REB is not set
-# CONFIG_PKG_USING_R_RHEALSTONE is not set
 
 #
 # peripheral libraries and drivers
@@ -778,7 +789,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_BALANCE is not set
 # CONFIG_PKG_USING_SHT2X is not set
 # CONFIG_PKG_USING_SHT3X is not set
-# CONFIG_PKG_USING_SHT4X is not set
 # CONFIG_PKG_USING_AD7746 is not set
 # CONFIG_PKG_USING_ADT74XX is not set
 # CONFIG_PKG_USING_MAX17048 is not set
@@ -879,10 +889,6 @@ CONFIG_RT_USING_ADT_REF=y
 # 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_ST7789 is not set
-# CONFIG_PKG_USING_VS1003 is not set
-# CONFIG_PKG_USING_X9555 is not set
-# CONFIG_PKG_USING_SYSTEM_RUN_LED is not set
 # CONFIG_PKG_USING_SPI_TOOLS is not set
 
 #
@@ -898,7 +904,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QUEST is not set
 # CONFIG_PKG_USING_NAXOS is not set
 # CONFIG_PKG_USING_NCNN is not set
-# CONFIG_PKG_USING_R_TINYMAIX is not set
 
 #
 # Signal Processing and Control Algorithm Packages
@@ -969,7 +974,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 # CONFIG_PKG_USING_MINILZO is not set
 # CONFIG_PKG_USING_QUICKLZ is not set
 # CONFIG_PKG_USING_LZMA is not set
-# CONFIG_PKG_USING_RALARAM is not set
 # CONFIG_PKG_USING_MULTIBUTTON is not set
 # CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
 # CONFIG_PKG_USING_CANFESTIVAL is not set
@@ -1154,7 +1158,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set
 # CONFIG_PKG_USING_ARDUINO_U8G2 is not set
-# CONFIG_PKG_USING_ARDUINO_TFT_ESPI 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
@@ -1163,7 +1166,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # Timing
 #
-# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set
 # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set
 # CONFIG_PKG_USING_ARDUINO_TICKER is not set
 # CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set
@@ -1200,6 +1202,7 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # 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
@@ -1220,23 +1223,68 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # Hardware Drivers
 #
-CONFIG_DRV_DEBUG=y
+# CONFIG_DRV_DEBUG is not set
 
 #
 # On-chip Peripheral Drivers
 #
 CONFIG_BSP_USING_IOPAD=y
 CONFIG_BSP_USING_UART=y
+CONFIG_RT_USING_UART0=y
 CONFIG_RT_USING_UART1=y
-# CONFIG_RT_USING_UART0 is not set
-# CONFIG_BSP_USING_SPI is not set
-# CONFIG_BSP_USING_CAN is not set
-# CONFIG_BSP_USING_GPIO is not set
-# CONFIG_BSP_USING_QSPI is not set
-# CONFIG_BSP_USING_ETH is not set
-# CONFIG_BSP_USING_PWM is not set
-# CONFIG_BSP_USING_I2C is not set
-# CONFIG_BSP_USING_SDIF is not set
+# CONFIG_RT_USING_UART2 is not set
+# CONFIG_RT_USING_UART3 is not set
+CONFIG_BSP_USING_SPI=y
+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_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_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_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_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_MIO3 is not set
+# CONFIG_RT_USING_MIO4 is not set
+# CONFIG_RT_USING_MIO5 is not set
+# CONFIG_RT_USING_MIO6 is not set
+# 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_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_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
 
 #
 # Board extended module Drivers
@@ -1297,10 +1345,10 @@ CONFIG_E2000Q_DEMO_BOARD=y
 # Sdk common configuration
 #
 # CONFIG_LOG_VERBOS is not set
-# CONFIG_LOG_DEBUG is not set
+CONFIG_LOG_DEBUG=y
 # CONFIG_LOG_INFO is not set
 # CONFIG_LOG_WARN is not set
-CONFIG_LOG_ERROR=y
+# CONFIG_LOG_ERROR is not set
 # CONFIG_LOG_NONE is not set
 # CONFIG_LOG_EXTRA_INFO is not set
 # CONFIG_LOG_DISPALY_CORE_NUM is not set

+ 50 - 7
bsp/phytium/aarch64/configs/e2000q_demo_rtthread.h

@@ -31,7 +31,6 @@
 #define RT_USING_DEBUG
 #define RT_DEBUGING_COLOR
 #define RT_DEBUGING_CONTEXT
-#define RT_DEBUGING_INIT
 
 /* Inter-Thread communication */
 
@@ -65,7 +64,9 @@
 #define ARCH_HAVE_EFFICIENT_UNALIGNED_ACCESS
 #define ARCH_CPU_64BIT
 #define RT_USING_CACHE
+#define RT_USING_HW_ATOMIC
 #define ARCH_ARM_BOOTWITH_FLUSH_CACHE
+#define RT_USING_CPU_FFS
 #define ARCH_MM_MMU
 #define ARCH_ARM
 #define ARCH_ARM_MMU
@@ -130,10 +131,26 @@
 #define RT_USING_SERIAL_V1
 #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
+#define RT_USING_PIN
 #define RT_USING_NULL
 #define RT_USING_ZERO
 #define RT_USING_RANDOM
+#define RT_USING_PWM
 #define RT_USING_RTC
+#define RT_USING_SDIO
+#define RT_SDIO_STACK_SIZE 8192
+#define RT_SDIO_THREAD_PRIORITY 15
+#define RT_MMCSD_STACK_SIZE 8192
+#define RT_MMCSD_THREAD_PREORITY 22
+#define RT_MMCSD_MAX_PARTITION 16
+#define RT_USING_SPI
+#define RT_USING_QSPI
+#define RT_USING_DEV_BUS
 #define RT_USING_KTIME
 
 /* Using USB */
@@ -141,6 +158,7 @@
 
 /* C/C++ and POSIX layer */
 
+
 /* ISO-ANSI C layer */
 
 /* Timezone and Daylight Saving Time */
@@ -210,7 +228,7 @@
 #define RT_LWIP_TCPTHREAD_MBOX_SIZE 8
 #define RT_LWIP_TCPTHREAD_STACKSIZE 16184
 #define RT_LWIP_ETHTHREAD_PRIORITY 12
-#define RT_LWIP_ETHTHREAD_STACKSIZE 2048
+#define RT_LWIP_ETHTHREAD_STACKSIZE 8192
 #define RT_LWIP_ETHTHREAD_MBOX_SIZE 8
 #define LWIP_NETIF_STATUS_CALLBACK 1
 #define LWIP_NETIF_LINK_CALLBACK 1
@@ -238,6 +256,9 @@
 /* Memory management */
 
 
+/* Memory protection */
+
+
 /* RT-Thread Utestcases */
 
 
@@ -254,9 +275,6 @@
 /* Wiced WiFi */
 
 
-/* CYW43012 WiFi */
-
-
 /* IoT Cloud */
 
 
@@ -362,13 +380,38 @@
 
 /* Hardware Drivers */
 
-#define DRV_DEBUG
 
 /* On-chip Peripheral Drivers */
 
 #define BSP_USING_IOPAD
 #define BSP_USING_UART
+#define RT_USING_UART0
 #define RT_USING_UART1
+#define BSP_USING_SPI
+#define RT_USING_SPIM0
+#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
+#define USING_QSPI_CHANNEL0
+#define BSP_USING_ETH
+#define RT_LWIP_PBUF_POOL_BUFSIZE 1700
+#define BSP_USING_PWM
+#define RT_USING_PWM6
+#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
 
 /* Board extended module Drivers */
 
@@ -404,7 +447,7 @@
 
 /* Sdk common configuration */
 
-#define LOG_ERROR
+#define LOG_DEBUG
 
 /* Image information configuration */
 

+ 77 - 49
bsp/phytium/aarch64/configs/phytium_pi_rtsmart

@@ -40,8 +40,9 @@ CONFIG_RT_KPRINTF_USING_LONGLONG=y
 CONFIG_RT_USING_DEBUG=y
 CONFIG_RT_DEBUGING_COLOR=y
 CONFIG_RT_DEBUGING_CONTEXT=y
-CONFIG_RT_DEBUGING_INIT=y
+# CONFIG_RT_DEBUGING_AUTO_INIT is not set
 # CONFIG_RT_DEBUGING_PAGE_LEAK is not set
+# CONFIG_RT_DEBUGING_SPINLOCK is not set
 
 #
 # Inter-Thread communication
@@ -91,10 +92,10 @@ CONFIG_ARCH_SECONDARY_CPU_STACK_SIZE=4096
 CONFIG_ARCH_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
 CONFIG_ARCH_CPU_64BIT=y
 CONFIG_RT_USING_CACHE=y
-# CONFIG_RT_USING_HW_ATOMIC is not set
+CONFIG_RT_USING_HW_ATOMIC=y
 CONFIG_ARCH_ARM_BOOTWITH_FLUSH_CACHE=y
 # CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
-# CONFIG_RT_USING_CPU_FFS is not set
+CONFIG_RT_USING_CPU_FFS=y
 CONFIG_ARCH_MM_MMU=y
 CONFIG_ARCH_ARM=y
 CONFIG_ARCH_ARM_MMU=y
@@ -161,6 +162,7 @@ CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512
 # CONFIG_RT_DFS_ELM_USE_ERASE is not set
 CONFIG_RT_DFS_ELM_REENTRANT=y
 CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000
+# CONFIG_RT_DFS_ELM_USE_EXFAT is not set
 CONFIG_RT_USING_DFS_DEVFS=y
 # CONFIG_RT_USING_DFS_ROMFS is not set
 # CONFIG_RT_USING_DFS_CROMFS is not set
@@ -195,18 +197,24 @@ CONFIG_RT_SERIAL_USING_DMA=y
 CONFIG_RT_SERIAL_RB_BUFSZ=64
 CONFIG_RT_USING_TTY=y
 # CONFIG_RT_TTY_DEBUG is not set
-# CONFIG_RT_USING_CAN is not set
+CONFIG_RT_USING_CAN=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
-# CONFIG_RT_USING_I2C is not set
+CONFIG_RT_USING_I2C=y
+# CONFIG_RT_I2C_DEBUG is not set
+CONFIG_RT_USING_I2C_BITOPS=y
+# CONFIG_RT_I2C_BITOPS_DEBUG is not set
+# CONFIG_RT_USING_SOFT_I2C is not set
 # CONFIG_RT_USING_PHY is not set
-# CONFIG_RT_USING_PIN is not set
+CONFIG_RT_USING_PIN=y
 # CONFIG_RT_USING_ADC is not set
 # CONFIG_RT_USING_DAC is not set
 CONFIG_RT_USING_NULL=y
 CONFIG_RT_USING_ZERO=y
 CONFIG_RT_USING_RANDOM=y
-# CONFIG_RT_USING_PWM is not set
+CONFIG_RT_USING_PWM=y
 # CONFIG_RT_USING_MTD_NOR is not set
 # CONFIG_RT_USING_MTD_NAND is not set
 # CONFIG_RT_USING_PM is not set
@@ -220,7 +228,13 @@ CONFIG_RT_MMCSD_STACK_SIZE=8192
 CONFIG_RT_MMCSD_THREAD_PREORITY=22
 CONFIG_RT_MMCSD_MAX_PARTITION=16
 # CONFIG_RT_SDIO_DEBUG is not set
-# CONFIG_RT_USING_SPI is not set
+CONFIG_RT_USING_SPI=y
+# CONFIG_RT_USING_SPI_BITOPS is not set
+CONFIG_RT_USING_QSPI=y
+# CONFIG_RT_USING_SPI_MSD is not set
+# CONFIG_RT_USING_SFUD is not set
+# CONFIG_RT_USING_ENC28J60 is not set
+# CONFIG_RT_USING_SPI_WIFI is not set
 # CONFIG_RT_USING_WDT is not set
 # CONFIG_RT_USING_AUDIO is not set
 # CONFIG_RT_USING_SENSOR is not set
@@ -229,7 +243,7 @@ CONFIG_RT_MMCSD_MAX_PARTITION=16
 # CONFIG_RT_USING_HWCRYPTO is not set
 # CONFIG_RT_USING_PULSE_ENCODER is not set
 # CONFIG_RT_USING_INPUT_CAPTURE is not set
-# CONFIG_RT_USING_DEV_BUS is not set
+CONFIG_RT_USING_DEV_BUS=y
 # CONFIG_RT_USING_WIFI is not set
 # CONFIG_RT_USING_VIRTIO is not set
 CONFIG_RT_USING_KTIME=y
@@ -244,6 +258,7 @@ CONFIG_RT_USING_KTIME=y
 #
 # C/C++ and POSIX layer
 #
+# CONFIG_RT_USING_INTERNAL_LIBC_ONLY is not set
 
 #
 # ISO-ANSI C layer
@@ -424,6 +439,12 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_RT_USING_MEMBLOCK is not set
 
+#
+# Memory protection
+#
+# CONFIG_RT_USING_MEM_PROTECTION is not set
+# CONFIG_RT_USING_HW_STACK_GUARD is not set
+
 #
 # RT-Thread Utestcases
 #
@@ -464,11 +485,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_WLAN_WICED is not set
 # CONFIG_PKG_USING_RW007 is not set
-
-#
-# CYW43012 WiFi
-#
-# CONFIG_PKG_USING_WLAN_CYW43012 is not set
 # CONFIG_PKG_USING_COAP is not set
 # CONFIG_PKG_USING_NOPOLL is not set
 # CONFIG_PKG_USING_NETUTILS is not set
@@ -511,7 +527,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_NMEALIB is not set
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK is not set
-# CONFIG_PKG_USING_BT_CYW43012 is not set
 # CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
 # CONFIG_PKG_USING_WAYZ_IOTKIT is not set
 # CONFIG_PKG_USING_MAVLINK is not set
@@ -531,8 +546,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ZFTP is not set
 # CONFIG_PKG_USING_WOL is not set
 # CONFIG_PKG_USING_ZEPHYR_POLLING is not set
-# CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set
-# CONFIG_PKG_USING_LHC_MODBUS is not set
 
 #
 # security packages
@@ -579,6 +592,7 @@ CONFIG_RT_USING_ADT_REF=y
 # LVGL: powerful and easy-to-use embedded GUI library
 #
 # CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
 # CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
 # CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
 
@@ -653,7 +667,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_HASH_MATCH is not set
 # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set
 # CONFIG_PKG_USING_VOFA_PLUS is not set
-# CONFIG_PKG_USING_ZDEBUG is not set
 
 #
 # system packages
@@ -690,8 +703,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
 # CONFIG_PKG_USING_FREERTOS_WRAPPER is not set
-# CONFIG_PKG_USING_LITEOS_SDK is not set
-# CONFIG_PKG_USING_TZ_DATABASE is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
@@ -715,7 +726,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QBOOT is not set
 # CONFIG_PKG_USING_PPOOL is not set
 # CONFIG_PKG_USING_OPENAMP is not set
-# CONFIG_PKG_USING_RPMSG_LITE is not set
 # CONFIG_PKG_USING_LPM is not set
 # CONFIG_PKG_USING_TLSF is not set
 # CONFIG_PKG_USING_EVENT_RECORDER is not set
@@ -729,11 +739,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_AGILE_UPGRADE is not set
 # CONFIG_PKG_USING_FLASH_BLOB is not set
 # CONFIG_PKG_USING_MLIBC is not set
-# CONFIG_PKG_USING_TASK_MSG_BUS is not set
-# CONFIG_PKG_USING_SFDB is not set
-# CONFIG_PKG_USING_RTP is not set
-# CONFIG_PKG_USING_REB is not set
-# CONFIG_PKG_USING_R_RHEALSTONE is not set
 
 #
 # peripheral libraries and drivers
@@ -798,7 +803,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_BALANCE is not set
 # CONFIG_PKG_USING_SHT2X is not set
 # CONFIG_PKG_USING_SHT3X is not set
-# CONFIG_PKG_USING_SHT4X is not set
 # CONFIG_PKG_USING_AD7746 is not set
 # CONFIG_PKG_USING_ADT74XX is not set
 # CONFIG_PKG_USING_MAX17048 is not set
@@ -899,10 +903,6 @@ CONFIG_RT_USING_ADT_REF=y
 # 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_ST7789 is not set
-# CONFIG_PKG_USING_VS1003 is not set
-# CONFIG_PKG_USING_X9555 is not set
-# CONFIG_PKG_USING_SYSTEM_RUN_LED is not set
 # CONFIG_PKG_USING_SPI_TOOLS is not set
 
 #
@@ -918,7 +918,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QUEST is not set
 # CONFIG_PKG_USING_NAXOS is not set
 # CONFIG_PKG_USING_NCNN is not set
-# CONFIG_PKG_USING_R_TINYMAIX is not set
 
 #
 # Signal Processing and Control Algorithm Packages
@@ -989,7 +988,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 # CONFIG_PKG_USING_MINILZO is not set
 # CONFIG_PKG_USING_QUICKLZ is not set
 # CONFIG_PKG_USING_LZMA is not set
-# CONFIG_PKG_USING_RALARAM is not set
 # CONFIG_PKG_USING_MULTIBUTTON is not set
 # CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
 # CONFIG_PKG_USING_CANFESTIVAL is not set
@@ -1174,7 +1172,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set
 # CONFIG_PKG_USING_ARDUINO_U8G2 is not set
-# CONFIG_PKG_USING_ARDUINO_TFT_ESPI 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
@@ -1183,7 +1180,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # Timing
 #
-# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set
 # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set
 # CONFIG_PKG_USING_ARDUINO_TICKER is not set
 # CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set
@@ -1220,6 +1216,7 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # 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
@@ -1240,28 +1237,59 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # Hardware Drivers
 #
-CONFIG_DRV_DEBUG=y
+# CONFIG_DRV_DEBUG is not set
 
 #
 # On-chip Peripheral Drivers
 #
 CONFIG_BSP_USING_IOPAD=y
 CONFIG_BSP_USING_UART=y
+CONFIG_RT_USING_UART0=y
 CONFIG_RT_USING_UART1=y
-# CONFIG_RT_USING_UART0 is not set
-# CONFIG_BSP_USING_SPI is not set
+# CONFIG_RT_USING_UART2 is not set
+# CONFIG_RT_USING_UART3 is not set
+CONFIG_BSP_USING_SPI=y
+CONFIG_RT_USING_SPIM0=y
+CONFIG_RT_USING_SPIM1=y
+CONFIG_RT_USING_SPIM2=y
+CONFIG_RT_USING_SPIM3=y
 # CONFIG_BSP_USING_CAN is not set
-# CONFIG_BSP_USING_GPIO is not set
-# CONFIG_BSP_USING_QSPI is not set
-# CONFIG_BSP_USING_ETH is not set
-# CONFIG_BSP_USING_PWM is not set
-# CONFIG_BSP_USING_I2C is not set
-CONFIG_BSP_USING_SDIF=y
-CONFIG_BSP_USING_SDCARD_FATFS=y
-CONFIG_BSP_USING_SDCARD_PARTITION="sd1"
-CONFIG_USING_SDIF0=y
-# CONFIG_USING_SDIF1 is not set
-# CONFIG_USING_EMMC 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_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=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 is not set
+# CONFIG_RT_USING_PWM7 is not set
+CONFIG_BSP_USING_I2C=y
+CONFIG_I2C_USE_MIO=y
+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
+# CONFIG_RT_USING_MIO6 is not set
+# 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=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 is not set
+# CONFIG_I2C_USE_CONTROLLER is not set
+# CONFIG_BSP_USING_SDIF is not set
 
 #
 # Board extended module Drivers

+ 35 - 9
bsp/phytium/aarch64/configs/phytium_pi_rtsmart.h

@@ -32,7 +32,6 @@
 #define RT_USING_DEBUG
 #define RT_DEBUGING_COLOR
 #define RT_DEBUGING_CONTEXT
-#define RT_DEBUGING_INIT
 
 /* Inter-Thread communication */
 
@@ -66,7 +65,9 @@
 #define ARCH_HAVE_EFFICIENT_UNALIGNED_ACCESS
 #define ARCH_CPU_64BIT
 #define RT_USING_CACHE
+#define RT_USING_HW_ATOMIC
 #define ARCH_ARM_BOOTWITH_FLUSH_CACHE
+#define RT_USING_CPU_FFS
 #define ARCH_MM_MMU
 #define ARCH_ARM
 #define ARCH_ARM_MMU
@@ -140,9 +141,15 @@
 #define RT_SERIAL_USING_DMA
 #define RT_SERIAL_RB_BUFSZ 64
 #define RT_USING_TTY
+#define RT_USING_CAN
+#define RT_CAN_USING_CANFD
+#define RT_USING_I2C
+#define RT_USING_I2C_BITOPS
+#define RT_USING_PIN
 #define RT_USING_NULL
 #define RT_USING_ZERO
 #define RT_USING_RANDOM
+#define RT_USING_PWM
 #define RT_USING_RTC
 #define RT_USING_SDIO
 #define RT_SDIO_STACK_SIZE 8192
@@ -150,6 +157,9 @@
 #define RT_MMCSD_STACK_SIZE 8192
 #define RT_MMCSD_THREAD_PREORITY 22
 #define RT_MMCSD_MAX_PARTITION 16
+#define RT_USING_SPI
+#define RT_USING_QSPI
+#define RT_USING_DEV_BUS
 #define RT_USING_KTIME
 
 /* Using USB */
@@ -157,6 +167,7 @@
 
 /* C/C++ and POSIX layer */
 
+
 /* ISO-ANSI C layer */
 
 /* Timezone and Daylight Saving Time */
@@ -254,6 +265,9 @@
 /* Memory management */
 
 
+/* Memory protection */
+
+
 /* RT-Thread Utestcases */
 
 
@@ -270,9 +284,6 @@
 /* Wiced WiFi */
 
 
-/* CYW43012 WiFi */
-
-
 /* IoT Cloud */
 
 
@@ -378,17 +389,32 @@
 
 /* Hardware Drivers */
 
-#define DRV_DEBUG
 
 /* On-chip Peripheral Drivers */
 
 #define BSP_USING_IOPAD
 #define BSP_USING_UART
+#define RT_USING_UART0
 #define RT_USING_UART1
-#define BSP_USING_SDIF
-#define BSP_USING_SDCARD_FATFS
-#define BSP_USING_SDCARD_PARTITION "sd1"
-#define USING_SDIF0
+#define BSP_USING_SPI
+#define RT_USING_SPIM0
+#define RT_USING_SPIM1
+#define RT_USING_SPIM2
+#define RT_USING_SPIM3
+#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_PWM2
+#define BSP_USING_I2C
+#define I2C_USE_MIO
+#define RT_USING_MIO0
+#define RT_USING_MIO1
+#define RT_USING_MIO2
+#define RT_USING_MIO10
 
 /* Board extended module Drivers */
 

+ 78 - 50
bsp/phytium/aarch64/configs/phytium_pi_rtthread

@@ -24,6 +24,7 @@ CONFIG_RT_HOOK_USING_FUNC_PTR=y
 CONFIG_RT_USING_IDLE_HOOK=y
 CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
 CONFIG_IDLE_THREAD_STACK_SIZE=8192
+CONFIG_SYSTEM_THREAD_STACK_SIZE=8192
 CONFIG_RT_USING_TIMER_SOFT=y
 CONFIG_RT_TIMER_THREAD_PRIO=4
 CONFIG_RT_TIMER_THREAD_STACK_SIZE=8192
@@ -39,8 +40,9 @@ CONFIG_RT_KPRINTF_USING_LONGLONG=y
 CONFIG_RT_USING_DEBUG=y
 CONFIG_RT_DEBUGING_COLOR=y
 CONFIG_RT_DEBUGING_CONTEXT=y
-CONFIG_RT_DEBUGING_INIT=y
+# CONFIG_RT_DEBUGING_AUTO_INIT is not set
 # CONFIG_RT_DEBUGING_PAGE_LEAK is not set
+# CONFIG_RT_DEBUGING_SPINLOCK is not set
 
 #
 # Inter-Thread communication
@@ -90,10 +92,10 @@ CONFIG_ARCH_SECONDARY_CPU_STACK_SIZE=4096
 CONFIG_ARCH_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
 CONFIG_ARCH_CPU_64BIT=y
 CONFIG_RT_USING_CACHE=y
-# CONFIG_RT_USING_HW_ATOMIC is not set
+CONFIG_RT_USING_HW_ATOMIC=y
 CONFIG_ARCH_ARM_BOOTWITH_FLUSH_CACHE=y
 # CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
-# CONFIG_RT_USING_CPU_FFS is not set
+CONFIG_RT_USING_CPU_FFS=y
 CONFIG_ARCH_MM_MMU=y
 CONFIG_ARCH_ARM=y
 CONFIG_ARCH_ARM_MMU=y
@@ -159,6 +161,7 @@ CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512
 # CONFIG_RT_DFS_ELM_USE_ERASE is not set
 CONFIG_RT_DFS_ELM_REENTRANT=y
 CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000
+# CONFIG_RT_DFS_ELM_USE_EXFAT is not set
 CONFIG_RT_USING_DFS_DEVFS=y
 # CONFIG_RT_USING_DFS_ROMFS is not set
 # CONFIG_RT_USING_DFS_CROMFS is not set
@@ -182,18 +185,24 @@ 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=64
-# CONFIG_RT_USING_CAN is not set
+CONFIG_RT_USING_CAN=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
-# CONFIG_RT_USING_I2C is not set
+CONFIG_RT_USING_I2C=y
+# CONFIG_RT_I2C_DEBUG is not set
+CONFIG_RT_USING_I2C_BITOPS=y
+# CONFIG_RT_I2C_BITOPS_DEBUG is not set
+# CONFIG_RT_USING_SOFT_I2C is not set
 # CONFIG_RT_USING_PHY is not set
-# CONFIG_RT_USING_PIN is not set
+CONFIG_RT_USING_PIN=y
 # CONFIG_RT_USING_ADC is not set
 # CONFIG_RT_USING_DAC is not set
 CONFIG_RT_USING_NULL=y
 CONFIG_RT_USING_ZERO=y
 CONFIG_RT_USING_RANDOM=y
-# CONFIG_RT_USING_PWM is not set
+CONFIG_RT_USING_PWM=y
 # CONFIG_RT_USING_MTD_NOR is not set
 # CONFIG_RT_USING_MTD_NAND is not set
 # CONFIG_RT_USING_PM is not set
@@ -207,7 +216,13 @@ CONFIG_RT_MMCSD_STACK_SIZE=8192
 CONFIG_RT_MMCSD_THREAD_PREORITY=22
 CONFIG_RT_MMCSD_MAX_PARTITION=16
 # CONFIG_RT_SDIO_DEBUG is not set
-# CONFIG_RT_USING_SPI is not set
+CONFIG_RT_USING_SPI=y
+# CONFIG_RT_USING_SPI_BITOPS is not set
+CONFIG_RT_USING_QSPI=y
+# CONFIG_RT_USING_SPI_MSD is not set
+# CONFIG_RT_USING_SFUD is not set
+# CONFIG_RT_USING_ENC28J60 is not set
+# CONFIG_RT_USING_SPI_WIFI is not set
 # CONFIG_RT_USING_WDT is not set
 # CONFIG_RT_USING_AUDIO is not set
 # CONFIG_RT_USING_SENSOR is not set
@@ -216,7 +231,7 @@ CONFIG_RT_MMCSD_MAX_PARTITION=16
 # CONFIG_RT_USING_HWCRYPTO is not set
 # CONFIG_RT_USING_PULSE_ENCODER is not set
 # CONFIG_RT_USING_INPUT_CAPTURE is not set
-# CONFIG_RT_USING_DEV_BUS is not set
+CONFIG_RT_USING_DEV_BUS=y
 # CONFIG_RT_USING_WIFI is not set
 # CONFIG_RT_USING_VIRTIO is not set
 CONFIG_RT_USING_KTIME=y
@@ -231,6 +246,7 @@ CONFIG_RT_USING_KTIME=y
 #
 # C/C++ and POSIX layer
 #
+# CONFIG_RT_USING_INTERNAL_LIBC_ONLY is not set
 
 #
 # ISO-ANSI C layer
@@ -409,6 +425,12 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_RT_USING_MEMBLOCK is not set
 
+#
+# Memory protection
+#
+# CONFIG_RT_USING_MEM_PROTECTION is not set
+# CONFIG_RT_USING_HW_STACK_GUARD is not set
+
 #
 # RT-Thread Utestcases
 #
@@ -449,11 +471,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_WLAN_WICED is not set
 # CONFIG_PKG_USING_RW007 is not set
-
-#
-# CYW43012 WiFi
-#
-# CONFIG_PKG_USING_WLAN_CYW43012 is not set
 # CONFIG_PKG_USING_COAP is not set
 # CONFIG_PKG_USING_NOPOLL is not set
 # CONFIG_PKG_USING_NETUTILS is not set
@@ -496,7 +513,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_NMEALIB is not set
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK is not set
-# CONFIG_PKG_USING_BT_CYW43012 is not set
 # CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
 # CONFIG_PKG_USING_WAYZ_IOTKIT is not set
 # CONFIG_PKG_USING_MAVLINK is not set
@@ -516,8 +532,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ZFTP is not set
 # CONFIG_PKG_USING_WOL is not set
 # CONFIG_PKG_USING_ZEPHYR_POLLING is not set
-# CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set
-# CONFIG_PKG_USING_LHC_MODBUS is not set
 
 #
 # security packages
@@ -564,6 +578,7 @@ CONFIG_RT_USING_ADT_REF=y
 # LVGL: powerful and easy-to-use embedded GUI library
 #
 # CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
 # CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
 # CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
 
@@ -638,7 +653,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_HASH_MATCH is not set
 # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set
 # CONFIG_PKG_USING_VOFA_PLUS is not set
-# CONFIG_PKG_USING_ZDEBUG is not set
 
 #
 # system packages
@@ -675,8 +689,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
 # CONFIG_PKG_USING_FREERTOS_WRAPPER is not set
-# CONFIG_PKG_USING_LITEOS_SDK is not set
-# CONFIG_PKG_USING_TZ_DATABASE is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
@@ -700,7 +712,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QBOOT is not set
 # CONFIG_PKG_USING_PPOOL is not set
 # CONFIG_PKG_USING_OPENAMP is not set
-# CONFIG_PKG_USING_RPMSG_LITE is not set
 # CONFIG_PKG_USING_LPM is not set
 # CONFIG_PKG_USING_TLSF is not set
 # CONFIG_PKG_USING_EVENT_RECORDER is not set
@@ -714,11 +725,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_AGILE_UPGRADE is not set
 # CONFIG_PKG_USING_FLASH_BLOB is not set
 # CONFIG_PKG_USING_MLIBC is not set
-# CONFIG_PKG_USING_TASK_MSG_BUS is not set
-# CONFIG_PKG_USING_SFDB is not set
-# CONFIG_PKG_USING_RTP is not set
-# CONFIG_PKG_USING_REB is not set
-# CONFIG_PKG_USING_R_RHEALSTONE is not set
 
 #
 # peripheral libraries and drivers
@@ -783,7 +789,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_BALANCE is not set
 # CONFIG_PKG_USING_SHT2X is not set
 # CONFIG_PKG_USING_SHT3X is not set
-# CONFIG_PKG_USING_SHT4X is not set
 # CONFIG_PKG_USING_AD7746 is not set
 # CONFIG_PKG_USING_ADT74XX is not set
 # CONFIG_PKG_USING_MAX17048 is not set
@@ -884,10 +889,6 @@ CONFIG_RT_USING_ADT_REF=y
 # 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_ST7789 is not set
-# CONFIG_PKG_USING_VS1003 is not set
-# CONFIG_PKG_USING_X9555 is not set
-# CONFIG_PKG_USING_SYSTEM_RUN_LED is not set
 # CONFIG_PKG_USING_SPI_TOOLS is not set
 
 #
@@ -903,7 +904,6 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QUEST is not set
 # CONFIG_PKG_USING_NAXOS is not set
 # CONFIG_PKG_USING_NCNN is not set
-# CONFIG_PKG_USING_R_TINYMAIX is not set
 
 #
 # Signal Processing and Control Algorithm Packages
@@ -974,7 +974,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 # CONFIG_PKG_USING_MINILZO is not set
 # CONFIG_PKG_USING_QUICKLZ is not set
 # CONFIG_PKG_USING_LZMA is not set
-# CONFIG_PKG_USING_RALARAM is not set
 # CONFIG_PKG_USING_MULTIBUTTON is not set
 # CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
 # CONFIG_PKG_USING_CANFESTIVAL is not set
@@ -1159,7 +1158,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set
 # CONFIG_PKG_USING_ARDUINO_U8G2 is not set
-# CONFIG_PKG_USING_ARDUINO_TFT_ESPI 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
@@ -1168,7 +1166,6 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # Timing
 #
-# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set
 # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set
 # CONFIG_PKG_USING_ARDUINO_TICKER is not set
 # CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set
@@ -1205,6 +1202,7 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # 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
@@ -1225,28 +1223,59 @@ CONFIG_PKG_USING_KERNEL_SAMPLES_EN=y
 #
 # Hardware Drivers
 #
-CONFIG_DRV_DEBUG=y
+# CONFIG_DRV_DEBUG is not set
 
 #
 # On-chip Peripheral Drivers
 #
 CONFIG_BSP_USING_IOPAD=y
 CONFIG_BSP_USING_UART=y
+CONFIG_RT_USING_UART0=y
 CONFIG_RT_USING_UART1=y
-# CONFIG_RT_USING_UART0 is not set
-# CONFIG_BSP_USING_SPI is not set
+# CONFIG_RT_USING_UART2 is not set
+# CONFIG_RT_USING_UART3 is not set
+CONFIG_BSP_USING_SPI=y
+CONFIG_RT_USING_SPIM0=y
+CONFIG_RT_USING_SPIM1=y
+CONFIG_RT_USING_SPIM2=y
+CONFIG_RT_USING_SPIM3=y
 # CONFIG_BSP_USING_CAN is not set
-# CONFIG_BSP_USING_GPIO is not set
-# CONFIG_BSP_USING_QSPI is not set
-# CONFIG_BSP_USING_ETH is not set
-# CONFIG_BSP_USING_PWM is not set
-# CONFIG_BSP_USING_I2C is not set
-CONFIG_BSP_USING_SDIF=y
-CONFIG_BSP_USING_SDCARD_FATFS=y
-CONFIG_BSP_USING_SDCARD_PARTITION="sd1"
-CONFIG_USING_SDIF0=y
-# CONFIG_USING_SDIF1 is not set
-# CONFIG_USING_EMMC 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_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=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 is not set
+# CONFIG_RT_USING_PWM7 is not set
+CONFIG_BSP_USING_I2C=y
+CONFIG_I2C_USE_MIO=y
+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
+# CONFIG_RT_USING_MIO6 is not set
+# 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=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 is not set
+# CONFIG_I2C_USE_CONTROLLER is not set
+# CONFIG_BSP_USING_SDIF is not set
 
 #
 # Board extended module Drivers
@@ -1295,7 +1324,6 @@ CONFIG_BOARD_NAME="firefly"
 # 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 is not set
 CONFIG_FIREFLY_DEMO_BOARD=y
 
 #

+ 38 - 10
bsp/phytium/aarch64/configs/phytium_pi_rtthread.h

@@ -7,7 +7,8 @@
 /* RT-Thread Kernel */
 
 #define RT_NAME_MAX 16
-#define RT_CPUS_NR 1
+#define RT_USING_SMP
+#define RT_CPUS_NR 4
 #define RT_ALIGN_SIZE 4
 #define RT_THREAD_PRIORITY_32
 #define RT_THREAD_PRIORITY_MAX 32
@@ -18,6 +19,7 @@
 #define RT_USING_IDLE_HOOK
 #define RT_IDLE_HOOK_LIST_SIZE 4
 #define IDLE_THREAD_STACK_SIZE 8192
+#define SYSTEM_THREAD_STACK_SIZE 8192
 #define RT_USING_TIMER_SOFT
 #define RT_TIMER_THREAD_PRIO 4
 #define RT_TIMER_THREAD_STACK_SIZE 8192
@@ -29,7 +31,6 @@
 #define RT_USING_DEBUG
 #define RT_DEBUGING_COLOR
 #define RT_DEBUGING_CONTEXT
-#define RT_DEBUGING_INIT
 
 /* Inter-Thread communication */
 
@@ -63,7 +64,9 @@
 #define ARCH_HAVE_EFFICIENT_UNALIGNED_ACCESS
 #define ARCH_CPU_64BIT
 #define RT_USING_CACHE
+#define RT_USING_HW_ATOMIC
 #define ARCH_ARM_BOOTWITH_FLUSH_CACHE
+#define RT_USING_CPU_FFS
 #define ARCH_MM_MMU
 #define ARCH_ARM
 #define ARCH_ARM_MMU
@@ -128,9 +131,15 @@
 #define RT_USING_SERIAL_V1
 #define RT_SERIAL_USING_DMA
 #define RT_SERIAL_RB_BUFSZ 64
+#define RT_USING_CAN
+#define RT_CAN_USING_CANFD
+#define RT_USING_I2C
+#define RT_USING_I2C_BITOPS
+#define RT_USING_PIN
 #define RT_USING_NULL
 #define RT_USING_ZERO
 #define RT_USING_RANDOM
+#define RT_USING_PWM
 #define RT_USING_RTC
 #define RT_USING_SDIO
 #define RT_SDIO_STACK_SIZE 8192
@@ -138,6 +147,9 @@
 #define RT_MMCSD_STACK_SIZE 8192
 #define RT_MMCSD_THREAD_PREORITY 22
 #define RT_MMCSD_MAX_PARTITION 16
+#define RT_USING_SPI
+#define RT_USING_QSPI
+#define RT_USING_DEV_BUS
 #define RT_USING_KTIME
 
 /* Using USB */
@@ -145,6 +157,7 @@
 
 /* C/C++ and POSIX layer */
 
+
 /* ISO-ANSI C layer */
 
 /* Timezone and Daylight Saving Time */
@@ -242,6 +255,9 @@
 /* Memory management */
 
 
+/* Memory protection */
+
+
 /* RT-Thread Utestcases */
 
 
@@ -258,9 +274,6 @@
 /* Wiced WiFi */
 
 
-/* CYW43012 WiFi */
-
-
 /* IoT Cloud */
 
 
@@ -366,17 +379,32 @@
 
 /* Hardware Drivers */
 
-#define DRV_DEBUG
 
 /* On-chip Peripheral Drivers */
 
 #define BSP_USING_IOPAD
 #define BSP_USING_UART
+#define RT_USING_UART0
 #define RT_USING_UART1
-#define BSP_USING_SDIF
-#define BSP_USING_SDCARD_FATFS
-#define BSP_USING_SDCARD_PARTITION "sd1"
-#define USING_SDIF0
+#define BSP_USING_SPI
+#define RT_USING_SPIM0
+#define RT_USING_SPIM1
+#define RT_USING_SPIM2
+#define RT_USING_SPIM3
+#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_PWM2
+#define BSP_USING_I2C
+#define I2C_USE_MIO
+#define RT_USING_MIO0
+#define RT_USING_MIO1
+#define RT_USING_MIO2
+#define RT_USING_MIO10
 
 /* Board extended module Drivers */
 

+ 0 - 0
bsp/phytium/aarch64/figures/1682474861110.png → bsp/phytium/aarch64/figures/rtsmart_config.png


+ 48 - 12
bsp/phytium/aarch64/rtconfig.h

@@ -7,7 +7,8 @@
 /* RT-Thread Kernel */
 
 #define RT_NAME_MAX 16
-#define RT_CPUS_NR 1
+#define RT_USING_SMP
+#define RT_CPUS_NR 4
 #define RT_ALIGN_SIZE 4
 #define RT_THREAD_PRIORITY_32
 #define RT_THREAD_PRIORITY_MAX 32
@@ -18,6 +19,7 @@
 #define RT_USING_IDLE_HOOK
 #define RT_IDLE_HOOK_LIST_SIZE 4
 #define IDLE_THREAD_STACK_SIZE 8192
+#define SYSTEM_THREAD_STACK_SIZE 8192
 #define RT_USING_TIMER_SOFT
 #define RT_TIMER_THREAD_PRIO 4
 #define RT_TIMER_THREAD_STACK_SIZE 8192
@@ -29,7 +31,6 @@
 #define RT_USING_DEBUG
 #define RT_DEBUGING_COLOR
 #define RT_DEBUGING_CONTEXT
-#define RT_DEBUGING_INIT
 
 /* Inter-Thread communication */
 
@@ -63,7 +64,9 @@
 #define ARCH_HAVE_EFFICIENT_UNALIGNED_ACCESS
 #define ARCH_CPU_64BIT
 #define RT_USING_CACHE
+#define RT_USING_HW_ATOMIC
 #define ARCH_ARM_BOOTWITH_FLUSH_CACHE
+#define RT_USING_CPU_FFS
 #define ARCH_MM_MMU
 #define ARCH_ARM
 #define ARCH_ARM_MMU
@@ -128,9 +131,16 @@
 #define RT_USING_SERIAL_V1
 #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
+#define RT_USING_PIN
 #define RT_USING_NULL
 #define RT_USING_ZERO
 #define RT_USING_RANDOM
+#define RT_USING_PWM
 #define RT_USING_RTC
 #define RT_USING_SDIO
 #define RT_SDIO_STACK_SIZE 8192
@@ -138,6 +148,9 @@
 #define RT_MMCSD_STACK_SIZE 8192
 #define RT_MMCSD_THREAD_PREORITY 22
 #define RT_MMCSD_MAX_PARTITION 16
+#define RT_USING_SPI
+#define RT_USING_QSPI
+#define RT_USING_DEV_BUS
 #define RT_USING_KTIME
 
 /* Using USB */
@@ -145,6 +158,7 @@
 
 /* C/C++ and POSIX layer */
 
+
 /* ISO-ANSI C layer */
 
 /* Timezone and Daylight Saving Time */
@@ -242,6 +256,9 @@
 /* Memory management */
 
 
+/* Memory protection */
+
+
 /* RT-Thread Utestcases */
 
 
@@ -258,9 +275,6 @@
 /* Wiced WiFi */
 
 
-/* CYW43012 WiFi */
-
-
 /* IoT Cloud */
 
 
@@ -366,17 +380,38 @@
 
 /* Hardware Drivers */
 
-#define DRV_DEBUG
 
 /* On-chip Peripheral Drivers */
 
 #define BSP_USING_IOPAD
 #define BSP_USING_UART
+#define RT_USING_UART0
 #define RT_USING_UART1
+#define BSP_USING_SPI
+#define RT_USING_SPIM0
+#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
+#define USING_QSPI_CHANNEL0
+#define BSP_USING_ETH
+#define RT_LWIP_PBUF_POOL_BUFSIZE 1700
+#define BSP_USING_PWM
+#define RT_USING_PWM6
+#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 "sd1"
-#define USING_SDIF0
+#define BSP_USING_SDCARD_PARTITION "sd0"
+#define USING_SDIF1
 
 /* Board extended module Drivers */
 
@@ -391,8 +426,9 @@
 
 /* Soc configuration */
 
-#define TARGET_PHYTIUMPI
-#define SOC_NAME "phytiumpi"
+#define TARGET_E2000Q
+#define SOC_NAME "e2000"
+#define TARGET_TYPE_NAME "q"
 #define SOC_CORE_NUM 4
 #define F32BIT_MEMORY_ADDRESS 0x80000000
 #define F32BIT_MEMORY_LENGTH 0x80000000
@@ -403,8 +439,8 @@
 
 /* Board Configuration */
 
-#define BOARD_NAME "firefly"
-#define FIREFLY_DEMO_BOARD
+#define BOARD_NAME "demo"
+#define E2000Q_DEMO_BOARD
 
 /* IO mux configuration when board start up */
 

+ 3 - 1
bsp/phytium/board/README.md

@@ -41,7 +41,9 @@ $ touch fio_mux.c
 
 ![board_select](./../figures/board_select.png)
 
-6. 编译测试
+6. 在bsp/libraries/drivers中,驱动实例开启受Kconfig控制,如有更多需求,请自行修改.c文件和Kconfig文件
+
+7. 编译测试
 
 
 

+ 0 - 9
bsp/phytium/board/board.c

@@ -47,7 +47,6 @@
 #endif
 
 extern FIOPadCtrl iopad_ctrl;
-uintptr flsd_config_base = FLSD_CONFIG_BASE;
 /* mmu config */
 extern struct mem_desc platform_mem_desc[];
 extern const rt_uint32_t platform_mem_desc_size;
@@ -165,11 +164,6 @@ void rt_hw_board_aarch64_init(void)
     FEarlyUartProbe();
 
     FIOMuxInit();
-#ifdef RT_USING_SMART
-#if defined(FLSD_CONFIG_BASE)
-    flsd_config_base = (uintptr)rt_ioremap((void *)flsd_config_base, 0x1000);
-#endif
-#endif
 
     /* compoent init */
 #ifdef RT_USING_COMPONENTS_INIT
@@ -240,9 +234,6 @@ void rt_hw_board_aarch32_init(void)
 
 #if defined(RT_USING_SMART)
     redist_addr = (uint32_t)rt_ioremap(GICV3_RD_BASE_ADDR, 4 * 128 * 1024);
-#if defined(FLSD_CONFIG_BASE)
-    flsd_config_base = (uintptr)rt_ioremap((void *)flsd_config_base, 0x1000);
-#endif
 #else
     redist_addr = GICV3_RD_BASE_ADDR;
 #endif

+ 3 - 31
bsp/phytium/board/board.kconfig

@@ -5,7 +5,7 @@ choice
 	default FIREFLY_DEMO_BOARD
 
     config E2000D_DEMO_BOARD
-        select USE_IOMUX
+        select BSP_USING_IOPAD
         bool
         prompt "Use E2000D demo board"
         depends on TARGET_E2000D
@@ -19,7 +19,7 @@ choice
         endif
 
     config E2000Q_DEMO_BOARD
-        select USE_IOMUX
+        select BSP_USING_IOPAD
         bool
         prompt "Use E2000Q demo board"
         depends on TARGET_E2000Q
@@ -31,37 +31,9 @@ choice
 				default "demo"
             source "$SDK_DIR/board/e2000q_demo/e2000q_demo.kconfig"
         endif
-
-    config D2000_TEST_BOARD
-        select USE_IOMUX
-        bool
-        prompt "Use D2000 test board"
-        depends on TARGET_D2000
-        help
-            select D2000 test board config
-        if D2000_TEST_BOARD
-            config BOARD_NAME
-				string
-				default "test"
-            source "$SDK_DIR/board/d2000_test/d2000_test.kconfig"
-        endif
-
-    config FT2004_DSK_BOARD
-        select USE_IOMUX
-        bool
-        prompt "Use FT2004 dsk board"
-        depends on TARGET_FT2004
-        help
-            select FT2004 dsk board config
-        if FT2004_DSK_BOARD
-            config BOARD_NAME
-				string
-				default "dsk"
-            source "$SDK_DIR/board/ft2004_dsk/ft2004_dsk.kconfig"
-        endif
         
     config FIREFLY_DEMO_BOARD
-        select USE_IOMUX
+        select BSP_USING_IOPAD
         bool
         prompt "Use firefly board"
         depends on TARGET_PHYTIUMPI

+ 4 - 0
bsp/phytium/libraries/SConscript

@@ -137,6 +137,10 @@ path += [cwd + '/port/fdriver_port']
 src += Glob(cwd+'/port/fboard_port/*.c')
 path += [cwd + '/port/fboard_port']
 
+## lwip port
+src += Glob(cwd+'/port/lwip_port/*.c')
+path += [cwd + '/port/lwip_port']
+
 # phytium ports rt-thread examples
 PORT_DRV_DIR = cwd + '/examples'
 

+ 85 - 73
bsp/phytium/libraries/drivers/Kconfig

@@ -5,7 +5,8 @@ menu "Hardware Drivers"
         default n
 
 menu "On-chip Peripheral Drivers"
-    menuconfig BSP_USING_IOPAD
+
+    config BSP_USING_IOPAD
         bool "Enable IOPAD"
         default y
 
@@ -15,14 +16,18 @@ menu "On-chip Peripheral Drivers"
         select USE_SERIAL # sdk serial component
         select RT_USING_SERIAL
         if BSP_USING_UART
+            config RT_USING_UART0
+                bool "Enable UART0"
+                default n
             config RT_USING_UART1
                 bool "Enable UART1"
                 default y
-            
-            config RT_USING_UART0
-                bool "Enable UART0"
+            config RT_USING_UART2
+                bool "Enable UART2"
+                default n
+            config RT_USING_UART3
+                bool "Enable UART3"
                 default n
-
         endif
 
     menuconfig BSP_USING_SPI
@@ -63,9 +68,6 @@ menu "On-chip Peripheral Drivers"
             config RT_USING_CAN1
             bool "Enable can1"
             default n
-            config RT_USING_CAN2
-            bool "Enable can2"
-            default n
         endif
 
     menuconfig BSP_USING_GPIO
@@ -80,12 +82,17 @@ menu "On-chip Peripheral Drivers"
         select RT_USING_SPI
         select RT_USING_PIN
         if BSP_USING_QSPI
-            config USING_QSPI_CHANNEL0
-                bool "using qspi channel_0"
-                default n
-            config USING_QSPI_CHANNEL1
-                bool "using qspi channel_1"
-                default n
+            config RT_USING_QSPI0
+            bool "Enable qspi0"
+            default n
+            if RT_USING_QSPI0
+                config USING_QSPI_CHANNEL0
+                    bool "using qspi channel_0"
+                    default n
+                config USING_QSPI_CHANNEL1
+                    bool "using qspi channel_1"
+                    default n
+            endif
         endif
 
     menuconfig BSP_USING_ETH
@@ -124,6 +131,9 @@ menu "On-chip Peripheral Drivers"
             config RT_USING_PWM6
                 bool "Enable pwm6"
                 default n
+            config RT_USING_PWM7
+                bool "Enable pwm7"
+                default n
         endif
 
     menuconfig BSP_USING_I2C
@@ -138,72 +148,74 @@ menu "On-chip Peripheral Drivers"
             select ENABLE_MIO
 
             if I2C_USE_MIO
-            config RT_USING_MIO0
-                bool "Enable mio0"
-                default n
-            config RT_USING_MIO1
-                bool "Enable mio1"
-                default n
-            config RT_USING_MIO2
-                bool "Enable mio2"
-                default n
-            config RT_USING_MIO3
-                bool "Enable mio3"
-                default n
-            config RT_USING_MIO4
-                bool "Enable mio4"
-                default n
-            config RT_USING_MIO5
-                bool "Enable mio5"
-                default n
-            config RT_USING_MIO6
-                bool "Enable mio6"
-                default n
-            config RT_USING_MIO7
-                bool "Enable mio7"
-                default n
-            config RT_USING_MIO8
-                bool "Enable mio8"
-                default n
-            config RT_USING_MIO9
-                bool "Enable mio9"
-                default n
-            config RT_USING_MIO10
-                bool "Enable mio10"
-                default n
-            config RT_USING_MIO11
-                bool "Enable mio11"
-                default n
-            config RT_USING_MIO12
-                bool "Enable mio12"
-                default n
-            config RT_USING_MIO13
-                bool "Enable mio13"
-                default n
-            config RT_USING_MIO14
-                bool "Enable mio14"
-                default n
-            config RT_USING_MIO15
-                bool "Enable mio15"
-                default n
+                config RT_USING_MIO0
+                    bool "Enable mio0"
+                    default n
+                config RT_USING_MIO1
+                    bool "Enable mio1"
+                    default n
+                config RT_USING_MIO2
+                    bool "Enable mio2"
+                    default n
+                config RT_USING_MIO3
+                    bool "Enable mio3"
+                    default n
+                config RT_USING_MIO4
+                    bool "Enable mio4"
+                    default n
+                config RT_USING_MIO5
+                    bool "Enable mio5"
+                    default n
+                config RT_USING_MIO6
+                    bool "Enable mio6"
+                    default n
+                config RT_USING_MIO7
+                    bool "Enable mio7"
+                    default n
+                config RT_USING_MIO8
+                    bool "Enable mio8"
+                    default n
+                config RT_USING_MIO9
+                    bool "Enable mio9"
+                    default n
+                config RT_USING_MIO10
+                    bool "Enable mio10"
+                    default n
+                config RT_USING_MIO11
+                    bool "Enable mio11"
+                    default n
+                config RT_USING_MIO12
+                    bool "Enable mio12"
+                    default n
+                config RT_USING_MIO13
+                    bool "Enable mio13"
+                    default n
+                config RT_USING_MIO14
+                    bool "Enable mio14"
+                    default n
+                config RT_USING_MIO15
+                    bool "Enable mio15"
+                    default n
             endif
     
             config I2C_USE_CONTROLLER
             bool "using i2c controller"
             default n
             if I2C_USE_CONTROLLER
-            config RT_USING_I2C0
-                bool "Enable i2c0"
-                default n
-            config RT_USING_I2C1
-                bool "Enable i2c1"
-                default n
-            config RT_USING_I2C2
-                bool "Enable i2c2"
-                default n
+                config RT_USING_I2C0
+                    bool "Enable i2c0"
+                    default n
+                config RT_USING_I2C1
+                    bool "Enable i2c1"
+                    default n
+                config RT_USING_I2C2
+                    bool "Enable i2c2"
+                    default n
+                config RT_USING_I2C3
+                    bool "Enable i2c3"
+                    default n
+                endif
             endif
-
-        endif
        
     menuconfig BSP_USING_SDIF
         bool "Enable SDIF"

+ 65 - 178
bsp/phytium/libraries/drivers/drv_can.c

@@ -12,13 +12,17 @@
  */
 
 #include "rtconfig.h"
-#ifdef BSP_USING_CAN
+#include <rtdevice.h>
 #include "drv_can.h"
 #define LOG_TAG      "can_drv"
 #include "drv_log.h"
 #include "fcan.h"
 #include "fio_mux.h"
 #include "interrupt.h"
+#include "fcpu_info.h"
+#ifdef RT_USING_SMART
+    #include <ioremap.h>
+#endif
 
 struct phytium_can
 {
@@ -28,25 +32,31 @@ struct phytium_can
     struct rt_can_device device; /* inherit from can device */
 };
 
-static struct phytium_can drv_can[FCAN_NUM] =
-{
-    {
-        .name = "CAN0",
-        .can_handle.config.instance_id = 0,
-    },
-    {
-        .name = "CAN1",
-        .can_handle.config.instance_id = 1,
-    },
-};
+#if defined(RT_USING_CAN0)
+    static struct phytium_can drv_can0;
+#endif
+#if defined(RT_USING_CAN1)
+    static struct phytium_can drv_can1;
+#endif
 
 static void CanRxIrqCallback(void *args)
 {
-    FCanCtrl *instance_p = (FCanCtrl *)args;
-    rt_hw_can_isr(&drv_can[instance_p->config.instance_id].device, RT_CAN_EVENT_RX_IND);
+    struct phytium_can *drv_can = (struct phytium_can *)args;
+
+    rt_hw_can_isr(&(drv_can->device), RT_CAN_EVENT_RX_IND);
+
     LOG_D("CAN%d irq recv frame callback.", instance_p->config.instance_id);
 }
 
+static void CanTxIrqCallback(void *args)
+{
+    struct phytium_can *drv_can = (struct phytium_can *)args;
+
+    rt_hw_can_isr(&(drv_can->device), RT_CAN_EVENT_TX_DONE);
+
+    LOG_D("CAN%d irq send frame callback.", instance_p->config.instance_id);
+}
+
 static void CanErrorCallback(void *args)
 {
     FCanCtrl *instance_p = (FCanCtrl *)args;
@@ -57,13 +67,6 @@ static void CanErrorCallback(void *args)
     LOG_D("txerr_cnt is %x.", FCAN_ERR_CNT_TFN_GET(FCAN_READ_REG32(base_addr, FCAN_ERR_CNT_OFFSET)));
 }
 
-static void CanTxIrqCallback(void *args)
-{
-    FCanCtrl *instance_p = (FCanCtrl *)args;
-    rt_hw_can_isr(&drv_can[instance_p->config.instance_id].device, RT_CAN_EVENT_TX_DONE);
-    LOG_D("CAN%d irq send frame callback.", instance_p->config.instance_id);
-}
-
 static rt_err_t _can_config(struct rt_can_device *can, struct can_configure *cfg)
 {
     RT_ASSERT(can);
@@ -75,15 +78,18 @@ static rt_err_t _can_config(struct rt_can_device *can, struct can_configure *cfg
     rt_kprintf("CAN%d begin to config.\n", drv_can->can_handle.config.instance_id);
 
     FIOPadSetCanMux(drv_can->can_handle.config.instance_id);
-
+    FCanConfig *config_p;
+    config_p = FCanLookupConfig(drv_can->can_handle.config.instance_id);
+#ifdef RT_USING_SMART
+    config_p->base_address = (uintptr)rt_ioremap((void *)config_p->base_address, 0x1000);
+#endif
     /*CAN config init*/
-    status = FCanCfgInitialize(&(drv_can->can_handle), FCanLookupConfig(drv_can->can_handle.config.instance_id));
+    status = FCanCfgInitialize(&(drv_can->can_handle), config_p);
     if (status != FT_SUCCESS)
     {
         LOG_D("CAN %d initialize error, status = %#x.", drv_can->can_handle.config.instance_id, status);
-        return RT_ERROR;
+        return -RT_ERROR;
     }
-
     /*Set the baudrate*/
     FCanBaudrateConfig arb_segment_config;
     FCanBaudrateConfig data_segment_config;
@@ -98,7 +104,7 @@ static rt_err_t _can_config(struct rt_can_device *can, struct can_configure *cfg
     if (status != RT_EOK)
     {
         LOG_D("CAN%d set arb segment baudrate failed.", drv_can->can_handle.config.instance_id);
-        return RT_ERROR;
+        return -RT_ERROR;
     }
     data_segment_config.auto_calc = TRUE;
     data_segment_config.baudrate = cfg->baud_rate_fd;
@@ -107,7 +113,7 @@ static rt_err_t _can_config(struct rt_can_device *can, struct can_configure *cfg
     if (status != RT_EOK)
     {
         LOG_D("CAN%d set data segment baudrate failed.", drv_can->can_handle.config.instance_id);
-        return RT_ERROR;
+        return -RT_ERROR;
     }
 #else
     arb_segment_config.auto_calc = TRUE;
@@ -117,7 +123,7 @@ static rt_err_t _can_config(struct rt_can_device *can, struct can_configure *cfg
     if (status != FT_SUCCESS)
     {
         LOG_D("CAN%d set arb segment baudrate failed.", drv_can->can_handle.config.instance_id);
-        return RT_ERROR;
+        return -RT_ERROR;
     }
     data_segment_config.auto_calc = TRUE;
     data_segment_config.baudrate = cfg->baud_rate;
@@ -126,7 +132,7 @@ static rt_err_t _can_config(struct rt_can_device *can, struct can_configure *cfg
     if (status != FT_SUCCESS)
     {
         LOG_D("CAN%d set data segment baudrate failed.", drv_can->can_handle.config.instance_id);
-        return RT_ERROR;
+        return -RT_ERROR;
     }
 #endif
 
@@ -141,7 +147,7 @@ static rt_err_t _can_config(struct rt_can_device *can, struct can_configure *cfg
     if (status != FT_SUCCESS)
     {
         LOG_E("CAN%d set mask filter failed.", drv_can->can_handle.config.instance_id);
-        return RT_ERROR;
+        return -RT_ERROR;
     }
     /* Identifier mask enable */
     FCanIdMaskFilterEnable(&(drv_can->can_handle));
@@ -187,7 +193,7 @@ static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg)
             {
                 intr_event.type = FCAN_INTR_EVENT_SEND;
                 intr_event.handler = CanTxIrqCallback;
-                intr_event.param = (void *)(&(drv_can->can_handle));
+                intr_event.param = (void *)(drv_can);
                 FCanRegisterInterruptHandler(&(drv_can->can_handle), &intr_event);
                 FCanInterruptEnable(&(drv_can->can_handle), intr_event.type);
             }
@@ -195,7 +201,7 @@ static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg)
             {
                 intr_event.type = FCAN_INTR_EVENT_RECV;
                 intr_event.handler = CanRxIrqCallback;
-                intr_event.param = (void *)(&(drv_can->can_handle));
+                intr_event.param = (void *)(drv_can);
                 FCanRegisterInterruptHandler(&(drv_can->can_handle), &intr_event);
                 FCanInterruptEnable(&(drv_can->can_handle), intr_event.type);
             }
@@ -232,7 +238,7 @@ static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg)
                 argval != CAN20kBaud  &&
                 argval != CAN10kBaud)
             {
-                return RT_ERROR;
+                return -RT_ERROR;
             }
             if (argval != drv_can->device.config.baud_rate)
             {
@@ -249,7 +255,7 @@ static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg)
                 if (status != FT_SUCCESS)
                 {
                     LOG_D("CAN%d set arb segment baudrate failed.", drv_can->can_handle.config.instance_id);
-                    return RT_ERROR;
+                    return -RT_ERROR;
                 }
                 data_segment_config.auto_calc = TRUE;
                 data_segment_config.baudrate = drv_can->device.config.baud_rate;
@@ -258,7 +264,7 @@ static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg)
                 if (status != FT_SUCCESS)
                 {
                     LOG_D("CAN%d set data segment baudrate failed.", drv_can->can_handle.config.instance_id);
-                    return RT_ERROR;
+                    return -RT_ERROR;
                 }
                 FCanEnable(&(drv_can->can_handle), RT_TRUE);
             }
@@ -282,7 +288,7 @@ static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg)
                 if (status != FT_SUCCESS)
                 {
                     LOG_D("CAN%d set arb segment baudrate failed.", drv_can->can_handle.config.instance_id);
-                    return RT_ERROR;
+                    return -RT_ERROR;
                 }
                 data_segment_config.auto_calc = TRUE;
                 data_segment_config.baudrate = drv_can->device.config.baud_rate_fd;
@@ -291,7 +297,7 @@ static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg)
                 if (status != FT_SUCCESS)
                 {
                     LOG_D("CAN%d set data segment baudrate failed.", drv_can->can_handle.config.instance_id);
-                    return RT_ERROR;
+                    return -RT_ERROR;
                 }
                 FCanEnable(&(drv_can->can_handle), RT_TRUE);
             }
@@ -312,7 +318,7 @@ static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg)
                 if (status != FT_SUCCESS)
                 {
                     LOG_E("CAN%d set mask filter failed.", drv_can->can_handle.config.instance_id);
-                    return RT_ERROR;
+                    return -RT_ERROR;
                 }
             }
             FCanEnable(&(drv_can->can_handle), RT_TRUE);
@@ -375,7 +381,7 @@ static int _can_recvmsg(struct rt_can_device *can, void *buf, rt_uint32_t fifo)
     if (status != FT_SUCCESS)
     {
         LOG_D("CAN%d recv data failed.", drv_can->can_handle.config.instance_id);
-        return RT_ERROR;
+        return -RT_ERROR;
     }
     if (CAN_EFF_FLAG & recv_frame.canid)
     {
@@ -418,25 +424,27 @@ static const struct rt_can_ops _can_ops =
     _can_recvmsg,
 };
 
-static int can_init(u32 can_id)
+static int can_init(struct phytium_can *drv_can)
 {
     rt_err_t ret = RT_EOK;
 
-    drv_can[can_id].device.config.ticks = 20000;
-    drv_can[can_id].device.config.baud_rate = 800000;
+    drv_can->device.config.ticks = 20000;
+    /*can default baud_rate*/
+    drv_can->device.config.baud_rate = CAN800kBaud;
 #ifdef RT_CAN_USING_CANFD
-    drv_can[can_id].device.config.baud_rate_fd = 800000;
+    /*canfd default baud_rate 1M+800K*/
+    drv_can->device.config.baud_rate_fd = CAN800kBaud;
 #endif
-    drv_can[can_id].device.config.mode = RT_CAN_MODE_NORMAL;
-    drv_can[can_id].device.config.sndboxnumber = 1;
-    drv_can[can_id].device.config.msgboxsz = 1;
+    drv_can->device.config.mode = RT_CAN_MODE_NORMAL;
+    drv_can->device.config.sndboxnumber = 1;
+    drv_can->device.config.msgboxsz = 1;
 #ifdef RT_CAN_USING_HDR
-    drv_can[can_id].device.config.maxhdr = 1;
+    drv_can->device.config.maxhdr = 1;
 #endif
-    ret = rt_hw_can_register(&drv_can[can_id].device,
-                             drv_can[can_id].name,
+    ret = rt_hw_can_register(&drv_can->device,
+                             drv_can->name,
                              &_can_ops,
-                             &drv_can[can_id]);
+                             drv_can);
     RT_ASSERT(ret == RT_EOK);
 
     return ret;
@@ -444,138 +452,17 @@ static int can_init(u32 can_id)
 
 int rt_hw_can_init(void)
 {
-
 #if defined(RT_USING_CAN0)
-    can_init(FCAN0_ID);
+    drv_can0.name = "CAN0";
+    drv_can0.can_handle.config.instance_id = FCAN0_ID;
+    can_init(&drv_can0);
 #endif
 #if defined(RT_USING_CAN1)
-    can_init(FCAN1_ID);
-#endif
-#if defined(RT_USING_CAN2)
-    can_init(FCAN2_ID);
+    drv_can1.name = "CAN1";
+    drv_can1.can_handle.config.instance_id = FCAN1_ID;
+    can_init(&drv_can1);
 #endif
 
     return 0;
 }
-INIT_BOARD_EXPORT(rt_hw_can_init);
-
-/*can test example*/
-static rt_device_t can_dev;            /* CAN device handle */
-static struct rt_semaphore rx_sem;
-static rt_err_t can_rx_call(rt_device_t dev, rt_size_t size)
-{
-    /* The CAN generates an interrupt after receiving data, calls this callback function, and then sends the received semaphore */
-    rt_sem_release(&rx_sem);
-    return RT_EOK;
-}
-static void can_rx_thread(void *parameter)
-{
-    int i;
-    rt_err_t res = RT_EOK;
-    struct rt_can_msg rxmsg = {0};
-    rt_device_set_rx_indicate(can_dev, can_rx_call);
-    while (1)
-    {
-        /* The hdr value is - 1, which means reading data directly from the uselist */
-        rxmsg.hdr_index = -1;
-        /* Blocking waiting to receive semaphore */
-        res = rt_sem_take(&rx_sem, RT_WAITING_FOREVER);
-        RT_ASSERT(res == RT_EOK);
-        /* Read a frame of data from CAN */
-        rt_device_read(can_dev, 0, &rxmsg, sizeof(rxmsg));
-        /* Print data ID and conten */
-        rt_kprintf("ID:%x\n", rxmsg.id);
-        rt_kprintf("DATA: ");
-        for (i = 0; i < 8; i++)
-        {
-            rt_kprintf("%2x ", rxmsg.data[i]);
-        }
-
-        rt_kprintf("\n");
-    }
-}
-
-int can_sample(int argc, char *argv[])
-{
-    struct rt_can_msg msg = {0};
-    rt_err_t res = RT_EOK;;
-    rt_thread_t thread;
-    char can_name[RT_NAME_MAX];
-
-    if (argc == 2)
-    {
-        rt_strncpy(can_name, argv[1], RT_NAME_MAX);
-    }
-    else
-    {
-        rt_strncpy(can_name, "CAN0", RT_NAME_MAX);
-    }
-    /* Find CAN device */
-    can_dev = rt_device_find(can_name);
-    if (!can_dev)
-    {
-        rt_kprintf("Find %s failed.\n", can_name);
-        return RT_ERROR;
-    }
-
-    /* Initialize CAN receive signal quantity */
-    res = rt_sem_init(&rx_sem, "rx_sem", 0, RT_IPC_FLAG_FIFO);
-    RT_ASSERT(res == RT_EOK);
-
-    /* Open the CAN device in the way of interrupt reception and transmission */
-    res = rt_device_open(can_dev, RT_DEVICE_FLAG_INT_TX | RT_DEVICE_FLAG_INT_RX);
-    rt_device_control(can_dev, RT_CAN_CMD_SET_BAUD, CAN1MBaud);
-    RT_ASSERT(res == RT_EOK);
-
-#ifdef RT_CAN_USING_HDR
-    struct rt_can_filter_item items[4] =
-    {
-        RT_CAN_FILTER_ITEM_INIT(0x3, 0, 0, 0, 0, RT_NULL, RT_NULL),
-        RT_CAN_FILTER_ITEM_INIT(0x3, 0, 0, 0, 0, RT_NULL, RT_NULL),
-        RT_CAN_FILTER_ITEM_INIT(0x3, 0, 0, 0, 0, RT_NULL, RT_NULL),
-        RT_CAN_FILTER_ITEM_INIT(0x3, 0, 0, 0, 0, RT_NULL, RT_NULL)
-
-    };
-    struct rt_can_filter_config cfg = {4, 1, items}; /* There are 4 filter tables in total */
-
-    /* Set the hardware filter table. After setting, only frames with id=0x03 can be received*/
-    res = rt_device_control(can_dev, RT_CAN_CMD_SET_FILTER, &cfg);
-    RT_ASSERT(res == RT_EOK);
-#endif
-
-    /* Create data receiving thread */
-    thread = rt_thread_create("can_rx", can_rx_thread, RT_NULL, 4096, 25, 10);
-    if (thread != RT_NULL)
-    {
-        res = rt_thread_startup(thread);
-        RT_ASSERT(res == RT_EOK);
-    }
-    else
-    {
-        rt_kprintf("Create can_rx thread failed.\n");
-    }
-
-    msg.id = 0x78;              /* ID = 0x78 */
-    msg.ide = RT_CAN_STDID;     /* Standard format */
-    msg.rtr = RT_CAN_DTR;       /* Data frame */
-    msg.len = 8;                /* Data length is 8 */
-    /* Send CAN data */
-    for (int i = 0; i < 1; i++)
-    {
-        /* 8-byte data to be sent */
-        msg.data[0] = 0x00 + i;
-        msg.data[1] = 0x11 + i;
-        msg.data[2] = 0x22 + i;
-        msg.data[3] = 0x33 + i;
-        msg.data[4] = 0x44 + i;
-        msg.data[5] = 0x55 + i;
-        msg.data[6] = 0x66 + i;
-        msg.data[7] = 0x77 + i;
-        rt_device_write(can_dev, 0, &msg, sizeof(msg));
-    }
-
-    return res;
-}
-/* Enter can_sample command for testing */
-MSH_CMD_EXPORT(can_sample, can device sample);
-#endif
+INIT_BOARD_EXPORT(rt_hw_can_init);

+ 0 - 5
bsp/phytium/libraries/drivers/drv_can.h

@@ -15,9 +15,6 @@
 #define __DRV_CAN_H__
 
 #include <rtdevice.h>
-
-#ifdef BSP_USING_CAN
-
 #ifdef __cplusplus
 extern "C"
 {
@@ -27,7 +24,5 @@ int rt_hw_can_init(void);
 
 #ifdef __cplusplus
 }
-#endif
-
 #endif
 #endif /* __DRV_CAN_H__ */

+ 6 - 8
bsp/phytium/libraries/drivers/drv_gpio.c

@@ -12,8 +12,6 @@
  */
 
 #include "rtconfig.h"
-#ifdef BSP_USING_PIN
-
 #include <rtthread.h>
 #include <rtdevice.h>
 #include "interrupt.h"
@@ -31,6 +29,7 @@
 #include "fkernel.h"
 #include "fcpu_info.h"
 #include "ftypes.h"
+#include "fio_mux.h"
 #include "board.h"
 
 #include "fiopad.h"
@@ -200,7 +199,7 @@ rt_int8_t drv_pin_read(struct rt_device *device, rt_base_t pin)
                    ctrl_id,
                    port_id == 0 ? 'a' : 'b',
                    pin_id);
-        return RT_ERROR;
+        return -RT_ERROR;
     }
     return FGpioGetInputValue(pin_instance) == FGPIO_PIN_HIGH ? PIN_HIGH : PIN_LOW;
 }
@@ -224,7 +223,7 @@ rt_err_t drv_pin_attach_irq(struct rt_device *device, rt_base_t pin,
     if (pin_instance == RT_NULL)
     {
         LOG_E("GPIO%d-%c-%d not init yet.\n", ctrl_id, port_id == 0 ? 'a' : 'b', pin_id);
-        return RT_ERROR;
+        return -RT_ERROR;
     }
 
     if (pin_config->en_irq)
@@ -290,7 +289,7 @@ rt_err_t drv_pin_detach_irq(struct rt_device *device, rt_base_t pin)
                    ctrl_id,
                    port_id == 0 ? 'a' : 'b',
                    pin_id);
-        return RT_ERROR;
+        return -RT_ERROR;
     }
 
     level = rt_hw_interrupt_disable();
@@ -314,7 +313,7 @@ rt_err_t drv_pin_irq_enable(struct rt_device *device, rt_base_t pin, rt_uint8_t
                    ctrl_id,
                    port_id == 0 ? 'a' : 'b',
                    pin_id);
-        return RT_ERROR;
+        return -RT_ERROR;
     }
 
     FGpioSetInterruptMask(pin_instance, enabled);
@@ -341,5 +340,4 @@ int ft_pin_init(void)
     rt_kprintf("Register pin with return: %d\n", ret);
     return ret;
 }
-INIT_DEVICE_EXPORT(ft_pin_init);
-#endif
+INIT_DEVICE_EXPORT(ft_pin_init);

+ 144 - 208
bsp/phytium/libraries/drivers/drv_i2c.c

@@ -11,8 +11,7 @@
  *
  */
 #include "rtconfig.h"
-#if defined BSP_USING_I2C
-
+#include <rtdevice.h>
 #define LOG_TAG      "i2c_drv"
 #include "drv_log.h"
 #include "drv_i2c.h"
@@ -41,114 +40,6 @@ struct phytium_i2c_bus
     const char *name;
 };
 
-#if defined(I2C_USE_CONTROLLER)
-static struct phytium_i2c_bus i2c_bus[FI2C_NUM] =
-{
-    {
-        .name = "I2C0",
-        .i2c_handle.config.instance_id = 0,
-    },
-    {
-        .name = "I2C1",
-        .i2c_handle.config.instance_id = 1,
-    },
-    {
-        .name = "I2C2",
-        .i2c_handle.config.instance_id = 2,
-    },
-};
-#endif
-
-#if defined(I2C_USE_MIO)
-static struct phytium_i2c_bus i2c_mio_bus[FMIO_NUM] =
-{
-#if defined(TARGET_E2000D) ||defined(TARGET_E2000Q)
-    {
-        .name = "MIO0",
-        .i2c_handle.config.instance_id = 0,
-    },
-    {
-        .name = "MIO1",
-        .i2c_handle.config.instance_id = 1,
-    },
-    {
-        .name = "MIO2",
-        .i2c_handle.config.instance_id = 2,
-    },
-    {
-        .name = "MIO3",
-        .i2c_handle.config.instance_id = 3,
-    },
-    {
-        .name = "MIO4",
-        .i2c_handle.config.instance_id = 4,
-    },
-    {
-        .name = "MIO5",
-        .i2c_handle.config.instance_id = 5,
-    },
-    {
-        .name = "MIO6",
-        .i2c_handle.config.instance_id = 6,
-    },
-    {
-        .name = "MIO7",
-        .i2c_handle.config.instance_id = 7,
-    },
-    {
-        .name = "MIO8",
-        .i2c_handle.config.instance_id = 8,
-    },
-    {
-        .name = "MIO9",
-        .i2c_handle.config.instance_id = 9,
-    },
-    {
-        .name = "MIO10",
-        .i2c_handle.config.instance_id = 10,
-    },
-    {
-        .name = "MIO11",
-        .i2c_handle.config.instance_id = 11,
-    },
-    {
-        .name = "MIO12",
-        .i2c_handle.config.instance_id = 12,
-    },
-    {
-        .name = "MIO13",
-        .i2c_handle.config.instance_id = 13,
-    },
-    {
-        .name = "MIO14",
-        .i2c_handle.config.instance_id = 14,
-    },
-    {
-        .name = "MIO15",
-        .i2c_handle.config.instance_id = 15,
-    },
-#elif defined(TARGET_PHYTIUMPI)
-    {
-        .name = "MIO0",
-        .i2c_handle.config.instance_id = 0,
-    },
-    {
-        .name = "MIO1",
-        .i2c_handle.config.instance_id = 1,
-    },
-    {
-        .name = "MIO2",
-        .i2c_handle.config.instance_id = 2,
-    },
-    {
-        .name = "MIO10",
-        .i2c_handle.config.instance_id = 10,
-    },
-#endif
-};
-
-#endif
-
 #if defined(I2C_USE_CONTROLLER)
 static rt_err_t i2c_config(struct phytium_i2c_bus *i2c_bus)
 {
@@ -173,7 +64,7 @@ static rt_err_t i2c_config(struct phytium_i2c_bus *i2c_bus)
     {
         LOG_E("Init master I2c failed, ret: 0x%x", ret);
 
-        return RT_ERROR;
+        return -RT_ERROR;
     }
 
     return RT_EOK;
@@ -198,7 +89,7 @@ static rt_err_t i2c_mio_config(struct phytium_i2c_bus *i2c_bus)
     if (ret != FT_SUCCESS)
     {
         LOG_E("MIO initialize error.");
-        return RT_ERROR;
+        return -RT_ERROR;
     }
 
     FIOPadSetMioMux(instance_p->config.instance_id);
@@ -207,7 +98,7 @@ static rt_err_t i2c_mio_config(struct phytium_i2c_bus *i2c_bus)
     if (NULL == config_p)
     {
         LOG_E("Config of mio instance %d non found.", instance_p->config.instance_id);
-        return RT_ERROR;
+        return -RT_ERROR;
     }
 
     input_cfg = *config_p;
@@ -220,8 +111,10 @@ static rt_err_t i2c_mio_config(struct phytium_i2c_bus *i2c_bus)
     if (FI2C_SUCCESS != ret)
     {
         LOG_E("Init mio master failed, ret: 0x%x", ret);
-        return RT_ERROR;
+        return -RT_ERROR;
     }
+    mio_handle.is_ready = 0;
+    memset(&mio_handle, 0, sizeof(mio_handle));
 
     return RT_EOK;
 }
@@ -237,7 +130,7 @@ static rt_err_t phytium_i2c_set_speed(struct phytium_i2c_bus *i2c_bus, rt_uint32
     if (ret != FI2C_SUCCESS)
     {
         LOG_E("Set i2c speed failed!\n");
-        return RT_ERROR;
+        return -RT_ERROR;
     }
 
     return RT_EOK;
@@ -248,6 +141,7 @@ static rt_err_t i2c_bus_control(struct rt_i2c_bus_device *device, int cmd, void
     RT_ASSERT(device);
     struct phytium_i2c_bus *i2c_bus;
     i2c_bus = (struct phytium_i2c_bus *)(device);
+    FI2cConfig *config_p;
 
     switch (cmd)
     {
@@ -255,7 +149,7 @@ static rt_err_t i2c_bus_control(struct rt_i2c_bus_device *device, int cmd, void
             phytium_i2c_set_speed(i2c_bus, *(rt_uint32_t *)args);
             break;
         case RT_I2C_DEV_CTRL_10BIT:
-            FI2cConfig *config_p = &i2c_bus->i2c_handle.config;
+            config_p = &i2c_bus->i2c_handle.config;
             config_p->use_7bit_addr = FALSE;
             FI2cCfgInitialize(&i2c_bus->i2c_handle, config_p);
             break;
@@ -285,7 +179,7 @@ static rt_ssize_t i2c_master_xfer(struct rt_i2c_bus_device *device, struct rt_i2
             if (ret != FI2C_SUCCESS)
             {
                 LOG_E("I2C master read failed!\n");
-                return RT_ERROR;
+                return -RT_ERROR;
             }
         }
         else
@@ -294,7 +188,7 @@ static rt_ssize_t i2c_master_xfer(struct rt_i2c_bus_device *device, struct rt_i2
             if (ret != FI2C_SUCCESS)
             {
                 LOG_E("I2C master write failed!\n");
-                return RT_ERROR;
+                return -RT_ERROR;
             }
         }
     }
@@ -310,161 +204,203 @@ static const struct rt_i2c_bus_device_ops _i2c_ops =
 };
 
 #if defined(I2C_USE_CONTROLLER)
-static int i2c_controller_init(u32 i2c_id)
+static int i2c_controller_init(struct phytium_i2c_bus *i2c_controller_bus)
 {
-    u32 ret = RT_EOK;
-    ret = i2c_config(&i2c_bus[i2c_id]);
-    if (ret != FI2C_SUCCESS)
+    rt_err_t ret = RT_EOK;
+    ret = i2c_config(i2c_controller_bus);
+    if (ret != RT_EOK)
     {
         LOG_E("I2C config failed.\n");
 
-        return RT_ERROR;
+        return -RT_ERROR;
     }
-    i2c_bus[i2c_id].device.ops = &_i2c_ops;
-    ret = rt_i2c_bus_device_register(&i2c_bus[i2c_id].device, i2c_bus[i2c_id].name);
-    LOG_D("I2C bus reg success.\n");
+    i2c_controller_bus->device.ops = &_i2c_ops;
+    ret = rt_i2c_bus_device_register(&i2c_controller_bus->device, i2c_controller_bus->name);
     RT_ASSERT(RT_EOK == ret);
+    LOG_D("I2C bus reg success.\n");
 
     return ret;
 }
 #endif
 
 #if defined(I2C_USE_MIO)
-static int i2c_mio_init(u32 i2c_mio_id)
+static int i2c_mio_init(struct phytium_i2c_bus *i2c_mio_bus)
 {
-    u32 ret = RT_EOK;
-    ret = i2c_mio_config(&i2c_mio_bus[i2c_mio_id]);
-    if (ret != FI2C_SUCCESS)
+    rt_err_t ret = RT_EOK;
+    ret = i2c_mio_config(i2c_mio_bus);
+    if (ret != RT_EOK)
     {
         LOG_E("I2C mio config failed.\n");
 
-        return RT_ERROR;
+        return -RT_ERROR;
     }
-    i2c_mio_bus[i2c_mio_id].device.ops = &_i2c_ops;
-    ret = rt_i2c_bus_device_register(&i2c_mio_bus[i2c_mio_id].device, i2c_mio_bus[i2c_mio_id].name);
-    LOG_D("I2C mio bus reg success.\n");
+    i2c_mio_bus->device.ops = &_i2c_ops;
+    ret = rt_i2c_bus_device_register(&i2c_mio_bus->device, i2c_mio_bus->name);
     RT_ASSERT(RT_EOK == ret);
+    LOG_D("I2C mio bus reg success.\n");
 
     return ret;
 }
 #endif
 
-int rt_hw_i2c_init(void)
-{
-    rt_err_t ret = RT_EOK;
-#if defined(I2C_USE_CONTROLLER)
-
 #if defined(RT_USING_I2C0)
-    i2c_controller_init(FI2C0_ID);
+static struct phytium_i2c_bus i2c_controller0_bus;
 #endif
 #if defined(RT_USING_I2C1)
-    i2c_controller_init(FI2C1_ID);
+static struct phytium_i2c_bus i2c_controller1_bus;
 #endif
 #if defined(RT_USING_I2C2)
-    i2c_controller_init(FI2C2_ID);
+static struct phytium_i2c_bus i2c_controller2_bus;
 #endif
 
+#if defined(RT_USING_MIO0)
+static struct phytium_i2c_bus i2c_mio0_bus;
+#endif
+#if defined(RT_USING_MIO1)
+static struct phytium_i2c_bus i2c_mio1_bus;
+#endif
+#if defined(RT_USING_MIO2)
+static struct phytium_i2c_bus i2c_mio2_bus;
+#endif
+#if defined(RT_USING_MIO3)
+static struct phytium_i2c_bus i2c_mio3_bus;
+#endif
+#if defined(RT_USING_MIO4)
+static struct phytium_i2c_bus i2c_mio4_bus;
+#endif
+#if defined(RT_USING_MIO5)
+static struct phytium_i2c_bus i2c_mio5_bus;
+#endif
+#if defined(RT_USING_MIO6)
+static struct phytium_i2c_bus i2c_mio6_bus;
+#endif
+#if defined(RT_USING_MIO7)
+static struct phytium_i2c_bus i2c_mio7_bus;
+#endif
+#if defined(RT_USING_MIO8)
+static struct phytium_i2c_bus i2c_mio8_bus;
+#endif
+#if defined(RT_USING_MIO9)
+static struct phytium_i2c_bus i2c_mio9_bus;
+#endif
+#if defined(RT_USING_MIO10)
+static struct phytium_i2c_bus i2c_mio10_bus;
+#endif
+#if defined(RT_USING_MIO11)
+static struct phytium_i2c_bus i2c_mio11_bus;
+#endif
+#if defined(RT_USING_MIO12)
+static struct phytium_i2c_bus i2c_mio12_bus;
+#endif
+#if defined(RT_USING_MIO13)
+static struct phytium_i2c_bus i2c_mio13_bus;
+#endif
+#if defined(RT_USING_MIO14)
+static struct phytium_i2c_bus i2c_mio14_bus;
+#endif
+#if defined(RT_USING_MIO15)
+static struct phytium_i2c_bus i2c_mio15_bus;
 #endif
 
-#if defined(I2C_USE_MIO)
+int rt_hw_i2c_init(void)
+{
+#if defined(RT_USING_I2C0)
+    i2c_controller0_bus.name = "I2C0";
+    i2c_controller0_bus.i2c_handle.config.instance_id = FI2C0_ID;
+    i2c_controller_init(&i2c_controller0_bus);
+#endif
+#if defined(RT_USING_I2C1)
+    i2c_controller1_bus.name = "I2C1";
+    i2c_controller1_bus.i2c_handle.config.instance_id = FI2C1_ID;
+    i2c_controller_init(&i2c_controller1_bus);
+#endif
+#if defined(RT_USING_I2C2)
+    i2c_controller2_bus.name = "I2C2";
+    i2c_controller2_bus.i2c_handle.config.instance_id = FI2C2_ID;
+    i2c_controller_init(&i2c_controller2_bus);
+#endif
 
 #if defined(RT_USING_MIO0)
-    i2c_mio_init(FMIO0_ID);
+    i2c_mio0_bus.name = "MIO0";
+    i2c_mio0_bus.i2c_handle.config.instance_id = FMIO0_ID;
+    i2c_mio_init(&i2c_mio0_bus);
 #endif
 #if defined(RT_USING_MIO1)
-    i2c_mio_init(FMIO1_ID);
+    i2c_mio1_bus.name = "MIO1";
+    i2c_mio1_bus.i2c_handle.config.instance_id = FMIO1_ID;
+    i2c_mio_init(&i2c_mio1_bus);
 #endif
 #if defined(RT_USING_MIO2)
-    i2c_mio_init(FMIO2_ID);
+    i2c_mio2_bus.name = "MIO2";
+    i2c_mio2_bus.i2c_handle.config.instance_id = FMIO2_ID;
+    i2c_mio_init(&i2c_mio2_bus);
 #endif
 #if defined(RT_USING_MIO3)
-    i2c_mio_init(FMIO3_ID);
+    i2c_mio3_bus.name = "MIO3";
+    i2c_mio3_bus.i2c_handle.config.instance_id = FMIO3_ID;
+    i2c_mio_init(&i2c_mio3_bus);
 #endif
 #if defined(RT_USING_MIO4)
-    i2c_mio_init(FMIO4_ID);
+    i2c_mio4_bus.name = "MIO4";
+    i2c_mio4_bus.i2c_handle.config.instance_id = FMIO4_ID;
+    i2c_mio_init(&i2c_mio4_bus);
 #endif
 #if defined(RT_USING_MIO5)
-    i2c_mio_init(FMIO5_ID);
+    i2c_mio5_bus.name = "MIO5";
+    i2c_mio5_bus.i2c_handle.config.instance_id = FMIO5_ID;
+    i2c_mio_init(&i2c_mio5_bus);
 #endif
 #if defined(RT_USING_MIO6)
-    i2c_mio_init(FMIO6_ID);
+    i2c_mio6_bus.name = "MIO6";
+    i2c_mio6_bus.i2c_handle.config.instance_id = FMIO6_ID;
+    i2c_mio_init(&i2c_mio6_bus);
 #endif
 #if defined(RT_USING_MIO7)
-    i2c_mio_init(FMIO7_ID);
+    i2c_mio7_bus.name = "MIO2";
+    i2c_mio7_bus.i2c_handle.config.instance_id = FMIO7_ID;
+    i2c_mio_init(&i2c_mio7_bus);
 #endif
 #if defined(RT_USING_MIO8)
-    i2c_mio_init(FMIO8_ID);
+    i2c_mio8_bus.name = "MIO8";
+    i2c_mio8_bus.i2c_handle.config.instance_id = FMIO8_ID;
+    i2c_mio_init(&i2c_mio8_bus);
 #endif
 #if defined(RT_USING_MIO9)
-    i2c_mio_init(FMIO9_ID);
+    i2c_mio9_bus.name = "MIO9";
+    i2c_mio9_bus.i2c_handle.config.instance_id = FMIO9_ID;
+    i2c_mio_init(&i2c_mio9_bus);
 #endif
 #if defined(RT_USING_MIO10)
-    i2c_mio_init(FMIO10_ID);
+    i2c_mio10_bus.name = "MIO10";
+    i2c_mio10_bus.i2c_handle.config.instance_id = FMIO10_ID;
+    i2c_mio_init(&i2c_mio10_bus);
 #endif
 #if defined(RT_USING_MIO11)
-    i2c_mio_init(FMIO11_ID);
+    i2c_mio11_bus.name = "MIO11";
+    i2c_mio11_bus.i2c_handle.config.instance_id = FMIO11_ID;
+    i2c_mio_init(&i2c_mio11_bus);
 #endif
 #if defined(RT_USING_MIO12)
-    i2c_mio_init(FMIO12_ID);
+    i2c_mio12_bus.name = "MIO12";
+    i2c_mio12_bus.i2c_handle.config.instance_id = FMIO12_ID;
+    i2c_mio_init(&i2c_mio12_bus);
 #endif
 #if defined(RT_USING_MIO13)
-    i2c_mio_init(FMIO13_ID);
+    i2c_mio13_bus.name = "MIO13";
+    i2c_mio13_bus.i2c_handle.config.instance_id = FMIO13_ID;
+    i2c_mio_init(&i2c_mio13_bus);
 #endif
 #if defined(RT_USING_MIO14)
-    i2c_mio_init(FMIO14_ID);
+    i2c_mio14_bus.name = "MIO14";
+    i2c_mio14_bus.i2c_handle.config.instance_id = FMIO14_ID;
+    i2c_mio_init(&i2c_mio14_bus);
 #endif
 #if defined(RT_USING_MIO15)
-    i2c_mio_init(FMIO15_ID);
-#endif
-
+    i2c_mio15_bus.name = "MIO15";
+    i2c_mio15_bus.i2c_handle.config.instance_id = FMIO15_ID;
+    i2c_mio_init(&i2c_mio15_bus);
 #endif
 
     return 0;
 }
-INIT_DEVICE_EXPORT(rt_hw_i2c_init);
-
-
-
-static struct rt_i2c_bus_device *i2c_test_bus = RT_NULL;     /* I2C总线设备句柄 */
-
-int i2c_sample(int argc, char *argv[])
-{
-    char name[RT_NAME_MAX];
-    rt_strncpy(name, "MIO15", RT_NAME_MAX);
-    i2c_test_bus = (struct rt_i2c_bus_device *)rt_device_find(name);
-
-    rt_uint8_t read_buf[2] = {0x02, 0x0};
-    rt_uint8_t write_buf[2] = {0x02, 0x01};
-    if (i2c_test_bus == RT_NULL)
-    {
-        rt_kprintf("can't find %s device!\n", name);
-    }
-    else
-    {
-        rt_kprintf("find %s device!!!!\n", name);
-    }
-
-    struct rt_i2c_msg read_msgs;
-    read_msgs.addr = 0x6B;
-    read_msgs.flags = RT_I2C_RD;
-    read_msgs.buf = read_buf;
-    read_msgs.len = 1;
-    rt_i2c_transfer(i2c_test_bus, &read_msgs, 1);
-    rt_kprintf("read_buf = %x\n", *read_msgs.buf);
-
-    struct rt_i2c_msg write_msgs;
-    write_msgs.addr = 0x6B;
-    write_msgs.flags = RT_I2C_WR;
-    write_msgs.buf = write_buf;
-    write_msgs.len = 1;
-    rt_i2c_transfer(i2c_test_bus, &write_msgs, 1);
-    read_buf[0] = 0x02;
-    rt_i2c_transfer(i2c_test_bus, &read_msgs, 1);
-    rt_kprintf("read_buf = %x\n", *read_msgs.buf);
-
-    return RT_EOK;
-}
-
-MSH_CMD_EXPORT(i2c_sample, i2c device sample);
-
-#endif
+INIT_DEVICE_EXPORT(rt_hw_i2c_init);

+ 1 - 3
bsp/phytium/libraries/drivers/drv_i2c.h

@@ -15,17 +15,15 @@
 
 #include <rtdevice.h>
 
-#ifdef BSP_USING_I2C
-
 #ifdef __cplusplus
 extern "C"
 {
 #endif
 
+int rt_hw_i2c_init(void);
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif
 #endif /* __DRV_CAN_H__ */

+ 66 - 77
bsp/phytium/libraries/drivers/drv_pwm.c

@@ -11,7 +11,7 @@
  *
  */
 #include "rtconfig.h"
-#ifdef BSP_USING_PWM
+#include <rtdevice.h>
 #define LOG_TAG      "pwm_drv"
 #include "drv_log.h"
 #include "drv_pwm.h"
@@ -27,68 +27,26 @@ struct phytium_pwm
     struct rt_device_pwm device; /* inherit from can device */
 };
 
-static struct phytium_pwm pwm_dev[FPWM_NUM] =
-{
-#if defined(TARGET_E2000)
-    {
-        .name = "PWM0",
-        .pwm_handle.config.instance_id = 0,
-    },
-    {
-        .name = "PWM1",
-        .pwm_handle.config.instance_id = 1,
-    },
-    {
-        .name = "PWM2",
-        .pwm_handle.config.instance_id = 2,
-    },
-    {
-        .name = "PWM3",
-        .pwm_handle.config.instance_id = 3,
-    },
-    {
-        .name = "PWM4",
-        .pwm_handle.config.instance_id = 4,
-    },
-    {
-        .name = "PWM5",
-        .pwm_handle.config.instance_id = 5,
-    },
-    {
-        .name = "PWM6",
-        .pwm_handle.config.instance_id = 6,
-    },
-    {
-        .name = "PWM7",
-        .pwm_handle.config.instance_id = 7,
-    },
-#elif defined(TARGET_PHYTIUMPI)
-    {
-        .name = "PWM2",
-        .pwm_handle.config.instance_id = 2,
-    },
-#endif
-};
-
 static rt_err_t drv_pwm_config(struct phytium_pwm *pwm_dev)
 {
     RT_ASSERT(pwm_dev);
     u32 ret;
-    FPwmConfig *config = NULL;
+    FPwmConfig config;
     FPwmCtrl *pwm_handle = &pwm_dev->pwm_handle;
     FIOPadSetPwmMux(pwm_handle->config.instance_id, 0);
     FIOPadSetPwmMux(pwm_handle->config.instance_id, 1);
-    config = FPwmLookupConfig(pwm_handle->config.instance_id);
+    config = *FPwmLookupConfig(pwm_handle->config.instance_id);
 #ifdef RT_USING_SMART
-    config->pwm_base_addr = (uintptr)rt_ioremap((void *)config->pwm_base_addr, 0x1000);
-    config->db_base_addr = (uintptr)rt_ioremap((void *)config->db_base_addr, 0x100);
+    config.lsd_config_addr = (uintptr)rt_ioremap((void *)config.lsd_config_addr, 0x100);
+    config.pwm_base_addr = (uintptr)rt_ioremap((void *)config.pwm_base_addr, 0x1000);
+    config.db_base_addr = (uintptr)rt_ioremap((void *)config.db_base_addr, 0x100);
 #endif
-    ret = FPwmCfgInitialize(pwm_handle, config);
+    ret = FPwmCfgInitialize(pwm_handle, &config);
     if (ret != FPWM_SUCCESS)
     {
         LOG_E("Pwm config init failed.\n");
 
-        return RT_ERROR;
+        return -RT_ERROR;
     }
 
     return RT_EOK;
@@ -149,7 +107,7 @@ static rt_err_t drv_pwm_set(struct phytium_pwm *pwm_dev, int cmd, struct rt_pwm_
     {
         LOG_E("Pwm variable set failed.\n");
 
-        return RT_ERROR;
+        return -RT_ERROR;
     }
 
     FPwmEnable(&pwm_dev->pwm_handle, channel);
@@ -171,7 +129,7 @@ static rt_err_t drv_pwm_get(struct phytium_pwm *pwm_dev, struct rt_pwm_configura
     {
         LOG_E("Pwm variable get failed.\n");
 
-        return RT_ERROR;
+        return -RT_ERROR;
     }
 
     configuration->period = pwm_cfg.pwm_period * 1000;
@@ -203,7 +161,7 @@ static rt_err_t drv_pwm_set_dead_time(struct phytium_pwm *pwm_dev, struct rt_pwm
     {
         LOG_E("FPwmDbVariableSet failed.");
 
-        return RT_ERROR;
+        return -RT_ERROR;
     }
     FPwmEnable(&pwm_dev->pwm_handle, channel);
 
@@ -242,62 +200,93 @@ static const struct rt_pwm_ops _pwm_ops =
     _pwm_control,
 };
 
-static rt_err_t pwm_controller_init(u32 pwm_id)
+static rt_err_t pwm_controller_init(struct phytium_pwm *pwm_dev)
 {
     u32 ret = RT_EOK;
-    ret = drv_pwm_config(&pwm_dev[pwm_id]);
+    ret = drv_pwm_config(pwm_dev);
     if (ret != FPWM_SUCCESS)
     {
         LOG_E("Pwm config failed.\n");
 
-        return RT_ERROR;
+        return -RT_ERROR;
     }
-    ret = rt_device_pwm_register(&pwm_dev[pwm_id].device,
-                                 pwm_dev[pwm_id].name,
+    ret = rt_device_pwm_register(&pwm_dev->device,
+                                 pwm_dev->name,
                                  &_pwm_ops,
-                                 &pwm_dev[pwm_id]);
+                                 pwm_dev);
     RT_ASSERT(ret == RT_EOK);
 
     return ret;
 }
 
-int rt_hw_pwm_init(void)
-{
-#if defined(TARGET_E2000)
-
 #if defined(RT_USING_PWM0)
-    pwm_controller_init(FPWM0_ID);
+static struct phytium_pwm pwm0_dev;
 #endif
 #if defined(RT_USING_PWM1)
-    pwm_controller_init(FPWM1_ID);
+static struct phytium_pwm pwm1_dev;
 #endif
 #if defined(RT_USING_PWM2)
-    pwm_controller_init(FPWM2_ID);
+static struct phytium_pwm pwm2_dev;
 #endif
 #if defined(RT_USING_PWM3)
-    pwm_controller_init(FPWM3_ID);
+static struct phytium_pwm pwm3_dev;
 #endif
 #if defined(RT_USING_PWM4)
-    pwm_controller_init(FPWM4_ID);
+static struct phytium_pwm pwm4_dev;
 #endif
 #if defined(RT_USING_PWM5)
-    pwm_controller_init(FPWM5_ID);
+static struct phytium_pwm pwm5_dev;
 #endif
 #if defined(RT_USING_PWM6)
-    pwm_controller_init(FPWM6_ID);
+static struct phytium_pwm pwm6_dev;
 #endif
 #if defined(RT_USING_PWM7)
-    pwm_controller_init(FPWM7_ID);
+static struct phytium_pwm pwm7_dev;
 #endif
 
-#elif defined(TARGET_PHYTIUMPI)
-
+int rt_hw_pwm_init(void)
+{
+#if defined(RT_USING_PWM0)
+    pwm0_dev.name = "PWM0";
+    pwm0_dev.pwm_handle.config.instance_id = FPWM0_ID;
+    pwm_controller_init(&pwm0_dev);
+#endif
+#if defined(RT_USING_PWM1)
+    pwm1_dev.name = "PWM1";
+    pwm1_dev.pwm_handle.config.instance_id = FPWM1_ID;
+    pwm_controller_init(&pwm1_dev);
+#endif
 #if defined(RT_USING_PWM2)
-    pwm_controller_init(FPWM2_ID);
+    pwm2_dev.name = "PWM2";
+    pwm2_dev.pwm_handle.config.instance_id = FPWM2_ID;
+    pwm_controller_init(&pwm2_dev);
 #endif
-
+#if defined(RT_USING_PWM3)
+    pwm3_dev.name = "PWM3";
+    pwm3_dev.pwm_handle.config.instance_id = FPWM3_ID;
+    pwm_controller_init(&pwm3_dev);
 #endif
+#if defined(RT_USING_PWM4)
+    pwm4_dev.name = "PWM4";
+    pwm4_dev.pwm_handle.config.instance_id = FPWM4_ID;
+    pwm_controller_init(&pwm4_dev);
+#endif
+#if defined(RT_USING_PWM5)
+    pwm5_dev.name = "PWM5";
+    pwm5_dev.pwm_handle.config.instance_id = FPWM5_ID;
+    pwm_controller_init(&pwm5_dev);
+#endif
+#if defined(RT_USING_PWM6)
+    pwm6_dev.name = "PWM6";
+    pwm6_dev.pwm_handle.config.instance_id = FPWM6_ID;
+    pwm_controller_init(&pwm6_dev);
+#endif
+#if defined(RT_USING_PWM7)
+    pwm7_dev.name = "PWM7";
+    pwm7_dev.pwm_handle.config.instance_id = FPWM7_ID;
+    pwm_controller_init(&pwm7_dev);
+#endif
+
     return 0;
 }
-INIT_DEVICE_EXPORT(rt_hw_pwm_init);
-#endif
+INIT_DEVICE_EXPORT(rt_hw_pwm_init);

+ 2 - 3
bsp/phytium/libraries/drivers/drv_pwm.h

@@ -15,16 +15,15 @@
 
 #include <rtdevice.h>
 
-#ifdef BSP_USING_PWM
-
 #ifdef __cplusplus
 extern "C"
 {
 #endif
 
+int rt_hw_pwm_init(void);
+
 #ifdef __cplusplus
 }
 #endif
 
-#endif
 #endif /* __DRV_CAN_H__ */

+ 36 - 100
bsp/phytium/libraries/drivers/drv_qspi.c

@@ -11,19 +11,18 @@
  *
  */
 #include "rtconfig.h"
-
-#ifdef BSP_USING_QSPI
+#include "rtdevice.h"
+#define LOG_TAG      "qspi_drv"
+#include "drv_log.h"
 #include <rtthread.h>
 #ifdef RT_USING_SMART
     #include <ioremap.h>
 #endif
-#include "rtdevice.h"
 #include "drv_qspi.h"
 #include "fqspi_flash.h"
-#define LOG_TAG      "qspi_drv"
-#include "drv_log.h"
 #include "fiopad.h"
 #include "fqspi_hw.h"
+#include "fio_mux.h"
 
 
 #define DAT_LENGTH 128
@@ -31,15 +30,14 @@
 static rt_uint8_t rd_buf[DAT_LENGTH];
 static rt_uint8_t wr_buf[DAT_LENGTH];
 
-static phytium_qspi_bus phytium_qspi =
+typedef struct
 {
-    .fqspi_id = FQSPI0_ID,
-};
-
-static struct rt_qspi_device *qspi_device;        /* phytium device bus handle */
-static char qspi_bus_name[RT_NAME_MAX] = "QSPIBUS";
-static char qspi_dev_name[RT_NAME_MAX] = "QSPIDEV";
-extern FIOPadCtrl iopad_ctrl;
+    rt_uint32_t fqspi_id;
+    const char *name;
+    rt_uint32_t init; /* 0 is init already */
+    FQspiCtrl fqspi;
+    struct rt_spi_bus qspi_bus;
+} phytium_qspi_bus;
 
 rt_err_t FQspiInit(phytium_qspi_bus *phytium_qspi_bus)
 {
@@ -62,7 +60,7 @@ rt_err_t FQspiInit(phytium_qspi_bus *phytium_qspi_bus)
     if (FT_SUCCESS != ret)
     {
         LOG_E("Qspi init failed.\n");
-        return RT_ERROR;
+        return -RT_ERROR;
     }
     else
     {
@@ -74,7 +72,7 @@ rt_err_t FQspiInit(phytium_qspi_bus *phytium_qspi_bus)
     if (FT_SUCCESS != ret)
     {
         LOG_E("Qspi flash detect failed.\n");
-        return RT_ERROR;
+        return -RT_ERROR;
     }
     else
     {
@@ -127,7 +125,7 @@ static rt_err_t phytium_qspi_configure(struct rt_spi_device *device, struct rt_s
     {
         qspi_bus->init = RT_FALSE;
         rt_kprintf("Qspi init failed!!!\n");
-        return RT_ERROR;
+        return -RT_ERROR;
     }
     qspi_bus->init = RT_EOK;
 
@@ -354,7 +352,7 @@ static rt_ssize_t phytium_qspi_xfer(struct rt_spi_device *device, struct rt_spi_
         if (FT_SUCCESS != ret)
         {
             LOG_E("Failed to erase mem, test result 0x%x.\r\n", ret);
-            return RT_ERROR;
+            return -RT_ERROR;
         }
         /* write norflash data */
         ret = QspiFlashWriteData(&(qspi_bus->fqspi), cmd, addr, (u8 *)&wr_buf, len);
@@ -362,7 +360,7 @@ static rt_ssize_t phytium_qspi_xfer(struct rt_spi_device *device, struct rt_spi_
         if (FT_SUCCESS != ret)
         {
             LOG_E("Failed to write mem, test result 0x%x.\r\n", ret);
-            return RT_ERROR;
+            return -RT_ERROR;
         }
         else
         {
@@ -380,7 +378,7 @@ static rt_ssize_t phytium_qspi_xfer(struct rt_spi_device *device, struct rt_spi_
         if (FT_SUCCESS != ret)
         {
             rt_kprintf("Failed to config read, test result 0x%x.\r\n", ret);
-            return RT_ERROR;
+            return -RT_ERROR;
         }
         /* read norflash data */
         size_t read_len = QspiFlashReadData(&(qspi_bus->fqspi), addr, (u8 *)&rd_buf, DAT_LENGTH);
@@ -388,7 +386,7 @@ static rt_ssize_t phytium_qspi_xfer(struct rt_spi_device *device, struct rt_spi_
         if (read_len != DAT_LENGTH)
         {
             rt_kprintf("Failed to read mem, read len = %d.\r\n", read_len);
-            return RT_ERROR;
+            return -RT_ERROR;
         }
         else
         {
@@ -409,7 +407,7 @@ static rt_ssize_t phytium_qspi_xfer(struct rt_spi_device *device, struct rt_spi_
             if (FT_SUCCESS != ret)
             {
                 LOG_E("Failed to read flash information.\n");
-                return RT_ERROR;
+                return -RT_ERROR;
             }
         }
 
@@ -422,14 +420,14 @@ static rt_ssize_t phytium_qspi_xfer(struct rt_spi_device *device, struct rt_spi_
         if (FT_SUCCESS != ret)
         {
             LOG_E("Failed to enable flash reg write.\n");
-            return RT_ERROR;
+            return -RT_ERROR;
         }
 
         ret |= FQspiFlashWriteReg(&(qspi_bus->fqspi), cmd, (u8 *)sndb, 1);
         if (FT_SUCCESS != ret)
         {
             LOG_E("Failed to write flash reg.\n");
-            return RT_ERROR;
+            return -RT_ERROR;
         }
 
         return RT_EOK;
@@ -452,6 +450,7 @@ rt_err_t phytium_qspi_bus_attach_device(const char *bus_name, const char *device
     RT_ASSERT(device_name != RT_NULL);
 
     qspi_device = (struct rt_qspi_device *)rt_malloc(sizeof(struct rt_qspi_device));
+    rt_kprintf("qspi_device addr == %p\n", qspi_device);
     if (qspi_device == RT_NULL)
     {
         LOG_E("Qspi bus attach device failed.");
@@ -471,13 +470,13 @@ __exit:
     return  result;
 }
 
-int rt_hw_qspi_init(void)
+static int rt_qspi_init(phytium_qspi_bus *phytium_qspi)
 {
     int result = RT_EOK;
 
-    phytium_qspi.qspi_bus.parent.user_data = &phytium_qspi;
+    phytium_qspi->qspi_bus.parent.user_data = phytium_qspi;
 
-    if (rt_qspi_bus_register(&phytium_qspi.qspi_bus, qspi_bus_name, &phytium_qspi_ops) == RT_EOK)
+    if (rt_qspi_bus_register(&phytium_qspi->qspi_bus, phytium_qspi->name, &phytium_qspi_ops) == RT_EOK)
     {
         rt_kprintf("Qspi bus register successfully!!!\n");
     }
@@ -489,81 +488,18 @@ int rt_hw_qspi_init(void)
 
     return result;
 }
-INIT_BOARD_EXPORT(rt_hw_qspi_init);
-
-/*example*/
-struct rt_spi_message write_message;
-struct rt_spi_message read_message;
-
-rt_err_t qspi_init()
-{
-    rt_err_t res = RT_EOK;
-    res = phytium_qspi_bus_attach_device(qspi_bus_name, qspi_dev_name);
-    RT_ASSERT(res == RT_EOK);
-    qspi_device = (struct rt_qspi_device *)rt_device_find(qspi_dev_name);
-
-    return res;
-}
 
-/*read cmd example message improvement*/
-void ReadCmd(struct rt_spi_message *spi_message)
-{
-    struct rt_qspi_message *message = (struct rt_qspi_message *) spi_message;
-    message->address.content = 0x360000 ;/*Flash address*/
-    message->instruction.content = 0x03 ;/*read cmd*/
-
-    rt_qspi_transfer_message(qspi_device, message);
-}
-
-/*write cmd example message improvement*/
-void WriteCmd(struct rt_spi_message *spi_message)
-{
-    struct rt_qspi_message *message = (struct rt_qspi_message *) spi_message;
-    message->address.content = 0x360000 ;/*Flash address*/
-    message->instruction.content = 0x02 ;/*write cmd*/
-    rt_qspi_transfer_message(qspi_device, message);
-}
-
-/*write cmd example message improvement*/
-void qspi_thread(void *parameter)
-{
-    rt_err_t res;
-
-    qspi_init();
-    /*Read and write flash chip fixed area repeatedly*/
-    write_message.send_buf = "phytium";
-    write_message.length = strlen((char *)write_message.send_buf) + 1;
-    WriteCmd(&write_message);
-    ReadCmd(&read_message);
-
-    write_message.send_buf = "phytium hello world!";
-    write_message.length = strlen((char *)write_message.send_buf) + 1;
-    WriteCmd(&write_message);
-    ReadCmd(&read_message);
-
-    write_message.send_buf = "Welcome to phytium chip";
-    write_message.length = strlen((char *)write_message.send_buf) + 1;
-    WriteCmd(&write_message);
-    ReadCmd(&read_message);
-
-    rt_uint8_t recv;
-    rt_uint8_t cmd = 0x9F;/*read the flash status reg2*/
-    res = rt_qspi_send_then_recv(qspi_device, &cmd, sizeof(cmd), &recv, sizeof(recv));
-    RT_ASSERT(res != RT_EOK);
-
-    rt_kprintf("The status reg = %x \n", recv);
-}
+#if defined(RT_USING_QSPI0)
+static phytium_qspi_bus phytium_qspi0_bus;
+#endif
 
-rt_err_t qspi_sample(int argc, char *argv[])
+int rt_hw_qspi_init(void)
 {
-    rt_thread_t thread;
-    rt_err_t res;
-    thread = rt_thread_create("qspi_thread", qspi_thread, RT_NULL, 4096, 25, 10);
-    res = rt_thread_startup(thread);
-    RT_ASSERT(res == RT_EOK);
-
-    return res;
-}
-/* Enter qspi_sample command for testing */
-MSH_CMD_EXPORT(qspi_sample, qspi sample);
+#if defined(RT_USING_QSPI0)
+    phytium_qspi0_bus.name = "QSPI0";
+    phytium_qspi0_bus.fqspi_id = FQSPI0_ID;
+    rt_qspi_init(&phytium_qspi0_bus);
 #endif
+    return 0;
+}
+INIT_BOARD_EXPORT(rt_hw_qspi_init);

+ 3 - 17
bsp/phytium/libraries/drivers/drv_qspi.h

@@ -14,32 +14,18 @@
 #ifndef __DRV_QSPI_H__
 #define __DRV_QSPI_H__
 
-#include "rtconfig.h"
-
-#ifdef BSP_USING_QSPI
-#include <rtthread.h>
-#include "rtdevice.h"
-#include "fqspi_flash.h"
-#define PHYTIUM_QSPI_NAME "qspi"
-
+#include "rtdef.h"
 #ifdef __cplusplus
 extern "C"
 {
 #endif
 
-typedef struct
-{
-    rt_uint32_t fqspi_id;
-    rt_uint32_t init; /* 0 is init already */
-    FQspiCtrl fqspi;
-    struct rt_spi_bus qspi_bus;
-} phytium_qspi_bus;
-
 rt_err_t phytium_qspi_bus_attach_device(const char *bus_name, const char *device_name);
 
+int rt_hw_qspi_init(void);
+
 #ifdef __cplusplus
 }
 #endif
-#endif
 #endif // !DRT_QSPI_H
 

+ 4 - 4
bsp/phytium/libraries/drivers/drv_sdif.c

@@ -165,14 +165,14 @@ static rt_err_t fsdif_ctrl_init(struct rt_mmcsd_host *host)
     if (!mmcsd_instance)
     {
         LOG_E("Malloc mmcsd_instance failed");
-        return RT_ERROR;
+        return -RT_ERROR;
     }
 
     rw_desc = rt_malloc_align(SDIF_MAX_BLK_TRANS * sizeof(FSdifIDmaDesc), SDIF_MALLOC_CAP_DESC);
     if (!rw_desc)
     {
         LOG_E("Malloc rw_desc failed");
-        return RT_ERROR;
+        return -RT_ERROR;
     }
 
     rt_memset(mmcsd_instance, 0, sizeof(FSdif));
@@ -195,13 +195,13 @@ static rt_err_t fsdif_ctrl_init(struct rt_mmcsd_host *host)
     if (FSDIF_SUCCESS != FSdifCfgInitialize(mmcsd_instance, &mmcsd_config))
     {
         LOG_E("SDIF controller init failed.");
-        return RT_ERROR;
+        return -RT_ERROR;
     }
 
     if (FSDIF_SUCCESS != FSdifSetIDMAList(mmcsd_instance, rw_desc, (uintptr)rw_desc + PV_OFFSET, SDIF_MAX_BLK_TRANS))
     {
         LOG_E("SDIF controller setup DMA failed.");
-        return RT_ERROR;
+        return -RT_ERROR;
     }
     mmcsd_instance->desc_list.first_desc_dma = (uintptr)rw_desc + PV_OFFSET;
 

+ 51 - 126
bsp/phytium/libraries/drivers/drv_spi.c

@@ -12,49 +12,35 @@
  *
  */
 #include"rtconfig.h"
-#ifdef BSP_USING_SPI
-
 #include <rtthread.h>
 #include <rtdevice.h>
 #include "interrupt.h"
 #define LOG_TAG      "spi_drv"
 #include "drv_log.h"
 #include <string.h>
-
-#if defined(TARGET_E2000)
-    #include "fparameters.h"
-#endif
-
+#include "fparameters.h"
 #include "fcpu_info.h"
 #include "fkernel.h"
 #include "ftypes.h"
-
+#ifdef RT_USING_SMART
+    #include <ioremap.h>
+#endif
 
 #include <dfs_file.h>
-
 #include "fspim.h"
 #include "fspim_hw.h" /* include low-level header file for internal probe */
 #include "drv_spi.h"
 /************************** Constant Definitions *****************************/
 /**************************** Type Definitions *******************************/
 /************************** Variable Definitions *****************************/
-#ifdef RT_USING_SPIM0
-    static struct drv_spi _RTSpim0;
-#endif
-
-#ifdef RT_USING_SPIM1
-    static struct drv_spi _RTSpim1;
-#endif
-
-#ifdef RT_USING_SPIM2
-    static struct drv_spi _RTSpim2;
-#endif
 
-#ifdef RT_USING_SPIM3
-    static struct drv_spi _RTSpim3;
-#endif
+typedef struct
+{
+    struct rt_spi_bus spi_bus;
+    FSpim spim_instance;
+    const char *name;
+} phytium_spi_bus;
 
-static struct rt_spi_device *spi_device = RT_NULL;
 static struct rt_event rx_done_event;
 /***************** Macros (Inline Functions) Definitions *********************/
 
@@ -110,8 +96,8 @@ static rt_err_t spim_configure(struct rt_spi_device *device,
     FError ret = FSPIM_SUCCESS;
     RT_ASSERT(device != RT_NULL);
     RT_ASSERT(configuration != RT_NULL);
-    struct drv_spi *user_data_cfg = device->parent.user_data;
-    FSpimConfig input_cfg = *FSpimLookupConfig(user_data_cfg->spi_id);
+    phytium_spi_bus *user_data_cfg = device->parent.user_data;
+    FSpimConfig input_cfg = *FSpimLookupConfig(user_data_cfg->spim_instance.config.instance_id);
 #ifdef RT_USING_SMART
     input_cfg.base_addr = (uintptr)rt_ioremap((void *)input_cfg.base_addr, 0x1000);
 #endif
@@ -148,14 +134,14 @@ static rt_err_t spim_configure(struct rt_spi_device *device,
     ret = FSpimCfgInitialize(&user_data_cfg->spim_instance, &input_cfg);
     if (FSPIM_SUCCESS != ret)
     {
-        return RT_ERROR;
+        return -RT_ERROR;
     }
 
     /* irq setting */
     ret = FSpimSetupInterrupt(&user_data_cfg->spim_instance);
     if (FSPIM_SUCCESS != ret)
     {
-        return RT_ERROR;
+        return -RT_ERROR;
     }
     FSpimRegisterIntrruptHandler(&user_data_cfg->spim_instance, FSPIM_INTR_EVT_RX_DONE, rt_ft_send_event_done, NULL);
 
@@ -172,7 +158,7 @@ static rt_uint32_t spim_xfer(struct rt_spi_device *device, struct rt_spi_message
     const rt_uint8_t *send_buf;
 
     /* recv spi_cfg from RT-Thread sys */
-    struct drv_spi *user_data_xfer = device->parent.user_data;
+    phytium_spi_bus *user_data_xfer = device->parent.user_data;
     FSpim *xfer_spim_instance = &user_data_xfer->spim_instance;
 
     FError tx_rx_result = FSPIM_SUCCESS;
@@ -226,117 +212,56 @@ static rt_uint32_t spim_xfer(struct rt_spi_device *device, struct rt_spi_message
     return message_length;
 }
 
-int ft_spi_init(void)
+static int spi_init(phytium_spi_bus *phytium_spi)
 {
-    rt_err_t result;
-    static struct rt_spi_bus spim_bus;
+    rt_spi_bus_register(&phytium_spi->spi_bus, phytium_spi->name, &spim_ops);
+    RT_ASSERT((struct rt_spi_device *)rt_device_find(phytium_spi->name));
+
+    return 0;
+}
+
+#ifdef RT_USING_SPIM0
+    static phytium_spi_bus spi0_bus;
+#endif
+#ifdef RT_USING_SPIM1
+    static phytium_spi_bus spi1_bus;
+#endif
+#ifdef RT_USING_SPIM2
+    static phytium_spi_bus spi2_bus;
+#endif
+#ifdef RT_USING_SPIM3
+    static phytium_spi_bus spi3_bus;
+#endif
 
+int rt_hw_spi_init(void)
+{
     /* event creat */
     if (RT_EOK != rt_event_init(&rx_done_event, "rx_done_event", RT_IPC_FLAG_FIFO))
     {
         rt_kprintf("Create event failed.\n");
-        return RT_ERROR;
+        return -RT_ERROR;
     }
-
-    /* spi bus init */
-    result = rt_spi_bus_register(&spim_bus, "spi0", &spim_ops);
-    RT_ASSERT((struct rt_spi_device *)rt_device_find("spi0"));
-    rt_kprintf("Spi bus spi0 init\n");
-
-    /* spi device init and attach to bus */
 #ifdef RT_USING_SPIM0
-    _RTSpim0.spi_id = FSPI0_ID;
-    result = rt_spi_bus_attach_device(&_RTSpim0.device, "spi00", "spi0", &_RTSpim0);
-    spi_device = (struct rt_spi_device *)rt_device_find("spi00");
-    if (RT_NULL == spi_device)
-    {
-        rt_kprintf("Spi init failed -> can't find spi00 device!\n");
-        return RT_ERROR;
-    }
-    rt_kprintf("Spi master device spi00 init.\n");
+    spi0_bus.name = "SPI0";
+    spi0_bus.spim_instance.config.instance_id = FSPI0_ID;
+    spi_init(&spi0_bus);
 #endif
-
 #ifdef RT_USING_SPIM1
-    _RTSpim1.spi_id = FSPI1_ID;
-    result = rt_spi_bus_attach_device(&_RTSpim1.device, "spi01", "spi0", &_RTSpim1);
-    spi_device = (struct rt_spi_device *)rt_device_find("spi01");
-    if (RT_NULL == spi_device)
-    {
-        rt_kprintf("Spi init failed -> can't find spi01 device!\n");
-        return RT_ERROR;
-    }
-    rt_kprintf("Spi master device spi01 init.\n");
+    spi1_bus.name = "SPI1";
+    spi1_bus.spim_instance.config.instance_id = FSPI1_ID;
+    spi_init(&spi1_bus);
 #endif
-
 #ifdef RT_USING_SPIM2
-    _RTSpim2.spi_id = FSPI2_ID;
-    result = rt_spi_bus_attach_device(&_RTSpim2.device, "spi02", "spi0", &_RTSpim2);
-    spi_device = (struct rt_spi_device *)rt_device_find("spi02");
-    if (RT_NULL == spi_device)
-    {
-        rt_kprintf("Spi init failed -> can't find spi02 device!\n");
-        return RT_ERROR;
-    }
-    rt_kprintf("Spi master device spi02 init.\n");
+    spi2_bus.name = "SPI2";
+    spi2_bus.spim_instance.config.instance_id = FSPI2_ID;
+    spi_init(&spi2_bus);
 #endif
-
 #ifdef RT_USING_SPIM3
-    _RTSpim3.spi_id = FSPI3_ID;
-    result = rt_spi_bus_attach_device(&_RTSpim3.device, "spi03", "spi0", &_RTSpim3);
-    spi_device = (struct rt_spi_device *)rt_device_find("spi03");
-    if (RT_NULL == spi_device)
-    {
-        rt_kprintf("Spi init failed -> can't find spi03 device!\n");
-        return RT_ERROR;
-    }
-    rt_kprintf("Spi master device spi03 init.\n");
+    spi3_bus.name = "SPI3";
+    spi3_bus.spim_instance.config.instance_id = FSPI3_ID;
+    spi_init(&spi3_bus);
 #endif
 
-
-    return result;
-}
-INIT_DEVICE_EXPORT(ft_spi_init);
-
-/* spi test example */
-static void fspim_test_sample(int argc, char *argv[])
-{
-    rt_uint8_t send_to_flash_id = 0x9f; /* Flash cmd */
-    rt_uint8_t recv_from_falsh_id1[5] = {0};
-    rt_uint8_t recv_from_falsh_id2[5] = {0};
-
-    /* find the spi device to get the device handle */
-    spi_device = (struct rt_spi_device *)rt_device_find("spi02");
-    if (!spi_device)
-    {
-        rt_kprintf("fspim_test_sample run failed! can't find spi02 device!\n");
-    }
-    else
-    {
-        static struct rt_spi_message msg1, msg2;
-
-        msg1.send_buf   = &send_to_flash_id;
-        msg1.recv_buf   = RT_NULL;
-        msg1.length     = 1;
-        msg1.cs_take    = 1;
-        msg1.cs_release = 0;
-        msg1.next       = &msg2;
-
-        msg2.send_buf   = RT_NULL;
-        msg2.recv_buf   = recv_from_falsh_id2;
-        msg2.length     = 5;
-        msg2.cs_take    = 0;
-        msg2.cs_release = 1;
-        msg2.next       = RT_NULL;
-
-        /* send the command to read the ID using rt_spi_send_then_recv() */
-        rt_spi_send_then_recv(spi_device, &send_to_flash_id, 1, recv_from_falsh_id1, 5);
-        rt_kprintf("use rt_spi_send_then_recv() read flash ID is:0x%x 0x%x 0x%x 0x%x 0x%x\n", recv_from_falsh_id1[0], recv_from_falsh_id1[1], recv_from_falsh_id1[2], recv_from_falsh_id1[3], recv_from_falsh_id1[4]);
-
-        /* send the command to read the ID using rt_spi_transfer_message() */
-        rt_spi_transfer_message(spi_device, &msg1);
-        rt_kprintf("use rt_spi_transfer_message() read flash ID is:0x%x 0x%x 0x%x 0x%x 0x%x\n", recv_from_falsh_id2[0], recv_from_falsh_id2[1], recv_from_falsh_id2[2], recv_from_falsh_id2[3], recv_from_falsh_id2[4]);
-    }
+    return 0;
 }
-MSH_CMD_EXPORT(fspim_test_sample, "fspim test sample");
-
-#endif
+INIT_DEVICE_EXPORT(rt_hw_spi_init);

+ 7 - 7
bsp/phytium/libraries/drivers/drv_spi.h

@@ -14,15 +14,15 @@
 #define __DRV_SPI_H__
 
 #include <rtthread.h>
-#ifdef BSP_USING_SPI
-
-struct drv_spi
+#ifdef __cplusplus
+extern "C"
 {
-    u32 spi_id;
-    FSpim spim_instance;
-    struct rt_spi_device device;
-};
+#endif
+
+int rt_hw_spi_init(void);
 
+#ifdef __cplusplus
+}
 #endif
 
 #endif

+ 36 - 59
bsp/phytium/libraries/drivers/drv_usart.c

@@ -12,7 +12,6 @@
  */
 
 #include "rtconfig.h"
-#ifdef BSP_USING_UART
 
 #include "board.h"
 #include <mmu.h>
@@ -179,82 +178,60 @@ static const struct rt_uart_ops _uart_ops =
     NULL
 };
 
-#define RT_USING_UART0
-#define RT_USING_UART1
-#define RT_USING_UART2
+static int uart_init(struct drv_usart *uart_dev)
+{
+    struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT;
+
+    config.bufsz = RT_SERIAL_RB_BUFSZ;
+    uart_dev->serial.ops = &_uart_ops;
+    uart_dev->serial.config = config;
 
+    uart_dev->config.isr_priority = 0xd0;
+    uart_dev->config.isr_event_mask = (RTOS_UART_ISR_OEIM_MASK | RTOS_UART_ISR_BEIM_MASK | RTOS_UART_ISR_PEIM_MASK | RTOS_UART_ISR_FEIM_MASK | RTOS_UART_ISR_RTIM_MASK | RTOS_UART_ISR_RXIM_MASK);
+    uart_dev->config.uart_baudrate = 115200;
+
+    rt_hw_serial_register(&uart_dev->serial, uart_dev->name ,
+                          RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX,
+                          uart_dev);
+
+    return 0;
+}
 
 #ifdef RT_USING_UART0
-    static FPl011 Ft_Uart0;
-    static struct drv_usart _RtUart0;
+ static FPl011 Ft_Uart0;
+static struct drv_usart drv_uart0;
 #endif
-
 #ifdef RT_USING_UART1
-    static FPl011 Ft_Uart1;
-    static struct drv_usart _RtUart1;
+ static FPl011 Ft_Uart1;
+static struct drv_usart drv_uart1;
 #endif
-
 #ifdef RT_USING_UART2
-    static FPl011 Ft_Uart2;
-    static struct drv_usart _RtUart2;
+ static FPl011 Ft_Uart2;
+static struct drv_usart drv_uart2;
 #endif
 
 int rt_hw_uart_init(void)
 {
-    struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT;
 
 #ifdef RT_USING_UART0
-    config.bufsz = RT_SERIAL_RB_BUFSZ;
-    _RtUart0.serial.ops = &_uart_ops;
-    _RtUart0.serial.config = config;
-
-    _RtUart0.handle = &Ft_Uart0;
-    _RtUart0.config.uart_instance = FUART0_ID;
-    _RtUart0.config.isr_priority = 0xd0;
-    _RtUart0.config.isr_event_mask = (RTOS_UART_ISR_OEIM_MASK | RTOS_UART_ISR_BEIM_MASK | RTOS_UART_ISR_PEIM_MASK | RTOS_UART_ISR_FEIM_MASK | RTOS_UART_ISR_RTIM_MASK | RTOS_UART_ISR_RXIM_MASK);
-    _RtUart0.config.uart_baudrate = 115200;
-
-    rt_hw_serial_register(&_RtUart0.serial, "uart0",
-                          RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX,
-                          &_RtUart0);
+    drv_uart0.name = "uart0";
+    drv_uart0.handle = &Ft_Uart0;
+    drv_uart0.config.uart_instance = FUART0_ID;
+    uart_init(&drv_uart0);
 #endif
-
 #ifdef RT_USING_UART1
-    config.bufsz = RT_SERIAL_RB_BUFSZ;
-    _RtUart1.serial.ops = &_uart_ops;
-    _RtUart1.serial.config = config;
-    _RtUart1.handle = &Ft_Uart1;
-
-    _RtUart1.config.uart_instance = FUART1_ID;
-    _RtUart1.config.isr_priority = 0xd0;
-    _RtUart1.config.isr_event_mask = (RTOS_UART_ISR_OEIM_MASK | RTOS_UART_ISR_BEIM_MASK | RTOS_UART_ISR_PEIM_MASK | RTOS_UART_ISR_FEIM_MASK | RTOS_UART_ISR_RTIM_MASK | RTOS_UART_ISR_RXIM_MASK);
-    _RtUart1.config.uart_baudrate = 115200;
-
-    rt_hw_serial_register(&_RtUart1.serial, "uart1",
-                          RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX,
-                          &_RtUart1);
+    drv_uart1.name = "uart1";
+    drv_uart1.handle = &Ft_Uart1;
+    drv_uart1.config.uart_instance = FUART1_ID;
+    uart_init(&drv_uart1);
 #endif
-
-
 #ifdef RT_USING_UART2
-    config.bufsz = RT_SERIAL_RB_BUFSZ;
-    _RtUart2.serial.ops = &_uart_ops;
-    _RtUart2.serial.config = config;
-    _RtUart2.handle = &Ft_Uart2;
-
-    _RtUart2.config.uart_instance = FUART2_ID;
-    _RtUart2.config.isr_priority = 0xd0;
-    _RtUart2.config.isr_event_mask = (RTOS_UART_ISR_OEIM_MASK | RTOS_UART_ISR_BEIM_MASK | RTOS_UART_ISR_PEIM_MASK | RTOS_UART_ISR_FEIM_MASK | RTOS_UART_ISR_RTIM_MASK | RTOS_UART_ISR_RXIM_MASK);
-    _RtUart2.config.uart_baudrate = 115200;
-
-    rt_hw_serial_register(&_RtUart2.serial, "uart2",
-                          RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX,
-                          &_RtUart2);
+    drv_uart2.name = "uart2";
+    drv_uart2.handle = &Ft_Uart2;
+    drv_uart2.config.uart_instance = FUART2_ID;
+    uart_init(&drv_uart2);
 #endif
 
-
     return 0;
 }
-INIT_BOARD_EXPORT(rt_hw_uart_init);
-
-#endif
+INIT_BOARD_EXPORT(rt_hw_uart_init);

+ 4 - 6
bsp/phytium/libraries/drivers/drv_usart.h

@@ -16,7 +16,6 @@
 
 #include <rtthread.h>
 #include "rtdevice.h"
-#ifdef BSP_USING_UART
 
 #include "fpl011.h"
 #include "fpl011_hw.h"
@@ -35,15 +34,14 @@ typedef struct
     u32 isr_priority;  /* irq Priority */
     u32 isr_event_mask; /* followed by RTOS_UART_ISR_XX */
     u32 uart_baudrate;
-}  FtFreertosUartConfig;
+}  FtRtthreadUartConfig;
 
 struct drv_usart
 {
+    const char *name;
     FPl011 *handle;
-    FtFreertosUartConfig config;
+    FtRtthreadUartConfig config;
     struct rt_serial_device serial;
 };
 
-#endif // !
-
-#endif
+#endif // !

+ 81 - 53
bsp/phytium/libraries/drivers/drv_xmac.c

@@ -9,6 +9,7 @@
  * Date        Author       Notes
  * 2022-07-07  liuzhihong   first commit
  * 2023-07-14  liuzhihong   support RT-Smart
+ * 2023-12-01  liuzhihong   support initialisation of multiple mac
  */
 
 #include"rtconfig.h"
@@ -23,29 +24,41 @@
     #include "ioremap.h"
 #endif
 
-#ifdef __aarch64__
-    #include "faarch64.h"
-#else
-    #include "faarch32.h"
-#endif
 
+#include "eth_board.h"
 #include "drv_xmac.h"
 
 #define FXMAC_BD_TO_INDEX(ringptr, bdptr) \
     (((uintptr)bdptr - (uintptr)(ringptr)->base_bd_addr) / (ringptr)->separation)
 
 
-static char *os_drv_xmac0_name = "e0";
-
 static void FXmacInitOnError(FXmacOs *instance_p);
 static void FXmacSetupIsr(FXmacOs *instance_p);
 
 static FXmacOs fxmac_os_instace[FXMAC_NUM] =
 {
-    [FXMAC0_ID] = {.config = (0)},
-    [FXMAC1_ID] = {.config = (0)},
-    [FXMAC2_ID] = {.config = (0)},
-    [FXMAC3_ID] = {.config = (0)},
+    [FXMAC0_ID] =
+    {
+        .config = (0),
+        .hwaddr = {0x98, 0x0e, 0x24, 0x00, 0x11, 0x0},
+
+    },
+    [FXMAC1_ID] =
+    {
+        .config = (0),
+        .hwaddr = {0x98, 0x0e, 0x24, 0x00, 0x11, 0x1},
+
+    },
+    [FXMAC2_ID] =
+    {
+        .config = (0),
+        .hwaddr = {0x98, 0x0e, 0x24, 0x00, 0x11, 0x2},
+    },
+    [FXMAC3_ID] =
+    {
+        .config = (0),
+        .hwaddr = {0x98, 0x0e, 0x24, 0x00, 0x11, 0x3},
+    },
 };
 
 int isr_calling_flg = 0;
@@ -180,21 +193,6 @@ void FXmacProcessSentBds(FXmacOs *instance_p, FXmacBdRing *txring)
     return;
 }
 
-void FXmacSendHandler(void *arg)
-{
-    FXmacOs *instance_p;
-    FXmacBdRing *txringptr;
-    u32 regval;
-
-    instance_p = (FXmacOs *)arg;
-    txringptr = &(FXMAC_GET_TXRING(instance_p->instance));
-    regval = FXMAC_READREG32(instance_p->instance.config.base_address, FXMAC_TXSR_OFFSET);
-    FXMAC_WRITEREG32(instance_p->instance.config.base_address, FXMAC_TXSR_OFFSET, regval); /* 清除中断状态位来停止中断 */
-
-    /* If Transmit done interrupt is asserted, process completed BD's */
-    FXmacProcessSentBds(instance_p, txringptr);
-}
-
 FError FXmacSgsend(FXmacOs *instance_p, struct pbuf *p)
 {
     struct pbuf *q;
@@ -239,7 +237,7 @@ FError FXmacSgsend(FXmacOs *instance_p, struct pbuf *p)
         /* Send the data from the pbuf to the interface, one pbuf at a
            time. The size of the data in each pbuf is kept in the ->len
            variable. */
-        tx_payload = (uintptr)p->payload;
+        tx_payload = (uintptr)q->payload;
 #ifdef RT_USING_SMART
         tx_payload += PV_OFFSET;
 #endif
@@ -319,11 +317,11 @@ void SetupRxBds(FXmacOs *instance_p, FXmacBdRing *rxring)
 
         if (instance_p->config & FXMAC_OS_CONFIG_JUMBO)
         {
-            p = pbuf_alloc(PBUF_RAW, FXMAC_MAX_FRAME_SIZE_JUMBO, PBUF_POOL);
+            p = pbuf_alloc(PBUF_RAW, FXMAC_MAX_FRAME_SIZE_JUMBO, PBUF_RAM);
         }
         else
         {
-            p = pbuf_alloc(PBUF_RAW, FXMAC_MAX_FRAME_SIZE, PBUF_POOL);
+            p = pbuf_alloc(PBUF_RAW, FXMAC_MAX_FRAME_SIZE, PBUF_RAM);
         }
 
         if (!p)
@@ -579,11 +577,11 @@ FError FXmacInitDma(FXmacOs *instance_p)
     {
         if (instance_p->config & FXMAC_OS_CONFIG_JUMBO)
         {
-            p = pbuf_alloc(PBUF_RAW, FXMAC_MAX_FRAME_SIZE_JUMBO, PBUF_POOL);
+            p = pbuf_alloc(PBUF_RAW, FXMAC_MAX_FRAME_SIZE_JUMBO, PBUF_RAM);
         }
         else
         {
-            p = pbuf_alloc(PBUF_RAW, FXMAC_MAX_FRAME_SIZE, PBUF_POOL);
+            p = pbuf_alloc(PBUF_RAW, FXMAC_MAX_FRAME_SIZE, PBUF_RAM);
         }
 
         if (!p)
@@ -1053,7 +1051,6 @@ static void FXmacSetupIsr(FXmacOs *instance_p)
     GetCpuId(&cpu_id);
 
     /* Setup callbacks */
-    FXmacSetHandler(&instance_p->instance, FXMAC_HANDLER_DMASEND, FXmacSendHandler, instance_p);
     FXmacSetHandler(&instance_p->instance, FXMAC_HANDLER_DMARECV, FXmacRecvSemaphoreHandler, instance_p);
     FXmacSetHandler(&instance_p->instance, FXMAC_HANDLER_ERROR, FXmacErrorHandler, instance_p);
     FXmacSetHandler(&instance_p->instance, FXMAC_HANDLER_LINKCHANGE, FXmacLinkChange, instance_p);
@@ -1270,10 +1267,11 @@ static FError FXmacOsOutput(FXmacOs *instance_p, struct pbuf *p)
 
 FError FXmacOsTx(FXmacOs *instance_p, void *tx_buf)
 {
-    u32 freecnt;
     FXmacBdRing *txring;
     FError ret;
+    u32 n_pbufs;
     struct pbuf *p;
+    struct pbuf *q;
     FASSERT(instance_p != NULL);
     if (tx_buf == NULL)
     {
@@ -1282,13 +1280,16 @@ FError FXmacOsTx(FXmacOs *instance_p, void *tx_buf)
     }
 
     p = tx_buf;
+    txring = &(FXMAC_GET_TXRING(instance_p->instance));
 
-    /* check if space is available to send */
-    freecnt = IsTxSpaceAvailable(instance_p);
+    for (q = p, n_pbufs = 0; q != NULL; q = q->next)
+    {
+        n_pbufs++;
+    }
 
-    if (freecnt <= 5)
+    /* check if space is available to send */
+    if (txring->free_cnt < n_pbufs)
     {
-        txring = &(FXMAC_GET_TXRING(instance_p->instance));
         FXmacProcessSentBds(instance_p, txring);
     }
 
@@ -1329,6 +1330,7 @@ void FXmacOsStart(FXmacOs *instance_p)
     FASSERT(instance_p != NULL);
 
     /* start mac */
+    instance_p->instance.mask &= (~FXMAC_IXR_TXCOMPL_MASK);
     FXmacStart(&instance_p->instance);
 }
 
@@ -1453,7 +1455,7 @@ rt_err_t rt_xmac_tx(rt_device_t dev, struct pbuf *p)
     }
 
 
-    level = rt_hw_interrupt_disable();
+
 #if RT_LWIP_ETH_PAD_SIZE
     pbuf_header(p, -RT_LWIP_ETH_PAD_SIZE); /* reclaim the padding word */
 #endif
@@ -1461,7 +1463,7 @@ rt_err_t rt_xmac_tx(rt_device_t dev, struct pbuf *p)
 #if RT_LWIP_ETH_PAD_SIZE
     pbuf_header(p, ETH_PAD_SIZE); /* reclaim the padding word */
 #endif
-    rt_hw_interrupt_enable(level);
+
 
     if (ret != FT_SUCCESS)
     {
@@ -1554,7 +1556,7 @@ static void ethernet_link_thread(void *Args)
 
 
 
-static int rt_hw_xmac_init(FXmacOs *pOsMac, const char *name)
+static int rt_hw_xmac_init(FXmacOs *pOsMac, const char *name, const char *link_thread_name)
 {
     rt_err_t state = RT_EOK;
 
@@ -1569,25 +1571,20 @@ static int rt_hw_xmac_init(FXmacOs *pOsMac, const char *name)
     pOsMac->parent.eth_rx = rt_xmac_rx;
     pOsMac->parent.eth_tx = rt_xmac_tx;
 
-    pOsMac->hwaddr[0] = 0x98;
-    pOsMac->hwaddr[1] = 0x0e;
-    pOsMac->hwaddr[2] = 0x24;
-    pOsMac->hwaddr[3] = 0x00;
-    pOsMac->hwaddr[4] = 0x11;
-    pOsMac->hwaddr[5] = 0;
-
     /* register eth device */
     state = eth_device_init(&(pOsMac->parent), name);
+
     if (RT_EOK != state)
     {
         LOG_E("xmac device init faild: %d", state);
         return -RT_ERROR;
     }
-    rt_kprintf("Xmac0 Initiailized!\n");
+    rt_kprintf("Xmac %s Initiailized!\n", name);
+
 
 
     state = rt_thread_init(&pOsMac->_link_thread,
-                           "e0_link_detect",
+                           link_thread_name,
                            ethernet_link_thread,
                            pOsMac,
                            &pOsMac->_link_thread_stack[0],
@@ -1613,10 +1610,10 @@ static int rt_hw_xmac_eth_init(void)
     FXmacOsControl os_config;
     FXmacOs *pOsMac;
 
-
+#if defined(MAC_NUM0)
     /* os_config initialize,need to be set manually here */
-    os_config.instance_id = 0;
-    os_config.interface = FXMAC_OS_INTERFACE_SGMII;
+    os_config.instance_id = MAC_NUM0_CONTROLLER;
+    os_config.interface = MAC_NUM0_MII_INTERFACE;
     os_config.autonegotiation = 1; /* 1 is autonegotiation ,0 is manually set */
     os_config.phy_speed = FXMAC_PHY_SPEED_1000M;  /* FXMAC_PHY_SPEED_XXX */
     os_config.phy_duplex = FXMAC_PHY_FULL_DUPLEX; /* FXMAC_PHY_XXX_DUPLEX */
@@ -1628,13 +1625,44 @@ static int rt_hw_xmac_eth_init(void)
         return -RT_ERROR;
     }
 
-    state = rt_hw_xmac_init(pOsMac, os_drv_xmac0_name);
+    const char *os_drv_xmac0_name = "e0";
+    const char *e0_thread_name = "e0_link_detect";
+
+    state = rt_hw_xmac_init(pOsMac, os_drv_xmac0_name, e0_thread_name);
+    extern void set_if(const char *netif_name, const char *ip_addr, const char *gw_addr, const char *nm_addr);
+
+    rt_kprintf("Set netif %s ip addr!\n", os_drv_xmac0_name);
+    set_if(os_drv_xmac0_name, "192.168.4.10", "192.168.4.1", "255.255.255.0");
     if (RT_EOK != state)
     {
         goto __exit;
     }
+#endif
+#if defined(MAC_NUM1)
+    os_config.instance_id = MAC_NUM1_CONTROLLER;
+    os_config.interface = MAC_NUM1_MII_INTERFACE;
+    os_config.autonegotiation = 1; /* 1 is autonegotiation ,0 is manually set */
+    os_config.phy_speed = FXMAC_PHY_SPEED_1000M;  /* FXMAC_PHY_SPEED_XXX */
+    os_config.phy_duplex = FXMAC_PHY_FULL_DUPLEX; /* FXMAC_PHY_XXX_DUPLEX */
+
+    pOsMac = FXmacOsGetInstancePointer(&os_config);
+    if (pOsMac == NULL)
+    {
+        LOG_E("FXmacOsGetInstancePointer is error\r\n");
+        return -RT_ERROR;
+    }
 
+    const char *os_drv_xmac1_name = "e1";
+    const char *e1_thread_name = "e1_link_detect";
 
+    state = rt_hw_xmac_init(pOsMac, os_drv_xmac1_name, e1_thread_name);
+    rt_kprintf("Set Xmac %s ip addr!\n", os_drv_xmac1_name);
+    set_if(os_drv_xmac1_name, "192.168.4.11", "192.168.4.1", "255.255.255.0");
+    if (RT_EOK != state)
+    {
+        goto __exit;
+    }
+#endif
 __exit:
     return state;
 }

+ 5 - 0
bsp/phytium/libraries/port/fdriver_port/sdkconfig.h

@@ -0,0 +1,5 @@
+#ifndef SDK_CONFIG_H__
+#define SDK_CONFIG_H__
+
+/* CONFIG_FXMAC_PHY_YT is not set */
+#endif

+ 32 - 0
bsp/phytium/libraries/port/lwip_port/lwip_port.h

@@ -0,0 +1,32 @@
+/*
+ * Copyright : (C) 2023 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: lwip_port.h
+ * Created Date: 2023-11-28 17:22:15
+ * Last Modified: 2023-12-07 11:18:28
+ * Description:  This file is for
+ *
+ * Modify History:
+ *  Ver      Who        Date               Changes
+ * -----  ----------  --------  ---------------------------------
+ *  1.0   liuzhihong  2023/11/28        first release
+ */
+#ifndef LWIP_PORT_H
+#define LWIP_PORT_H
+
+#include "drv_xmac.h"
+
+#define LWIP_PORT_INTERFACE_SGMII  FXMAC_OS_INTERFACE_SGMII
+#define LWIP_PORT_INTERFACE_RGMII  FXMAC_OS_INTERFACE_RGMII
+
+#endif