Bladeren bron

[nuvoton] Update drivers and project setting. (#5726)

Wayne 3 jaren geleden
bovenliggende
commit
7fee6530f9
41 gewijzigde bestanden met toevoegingen van 2160 en 2065 verwijderingen
  1. 16 14
      bsp/nuvoton/libraries/m031/rtt_port/drv_rtc.c
  2. 16 14
      bsp/nuvoton/libraries/m2354/rtt_port/drv_rtc.c
  3. 16 14
      bsp/nuvoton/libraries/m480/rtt_port/drv_rtc.c
  4. 2 0
      bsp/nuvoton/libraries/n9h30/Script/InitDDR2.ini
  5. 12 0
      bsp/nuvoton/libraries/n9h30/Script/N9H30.sct
  6. 15 13
      bsp/nuvoton/libraries/n9h30/rtt_port/drv_rtc.c
  7. 17 4
      bsp/nuvoton/libraries/nu_packages/Kconfig
  8. 3 0
      bsp/nuvoton/libraries/nu_packages/SSD1963/lcd_ssd1963.c
  9. 18 0
      bsp/nuvoton/libraries/nu_packages/TPC/SConscript
  10. 490 0
      bsp/nuvoton/libraries/nu_packages/TPC/gt911.c
  11. 41 0
      bsp/nuvoton/libraries/nu_packages/TPC/gt911.h
  12. 644 0
      bsp/nuvoton/libraries/nu_packages/TPC/ili.c
  13. 18 0
      bsp/nuvoton/libraries/nu_packages/TPC/ili.h
  14. 117 0
      bsp/nuvoton/libraries/nu_packages/TPC/tpc_worker.c
  15. 15 13
      bsp/nuvoton/libraries/nuc980/rtt_port/drv_rtc.c
  16. 87 81
      bsp/nuvoton/nk-980iot/.config
  17. 4 6
      bsp/nuvoton/nk-980iot/README.md
  18. 39 44
      bsp/nuvoton/nk-980iot/rtconfig.h
  19. 58 73
      bsp/nuvoton/nk-980iot/spinor.config
  20. 38 10
      bsp/nuvoton/nk-980iot/template.uvproj
  21. 0 387
      bsp/nuvoton/nk-980iot/template.uvprojx
  22. 46 64
      bsp/nuvoton/nk-n9h30/.config
  23. 3 3
      bsp/nuvoton/nk-n9h30/README.md
  24. 7 0
      bsp/nuvoton/nk-n9h30/applications/lvgl/lv_conf.h
  25. 4 0
      bsp/nuvoton/nk-n9h30/applications/lvgl/lv_port_disp.c
  26. 18 35
      bsp/nuvoton/nk-n9h30/rtconfig.h
  27. 41 12
      bsp/nuvoton/nk-n9h30/template.uvproj
  28. 0 387
      bsp/nuvoton/nk-n9h30/template.uvprojx
  29. 48 63
      bsp/nuvoton/nk-rtu980/.config
  30. 4 6
      bsp/nuvoton/nk-rtu980/README.md
  31. 17 35
      bsp/nuvoton/nk-rtu980/rtconfig.h
  32. 43 14
      bsp/nuvoton/nk-rtu980/template.uvproj
  33. 0 387
      bsp/nuvoton/nk-rtu980/template.uvprojx
  34. 45 63
      bsp/nuvoton/numaker-iot-m487/.config
  35. 14 33
      bsp/nuvoton/numaker-iot-m487/rtconfig.h
  36. 61 65
      bsp/nuvoton/numaker-m032ki/.config
  37. 15 32
      bsp/nuvoton/numaker-m032ki/rtconfig.h
  38. 49 63
      bsp/nuvoton/numaker-m2354/.config
  39. 15 33
      bsp/nuvoton/numaker-m2354/rtconfig.h
  40. 49 64
      bsp/nuvoton/numaker-pfm-m487/.config
  41. 15 33
      bsp/nuvoton/numaker-pfm-m487/rtconfig.h

+ 16 - 14
bsp/nuvoton/libraries/m031/rtt_port/drv_rtc.c

@@ -29,12 +29,12 @@
 
 /* rtc date upper bound reaches the year of 2099. */
 #define RTC_TM_UPPER_BOUND                                              \
-{   .tm_year = CONV_TO_TM_YEAR(2099),                                   \
-    .tm_mon  = CONV_TO_TM_MON(12),                                      \
-    .tm_mday  = 31,                                                     \
-    .tm_hour  = 23,                                                     \
-    .tm_min = 59,                                                       \
-    .tm_sec  = 59,                                                      \
+{   .tm_year = CONV_TO_TM_YEAR(2038),                                   \
+    .tm_mon  = CONV_TO_TM_MON(1),                                       \
+    .tm_mday  = 19,                                                     \
+    .tm_hour  = 3,                                                      \
+    .tm_min = 14,                                                       \
+    .tm_sec  = 07,                                                      \
 }
 
 /* rtc date lower bound reaches the year of 2000. */
@@ -57,8 +57,8 @@ static rt_size_t nu_rtc_read(rt_device_t dev, rt_off_t pos, void *buffer, rt_siz
 static rt_size_t nu_rtc_write(rt_device_t dev, rt_off_t pos, const void *buffer, rt_size_t size);
 #endif
 
-static rt_err_t nu_rtc_is_date_valid(const time_t *const t);
-static void nu_rtc_init(void);
+static rt_err_t nu_rtc_is_date_valid(const time_t t);
+static rt_err_t nu_rtc_init(void);
 
 #if defined(RT_USING_ALARM)
 static void nu_rtc_alarm_reset(void);
@@ -74,7 +74,7 @@ extern rt_err_t set_time(rt_uint32_t hour, rt_uint32_t minute, rt_uint32_t secon
 static struct rt_device device_rtc;
 
 
-static void nu_rtc_init(void)
+static rt_err_t nu_rtc_init(void)
 {
     /* hw rtc initialise */
     RTC_Open(NULL);
@@ -86,6 +86,8 @@ static void nu_rtc_init(void)
     RTC_EnableInt(RTC_INTEN_ALMIEN_Msk);
     NVIC_EnableIRQ(RTC_IRQn);
 #endif
+
+    return RT_EOK;
 }
 
 
@@ -173,7 +175,7 @@ static rt_size_t nu_rtc_write(rt_device_t dev, rt_off_t pos, const void *buffer,
 #endif
 
 
-static rt_err_t nu_rtc_is_date_valid(const time_t *const t)
+static rt_err_t nu_rtc_is_date_valid(const time_t t)
 {
     static struct tm tm_upper = RTC_TM_UPPER_BOUND;
     static struct tm tm_lower = RTC_TM_LOWER_BOUND;
@@ -188,7 +190,7 @@ static rt_err_t nu_rtc_is_date_valid(const time_t *const t)
     }
 
     /* check the date is supported by rtc. */
-    if ((*t > t_upper) || (*t < t_lower))
+    if ((t > t_upper) || (t < t_lower))
         return -(RT_EINVAL);
 
     return RT_EOK;
@@ -230,11 +232,11 @@ static rt_err_t nu_rtc_control(rt_device_t dev, int cmd, void *args)
     case RT_DEVICE_CTRL_RTC_SET_TIME:
 
         time = (time_t *) args;
-        tm_in = gmtime(time);
 
-        if (nu_rtc_is_date_valid(time) != RT_EOK)
-            return RT_ERROR;
+        if (nu_rtc_is_date_valid(*time) != RT_EOK)
+            return -(RT_ERROR);
 
+        tm_in = gmtime(time);
         hw_time.u32Year = CONV_FROM_TM_YEAR(tm_in->tm_year);
         hw_time.u32Month = CONV_FROM_TM_MON(tm_in->tm_mon);
         hw_time.u32Day = tm_in->tm_mday;

+ 16 - 14
bsp/nuvoton/libraries/m2354/rtt_port/drv_rtc.c

@@ -29,12 +29,12 @@
 
 /* rtc date upper bound reaches the year of 2099. */
 #define RTC_TM_UPPER_BOUND                                              \
-{   .tm_year = CONV_TO_TM_YEAR(2099),                                   \
-    .tm_mon  = CONV_TO_TM_MON(12),                                      \
-    .tm_mday  = 31,                                                     \
-    .tm_hour  = 23,                                                     \
-    .tm_min = 59,                                                       \
-    .tm_sec  = 59,                                                      \
+{   .tm_year = CONV_TO_TM_YEAR(2038),                                   \
+    .tm_mon  = CONV_TO_TM_MON(1),                                       \
+    .tm_mday  = 19,                                                     \
+    .tm_hour  = 3,                                                      \
+    .tm_min = 14,                                                       \
+    .tm_sec  = 07,                                                      \
 }
 
 /* rtc date lower bound reaches the year of 2000. */
@@ -57,8 +57,8 @@ static rt_err_t nu_rtc_control(rt_device_t dev, int cmd, void *args);
     static rt_size_t nu_rtc_write(rt_device_t dev, rt_off_t pos, const void *buffer, rt_size_t size);
 #endif
 
-static rt_err_t nu_rtc_is_date_valid(const time_t *const t);
-static void nu_rtc_init(void);
+static rt_err_t nu_rtc_is_date_valid(const time_t t);
+static rt_err_t nu_rtc_init(void);
 
 #if defined(RT_USING_ALARM)
     static void nu_rtc_alarm_reset(void);
@@ -74,7 +74,7 @@ static void nu_rtc_init(void);
 static struct rt_device device_rtc;
 
 
-static void nu_rtc_init(void)
+static rt_err_t nu_rtc_init(void)
 {
     /* hw rtc initialise */
     RTC_Open(NULL);
@@ -89,6 +89,8 @@ static void nu_rtc_init(void)
     RTC_EnableInt(RTC_INTEN_ALMIEN_Msk);
     NVIC_EnableIRQ(RTC_IRQn);
 #endif
+
+    return RT_EOK;
 }
 
 
@@ -176,7 +178,7 @@ static rt_size_t nu_rtc_write(rt_device_t dev, rt_off_t pos, const void *buffer,
 #endif
 
 
-static rt_err_t nu_rtc_is_date_valid(const time_t *const t)
+static rt_err_t nu_rtc_is_date_valid(const time_t t)
 {
     static struct tm tm_upper = RTC_TM_UPPER_BOUND;
     static struct tm tm_lower = RTC_TM_LOWER_BOUND;
@@ -191,7 +193,7 @@ static rt_err_t nu_rtc_is_date_valid(const time_t *const t)
     }
 
     /* check the date is supported by rtc. */
-    if ((*t > t_upper) || (*t < t_lower))
+    if ((t > t_upper) || (t < t_lower))
         return -(RT_EINVAL);
 
     return RT_EOK;
@@ -233,11 +235,11 @@ static rt_err_t nu_rtc_control(rt_device_t dev, int cmd, void *args)
     case RT_DEVICE_CTRL_RTC_SET_TIME:
 
         time = (time_t *) args;
-        tm_in = gmtime(time);
 
-        if (nu_rtc_is_date_valid(time) != RT_EOK)
-            return RT_ERROR;
+        if (nu_rtc_is_date_valid(*time) != RT_EOK)
+            return -(RT_ERROR);
 
+        tm_in = gmtime(time);
         hw_time.u32Year = CONV_FROM_TM_YEAR(tm_in->tm_year);
         hw_time.u32Month = CONV_FROM_TM_MON(tm_in->tm_mon);
         hw_time.u32Day = tm_in->tm_mday;

+ 16 - 14
bsp/nuvoton/libraries/m480/rtt_port/drv_rtc.c

@@ -29,12 +29,12 @@
 
 /* rtc date upper bound reaches the year of 2099. */
 #define RTC_TM_UPPER_BOUND                                              \
-{   .tm_year = CONV_TO_TM_YEAR(2099),                                   \
-    .tm_mon  = CONV_TO_TM_MON(12),                                      \
-    .tm_mday  = 31,                                                     \
-    .tm_hour  = 23,                                                     \
-    .tm_min = 59,                                                       \
-    .tm_sec  = 59,                                                      \
+{   .tm_year = CONV_TO_TM_YEAR(2038),                                   \
+    .tm_mon  = CONV_TO_TM_MON(1),                                       \
+    .tm_mday  = 19,                                                     \
+    .tm_hour  = 3,                                                      \
+    .tm_min = 14,                                                       \
+    .tm_sec  = 07,                                                      \
 }
 
 /* rtc date lower bound reaches the year of 2000. */
@@ -57,8 +57,8 @@ static rt_err_t nu_rtc_control(rt_device_t dev, int cmd, void *args);
     static rt_size_t nu_rtc_write(rt_device_t dev, rt_off_t pos, const void *buffer, rt_size_t size);
 #endif
 
-static rt_err_t nu_rtc_is_date_valid(const time_t *const t);
-static void nu_rtc_init(void);
+static rt_err_t nu_rtc_is_date_valid(const time_t t);
+static rt_err_t nu_rtc_init(void);
 
 #if defined(RT_USING_ALARM)
     static void nu_rtc_alarm_reset(void);
@@ -74,7 +74,7 @@ static void nu_rtc_init(void);
 static struct rt_device device_rtc;
 
 
-static void nu_rtc_init(void)
+static rt_err_t nu_rtc_init(void)
 {
     /* hw rtc initialise */
     RTC_Open(NULL);
@@ -88,6 +88,8 @@ static void nu_rtc_init(void)
     RTC_EnableInt(RTC_INTEN_ALMIEN_Msk);
     NVIC_EnableIRQ(RTC_IRQn);
 #endif
+
+    return RT_EOK;
 }
 
 
@@ -175,7 +177,7 @@ static rt_size_t nu_rtc_write(rt_device_t dev, rt_off_t pos, const void *buffer,
 #endif
 
 
-static rt_err_t nu_rtc_is_date_valid(const time_t *const t)
+static rt_err_t nu_rtc_is_date_valid(const time_t t)
 {
     static struct tm tm_upper = RTC_TM_UPPER_BOUND;
     static struct tm tm_lower = RTC_TM_LOWER_BOUND;
@@ -190,7 +192,7 @@ static rt_err_t nu_rtc_is_date_valid(const time_t *const t)
     }
 
     /* check the date is supported by rtc. */
-    if ((*t > t_upper) || (*t < t_lower))
+    if ((t > t_upper) || (t < t_lower))
         return -(RT_EINVAL);
 
     return RT_EOK;
@@ -232,11 +234,11 @@ static rt_err_t nu_rtc_control(rt_device_t dev, int cmd, void *args)
     case RT_DEVICE_CTRL_RTC_SET_TIME:
 
         time = (time_t *) args;
-        tm_in = gmtime(time);
 
-        if (nu_rtc_is_date_valid(time) != RT_EOK)
-            return RT_ERROR;
+        if (nu_rtc_is_date_valid(*time) != RT_EOK)
+            return -(RT_ERROR);
 
+        tm_in = gmtime(time);
         hw_time.u32Year = CONV_FROM_TM_YEAR(tm_in->tm_year);
         hw_time.u32Month = CONV_FROM_TM_MON(tm_in->tm_mon);
         hw_time.u32Day = tm_in->tm_mday;

+ 2 - 0
bsp/nuvoton/libraries/n9h30/Script/InitDDR2.ini

@@ -0,0 +1,2 @@
+LOAD %L INCREMENTAL
+$ = 0

+ 12 - 0
bsp/nuvoton/libraries/n9h30/Script/N9H30.sct

@@ -0,0 +1,12 @@
+
+
+LR_IROM1 0x00000000  {    ; load region size_region
+    ER_IROM1 0x00000000 {  ; load address = execution address
+        *.o (NUC_INIT, +First)
+        *(InRoot$$Sections)
+        .ANY (+RO)
+    }
+    RW_RAM1 +0  {  ; RW_RAM1 start address is after ER_ROM1
+        .ANY (+RW +ZI)
+    }
+}

+ 15 - 13
bsp/nuvoton/libraries/n9h30/rtt_port/drv_rtc.c

@@ -30,12 +30,12 @@
 
 /* rtc date upper bound reaches the year of 2099. */
 #define RTC_TM_UPPER_BOUND                                              \
-{   .tm_year = CONV_TO_TM_YEAR(2099),                                   \
-    .tm_mon  = CONV_TO_TM_MON(12),                                      \
-    .tm_mday  = 31,                                                     \
-    .tm_hour  = 23,                                                     \
-    .tm_min = 59,                                                       \
-    .tm_sec  = 59,                                                      \
+{   .tm_year = CONV_TO_TM_YEAR(2038),                                   \
+    .tm_mon  = CONV_TO_TM_MON(1),                                       \
+    .tm_mday  = 19,                                                     \
+    .tm_hour  = 3,                                                      \
+    .tm_min = 14,                                                       \
+    .tm_sec  = 07,                                                      \
 }
 
 /* rtc date lower bound reaches the year of 2000. */
@@ -58,8 +58,8 @@ static rt_err_t nu_rtc_control(rt_device_t dev, int cmd, void *args);
     static rt_size_t nu_rtc_write(rt_device_t dev, rt_off_t pos, const void *buffer, rt_size_t size);
 #endif
 
-static rt_err_t nu_rtc_is_date_valid(const time_t *const t);
-static void nu_rtc_init(void);
+static rt_err_t nu_rtc_is_date_valid(const time_t t);
+static rt_err_t nu_rtc_init(void);
 
 #if defined(RT_USING_ALARM)
     static void nu_rtc_alarm_reset(void);
@@ -76,7 +76,7 @@ static void nu_rtc_init(void);
 static struct rt_device device_rtc;
 
 
-static void nu_rtc_init(void)
+static rt_err_t nu_rtc_init(void)
 {
     S_RTC_TIME_DATA_T sInitTime = {0};
 
@@ -114,6 +114,8 @@ static void nu_rtc_init(void)
     rt_hw_interrupt_umask(IRQ_RTC);
 
 #endif
+
+    return RT_EOK;
 }
 
 
@@ -194,7 +196,7 @@ static rt_size_t nu_rtc_write(rt_device_t dev, rt_off_t pos, const void *buffer,
 #endif
 
 
-static rt_err_t nu_rtc_is_date_valid(const time_t *const t)
+static rt_err_t nu_rtc_is_date_valid(const time_t t)
 {
     static struct tm tm_upper = RTC_TM_UPPER_BOUND;
     static struct tm tm_lower = RTC_TM_LOWER_BOUND;
@@ -209,7 +211,7 @@ static rt_err_t nu_rtc_is_date_valid(const time_t *const t)
     }
 
     /* check the date is supported by rtc. */
-    if ((*t > t_upper) || (*t < t_lower))
+    if ((t > t_upper) || (t < t_lower))
         return -(RT_EINVAL);
 
     return RT_EOK;
@@ -255,11 +257,11 @@ static rt_err_t nu_rtc_control(rt_device_t dev, int cmd, void *args)
     case RT_DEVICE_CTRL_RTC_SET_TIME:
 
         time = (time_t *) args;
-        tm_in = gmtime(time);
 
-        if (nu_rtc_is_date_valid(time) != RT_EOK)
+        if (nu_rtc_is_date_valid(*time) != RT_EOK)
             return -(RT_ERROR);
 
+        tm_in = gmtime(time);
         hw_time.u32Year = CONV_FROM_TM_YEAR(tm_in->tm_year);
         hw_time.u32cMonth = CONV_FROM_TM_MON(tm_in->tm_mon);
         hw_time.u32cDay = tm_in->tm_mday;

+ 17 - 4
bsp/nuvoton/libraries/nu_packages/Kconfig

@@ -136,16 +136,29 @@ menu "Nuvoton Packages Config"
 
         endif
 
-    config NU_PKG_USING_ILI_TPC
-        bool "ILI Series TPC"
+    config NU_PKG_USING_TPC
+        bool "Support Touch Panel Controller over I2C"
         select RT_USING_TOUCH
+        select RT_TOUCH_PIN_IRQ
         select RT_USING_I2C
-        select BSP_USING_I2C
-        default n
+
+    if NU_PKG_USING_TPC
+        choice
+            prompt "Select TPC drivers"
+            config NU_PKG_USING_TPC_ILI
+                bool "ILI Series TPC"
+                default n
+
+            config NU_PKG_USING_TPC_GT911
+                bool "GT911 TPC"
+                default n
+        endchoice
+    endif
 
     config NU_PKG_USING_ADC_TOUCH
         bool "ADC touch function"
         default n
+    
 
     if NU_PKG_USING_ADC_TOUCH
         config NU_PKG_USING_ADC_TOUCH_SW

+ 3 - 0
bsp/nuvoton/libraries/nu_packages/SSD1963/lcd_ssd1963.c

@@ -24,6 +24,7 @@
 #endif
 
 #define ssd1963_delay_ms(ms)    rt_thread_mdelay(ms)
+static void ssd1963_fillscreen(rt_uint16_t color);
 
 static struct rt_device_graphic_info g_SSD1963Info =
 {
@@ -125,6 +126,8 @@ static rt_err_t ssd1963_lcd_init(rt_device_t dev)
     ssd1963_send_cmd(0x29);    //SET display on
     ssd1963_delay_ms(5);
 
+    ssd1963_fillscreen(0);
+
     SET_DISP_ON;
 
     SET_BACKLIGHT_ON;

+ 18 - 0
bsp/nuvoton/libraries/nu_packages/TPC/SConscript

@@ -0,0 +1,18 @@
+from building import *
+Import('rtconfig')
+
+src   = []
+cwd   = GetCurrentDir()
+path  = [cwd]
+
+# add src and include to group.
+src += Glob('tpc_worker.c')
+if GetDepend('NU_PKG_USING_TPC_ILI'):
+    src += Glob('ili.c')
+elif GetDepend('NU_PKG_USING_TPC_GT911'):
+    src += Glob('gt911.c')
+else:
+    src = []
+
+group = DefineGroup('nu_pkgs_tpc', src, depend = [''], CPPPATH = path)
+Return('group')

+ 490 - 0
bsp/nuvoton/libraries/nu_packages/TPC/gt911.c

@@ -0,0 +1,490 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2021-01-13     RiceChen     the first version
+ * 2022-02-25     Wayne        optimization
+ */
+
+#include <rtthread.h>
+#include <rtdevice.h>
+
+#include <string.h>
+
+#define DBG_TAG "gt911"
+#define DBG_LVL DBG_INFO
+#include <rtdbg.h>
+
+#include "gt911.h"
+
+static struct rt_i2c_client gt911_client;
+
+/* hardware section */
+static rt_uint8_t GT911_CFG_TBL[] =
+{
+    0x6b, 0x00, 0x04, 0x58, 0x02, 0x05, 0x0d, 0x00, 0x01, 0x0f,
+    0x28, 0x0f, 0x50, 0x32, 0x03, 0x05, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8a, 0x2a, 0x0c,
+    0x45, 0x47, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x40, 0x03, 0x2c,
+    0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x64, 0x32, 0x00, 0x00,
+    0x00, 0x28, 0x64, 0x94, 0xd5, 0x02, 0x07, 0x00, 0x00, 0x04,
+    0x95, 0x2c, 0x00, 0x8b, 0x34, 0x00, 0x82, 0x3f, 0x00, 0x7d,
+    0x4c, 0x00, 0x7a, 0x5b, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x18, 0x16, 0x14, 0x12, 0x10, 0x0e, 0x0c, 0x0a,
+    0x08, 0x06, 0x04, 0x02, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x16, 0x18, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21,
+    0x22, 0x24, 0x13, 0x12, 0x10, 0x0f, 0x0a, 0x08, 0x06, 0x04,
+    0x02, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x79, 0x01,
+};
+static void gt911_touch_up(void *buf, rt_int8_t id);
+static rt_err_t gt911_write_reg(struct rt_i2c_client *dev, rt_uint8_t *data, rt_uint8_t len)
+{
+    struct rt_i2c_msg msgs;
+
+    msgs.addr  = dev->client_addr;
+    msgs.flags = RT_I2C_WR;
+    msgs.buf   = data;
+    msgs.len   = len;
+
+    if (rt_i2c_transfer(dev->bus, &msgs, 1) == 1)
+    {
+        return RT_EOK;
+    }
+    else
+    {
+        return -RT_ERROR;
+    }
+}
+
+static rt_err_t gt911_read_regs(struct rt_i2c_client *dev, rt_uint8_t *reg, rt_uint8_t *data, rt_uint8_t len)
+{
+    struct rt_i2c_msg msgs[2];
+
+    msgs[0].addr  = dev->client_addr;
+    msgs[0].flags = RT_I2C_WR;
+    msgs[0].buf   = reg;
+    msgs[0].len   = GT911_REGITER_LEN;
+
+    msgs[1].addr  = dev->client_addr;
+    msgs[1].flags = RT_I2C_RD;
+    msgs[1].buf   = data;
+    msgs[1].len   = len;
+
+    if (rt_i2c_transfer(dev->bus, msgs, 2) == 2)
+    {
+        return RT_EOK;
+    }
+    else
+    {
+        return -RT_ERROR;
+    }
+}
+
+static rt_err_t gt911_get_product_id(struct rt_i2c_client *dev, rt_uint8_t *data, rt_uint8_t len)
+{
+    rt_uint8_t reg[2];
+
+    reg[0] = (rt_uint8_t)(GT911_PRODUCT_ID >> 8);
+    reg[1] = (rt_uint8_t)(GT911_PRODUCT_ID & 0xff);
+
+    if (gt911_read_regs(dev, reg, data, len) != RT_EOK)
+    {
+        LOG_E("read id failed");
+        return -RT_ERROR;
+    }
+    return RT_EOK;
+}
+
+static rt_err_t gt911_get_info(struct rt_i2c_client *dev, struct rt_touch_info *info)
+{
+    rt_uint8_t reg[2];
+    rt_uint8_t out_info[7];
+    rt_uint8_t out_len = 7;
+
+    reg[0] = (rt_uint8_t)(GT911_CONFIG_REG >> 8);
+    reg[1] = (rt_uint8_t)(GT911_CONFIG_REG & 0xFF);
+
+    if(gt911_read_regs(dev, reg, out_info, out_len) != RT_EOK)
+    {
+        LOG_E("read info failed");
+        return -RT_ERROR;
+    }
+
+    info->range_x = (out_info[2] << 8) | out_info[1];
+    info->range_y = (out_info[4] << 8) | out_info[3];
+    info->point_num = out_info[5] & 0x0f;
+
+    return RT_EOK;
+}
+
+static rt_err_t gt911_soft_reset(struct rt_i2c_client *dev)
+{
+    rt_uint8_t buf[3];
+
+    buf[0] = (rt_uint8_t)(GT911_COMMAND_REG >> 8);
+    buf[1] = (rt_uint8_t)(GT911_COMMAND_REG & 0xFF);
+    buf[2] = 0x02;
+
+    if(gt911_write_reg(dev, buf, 3) != RT_EOK)
+    {
+        LOG_E("soft reset failed");
+        return -RT_ERROR;
+    }
+    return RT_EOK;
+}
+
+static rt_int16_t pre_x[GT911_MAX_TOUCH] = {-1, -1, -1, -1, -1};
+static rt_int16_t pre_y[GT911_MAX_TOUCH] = {-1, -1, -1, -1, -1};
+static rt_int16_t pre_w[GT911_MAX_TOUCH] = {-1, -1, -1, -1, -1};
+static rt_uint8_t s_tp_dowm[GT911_MAX_TOUCH];
+
+static void gt911_touch_up(void *buf, rt_int8_t id)
+{
+    struct rt_touch_data *read_data = (struct rt_touch_data *)buf;
+
+    if(s_tp_dowm[id] == 1)
+    {
+        s_tp_dowm[id] = 0;
+        read_data[id].event = RT_TOUCH_EVENT_UP;
+    }
+    else
+    {
+        read_data[id].event = RT_TOUCH_EVENT_NONE;
+    }
+
+    read_data[id].timestamp = rt_touch_get_ts();
+    read_data[id].width = pre_w[id];
+    read_data[id].x_coordinate = pre_x[id];
+    read_data[id].y_coordinate = pre_y[id];
+    read_data[id].track_id = id;
+
+    pre_x[id] = -1;  /* last point is none */
+    pre_y[id] = -1;
+    pre_w[id] = -1;
+}
+
+static void gt911_touch_down(void *buf, rt_int8_t id, rt_int16_t x, rt_int16_t y, rt_int16_t w)
+{
+    struct rt_touch_data *read_data = (struct rt_touch_data *)buf;
+
+    if (s_tp_dowm[id] == 1)
+    {
+        read_data[id].event = RT_TOUCH_EVENT_MOVE;
+
+    }
+    else
+    {
+        read_data[id].event = RT_TOUCH_EVENT_DOWN;
+        s_tp_dowm[id] = 1;
+    }
+
+    read_data[id].timestamp = rt_touch_get_ts();
+    read_data[id].width = w;
+    read_data[id].x_coordinate = x;
+    read_data[id].y_coordinate = y;
+    read_data[id].track_id = id;
+
+    pre_x[id] = x; /* save last point */
+    pre_y[id] = y;
+    pre_w[id] = w;
+}
+
+static rt_size_t gt911_read_point(struct rt_touch_device *touch, void *buf, rt_size_t read_num)
+{
+    rt_uint8_t point_status = 0;
+    rt_uint8_t touch_num = 0;
+    rt_uint8_t write_buf[3];
+    rt_uint8_t cmd[2];
+    rt_uint8_t read_buf[8 * GT911_MAX_TOUCH] = {0};
+    rt_uint8_t read_index;
+    rt_int8_t read_id = 0;
+    rt_int16_t input_x = 0;
+    rt_int16_t input_y = 0;
+    rt_int16_t input_w = 0;
+
+    static rt_uint8_t pre_touch = 0;
+    static rt_int8_t pre_id[GT911_MAX_TOUCH] = {0};
+
+    /* point status register */
+    cmd[0] = (rt_uint8_t)((GT911_READ_STATUS >> 8) & 0xFF);
+    cmd[1] = (rt_uint8_t)(GT911_READ_STATUS & 0xFF);
+
+    if (gt911_read_regs(&gt911_client, cmd, &point_status, 1) != RT_EOK)
+    {
+        LOG_D("read point failed\n");
+        read_num = 0;
+        goto exit_;
+    }
+
+    if (point_status == 0)             /* no data */
+    {
+        read_num = 0;
+        goto exit_;
+    }
+
+    if ((point_status & 0x80) == 0)    /* data is not ready */
+    {
+        read_num = 0;
+        goto exit_;
+    }
+
+    touch_num = point_status & 0x0f;  /* get point num */
+
+    if (touch_num > GT911_MAX_TOUCH) /* point num is not correct */
+    {
+        read_num = 0;
+        goto exit_;
+    }
+
+    cmd[0] = (rt_uint8_t)((GT911_POINT1_REG >> 8) & 0xFF);
+    cmd[1] = (rt_uint8_t)(GT911_POINT1_REG & 0xFF);
+
+    /* read point num is touch_num */
+    if(gt911_read_regs(&gt911_client, cmd, read_buf, read_num * GT911_POINT_INFO_NUM) !=RT_EOK)
+    {
+        LOG_D("read point failed\n");
+        read_num = 0;
+        goto exit_;
+    }
+
+    if(pre_touch > touch_num)                                       /* point up */
+    {
+        for (read_index = 0; read_index < pre_touch; read_index++)
+        {
+            rt_uint8_t j;
+
+            for (j = 0; j < touch_num; j++)                          /* this time touch num */
+            {
+                read_id = read_buf[j * 8] & 0x0F;
+
+                if (pre_id[read_index] == read_id)                   /* this id is not free */
+                    break;
+
+                if (j >= touch_num - 1)
+                {
+                    rt_uint8_t up_id;
+                    up_id = pre_id[read_index];
+                    gt911_touch_up(buf, up_id);
+                }
+            }
+        }
+    }
+
+    if(touch_num)                                                 /* point down */
+    {
+        rt_uint8_t off_set;
+
+        for(read_index = 0; read_index < touch_num; read_index++)
+        {
+            off_set = read_index * 8;
+            read_id = read_buf[off_set] & 0x0f;
+            pre_id[read_index] = read_id;
+            input_x = read_buf[off_set + 1] | (read_buf[off_set + 2] << 8);	/* x */
+            input_y = read_buf[off_set + 3] | (read_buf[off_set + 4] << 8);	/* y */
+            input_w = read_buf[off_set + 5] | (read_buf[off_set + 6] << 8);	/* size */
+
+            gt911_touch_down(buf, read_id, input_x, input_y, input_w);
+        }
+    }
+    else if (pre_touch)
+    {
+        for(read_index = 0; read_index < pre_touch; read_index++)
+        {
+            gt911_touch_up(buf, pre_id[read_index]);
+        }
+    }
+
+    pre_touch = touch_num;
+
+exit_:
+    write_buf[0] = (rt_uint8_t)((GT911_READ_STATUS >> 8) & 0xFF);
+    write_buf[1] = (rt_uint8_t)(GT911_READ_STATUS & 0xFF);
+    write_buf[2] = 0x00;
+    gt911_write_reg(&gt911_client, write_buf, 3);
+
+    return read_num;
+}
+
+static rt_err_t gt911_control(struct rt_touch_device *touch, int cmd, void *arg)
+{
+    if (cmd == RT_TOUCH_CTRL_GET_ID)
+    {
+        return gt911_get_product_id(&gt911_client, arg, 6);
+    }
+
+    if (cmd == RT_TOUCH_CTRL_GET_INFO)
+    {
+        return gt911_get_info(&gt911_client, arg);
+    }
+
+    rt_uint8_t buf[4];
+    rt_uint8_t i = 0;
+    rt_uint8_t *config;
+
+    config = (rt_uint8_t *)rt_calloc(1, sizeof(GT911_CFG_TBL) + GT911_REGITER_LEN);
+    if(config == RT_NULL)
+    {
+        LOG_D("malloc config memory failed\n");
+        return -RT_ERROR;
+    }
+
+    config[0] = (rt_uint8_t)((GT911_CONFIG_REG >> 8) & 0xFF);
+    config[1] = (rt_uint8_t)(GT911_CONFIG_REG & 0xFF);
+
+    memcpy(&config[2], GT911_CFG_TBL, sizeof(GT911_CFG_TBL));
+
+    switch(cmd)
+    {
+        case RT_TOUCH_CTRL_SET_X_RANGE:
+        {
+            rt_uint16_t x_range;
+
+            x_range = *(rt_uint16_t *)arg;
+            config[4] = (rt_uint8_t)(x_range >> 8);
+            config[3] = (rt_uint8_t)(x_range & 0xff);
+
+            GT911_CFG_TBL[2] = config[4];
+            GT911_CFG_TBL[1] = config[3];
+            break;
+        }
+        case RT_TOUCH_CTRL_SET_Y_RANGE:
+        {
+            rt_uint16_t y_range;
+
+            y_range = *(rt_uint16_t *)arg;
+            config[6] = (rt_uint8_t)(y_range >> 8);
+            config[5] = (rt_uint8_t)(y_range & 0xff);
+
+            GT911_CFG_TBL[4] = config[6];
+            GT911_CFG_TBL[3] = config[5];
+            break;
+        }
+        case RT_TOUCH_CTRL_SET_X_TO_Y:
+        {
+            config[8] ^= (1 << 3);
+            break;
+        }
+        case RT_TOUCH_CTRL_SET_MODE:
+        {
+            rt_uint16_t trig_type;
+            trig_type = *(rt_uint16_t *)arg;
+
+            switch (trig_type)
+            {
+            case RT_DEVICE_FLAG_INT_RX:
+                config[8] &= 0xFC;
+                break;
+            case RT_DEVICE_FLAG_RDONLY:
+                config[8] &= 0xFC;
+                config[8] |= 0x02;
+                break;
+            default:
+                break;
+            }
+            break;
+        }
+        default:
+        {
+            break;
+        }
+    }
+
+    if(gt911_write_reg(&gt911_client, config, sizeof(GT911_CFG_TBL) + GT911_ADDR_LEN) != RT_EOK)
+    {
+        LOG_D("send config failed");
+        return -1;
+    }
+
+    buf[0] = (rt_uint8_t)((GT911_CHECK_SUM >> 8) & 0xFF);
+    buf[1] = (rt_uint8_t)(GT911_CHECK_SUM & 0xFF);
+    buf[2] = 0;
+
+    for(i = GT911_ADDR_LEN; i < sizeof(GT911_CFG_TBL) + GT911_ADDR_LEN; i++)
+    {
+        buf[GT911_ADDR_LEN] += config[i];
+    }
+
+    buf[2] = (~buf[2]) + 1;
+    buf[3] = 1;
+
+    gt911_write_reg(&gt911_client, buf, 4);
+    rt_free(config);
+
+    return RT_EOK;
+}
+
+static struct rt_touch_ops gt911_touch_ops =
+{
+    .touch_readpoint = gt911_read_point,
+    .touch_control = gt911_control,
+};
+
+int rt_hw_gt911_init(const char *name, struct rt_touch_config *cfg)
+{
+    struct rt_touch_device *touch_device = RT_NULL;
+    rt_uint32_t bus_speed = 400000;
+
+    touch_device = (struct rt_touch_device *)rt_malloc(sizeof(struct rt_touch_device));
+    if(touch_device == RT_NULL)
+    {
+        LOG_E("touch device malloc fail");
+        return -RT_ERROR;
+    }
+    rt_memset((void *)touch_device, 0, sizeof(struct rt_touch_device));
+
+    /* hw init*/
+    rt_pin_mode(*(rt_uint8_t *)cfg->user_data, PIN_MODE_OUTPUT);
+    rt_pin_mode(cfg->irq_pin.pin, PIN_MODE_OUTPUT);
+
+    rt_pin_write(*(rt_uint8_t *)cfg->user_data, PIN_LOW);
+    rt_pin_write(cfg->irq_pin.pin, PIN_LOW);
+    rt_thread_delay(10);
+    rt_pin_write(*(rt_uint8_t *)cfg->user_data, PIN_HIGH);
+    rt_thread_delay(10);
+    rt_pin_write(cfg->irq_pin.pin, PIN_MODE_INPUT);
+    rt_thread_delay(100);
+
+    gt911_client.bus = (struct rt_i2c_bus_device *)rt_device_find(cfg->dev_name);
+
+    if(gt911_client.bus == RT_NULL)
+    {
+        LOG_E("Can't find %s device", cfg->dev_name);
+        return -RT_ERROR;
+    }
+
+    if(rt_device_open((rt_device_t)gt911_client.bus, RT_DEVICE_FLAG_RDWR) != RT_EOK)
+    {
+        LOG_E("open %s device failed", cfg->dev_name);
+        return -RT_ERROR;
+    }
+
+    if ( rt_device_control((rt_device_t)gt911_client.bus, RT_I2C_DEV_CTRL_CLK, &bus_speed) != RT_EOK )
+    {
+        LOG_E("control %s device failed", cfg->dev_name);
+        return -RT_ERROR;
+    }
+
+    gt911_client.client_addr = GT911_ADDRESS_HIGH;
+    gt911_soft_reset(&gt911_client);
+
+    /* register touch device */
+    touch_device->info.type = RT_TOUCH_TYPE_CAPACITANCE;
+    touch_device->info.vendor = RT_TOUCH_VENDOR_GT;
+    rt_memcpy(&touch_device->config, cfg, sizeof(struct rt_touch_config));
+    touch_device->ops = &gt911_touch_ops;
+
+    rt_hw_touch_register(touch_device, name, RT_DEVICE_FLAG_INT_RX, RT_NULL);
+
+    LOG_I("touch device gt911 init success");
+
+    return RT_EOK;
+}

+ 41 - 0
bsp/nuvoton/libraries/nu_packages/TPC/gt911.h

@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2021-01-13     RiceChen     the first version
+ */
+
+#ifndef __GT911_H__
+#define __GT911_H__
+
+#include "touch.h"
+
+#define GT911_ADDR_LEN          2
+#define GT911_REGITER_LEN       2
+#define GT911_MAX_TOUCH         5
+#define GT911_POINT_INFO_NUM    1
+
+#define GT911_ADDRESS_HIGH      0x5D
+#define GT911_ADDRESS_LOW       0x14
+
+#define GT911_COMMAND_REG       0x8040
+#define GT911_CONFIG_REG        0x8047
+
+#define GT911_PRODUCT_ID        0x8140
+#define GT911_VENDOR_ID         0x814A
+#define GT911_READ_STATUS       0x814E
+
+#define GT911_POINT1_REG        0x814F
+#define GT911_POINT2_REG        0x8157
+#define GT911_POINT3_REG        0x815F
+#define GT911_POINT4_REG        0x8167
+#define GT911_POINT5_REG        0x816F
+
+#define GT911_CHECK_SUM         0x80FF
+
+int rt_hw_gt911_init(const char *name, struct rt_touch_config *cfg);
+
+#endif /* gt911.h */

+ 644 - 0
bsp/nuvoton/libraries/nu_packages/TPC/ili.c

@@ -0,0 +1,644 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2022-02-25     Wayne        the first version
+ */
+
+#include <rtthread.h>
+#include <rtdevice.h>
+
+#include <nu_bitutil.h>
+
+#define DBG_TAG "ili_tpc"
+#define DBG_LVL DBG_INFO
+#include <rtdbg.h>
+
+#include "ili.h"
+
+#define ILI_MAX_TOUCH         5
+#define ILI_ADDRESS           0x41
+
+#define BL_V1_8                     0x108
+#define BL_V1_7                     0x107
+#define BL_V1_6                     0x106
+
+#define ILITEK_TP_CMD_GET_TP_RES            0x20
+#define ILITEK_TP_CMD_GET_SCRN_RES      0x21
+#define ILITEK_TP_CMD_SET_IC_SLEEP      0x30
+#define ILITEK_TP_CMD_SET_IC_WAKE           0x31
+#define ILITEK_TP_CMD_GET_FW_VER            0x40
+#define ILITEK_TP_CMD_GET_PRL_VER           0x42
+#define ILITEK_TP_CMD_GET_MCU_VER           0x61
+#define ILITEK_TP_CMD_GET_IC_MODE           0xC0
+#define ILITEK_TP_CMD_RESET                 0x60
+
+#define REPORT_COUNT_ADDRESS                  61
+
+struct ili_protocol_info
+{
+    rt_uint16_t     ver;
+    rt_uint8_t      ver_major;
+};
+
+struct ili_ts_data
+{
+    struct rt_touch_device touch_device;
+    struct rt_i2c_client *client;
+
+    rt_base_t       reset_pin;
+    rt_base_t       irq_pin;
+
+    struct ili_protocol_info    ptl;
+    rt_uint8_t      product_id[30];
+    rt_uint16_t     mcu_ver;
+    rt_uint8_t      ic_mode;
+    rt_uint8_t      firmware_ver[8];
+
+    rt_int32_t      screen_max_x;
+    rt_int32_t      screen_max_y;
+    rt_int32_t      screen_min_x;
+    rt_int32_t      screen_min_y;
+    rt_int32_t      max_tp;
+};
+typedef struct ili_ts_data *ili_ts_data_t;
+
+// Private data
+static struct ili_ts_data g_iliTsData;
+
+static rt_err_t ili_i2c_write_and_read(struct rt_i2c_client *psI2cClient,
+                                       rt_uint8_t *cmd, int write_len, int delay,
+                                       rt_uint8_t *data, int read_len)
+{
+    struct rt_i2c_msg msgs[] =
+    {
+        {
+            .addr = psI2cClient->client_addr,
+            .flags = RT_I2C_WR,
+            .len = write_len,
+            .buf = cmd,
+        },
+        {
+            .addr = psI2cClient->client_addr,
+            .flags = RT_I2C_RD,
+            .len = read_len,
+            .buf = data,
+        },
+    };
+
+    if (delay == 0 && write_len > 0 && read_len > 0)
+    {
+        if (rt_i2c_transfer(psI2cClient->bus, msgs, 2) != 2)
+            goto exit_ili_i2c_write_and_read;
+    }
+    else
+    {
+        if (write_len > 0)
+        {
+            if (rt_i2c_transfer(psI2cClient->bus, msgs, 1) != 1)
+                goto exit_ili_i2c_write_and_read;
+        }
+
+        if (delay > 0)
+            rt_thread_mdelay(delay);
+
+        if (read_len > 0)
+        {
+            if (rt_i2c_transfer(psI2cClient->bus, msgs + 1, 1) != 1)
+                goto exit_ili_i2c_write_and_read;
+        }
+    }
+
+    return RT_EOK;
+
+exit_ili_i2c_write_and_read:
+
+    return -RT_ERROR;
+}
+
+static int ili_get_ptl_ver(ili_ts_data_t psIliTs,
+                           rt_uint16_t  cmd, rt_uint8_t *inbuf, rt_uint8_t *outbuf)
+{
+    rt_int32_t error;
+    rt_uint8_t buf[64];
+
+    buf[0] = cmd;
+    error = ili_i2c_write_and_read(psIliTs->client, buf, 1, 5, outbuf, 3);
+    if (error)
+        return error;
+
+    psIliTs->ptl.ver = nu_get16_be(outbuf);
+    psIliTs->ptl.ver_major = outbuf[0];
+
+    return 0;
+}
+
+static int ili_get_mcu_ver(ili_ts_data_t psIliTs,
+                           rt_uint16_t  cmd, rt_uint8_t *inbuf, rt_uint8_t *outbuf)
+{
+    rt_int32_t error;
+    rt_uint8_t buf[64];
+
+    buf[0] = cmd;
+    error = ili_i2c_write_and_read(psIliTs->client, buf, 1, 5, outbuf, 32);
+    if (error)
+        return error;
+
+    psIliTs->mcu_ver = nu_get16_le(outbuf);
+    rt_memset(psIliTs->product_id, 0, sizeof(psIliTs->product_id));
+    rt_memcpy(psIliTs->product_id, outbuf + 6, 26);
+
+    return 0;
+}
+
+static int ili_get_fw_ver(ili_ts_data_t psIliTs,
+                          rt_uint16_t  cmd, rt_uint8_t *inbuf, rt_uint8_t *outbuf)
+{
+    rt_int32_t error;
+    rt_uint8_t buf[64];
+
+    buf[0] = cmd;
+    error = ili_i2c_write_and_read(psIliTs->client, buf, 1, 5, outbuf, 8);
+    if (error)
+        return error;
+
+    rt_memcpy(psIliTs->firmware_ver, outbuf, 8);
+
+    return 0;
+}
+
+static int ili_get_scrn_res(ili_ts_data_t psIliTs,
+                            rt_uint16_t  cmd, rt_uint8_t *inbuf, rt_uint8_t *outbuf)
+{
+    rt_int32_t error;
+    rt_uint8_t buf[64];
+
+    buf[0] = cmd;
+    error = ili_i2c_write_and_read(psIliTs->client, buf, 1, 5, outbuf, 8);
+    if (error)
+        return error;
+
+    psIliTs->screen_min_x = nu_get16_le(outbuf);
+    psIliTs->screen_min_y = nu_get16_le(outbuf + 2);
+    psIliTs->screen_max_x = nu_get16_le(outbuf + 4);
+    psIliTs->screen_max_y = nu_get16_le(outbuf + 6);
+
+    return 0;
+}
+
+static int ili_get_tp_res(ili_ts_data_t psIliTs,
+                          rt_uint16_t  cmd, rt_uint8_t *inbuf, rt_uint8_t *outbuf)
+{
+    rt_int32_t error;
+    rt_uint8_t buf[64];
+
+    buf[0] = cmd;
+    error = ili_i2c_write_and_read(psIliTs->client, buf, 1, 5, outbuf, 15);
+    if (error)
+        return error;
+
+    psIliTs->max_tp = outbuf[8];
+    if (psIliTs->max_tp > ILI_MAX_TOUCH)
+    {
+        return -RT_EINVAL;
+    }
+
+    return 0;
+}
+
+static int ili_get_ic_mode(ili_ts_data_t psIliTs,
+                           rt_uint16_t cmd, rt_uint8_t *inbuf, rt_uint8_t *outbuf)
+{
+    rt_int32_t error;
+    rt_uint8_t buf[64];
+
+    buf[0] = cmd;
+    error = ili_i2c_write_and_read(psIliTs->client, buf, 1, 5, outbuf, 2);
+    if (error)
+        return error;
+
+    psIliTs->ic_mode = outbuf[0];
+    return 0;
+}
+
+static int ili_send_soft_reset(ili_ts_data_t psIliTs,
+                               rt_uint16_t  cmd, rt_uint8_t *inbuf, rt_uint8_t *outbuf)
+{
+    rt_int32_t error;
+    rt_uint8_t buf[64];
+
+    buf[0] = cmd;
+    error = ili_i2c_write_and_read(psIliTs->client, buf, 1, 0, RT_NULL, 0);
+    if (error)
+        return error;
+
+    return 0;
+}
+
+static void ili_tpc_reset(ili_ts_data_t psIliTs, int delay_ms)
+{
+    if (0)
+    {
+        //FIXME
+        /* hw pin init*/
+        rt_pin_mode(psIliTs->reset_pin, PIN_MODE_OUTPUT);
+
+        /* Reset */
+        rt_pin_write(psIliTs->reset_pin, PIN_HIGH);
+        rt_thread_mdelay(10);
+        rt_pin_write(psIliTs->reset_pin, PIN_LOW);
+    }
+    else
+    {
+        rt_err_t error;
+        error = ili_send_soft_reset(psIliTs, ILITEK_TP_CMD_RESET, RT_NULL, RT_NULL);
+        if (error)
+            return;
+    }
+    rt_thread_mdelay(delay_ms);
+}
+
+static rt_err_t ili_get_info(ili_ts_data_t psIliTs, struct rt_touch_info *info)
+{
+    rt_uint8_t outbuf[256];
+    rt_err_t error;
+
+    error = ili_get_ptl_ver(psIliTs, ILITEK_TP_CMD_GET_PRL_VER, RT_NULL, outbuf);
+    if (error)
+        goto exit_ili_get_info;
+
+    error = ili_get_mcu_ver(psIliTs, ILITEK_TP_CMD_GET_MCU_VER, RT_NULL, outbuf);
+    if (error)
+        goto exit_ili_get_info;
+
+    error = ili_get_fw_ver(psIliTs, ILITEK_TP_CMD_GET_FW_VER, NULL, outbuf);
+    if (error)
+        goto exit_ili_get_info;
+
+    error = ili_get_scrn_res(psIliTs, ILITEK_TP_CMD_GET_SCRN_RES, NULL, outbuf);
+    if (error)
+        goto exit_ili_get_info;
+
+    error = ili_get_tp_res(psIliTs, ILITEK_TP_CMD_GET_TP_RES, NULL, outbuf);
+    if (error)
+        goto exit_ili_get_info;
+
+    error = ili_get_ic_mode(psIliTs, ILITEK_TP_CMD_GET_IC_MODE, NULL, outbuf);
+    if (error)
+        goto exit_ili_get_info;
+
+    LOG_I("touch device probed");
+
+    return RT_EOK;
+
+exit_ili_get_info:
+
+    return -RT_ERROR;
+}
+
+static void ili_info_dump(ili_ts_data_t psIliTs)
+{
+    rt_kprintf("reset_pin: %d\n", psIliTs->reset_pin);
+    rt_kprintf("irq_pin: %d\n", psIliTs->irq_pin);
+    rt_kprintf("ptl.ver: %x \n", psIliTs->ptl.ver_major);
+    rt_kprintf("mcu_ver: %x\n", psIliTs->mcu_ver);
+    rt_kprintf("firmware_ver:[%02X%02X.%02X%02X.%02X%02X.%02X%02X]\n",
+               psIliTs->firmware_ver[0],
+               psIliTs->firmware_ver[1],
+               psIliTs->firmware_ver[2],
+               psIliTs->firmware_ver[3],
+               psIliTs->firmware_ver[4],
+               psIliTs->firmware_ver[5],
+               psIliTs->firmware_ver[6],
+               psIliTs->firmware_ver[7]);
+
+    rt_kprintf("product_id: %s\n", psIliTs->product_id);
+
+    rt_kprintf("screen_max_x: %d\n", psIliTs->screen_max_x);
+    rt_kprintf("screen_max_y: %d\n", psIliTs->screen_max_y);
+    rt_kprintf("screen_min_x: %d\n", psIliTs->screen_min_x);
+    rt_kprintf("screen_min_y: %d\n", psIliTs->screen_min_y);
+    rt_kprintf("max_tp: %d\n", psIliTs->max_tp);
+    rt_kprintf("ic_mode: %d\n", psIliTs->ic_mode);
+}
+
+static rt_int16_t pre_x[ILI_MAX_TOUCH] = {-1, -1, -1, -1, -1};
+static rt_int16_t pre_y[ILI_MAX_TOUCH] = {-1, -1, -1, -1, -1};
+static rt_int16_t pre_w[ILI_MAX_TOUCH] = {-1, -1, -1, -1, -1};
+static rt_uint8_t s_tp_dowm[ILI_MAX_TOUCH];
+
+static void ili_touch_up(void *buf, int8_t id)
+{
+    struct rt_touch_data *read_data = (struct rt_touch_data *)buf;
+
+    if (s_tp_dowm[id] == 1)
+    {
+        s_tp_dowm[id] = 0;
+        read_data[id].event = RT_TOUCH_EVENT_UP;
+    }
+    else
+    {
+        read_data[id].event = RT_TOUCH_EVENT_NONE;
+    }
+
+    read_data[id].timestamp = rt_touch_get_ts();
+    read_data[id].width = pre_w[id];
+    read_data[id].x_coordinate = pre_x[id];
+    read_data[id].y_coordinate = pre_y[id];
+    read_data[id].track_id = id;
+
+    pre_x[id] = -1;  /* last point is none */
+    pre_y[id] = -1;
+    pre_w[id] = -1;
+}
+
+static void ili_touch_down(void *buf, int8_t id, int16_t x, int16_t y, int16_t w)
+{
+    struct rt_touch_data *read_data = (struct rt_touch_data *)buf;
+
+    if (s_tp_dowm[id] == 1)
+    {
+        read_data[id].event = RT_TOUCH_EVENT_MOVE;
+
+    }
+    else
+    {
+        read_data[id].event = RT_TOUCH_EVENT_DOWN;
+        s_tp_dowm[id] = 1;
+    }
+
+    read_data[id].timestamp = rt_touch_get_ts();
+    read_data[id].width = w;
+    read_data[id].x_coordinate = x;
+    read_data[id].y_coordinate = y;
+    read_data[id].track_id = id;
+
+    pre_x[id] = x; /* save last point */
+    pre_y[id] = y;
+    pre_w[id] = w;
+}
+
+static rt_size_t ili_read_point(struct rt_touch_device *touch, void *buf, rt_size_t read_num)
+{
+#define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))
+
+    struct ili_ts_data *ts = (ili_ts_data_t)touch;
+    rt_uint8_t tmpbuf[256] = {0};
+    rt_err_t error = 0;
+    rt_int32_t packet_len = 5;
+    rt_int32_t packet_max_point = 10;
+    rt_int8_t touch_num;
+    rt_int32_t i, count;
+    rt_uint16_t x, y;
+    rt_int32_t   tip, point_id;
+
+    static rt_uint8_t pre_touch = 0;
+    static int8_t pre_id[ILI_MAX_TOUCH] = {0};
+
+    error = ili_i2c_write_and_read(ts->client, NULL, 0, 0, tmpbuf, 64);
+    if (error)
+    {
+        LOG_E("get touch info failed, err:%d\n", error);
+        goto exit_ili_read_point;
+    }
+
+    touch_num = tmpbuf[REPORT_COUNT_ADDRESS];
+    if (touch_num > ts->max_tp)
+    {
+        LOG_E("FW report max point:%d > panel info. max:%d\n", touch_num, ts->max_tp);
+        goto exit_ili_read_point;
+    }
+
+    count = DIV_ROUND_UP(touch_num, packet_max_point);
+    for (i = 1; i < count; i++)
+    {
+        error = ili_i2c_write_and_read(ts->client, NULL, 0, 0, tmpbuf + i * 64, 64);
+        if (error)
+        {
+            LOG_E("get touch info. failed, cnt:%d, err:%d\n",   count, error);
+            goto exit_ili_read_point;
+        }
+    }
+
+    if (pre_touch > touch_num)                                       /* point up */
+    {
+        for (i = 0; i < pre_touch; i++)
+        {
+            rt_uint8_t j;
+            for (j = 0; j < touch_num; j++)                          /* this time touch num */
+            {
+                point_id = tmpbuf[j * packet_len + 1] & 0x3F;
+
+                if (pre_id[i] == point_id)                   /* this id is not free */
+                    break;
+
+                if (j >= touch_num - 1)
+                {
+                    ili_touch_up(buf, pre_id[i]);
+                }
+            }
+        }
+    }
+    if (touch_num > 0)
+    {
+        uint32_t range_x = touch->info.range_x;
+        uint32_t range_y = touch->info.range_y;
+
+        for (i = 0; i < touch_num; i++)
+        {
+            tip = tmpbuf[i * packet_len + 1] & 0x40;
+            point_id = tmpbuf[i * packet_len + 1] & 0x3F;
+            pre_id[i] = point_id;
+            if (!tip)
+            {
+                // Up
+                ili_touch_up(buf, point_id);
+                continue;
+            }
+
+            x = nu_get16_le(tmpbuf + i * packet_len + 2);
+            y = nu_get16_le(tmpbuf + i * packet_len + 4);
+
+            if (x > ts->screen_max_x || x < ts->screen_min_x ||
+                    y > ts->screen_max_y || y < ts->screen_min_y)
+            {
+                LOG_E("invalid position, X[%d,%u,%d], Y[%d,%u,%d]\n",
+                      ts->screen_min_x, x, ts->screen_max_x,
+                      ts->screen_min_y, y, ts->screen_max_y);
+                continue;
+            }
+            x = (uint16_t)(range_x * x / ts->screen_max_x);
+            y = (uint16_t)(range_y * y / ts->screen_max_y);
+
+            ili_touch_down(buf, point_id, x, y, 255);
+        }
+    }
+
+    pre_touch = touch_num;
+
+    return read_num;
+
+exit_ili_read_point:
+
+    return 0;
+}
+
+static rt_err_t ili_control(struct rt_touch_device *touch, int cmd, void *arg)
+{
+    switch (cmd)
+    {
+    case RT_TOUCH_CTRL_GET_ID:
+    {
+        RT_ASSERT(arg);
+        rt_uint8_t *pu8ID = arg;
+        rt_memcpy((void *)pu8ID, (void *)&g_iliTsData.product_id[0], 8);
+    }
+    break;
+
+    case RT_TOUCH_CTRL_GET_INFO:
+    {
+        RT_ASSERT(arg);
+
+        touch->info.type      = RT_TOUCH_TYPE_CAPACITANCE;
+        touch->info.vendor    = RT_TOUCH_VENDOR_UNKNOWN;
+        touch->info.point_num = g_iliTsData.max_tp;
+
+        rt_memcpy(arg, &touch->info, sizeof(struct rt_touch_info));
+    }
+    break;
+
+    case RT_TOUCH_CTRL_SET_X_RANGE:
+    {
+        RT_ASSERT(arg);
+        uint16_t range_x = *(rt_uint16_t *)arg;
+        if (range_x > g_iliTsData.screen_max_x || range_x < g_iliTsData.screen_min_x)
+        {
+            LOG_E("Set x range failed. %d", range_x);
+        }
+        else
+        {
+            touch->info.range_x   = range_x;
+        }
+    }
+    break;
+
+    case RT_TOUCH_CTRL_SET_Y_RANGE:
+    {
+        RT_ASSERT(arg);
+        uint16_t range_y = *(rt_uint16_t *)arg;
+        if (range_y > g_iliTsData.screen_max_y || range_y < g_iliTsData.screen_min_y)
+        {
+            LOG_E("Set y range failed. %d", range_y);
+        }
+        else
+        {
+            touch->info.range_y   = range_y;
+        }
+    }
+    break;
+
+    case RT_TOUCH_CTRL_SET_MODE:
+    {
+        rt_uint16_t trig_type;
+        RT_ASSERT(arg);
+        trig_type = *(rt_uint16_t *)arg;
+
+        switch (trig_type)
+        {
+        case RT_DEVICE_FLAG_INT_RX:
+            break;
+        case RT_DEVICE_FLAG_RDONLY:
+            break;
+        default:
+            break;
+        }
+    }
+    break;
+
+    default:
+    {
+    }
+    break;
+
+    }
+
+    return RT_EOK;
+}
+
+static struct rt_touch_ops ili_touch_ops =
+{
+    .touch_readpoint = ili_read_point,
+    .touch_control = ili_control,
+};
+
+int rt_hw_ili_tpc_init(const char *name, struct rt_touch_config *cfg)
+{
+    struct rt_touch_device *touch_device = RT_NULL;
+    rt_uint32_t bus_speed = 400000;
+
+    touch_device = (struct rt_touch_device *)&g_iliTsData.touch_device;
+    rt_memset((void *)touch_device, 0, sizeof(struct rt_touch_device));
+
+    g_iliTsData.client = (struct rt_i2c_client *)rt_malloc(sizeof(struct rt_i2c_client));
+    if (g_iliTsData.client == RT_NULL)
+    {
+        LOG_E("touch device malloc fail");
+        goto exit_rt_hw_ili_tpc_init;
+    }
+    rt_memset((void *)g_iliTsData.client, 0, sizeof(struct rt_i2c_client));
+
+    g_iliTsData.reset_pin = *((rt_base_t *)cfg->user_data);
+    g_iliTsData.irq_pin   = cfg->irq_pin.pin;
+
+    g_iliTsData.client->client_addr = ILI_ADDRESS;
+    g_iliTsData.client->bus = (struct rt_i2c_bus_device *)rt_device_find(cfg->dev_name);
+    if (g_iliTsData.client->bus == RT_NULL)
+    {
+        LOG_E("Can't find %s device", cfg->dev_name);
+        goto exit_rt_hw_ili_tpc_init;
+    }
+
+    if (rt_device_open((rt_device_t)g_iliTsData.client->bus, RT_DEVICE_FLAG_RDWR) != RT_EOK)
+    {
+        LOG_E("open %s device failed", cfg->dev_name);
+        goto exit_rt_hw_ili_tpc_init;
+    }
+
+    /* register touch device */
+    rt_memcpy(&touch_device->config, cfg, sizeof(struct rt_touch_config));
+    touch_device->ops = &ili_touch_ops;
+    if (rt_hw_touch_register(touch_device, name, RT_DEVICE_FLAG_INT_RX, RT_NULL) != RT_EOK)
+    {
+        LOG_E("register %s device failed", name);
+        goto exit_rt_hw_ili_tpc_init;
+    }
+
+    ili_tpc_reset(&g_iliTsData, 300);
+
+    if (rt_device_control((rt_device_t)g_iliTsData.client->bus, RT_I2C_DEV_CTRL_CLK, &bus_speed) != RT_EOK)
+    {
+        LOG_E("control %s device failed", cfg->dev_name);
+        goto exit_rt_hw_ili_tpc_init;
+    }
+
+    /* Probe */
+    if (ili_get_info(&g_iliTsData, &touch_device->info) != RT_EOK)
+    {
+        LOG_E("Get info failed");
+        return -RT_ERROR;
+    }
+    ili_info_dump(&g_iliTsData);
+
+
+    return 0;
+
+exit_rt_hw_ili_tpc_init:
+
+    if (g_iliTsData.client)
+        rt_free(g_iliTsData.client);
+
+    return -RT_ERROR;
+}

+ 18 - 0
bsp/nuvoton/libraries/nu_packages/TPC/ili.h

@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2022-02-25     Wayne        the first version
+ */
+
+#ifndef __ILI_H__
+#define __ILI_H__
+
+#include "touch.h"
+
+int rt_hw_ili_tpc_init(const char *name, struct rt_touch_config *cfg);
+
+#endif /* ili2130.h */

+ 117 - 0
bsp/nuvoton/libraries/nu_packages/TPC/tpc_worker.c

@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2022-02-25     Wayne        the first version
+ */
+
+#include <rtthread.h>
+#include <rtdevice.h>
+#include "touch.h"
+
+#define THREAD_PRIORITY   5
+#define THREAD_STACK_SIZE 2048
+#define THREAD_TIMESLICE  5
+
+static rt_sem_t  tpc_sem = RT_NULL;
+
+RT_WEAK void nu_touch_inputevent_cb(rt_int16_t x, rt_int16_t y, rt_uint8_t state)
+{
+    rt_kprintf("[%d] %d %d\n", state, x, y);
+}
+
+static rt_err_t rx_callback(rt_device_t dev, rt_size_t size)
+{
+    return rt_sem_release(tpc_sem);
+}
+
+static void tpc_entry(void *parameter)
+{
+    struct rt_touch_data *read_data;
+    struct rt_touch_info info;
+    rt_device_t  dev = RT_NULL;
+
+    const char *name = "ili_tpc";
+    rt_uint32_t x_range = BSP_LCD_WIDTH;
+    rt_uint32_t y_range = BSP_LCD_HEIGHT;
+
+    dev = rt_device_find(name);
+    if (dev == RT_NULL)
+    {
+        rt_kprintf("can't find device:%s\n", name);
+        return;
+    }
+
+    if (rt_device_open(dev, RT_DEVICE_FLAG_INT_RX) != RT_EOK)
+    {
+        rt_kprintf("open device failed!");
+        return;
+    }
+    rt_kprintf("[%s] x: %d, y: %d\n", __func__, x_range, y_range);
+
+    rt_device_control(dev, RT_TOUCH_CTRL_SET_X_RANGE, &x_range);  /* if possible you can set your x y coordinate*/
+    rt_device_control(dev, RT_TOUCH_CTRL_SET_Y_RANGE, &y_range);
+
+    tpc_sem = rt_sem_create("dsem", 0, RT_IPC_FLAG_FIFO);
+    if (tpc_sem == RT_NULL)
+    {
+        rt_kprintf("create dynamic semaphore failed.\n");
+        return;
+    }
+
+    rt_device_set_rx_indicate(dev, rx_callback);
+
+    rt_device_control(dev, RT_TOUCH_CTRL_GET_INFO, &info);
+    rt_kprintf("range_x = %d \n",   info.range_x);
+    rt_kprintf("range_y = %d \n",   info.range_y);
+    rt_kprintf("point_num = %d \n", info.point_num);
+
+    read_data = (struct rt_touch_data *)rt_malloc(sizeof(struct rt_touch_data) * info.point_num);
+    RT_ASSERT(read_data);
+
+    rt_memset(read_data, 0, sizeof(struct rt_touch_data) * info.point_num);
+
+    while (1)
+    {
+        rt_sem_take(tpc_sem, RT_WAITING_FOREVER);
+        rt_device_control(dev, RT_TOUCH_CTRL_DISABLE_INT, RT_NULL);
+
+        if (rt_device_read(dev, 0, read_data, info.point_num) == info.point_num)
+        {
+            for (rt_uint8_t i = 0; i < 1; i++) // Only report one point.
+            {
+                if (read_data[i].event == RT_TOUCH_EVENT_DOWN
+                        || read_data[i].event == RT_TOUCH_EVENT_UP
+                        || read_data[i].event == RT_TOUCH_EVENT_MOVE)
+                {
+                    //rt_kprintf("[%d] %d %d\n", read_data[i].event, read_data[i].x_coordinate, read_data[i].y_coordinate);
+
+                    nu_touch_inputevent_cb(read_data[i].x_coordinate, read_data[i].y_coordinate, read_data[i].event);
+                }
+            }
+        }
+        rt_device_control(dev, RT_TOUCH_CTRL_ENABLE_INT, RT_NULL);
+    }
+}
+
+
+/* Test function */
+int tpc_sample(void)
+{
+    rt_thread_t  tpc_thread;
+    tpc_thread = rt_thread_create("tpc",
+                                  tpc_entry,
+                                  RT_NULL,
+                                  THREAD_STACK_SIZE,
+                                  THREAD_PRIORITY,
+                                  THREAD_TIMESLICE);
+
+    if (tpc_thread != RT_NULL)
+        rt_thread_startup(tpc_thread);
+
+    return 0;
+}
+INIT_APP_EXPORT(tpc_sample);

+ 15 - 13
bsp/nuvoton/libraries/nuc980/rtt_port/drv_rtc.c

@@ -30,12 +30,12 @@
 
 /* rtc date upper bound reaches the year of 2099. */
 #define RTC_TM_UPPER_BOUND                                              \
-{   .tm_year = CONV_TO_TM_YEAR(2099),                                   \
-    .tm_mon  = CONV_TO_TM_MON(12),                                      \
-    .tm_mday  = 31,                                                     \
-    .tm_hour  = 23,                                                     \
-    .tm_min = 59,                                                       \
-    .tm_sec  = 59,                                                      \
+{   .tm_year = CONV_TO_TM_YEAR(2038),                                   \
+    .tm_mon  = CONV_TO_TM_MON(1),                                       \
+    .tm_mday  = 19,                                                     \
+    .tm_hour  = 3,                                                      \
+    .tm_min = 14,                                                       \
+    .tm_sec  = 07,                                                      \
 }
 
 /* rtc date lower bound reaches the year of 2000. */
@@ -58,8 +58,8 @@ static rt_err_t nu_rtc_control(rt_device_t dev, int cmd, void *args);
     static rt_size_t nu_rtc_write(rt_device_t dev, rt_off_t pos, const void *buffer, rt_size_t size);
 #endif
 
-static rt_err_t nu_rtc_is_date_valid(const time_t *const t);
-static void nu_rtc_init(void);
+static rt_err_t nu_rtc_is_date_valid(const time_t t);
+static rt_err_t nu_rtc_init(void);
 
 #if defined(RT_USING_ALARM)
     static void nu_rtc_alarm_reset(void);
@@ -76,7 +76,7 @@ static void nu_rtc_init(void);
 static struct rt_device device_rtc;
 
 
-static void nu_rtc_init(void)
+static rt_err_t nu_rtc_init(void)
 {
     nu_sys_ipclk_enable(RTCCKEN);
 
@@ -93,6 +93,8 @@ static void nu_rtc_init(void)
     rt_hw_interrupt_umask(IRQ_RTC);
 
 #endif
+
+    return RT_EOK;
 }
 
 
@@ -176,7 +178,7 @@ static rt_size_t nu_rtc_write(rt_device_t dev, rt_off_t pos, const void *buffer,
 #endif
 
 
-static rt_err_t nu_rtc_is_date_valid(const time_t *const t)
+static rt_err_t nu_rtc_is_date_valid(const time_t t)
 {
     static struct tm tm_upper = RTC_TM_UPPER_BOUND;
     static struct tm tm_lower = RTC_TM_LOWER_BOUND;
@@ -191,7 +193,7 @@ static rt_err_t nu_rtc_is_date_valid(const time_t *const t)
     }
 
     /* check the date is supported by rtc. */
-    if ((*t > t_upper) || (*t < t_lower))
+    if ((t > t_upper) || (t < t_lower))
         return -(RT_EINVAL);
 
     return RT_EOK;
@@ -233,11 +235,11 @@ static rt_err_t nu_rtc_control(rt_device_t dev, int cmd, void *args)
     case RT_DEVICE_CTRL_RTC_SET_TIME:
 
         time = (time_t *) args;
-        tm_in = gmtime(time);
 
-        if (nu_rtc_is_date_valid(time) != RT_EOK)
+        if (nu_rtc_is_date_valid(*time) != RT_EOK)
             return -(RT_ERROR);
 
+        tm_in = gmtime(time);
         hw_time.u32Year = CONV_FROM_TM_YEAR(tm_in->tm_year);
         hw_time.u32Month = CONV_FROM_TM_MON(tm_in->tm_mon);
         hw_time.u32Day = tm_in->tm_mday;

+ 87 - 81
bsp/nuvoton/nk-980iot/.config

@@ -94,17 +94,8 @@ CONFIG_RT_USING_USER_MAIN=y
 CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
 CONFIG_RT_MAIN_THREAD_PRIORITY=10
 # CONFIG_RT_USING_LEGACY is not set
-
-#
-# C++ features
-#
-# CONFIG_RT_USING_CPLUSPLUS is not set
-
-#
-# Command shell
-#
-CONFIG_RT_USING_FINSH=y
 CONFIG_RT_USING_MSH=y
+CONFIG_RT_USING_FINSH=y
 CONFIG_FINSH_USING_MSH=y
 CONFIG_FINSH_THREAD_NAME="tshell"
 CONFIG_FINSH_THREAD_PRIORITY=20
@@ -118,10 +109,6 @@ CONFIG_FINSH_USING_DESCRIPTION=y
 # CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
 # CONFIG_FINSH_USING_AUTH is not set
 CONFIG_FINSH_ARG_MAX=10
-
-#
-# Device virtual file system
-#
 CONFIG_RT_USING_DFS=y
 CONFIG_DFS_USING_POSIX=y
 CONFIG_DFS_USING_WORKDIR=y
@@ -156,6 +143,8 @@ CONFIG_RT_USING_DFS_DEVFS=y
 # CONFIG_RT_USING_DFS_ROMFS is not set
 # CONFIG_RT_USING_DFS_RAMFS is not set
 # CONFIG_RT_USING_DFS_NFS is not set
+# CONFIG_RT_USING_FAL is not set
+# CONFIG_RT_USING_LWP is not set
 
 #
 # Device Drivers
@@ -183,17 +172,22 @@ CONFIG_RT_USING_ADC=y
 # CONFIG_RT_USING_DAC is not set
 CONFIG_RT_USING_PWM=y
 # CONFIG_RT_USING_MTD_NOR is not set
-CONFIG_RT_USING_MTD_NAND=y
-CONFIG_RT_MTD_NAND_DEBUG=y
+# CONFIG_RT_USING_MTD_NAND is not set
 # CONFIG_RT_USING_PM is not set
 CONFIG_RT_USING_RTC=y
 CONFIG_RT_USING_ALARM=y
 # CONFIG_RT_USING_SOFT_RTC is not set
 # CONFIG_RT_USING_SDIO 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_SFUD=y
+CONFIG_RT_SFUD_USING_SFDP=y
+CONFIG_RT_SFUD_USING_FLASH_INFO_TABLE=y
+CONFIG_RT_SFUD_USING_QSPI=y
+CONFIG_RT_SFUD_SPI_MAX_HZ=50000000
+# CONFIG_RT_DEBUG_SFUD is not set
 # CONFIG_RT_USING_ENC28J60 is not set
 # CONFIG_RT_USING_SPI_WIFI is not set
 CONFIG_RT_USING_WDT=y
@@ -261,7 +255,7 @@ CONFIG_RT_VCOM_TX_TIMEOUT=1000
 CONFIG_RT_USB_MSTORAGE_DISK_NAME="ramdisk1"
 
 #
-# POSIX layer and C standard library
+# C/C++ and POSIX layer
 #
 CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 
@@ -269,8 +263,8 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # POSIX (Portable Operating System Interface) layer
 #
 CONFIG_RT_USING_POSIX_FS=y
-# CONFIG_RT_USING_POSIX_DEVIO is not set
-# CONFIG_RT_USING_POSIX_STDIO is not set
+CONFIG_RT_USING_POSIX_DEVIO=y
+CONFIG_RT_USING_POSIX_STDIO=y
 CONFIG_RT_USING_POSIX_POLL=y
 CONFIG_RT_USING_POSIX_SELECT=y
 # CONFIG_RT_USING_POSIX_TERMIOS is not set
@@ -292,14 +286,11 @@ CONFIG_RT_USING_POSIX_SELECT=y
 #
 # Socket is in the 'Network' category
 #
+# CONFIG_RT_USING_CPLUSPLUS is not set
 
 #
 # Network
 #
-
-#
-# Socket abstraction layer
-#
 CONFIG_RT_USING_SAL=y
 # CONFIG_SAL_INTERNET_CHECK is not set
 
@@ -308,10 +299,6 @@ CONFIG_RT_USING_SAL=y
 #
 CONFIG_SAL_USING_LWIP=y
 CONFIG_SAL_USING_POSIX=y
-
-#
-# Network interface device
-#
 CONFIG_RT_USING_NETDEV=y
 CONFIG_NETDEV_USING_IFCONFIG=y
 CONFIG_NETDEV_USING_PING=y
@@ -321,14 +308,13 @@ CONFIG_NETDEV_USING_AUTO_DEFAULT=y
 CONFIG_NETDEV_IPV4=1
 CONFIG_NETDEV_IPV6=0
 # CONFIG_NETDEV_IPV6_SCOPES is not set
-
-#
-# light weight TCP/IP stack
-#
 CONFIG_RT_USING_LWIP=y
+# CONFIG_RT_USING_LWIP_LOCAL_VERSION is not set
 # CONFIG_RT_USING_LWIP141 is not set
 # CONFIG_RT_USING_LWIP203 is not set
 CONFIG_RT_USING_LWIP212=y
+# CONFIG_RT_USING_LWIP_LATEST is not set
+CONFIG_RT_USING_LWIP_VER_NUM=0x20102
 # CONFIG_RT_USING_LWIP_IPV6 is not set
 CONFIG_RT_LWIP_MEM_ALIGNMENT=4
 CONFIG_RT_LWIP_IGMP=y
@@ -378,18 +364,9 @@ CONFIG_LWIP_NETIF_LOOPBACK=1
 CONFIG_RT_LWIP_STATS=y
 # CONFIG_RT_LWIP_USING_HW_CHECKSUM is not set
 CONFIG_RT_LWIP_USING_PING=y
+# CONFIG_LWIP_USING_DHCPD is not set
 # CONFIG_RT_LWIP_DEBUG is not set
-
-#
-# AT commands
-#
 # CONFIG_RT_USING_AT is not set
-# CONFIG_LWIP_USING_DHCPD is not set
-
-#
-# VBUS(Virtual Software BUS)
-#
-# CONFIG_RT_USING_VBUS is not set
 
 #
 # Utilities
@@ -401,7 +378,7 @@ CONFIG_UTEST_THR_STACK_SIZE=4096
 CONFIG_UTEST_THR_PRIORITY=20
 # CONFIG_RT_USING_VAR_EXPORT is not set
 # CONFIG_RT_USING_RT_LINK is not set
-# CONFIG_RT_USING_LWP is not set
+# CONFIG_RT_USING_VBUS is not set
 
 #
 # RT-Thread Utestcases
@@ -415,6 +392,7 @@ CONFIG_UTEST_THR_PRIORITY=20
 #
 # IoT - internet of things
 #
+# CONFIG_PKG_USING_LWIP is not set
 # CONFIG_PKG_USING_LORAWAN_DRIVER is not set
 # CONFIG_PKG_USING_PAHOMQTT is not set
 # CONFIG_PKG_USING_UMQTT is not set
@@ -425,12 +403,8 @@ CONFIG_UTEST_THR_PRIORITY=20
 # CONFIG_PKG_USING_KAWAII_MQTT is not set
 # CONFIG_PKG_USING_BC28_MQTT is not set
 # CONFIG_PKG_USING_WEBTERMINAL is not set
-# CONFIG_PKG_USING_CJSON is not set
-# CONFIG_PKG_USING_JSMN is not set
 # CONFIG_PKG_USING_LIBMODBUS is not set
 # CONFIG_PKG_USING_FREEMODBUS is not set
-# CONFIG_PKG_USING_LJSON is not set
-# CONFIG_PKG_USING_EZXML is not set
 # CONFIG_PKG_USING_NANOPB is not set
 
 #
@@ -500,16 +474,13 @@ CONFIG_PKG_NETUTILS_VER_NUM=0x99999
 # CONFIG_PKG_USING_ABUP_FOTA is not set
 # CONFIG_PKG_USING_LIBCURL2RTT is not set
 # CONFIG_PKG_USING_CAPNP is not set
-# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
 # CONFIG_PKG_USING_AGILE_TELNET is not set
 # CONFIG_PKG_USING_NMEALIB is not set
-# CONFIG_PKG_USING_AGILE_JSMN is not set
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK 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
-# CONFIG_PKG_USING_RAPIDJSON is not set
 # CONFIG_PKG_USING_BSAL is not set
 # CONFIG_PKG_USING_AGILE_MODBUS is not set
 # CONFIG_PKG_USING_AGILE_FTP is not set
@@ -534,6 +505,22 @@ CONFIG_PKG_NETUTILS_VER_NUM=0x99999
 #
 # language packages
 #
+
+#
+# JSON: JavaScript Object Notation, a lightweight data-interchange format
+#
+# CONFIG_PKG_USING_CJSON is not set
+# CONFIG_PKG_USING_LJSON is not set
+# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
+# CONFIG_PKG_USING_RAPIDJSON is not set
+# CONFIG_PKG_USING_JSMN is not set
+# CONFIG_PKG_USING_AGILE_JSMN is not set
+
+#
+# XML: Extensible Markup Language
+#
+# CONFIG_PKG_USING_SIMPLE_XML is not set
+# CONFIG_PKG_USING_EZXML is not set
 # CONFIG_PKG_USING_LUATOS_SOC is not set
 # CONFIG_PKG_USING_LUA is not set
 # CONFIG_PKG_USING_JERRYSCRIPT is not set
@@ -559,15 +546,7 @@ CONFIG_PKG_NETUTILS_VER_NUM=0x99999
 # CONFIG_PKG_USING_OPENMV is not set
 # CONFIG_PKG_USING_MUPDF is not set
 # CONFIG_PKG_USING_STEMWIN is not set
-CONFIG_PKG_USING_WAVPLAYER=y
-CONFIG_PKG_WAVPLAYER_PATH="/packages/multimedia/wavplayer"
-CONFIG_PKG_WP_USING_PLAY=y
-CONFIG_PKG_WP_PLAY_DEVICE="sound0"
-CONFIG_PKG_WP_USING_RECORD=y
-CONFIG_PKG_WP_RECORD_DEVICE="sound0"
-# CONFIG_PKG_USING_WAVPLAYER_V020 is not set
-CONFIG_PKG_USING_WAVPLAYER_LATEST_VERSION=y
-CONFIG_PKG_WAVPLAYER_VER="latest"
+# CONFIG_PKG_USING_WAVPLAYER is not set
 # CONFIG_PKG_USING_TJPGD is not set
 # CONFIG_PKG_USING_PDFGEN is not set
 # CONFIG_PKG_USING_HELIX is not set
@@ -625,10 +604,15 @@ CONFIG_PKG_WAVPLAYER_VER="latest"
 # CONFIG_PKG_USING_ANV_BENCH is not set
 # CONFIG_PKG_USING_DEVMEM is not set
 # CONFIG_PKG_USING_REGEX is not set
-# CONFIG_PKG_USING_MEM_SANDBOX is not set
+CONFIG_PKG_USING_MEM_SANDBOX=y
+CONFIG_PKG_MEM_SANDBOX_PATH="/packages/tools/mem_sandbox"
+CONFIG_PKG_USING_MEM_SANDBOX_LATEST_VERSION=y
+CONFIG_PKG_MEM_SANDBOX_VER="latest"
 # CONFIG_PKG_USING_SOLAR_TERMS is not set
 # CONFIG_PKG_USING_GAN_ZHI is not set
 # CONFIG_PKG_USING_FDT is not set
+# CONFIG_PKG_USING_CBOX is not set
+# CONFIG_PKG_USING_SNOWFLAKE is not set
 
 #
 # system packages
@@ -647,7 +631,9 @@ CONFIG_PKG_WAVPLAYER_VER="latest"
 # CONFIG_PKG_USING_POSIX_GETLINE is not set
 # CONFIG_PKG_USING_POSIX_WCWIDTH is not set
 # CONFIG_PKG_USING_POSIX_ITOA is not set
-# CONFIG_PKG_USING_POSIX_STRINGS is not set
+CONFIG_PKG_USING_POSIX_STRINGS=y
+CONFIG_PKG_POSIX_STRINGS_PATH="/packages/system/POSIX/strings"
+CONFIG_PKG_POSIX_STRINGS_VER="latest"
 
 #
 # acceleration: Assembly language or algorithmic acceleration packages
@@ -671,29 +657,19 @@ CONFIG_PKG_WAVPLAYER_VER="latest"
 # CONFIG_PKG_USING_UC_CLK is not set
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
-# CONFIG_RT_USING_ARDUINO is not set
+# CONFIG_PKG_USING_RTDUINO is not set
 # CONFIG_PKG_USING_GUIENGINE is not set
 # CONFIG_PKG_USING_PERSIMMON is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
-# CONFIG_PKG_USING_FAL is not set
 # CONFIG_PKG_USING_FLASHDB is not set
 # CONFIG_PKG_USING_SQLITE is not set
 # CONFIG_PKG_USING_RTI is not set
 # CONFIG_PKG_USING_DFS_YAFFS is not set
 # CONFIG_PKG_USING_LITTLEFS is not set
 # CONFIG_PKG_USING_DFS_JFFS2 is not set
-CONFIG_PKG_USING_DFS_UFFS=y
-CONFIG_PKG_UFFS_PATH="/packages/system/uffs"
-CONFIG_RT_USING_DFS_UFFS=y
-# CONFIG_RT_UFFS_ECC_MODE_0 is not set
-# CONFIG_RT_UFFS_ECC_MODE_1 is not set
-# CONFIG_RT_UFFS_ECC_MODE_2 is not set
-CONFIG_RT_UFFS_ECC_MODE_3=y
-CONFIG_RT_UFFS_ECC_MODE=3
-CONFIG_PKG_USING_DFS_UFFS_LATEST_VERSION=y
-CONFIG_PKG_UFFS_VER="latest"
+# CONFIG_PKG_USING_DFS_UFFS is not set
 # CONFIG_PKG_USING_LWEXT4 is not set
 # CONFIG_PKG_USING_THREAD_POOL is not set
 # CONFIG_PKG_USING_ROBOTS is not set
@@ -717,6 +693,7 @@ CONFIG_PKG_RAMDISK_VER="latest"
 # CONFIG_PKG_USING_MCUBOOT is not set
 # CONFIG_PKG_USING_TINYUSB is not set
 # CONFIG_PKG_USING_CHERRYUSB is not set
+# CONFIG_PKG_USING_KMULTI_RTIMER is not set
 
 #
 # peripheral libraries and drivers
@@ -740,6 +717,7 @@ CONFIG_PKG_RAMDISK_VER="latest"
 # CONFIG_PKG_USING_WM_LIBRARIES is not set
 # CONFIG_PKG_USING_KENDRYTE_SDK is not set
 # CONFIG_PKG_USING_INFRARED is not set
+# CONFIG_PKG_USING_MULTI_INFRARED is not set
 # CONFIG_PKG_USING_AGILE_BUTTON is not set
 # CONFIG_PKG_USING_AGILE_LED is not set
 # CONFIG_PKG_USING_AT24CXX is not set
@@ -796,6 +774,7 @@ CONFIG_PKG_RAMDISK_VER="latest"
 # CONFIG_PKG_USING_SOFT_SERIAL is not set
 # CONFIG_PKG_USING_MB85RS16 is not set
 # CONFIG_PKG_USING_CW2015 is not set
+# CONFIG_PKG_USING_RFM300 is not set
 
 #
 # AI packages
@@ -814,6 +793,10 @@ CONFIG_PKG_RAMDISK_VER="latest"
 # miscellaneous packages
 #
 
+#
+# project laboratory
+#
+
 #
 # samples: kernel and components samples
 #
@@ -850,6 +833,7 @@ CONFIG_PKG_OPTPARSE_VER="latest"
 # CONFIG_PKG_USING_CANFESTIVAL is not set
 # CONFIG_PKG_USING_ZLIB is not set
 # CONFIG_PKG_USING_MINIZIP is not set
+# CONFIG_PKG_USING_HEATSHRINK is not set
 # CONFIG_PKG_USING_DSTR is not set
 # CONFIG_PKG_USING_TINYFRAME is not set
 # CONFIG_PKG_USING_KENDRYTE_DEMO is not set
@@ -857,7 +841,27 @@ CONFIG_PKG_OPTPARSE_VER="latest"
 # CONFIG_PKG_USING_UPACKER is not set
 # CONFIG_PKG_USING_UPARAM is not set
 # CONFIG_PKG_USING_HELLO is not set
-# CONFIG_PKG_USING_VI is not set
+CONFIG_PKG_USING_VI=y
+CONFIG_PKG_VI_PATH="/packages/misc/vi"
+CONFIG_VI_SANDBOX_SIZE_KB=20
+CONFIG_VI_MAX_LEN=4096
+# CONFIG_VI_ENABLE_8BIT is not set
+CONFIG_VI_ENABLE_COLON=y
+CONFIG_VI_ENABLE_COLON_EXPAND=y
+CONFIG_VI_ENABLE_YANKMARK=y
+CONFIG_VI_ENABLE_SEARCH=y
+CONFIG_VI_ENABLE_DOT_CMD=y
+CONFIG_VI_ENABLE_READONLY=y
+CONFIG_VI_ENABLE_SETOPTS=y
+CONFIG_VI_ENABLE_SET=y
+# CONFIG_VI_ENABLE_WIN_RESIZE is not set
+CONFIG_VI_ENABLE_VI_ASK_TERMINAL=y
+CONFIG_VI_ENABLE_UNDO=y
+CONFIG_VI_ENABLE_UNDO_QUEUE=y
+CONFIG_VI_UNDO_QUEUE_MAX=256
+CONFIG_VI_ENABLE_VERBOSE_STATUS=y
+CONFIG_PKG_USING_VI_LATEST_VERSION=y
+CONFIG_PKG_VI_VER="latest"
 # CONFIG_PKG_USING_KI is not set
 # CONFIG_PKG_USING_ARMv7M_DWT is not set
 # CONFIG_PKG_USING_UKAL is not set
@@ -867,6 +871,7 @@ CONFIG_PKG_OPTPARSE_VER="latest"
 # CONFIG_PKG_USING_DESIGN_PATTERN is not set
 # CONFIG_PKG_USING_CONTROLLER is not set
 # CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
+# CONFIG_PKG_USING_MFBD is not set
 
 #
 # Hardware Drivers Config
@@ -947,9 +952,9 @@ CONFIG_BSP_USING_SPI1_NONE=y
 CONFIG_BSP_USING_I2S=y
 CONFIG_NU_I2S_DMA_FIFO_SIZE=4096
 CONFIG_BSP_USING_QSPI=y
-CONFIG_BSP_USING_QSPI_PDMA=y
+# CONFIG_BSP_USING_QSPI_PDMA is not set
 CONFIG_BSP_USING_QSPI0=y
-CONFIG_BSP_USING_QSPI0_PDMA=y
+# CONFIG_BSP_USING_QSPI0_PDMA is not set
 # CONFIG_BSP_USING_SCUART is not set
 CONFIG_BSP_USING_CRYPTO=y
 # CONFIG_NU_PRNG_USE_SEED is not set
@@ -966,8 +971,8 @@ CONFIG_BSP_USING_CONSOLE=y
 CONFIG_BOARD_USING_IP101GR=y
 CONFIG_BOARD_USING_NAU8822=y
 CONFIG_BOARD_USING_STORAGE_SDCARD=y
-# CONFIG_BOARD_USING_STORAGE_SPIFLASH is not set
-CONFIG_BOARD_USING_STORAGE_SPINAND=y
+CONFIG_BOARD_USING_STORAGE_SPIFLASH=y
+# CONFIG_BOARD_USING_STORAGE_SPINAND is not set
 CONFIG_BOARD_USING_USB0_DEVICE_HOST=y
 CONFIG_BOARD_USING_USB1_HOST=y
 
@@ -989,6 +994,7 @@ CONFIG_NU_PKG_USING_DEMO=y
 CONFIG_NU_PKG_USING_NAU8822=y
 # CONFIG_NU_PKG_USING_DA9062 is not set
 # CONFIG_NU_PKG_USING_ILI9341 is not set
-CONFIG_NU_PKG_USING_SPINAND=y
-CONFIG_BOARD_USE_UTEST=y
-CONFIG_UTEST_CMD_PREFIX="bsp.nuvoton.nk980-iot.test.utest."
+# CONFIG_NU_PKG_USING_SSD1963 is not set
+# CONFIG_NU_PKG_USING_TPC is not set
+# CONFIG_NU_PKG_USING_ADC_TOUCH is not set
+# CONFIG_NU_PKG_USING_SPINAND is not set

+ 4 - 6
bsp/nuvoton/nk-980iot/README.md

@@ -48,15 +48,13 @@ Nuvoton Technology provides industrial IoT development platform using NUC980DK61
 |VCOM | For console | Ready.(Need to install VCOM driver) |
 
 ## 2. Supported compiler
-Support GCC, MDK4 and MDK5 IDE/compilers. More information of these compiler version as following:
-
+Support GCC and MDK IDE/compilers. More information of these compiler version as following:
 | IDE/Compiler  | Tested version            |
 | ---------- | ---------------------------- |
-| MDK4       | 4.76                         |
-| MDK5       | 5.26.2                       |
-| GCC        | GCC 5.4.1 20160919 (release) |
+| MDK        | uVision 5.25                 |
+| GCC        | 6-2017-q1-update             |
 
-Notice: Please install ICE driver for development.
+Notice: Please install ICE driver for development and [NuMicro_ARM9_Device_Database_Keil](https://www.nuvoton.com/resource-download.jsp?tp_GUID=SW1820201207155701).
 
 ## 3. Program firmware
 ### 3.1 SDRAM Downloading using NuWriter

+ 39 - 44
bsp/nuvoton/nk-980iot/rtconfig.h

@@ -58,14 +58,8 @@
 #define RT_USING_USER_MAIN
 #define RT_MAIN_THREAD_STACK_SIZE 2048
 #define RT_MAIN_THREAD_PRIORITY 10
-
-/* C++ features */
-
-
-/* Command shell */
-
-#define RT_USING_FINSH
 #define RT_USING_MSH
+#define RT_USING_FINSH
 #define FINSH_USING_MSH
 #define FINSH_THREAD_NAME "tshell"
 #define FINSH_THREAD_PRIORITY 20
@@ -77,9 +71,6 @@
 #define MSH_USING_BUILT_IN_COMMANDS
 #define FINSH_USING_DESCRIPTION
 #define FINSH_ARG_MAX 10
-
-/* Device virtual file system */
-
 #define RT_USING_DFS
 #define DFS_USING_POSIX
 #define DFS_USING_WORKDIR
@@ -123,12 +114,15 @@
 #define RT_USING_PIN
 #define RT_USING_ADC
 #define RT_USING_PWM
-#define RT_USING_MTD_NAND
-#define RT_MTD_NAND_DEBUG
 #define RT_USING_RTC
 #define RT_USING_ALARM
 #define RT_USING_SPI
 #define RT_USING_QSPI
+#define RT_USING_SFUD
+#define RT_SFUD_USING_SFDP
+#define RT_SFUD_USING_FLASH_INFO_TABLE
+#define RT_SFUD_USING_QSPI
+#define RT_SFUD_SPI_MAX_HZ 50000000
 #define RT_USING_WDT
 #define RT_USING_AUDIO
 #define RT_AUDIO_REPLAY_MP_BLOCK_SIZE 4096
@@ -173,13 +167,15 @@
 #define RT_VCOM_TX_TIMEOUT 1000
 #define RT_USB_MSTORAGE_DISK_NAME "ramdisk1"
 
-/* POSIX layer and C standard library */
+/* C/C++ and POSIX layer */
 
 #define RT_LIBC_DEFAULT_TIMEZONE 8
 
 /* POSIX (Portable Operating System Interface) layer */
 
 #define RT_USING_POSIX_FS
+#define RT_USING_POSIX_DEVIO
+#define RT_USING_POSIX_STDIO
 #define RT_USING_POSIX_POLL
 #define RT_USING_POSIX_SELECT
 
@@ -188,9 +184,8 @@
 
 /* Socket is in the 'Network' category */
 
-/* Network */
 
-/* Socket abstraction layer */
+/* Network */
 
 #define RT_USING_SAL
 
@@ -198,9 +193,6 @@
 
 #define SAL_USING_LWIP
 #define SAL_USING_POSIX
-
-/* Network interface device */
-
 #define RT_USING_NETDEV
 #define NETDEV_USING_IFCONFIG
 #define NETDEV_USING_PING
@@ -208,11 +200,9 @@
 #define NETDEV_USING_AUTO_DEFAULT
 #define NETDEV_IPV4 1
 #define NETDEV_IPV6 0
-
-/* light weight TCP/IP stack */
-
 #define RT_USING_LWIP
 #define RT_USING_LWIP212
+#define RT_USING_LWIP_VER_NUM 0x20102
 #define RT_LWIP_MEM_ALIGNMENT 4
 #define RT_LWIP_IGMP
 #define RT_LWIP_ICMP
@@ -256,12 +246,6 @@
 #define RT_LWIP_STATS
 #define RT_LWIP_USING_PING
 
-/* AT commands */
-
-
-/* VBUS(Virtual Software BUS) */
-
-
 /* Utilities */
 
 #define RT_USING_UTEST
@@ -304,6 +288,11 @@
 
 /* language packages */
 
+/* JSON: JavaScript Object Notation, a lightweight data-interchange format */
+
+
+/* XML: Extensible Markup Language */
+
 
 /* multimedia packages */
 
@@ -312,18 +301,14 @@
 
 /* u8g2: a monochrome graphic library */
 
-#define PKG_USING_WAVPLAYER
-#define PKG_WP_USING_PLAY
-#define PKG_WP_PLAY_DEVICE "sound0"
-#define PKG_WP_USING_RECORD
-#define PKG_WP_RECORD_DEVICE "sound0"
-#define PKG_USING_WAVPLAYER_LATEST_VERSION
 
 /* PainterEngine: A cross-platform graphics application framework written in C language */
 
 
 /* tools packages */
 
+#define PKG_USING_MEM_SANDBOX
+#define PKG_USING_MEM_SANDBOX_LATEST_VERSION
 
 /* system packages */
 
@@ -332,6 +317,7 @@
 
 /* POSIX extension functions */
 
+#define PKG_USING_POSIX_STRINGS
 
 /* acceleration: Assembly language or algorithmic acceleration packages */
 
@@ -341,11 +327,6 @@
 
 /* Micrium: Micrium software products porting for RT-Thread */
 
-#define PKG_USING_DFS_UFFS
-#define RT_USING_DFS_UFFS
-#define RT_UFFS_ECC_MODE_3
-#define RT_UFFS_ECC_MODE 3
-#define PKG_USING_DFS_UFFS_LATEST_VERSION
 #define PKG_USING_RAMDISK
 #define PKG_USING_RAMDISK_LATEST_VERSION
 
@@ -357,6 +338,8 @@
 
 /* miscellaneous packages */
 
+/* project laboratory */
+
 /* samples: kernel and components samples */
 
 
@@ -364,6 +347,23 @@
 
 #define PKG_USING_OPTPARSE
 #define PKG_USING_OPTPARSE_LATEST_VERSION
+#define PKG_USING_VI
+#define VI_SANDBOX_SIZE_KB 20
+#define VI_MAX_LEN 4096
+#define VI_ENABLE_COLON
+#define VI_ENABLE_COLON_EXPAND
+#define VI_ENABLE_YANKMARK
+#define VI_ENABLE_SEARCH
+#define VI_ENABLE_DOT_CMD
+#define VI_ENABLE_READONLY
+#define VI_ENABLE_SETOPTS
+#define VI_ENABLE_SET
+#define VI_ENABLE_VI_ASK_TERMINAL
+#define VI_ENABLE_UNDO
+#define VI_ENABLE_UNDO_QUEUE
+#define VI_UNDO_QUEUE_MAX 256
+#define VI_ENABLE_VERBOSE_STATUS
+#define PKG_USING_VI_LATEST_VERSION
 
 /* Hardware Drivers Config */
 
@@ -415,9 +415,7 @@
 #define BSP_USING_I2S
 #define NU_I2S_DMA_FIFO_SIZE 4096
 #define BSP_USING_QSPI
-#define BSP_USING_QSPI_PDMA
 #define BSP_USING_QSPI0
-#define BSP_USING_QSPI0_PDMA
 #define BSP_USING_CRYPTO
 #define BSP_USING_WDT
 #define BSP_USING_USBD
@@ -429,7 +427,7 @@
 #define BOARD_USING_IP101GR
 #define BOARD_USING_NAU8822
 #define BOARD_USING_STORAGE_SDCARD
-#define BOARD_USING_STORAGE_SPINAND
+#define BOARD_USING_STORAGE_SPIFLASH
 #define BOARD_USING_USB0_DEVICE_HOST
 #define BOARD_USING_USB1_HOST
 
@@ -441,8 +439,5 @@
 #define NU_PKG_USING_UTILS
 #define NU_PKG_USING_DEMO
 #define NU_PKG_USING_NAU8822
-#define NU_PKG_USING_SPINAND
-#define BOARD_USE_UTEST
-#define UTEST_CMD_PREFIX "bsp.nuvoton.nk980-iot.test.utest."
 
 #endif

+ 58 - 73
bsp/nuvoton/nk-980iot/spinor.config

@@ -7,7 +7,6 @@
 # RT-Thread Kernel
 #
 CONFIG_RT_NAME_MAX=16
-# CONFIG_RT_USING_BIG_ENDIAN is not set
 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set
 # CONFIG_RT_USING_SMP is not set
 CONFIG_RT_ALIGN_SIZE=4
@@ -95,17 +94,8 @@ CONFIG_RT_USING_USER_MAIN=y
 CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
 CONFIG_RT_MAIN_THREAD_PRIORITY=10
 # CONFIG_RT_USING_LEGACY is not set
-
-#
-# C++ features
-#
-# CONFIG_RT_USING_CPLUSPLUS is not set
-
-#
-# Command shell
-#
-CONFIG_RT_USING_FINSH=y
 CONFIG_RT_USING_MSH=y
+CONFIG_RT_USING_FINSH=y
 CONFIG_FINSH_USING_MSH=y
 CONFIG_FINSH_THREAD_NAME="tshell"
 CONFIG_FINSH_THREAD_PRIORITY=20
@@ -119,10 +109,6 @@ CONFIG_FINSH_USING_DESCRIPTION=y
 # CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
 # CONFIG_FINSH_USING_AUTH is not set
 CONFIG_FINSH_ARG_MAX=10
-
-#
-# Device virtual file system
-#
 CONFIG_RT_USING_DFS=y
 CONFIG_DFS_USING_POSIX=y
 CONFIG_DFS_USING_WORKDIR=y
@@ -157,6 +143,13 @@ CONFIG_RT_USING_DFS_DEVFS=y
 # CONFIG_RT_USING_DFS_ROMFS is not set
 # CONFIG_RT_USING_DFS_RAMFS is not set
 # CONFIG_RT_USING_DFS_NFS is not set
+CONFIG_RT_USING_FAL=y
+CONFIG_FAL_DEBUG_CONFIG=y
+CONFIG_FAL_DEBUG=1
+CONFIG_FAL_PART_HAS_TABLE_CFG=y
+CONFIG_FAL_USING_SFUD_PORT=y
+CONFIG_FAL_USING_NOR_FLASH_DEV_NAME="norflash0"
+# CONFIG_RT_USING_LWP is not set
 
 #
 # Device Drivers
@@ -191,6 +184,7 @@ CONFIG_RT_USING_ALARM=y
 # CONFIG_RT_USING_SOFT_RTC is not set
 # CONFIG_RT_USING_SDIO 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=y
@@ -266,9 +260,8 @@ CONFIG_RT_VCOM_TX_TIMEOUT=1000
 CONFIG_RT_USB_MSTORAGE_DISK_NAME="ramdisk1"
 
 #
-# POSIX layer and C standard library
+# C/C++ and POSIX layer
 #
-# CONFIG_RT_USING_MODULE is not set
 CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 
 #
@@ -284,7 +277,9 @@ CONFIG_RT_USING_POSIX_SELECT=y
 # CONFIG_RT_USING_POSIX_MMAN is not set
 # CONFIG_RT_USING_POSIX_DELAY is not set
 # CONFIG_RT_USING_POSIX_CLOCK is not set
+# CONFIG_RT_USING_POSIX_TIMER is not set
 # CONFIG_RT_USING_PTHREADS is not set
+# CONFIG_RT_USING_MODULE is not set
 
 #
 # Interprocess Communication (IPC)
@@ -296,14 +291,11 @@ CONFIG_RT_USING_POSIX_SELECT=y
 #
 # Socket is in the 'Network' category
 #
+# CONFIG_RT_USING_CPLUSPLUS is not set
 
 #
 # Network
 #
-
-#
-# Socket abstraction layer
-#
 CONFIG_RT_USING_SAL=y
 # CONFIG_SAL_INTERNET_CHECK is not set
 
@@ -312,10 +304,6 @@ CONFIG_RT_USING_SAL=y
 #
 CONFIG_SAL_USING_LWIP=y
 CONFIG_SAL_USING_POSIX=y
-
-#
-# Network interface device
-#
 CONFIG_RT_USING_NETDEV=y
 CONFIG_NETDEV_USING_IFCONFIG=y
 CONFIG_NETDEV_USING_PING=y
@@ -325,15 +313,13 @@ CONFIG_NETDEV_USING_AUTO_DEFAULT=y
 CONFIG_NETDEV_IPV4=1
 CONFIG_NETDEV_IPV6=0
 # CONFIG_NETDEV_IPV6_SCOPES is not set
-
-#
-# light weight TCP/IP stack
-#
 CONFIG_RT_USING_LWIP=y
+# CONFIG_RT_USING_LWIP_LOCAL_VERSION is not set
 # CONFIG_RT_USING_LWIP141 is not set
-# CONFIG_RT_USING_LWIP202 is not set
 # CONFIG_RT_USING_LWIP203 is not set
 CONFIG_RT_USING_LWIP212=y
+# CONFIG_RT_USING_LWIP_LATEST is not set
+CONFIG_RT_USING_LWIP_VER_NUM=0x20102
 # CONFIG_RT_USING_LWIP_IPV6 is not set
 CONFIG_RT_LWIP_MEM_ALIGNMENT=4
 CONFIG_RT_LWIP_IGMP=y
@@ -383,18 +369,9 @@ CONFIG_LWIP_NETIF_LOOPBACK=1
 CONFIG_RT_LWIP_STATS=y
 # CONFIG_RT_LWIP_USING_HW_CHECKSUM is not set
 CONFIG_RT_LWIP_USING_PING=y
+# CONFIG_LWIP_USING_DHCPD is not set
 # CONFIG_RT_LWIP_DEBUG is not set
-
-#
-# AT commands
-#
 # CONFIG_RT_USING_AT is not set
-# CONFIG_LWIP_USING_DHCPD is not set
-
-#
-# VBUS(Virtual Software BUS)
-#
-# CONFIG_RT_USING_VBUS is not set
 
 #
 # Utilities
@@ -406,7 +383,7 @@ CONFIG_UTEST_THR_STACK_SIZE=4096
 CONFIG_UTEST_THR_PRIORITY=20
 # CONFIG_RT_USING_VAR_EXPORT is not set
 # CONFIG_RT_USING_RT_LINK is not set
-# CONFIG_RT_USING_LWP is not set
+# CONFIG_RT_USING_VBUS is not set
 
 #
 # RT-Thread Utestcases
@@ -420,6 +397,7 @@ CONFIG_UTEST_THR_PRIORITY=20
 #
 # IoT - internet of things
 #
+# CONFIG_PKG_USING_LWIP is not set
 # CONFIG_PKG_USING_LORAWAN_DRIVER is not set
 # CONFIG_PKG_USING_PAHOMQTT is not set
 # CONFIG_PKG_USING_UMQTT is not set
@@ -430,12 +408,8 @@ CONFIG_UTEST_THR_PRIORITY=20
 # CONFIG_PKG_USING_KAWAII_MQTT is not set
 # CONFIG_PKG_USING_BC28_MQTT is not set
 # CONFIG_PKG_USING_WEBTERMINAL is not set
-# CONFIG_PKG_USING_CJSON is not set
-# CONFIG_PKG_USING_JSMN is not set
 # CONFIG_PKG_USING_LIBMODBUS is not set
 # CONFIG_PKG_USING_FREEMODBUS is not set
-# CONFIG_PKG_USING_LJSON is not set
-# CONFIG_PKG_USING_EZXML is not set
 # CONFIG_PKG_USING_NANOPB is not set
 
 #
@@ -468,11 +442,9 @@ CONFIG_NETUTILS_NTP_HOSTNAME2="1.tw.pool.ntp.org"
 CONFIG_NETUTILS_NTP_HOSTNAME3="2.tw.pool.ntp.org"
 # CONFIG_PKG_NETUTILS_TELNET is not set
 # CONFIG_PKG_NETUTILS_TCPDUMP is not set
-# CONFIG_PKG_USING_NETUTILS_LATEST_VERSION is not set
-CONFIG_PKG_USING_NETUTILS_V131=y
-# CONFIG_PKG_USING_NETUTILS_V130 is not set
-CONFIG_PKG_NETUTILS_VER="v1.3.1"
-CONFIG_PKG_NETUTILS_VER_NUM=0x10301
+CONFIG_PKG_USING_NETUTILS_LATEST_VERSION=y
+CONFIG_PKG_NETUTILS_VER="latest"
+CONFIG_PKG_NETUTILS_VER_NUM=0x99999
 # CONFIG_PKG_USING_CMUX is not set
 # CONFIG_PKG_USING_PPP_DEVICE is not set
 # CONFIG_PKG_USING_AT_DEVICE is not set
@@ -493,6 +465,7 @@ CONFIG_PKG_NETUTILS_VER_NUM=0x10301
 # CONFIG_PKG_USING_JOYLINK is not set
 # CONFIG_PKG_USING_EZ_IOT_OS is not set
 # CONFIG_PKG_USING_NIMBLE is not set
+# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
 # CONFIG_PKG_USING_OTA_DOWNLOADER is not set
 # CONFIG_PKG_USING_IPMSG is not set
 # CONFIG_PKG_USING_LSSDP is not set
@@ -506,16 +479,13 @@ CONFIG_PKG_NETUTILS_VER_NUM=0x10301
 # CONFIG_PKG_USING_ABUP_FOTA is not set
 # CONFIG_PKG_USING_LIBCURL2RTT is not set
 # CONFIG_PKG_USING_CAPNP is not set
-# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
 # CONFIG_PKG_USING_AGILE_TELNET is not set
 # CONFIG_PKG_USING_NMEALIB is not set
-# CONFIG_PKG_USING_AGILE_JSMN is not set
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK 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
-# CONFIG_PKG_USING_RAPIDJSON is not set
 # CONFIG_PKG_USING_BSAL is not set
 # CONFIG_PKG_USING_AGILE_MODBUS is not set
 # CONFIG_PKG_USING_AGILE_FTP is not set
@@ -540,6 +510,22 @@ CONFIG_PKG_NETUTILS_VER_NUM=0x10301
 #
 # language packages
 #
+
+#
+# JSON: JavaScript Object Notation, a lightweight data-interchange format
+#
+# CONFIG_PKG_USING_CJSON is not set
+# CONFIG_PKG_USING_LJSON is not set
+# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
+# CONFIG_PKG_USING_RAPIDJSON is not set
+# CONFIG_PKG_USING_JSMN is not set
+# CONFIG_PKG_USING_AGILE_JSMN is not set
+
+#
+# XML: Extensible Markup Language
+#
+# CONFIG_PKG_USING_SIMPLE_XML is not set
+# CONFIG_PKG_USING_EZXML is not set
 # CONFIG_PKG_USING_LUATOS_SOC is not set
 # CONFIG_PKG_USING_LUA is not set
 # CONFIG_PKG_USING_JERRYSCRIPT is not set
@@ -630,6 +616,8 @@ CONFIG_PKG_MEM_SANDBOX_VER="latest"
 # CONFIG_PKG_USING_SOLAR_TERMS is not set
 # CONFIG_PKG_USING_GAN_ZHI is not set
 # CONFIG_PKG_USING_FDT is not set
+# CONFIG_PKG_USING_CBOX is not set
+# CONFIG_PKG_USING_SNOWFLAKE is not set
 
 #
 # system packages
@@ -648,7 +636,9 @@ CONFIG_PKG_MEM_SANDBOX_VER="latest"
 # CONFIG_PKG_USING_POSIX_GETLINE is not set
 # CONFIG_PKG_USING_POSIX_WCWIDTH is not set
 # CONFIG_PKG_USING_POSIX_ITOA is not set
-# CONFIG_PKG_USING_POSIX_STRINGS is not set
+CONFIG_PKG_USING_POSIX_STRINGS=y
+CONFIG_PKG_POSIX_STRINGS_PATH="/packages/system/POSIX/strings"
+CONFIG_PKG_POSIX_STRINGS_VER="latest"
 
 #
 # acceleration: Assembly language or algorithmic acceleration packages
@@ -672,27 +662,12 @@ CONFIG_PKG_MEM_SANDBOX_VER="latest"
 # CONFIG_PKG_USING_UC_CLK is not set
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
-# CONFIG_RT_USING_ARDUINO is not set
+# CONFIG_PKG_USING_RTDUINO is not set
 # CONFIG_PKG_USING_GUIENGINE is not set
 # CONFIG_PKG_USING_PERSIMMON is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
-CONFIG_PKG_USING_FAL=y
-CONFIG_PKG_FAL_PATH="/packages/system/fal"
-CONFIG_FAL_DEBUG_CONFIG=y
-CONFIG_FAL_DEBUG=1
-CONFIG_FAL_PART_HAS_TABLE_CFG=y
-CONFIG_FAL_USING_SFUD_PORT=y
-CONFIG_FAL_USING_NOR_FLASH_DEV_NAME="norflash0"
-# CONFIG_PKG_USING_FAL_V00500 is not set
-# CONFIG_PKG_USING_FAL_V00400 is not set
-# CONFIG_PKG_USING_FAL_V00300 is not set
-# CONFIG_PKG_USING_FAL_V00200 is not set
-# CONFIG_PKG_USING_FAL_V00100 is not set
-CONFIG_PKG_USING_FAL_LATEST_VERSION=y
-CONFIG_PKG_FAL_VER="latest"
-CONFIG_PKG_FAL_VER_NUM=0x99999
 # CONFIG_PKG_USING_FLASHDB is not set
 # CONFIG_PKG_USING_SQLITE is not set
 # CONFIG_PKG_USING_RTI is not set
@@ -722,7 +697,8 @@ CONFIG_PKG_RAMDISK_VER="latest"
 # CONFIG_PKG_USING_ARM_2D is not set
 # CONFIG_PKG_USING_MCUBOOT is not set
 # CONFIG_PKG_USING_TINYUSB is not set
-# CONFIG_PKG_USING_USB_STACK is not set
+# CONFIG_PKG_USING_CHERRYUSB is not set
+# CONFIG_PKG_USING_KMULTI_RTIMER is not set
 
 #
 # peripheral libraries and drivers
@@ -746,6 +722,7 @@ CONFIG_PKG_RAMDISK_VER="latest"
 # CONFIG_PKG_USING_WM_LIBRARIES is not set
 # CONFIG_PKG_USING_KENDRYTE_SDK is not set
 # CONFIG_PKG_USING_INFRARED is not set
+# CONFIG_PKG_USING_MULTI_INFRARED is not set
 # CONFIG_PKG_USING_AGILE_BUTTON is not set
 # CONFIG_PKG_USING_AGILE_LED is not set
 # CONFIG_PKG_USING_AT24CXX is not set
@@ -802,6 +779,7 @@ CONFIG_PKG_RAMDISK_VER="latest"
 # CONFIG_PKG_USING_SOFT_SERIAL is not set
 # CONFIG_PKG_USING_MB85RS16 is not set
 # CONFIG_PKG_USING_CW2015 is not set
+# CONFIG_PKG_USING_RFM300 is not set
 
 #
 # AI packages
@@ -820,6 +798,10 @@ CONFIG_PKG_RAMDISK_VER="latest"
 # miscellaneous packages
 #
 
+#
+# project laboratory
+#
+
 #
 # samples: kernel and components samples
 #
@@ -856,6 +838,7 @@ CONFIG_PKG_OPTPARSE_VER="latest"
 # CONFIG_PKG_USING_CANFESTIVAL is not set
 # CONFIG_PKG_USING_ZLIB is not set
 # CONFIG_PKG_USING_MINIZIP is not set
+# CONFIG_PKG_USING_HEATSHRINK is not set
 # CONFIG_PKG_USING_DSTR is not set
 # CONFIG_PKG_USING_TINYFRAME is not set
 # CONFIG_PKG_USING_KENDRYTE_DEMO is not set
@@ -893,6 +876,7 @@ CONFIG_PKG_VI_VER="latest"
 # CONFIG_PKG_USING_DESIGN_PATTERN is not set
 # CONFIG_PKG_USING_CONTROLLER is not set
 # CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
+# CONFIG_PKG_USING_MFBD is not set
 
 #
 # Hardware Drivers Config
@@ -1015,6 +999,7 @@ CONFIG_NU_PKG_USING_DEMO=y
 CONFIG_NU_PKG_USING_NAU8822=y
 # CONFIG_NU_PKG_USING_DA9062 is not set
 # CONFIG_NU_PKG_USING_ILI9341 is not set
+# CONFIG_NU_PKG_USING_SSD1963 is not set
+# CONFIG_NU_PKG_USING_TPC is not set
+# CONFIG_NU_PKG_USING_ADC_TOUCH is not set
 # CONFIG_NU_PKG_USING_SPINAND is not set
-CONFIG_BOARD_USE_UTEST=y
-CONFIG_UTEST_CMD_PREFIX="bsp.nuvoton.nk980-iot.test.utest."

+ 38 - 10
bsp/nuvoton/nk-980iot/template.uvproj

@@ -10,11 +10,12 @@
       <TargetName>rtthread</TargetName>
       <ToolsetNumber>0x4</ToolsetNumber>
       <ToolsetName>ARM-ADS</ToolsetName>
+      <uAC6>0</uAC6>
       <TargetOption>
         <TargetCommonOption>
           <Device>Nuvoton_ARM9_Series</Device>
           <Vendor>Nuvoton</Vendor>
-          <Cpu></Cpu>
+          <Cpu>IRAM(0x0-0x0) CLOCK(000000000) CPUTYPE(ARM926EJ-S)</Cpu>
           <FlashUtilSpec></FlashUtilSpec>
           <StartupFile></StartupFile>
           <FlashDriverDll></FlashDriverDll>
@@ -30,6 +31,7 @@
           <SLE66AMisc></SLE66AMisc>
           <SLE66LinkerMisc></SLE66LinkerMisc>
           <SFDFile></SFDFile>
+          <bCustSvd>0</bCustSvd>
           <UseEnv>0</UseEnv>
           <BinPath></BinPath>
           <IncludePath></IncludePath>
@@ -43,7 +45,7 @@
             <NotGenerated>0</NotGenerated>
             <InvalidFlash>1</InvalidFlash>
           </TargetStatus>
-          <OutputDirectory>.\Objects\</OutputDirectory>
+          <OutputDirectory>.\build\keil4\</OutputDirectory>
           <OutputName>rtthread</OutputName>
           <CreateExecutable>1</CreateExecutable>
           <CreateLib>0</CreateLib>
@@ -71,14 +73,18 @@
             <UserProg2Name></UserProg2Name>
             <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
             <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+            <nStopB1X>0</nStopB1X>
+            <nStopB2X>0</nStopB2X>
           </BeforeMake>
           <AfterMake>
-            <RunUserProg1>0</RunUserProg1>
+            <RunUserProg1>1</RunUserProg1>
             <RunUserProg2>0</RunUserProg2>
-            <UserProg1Name></UserProg1Name>
+            <UserProg1Name>fromelf.exe --bin --output "$L@L.bin" "$L@L.axf"</UserProg1Name>
             <UserProg2Name></UserProg2Name>
             <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
             <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+            <nStopA1X>0</nStopA1X>
+            <nStopA2X>0</nStopA2X>
           </AfterMake>
           <SelectedForBatchBuild>0</SelectedForBatchBuild>
           <SVCSIdString></SVCSIdString>
@@ -97,6 +103,7 @@
           <StopOnExitCode>3</StopOnExitCode>
           <CustomArgument></CustomArgument>
           <IncludeLibraryModules></IncludeLibraryModules>
+          <ComprImg>1</ComprImg>
         </CommonProperty>
         <DllOption>
           <SimDllName>SARM.DLL</SimDllName>
@@ -126,6 +133,7 @@
             <RestoreFunctions>1</RestoreFunctions>
             <RestoreToolbox>1</RestoreToolbox>
             <LimitSpeedToRealTime>0</LimitSpeedToRealTime>
+            <RestoreSysVw>1</RestoreSysVw>
           </Simulator>
           <Target>
             <UseTarget>1</UseTarget>
@@ -137,9 +145,10 @@
             <RestoreFunctions>0</RestoreFunctions>
             <RestoreToolbox>1</RestoreToolbox>
             <RestoreTracepoints>1</RestoreTracepoints>
+            <RestoreSysVw>1</RestoreSysVw>
           </Target>
           <RunDebugAfterBuild>0</RunDebugAfterBuild>
-          <TargetSelection>6</TargetSelection>
+          <TargetSelection>18</TargetSelection>
           <SimDlls>
             <CpuDll></CpuDll>
             <CpuDllArguments></CpuDllArguments>
@@ -169,6 +178,10 @@
           <Flash2>Segger\JLTAgdi.dll</Flash2>
           <Flash3>"" ()</Flash3>
           <Flash4></Flash4>
+          <pFcarmOut></pFcarmOut>
+          <pFcarmGrp></pFcarmGrp>
+          <pFcArmRoot></pFcArmRoot>
+          <FcArmLst>0</FcArmLst>
         </Utilities>
         <TargetArmAds>
           <ArmAdsMisc>
@@ -199,22 +212,24 @@
             <AdsLsxf>1</AdsLsxf>
             <RvctClst>0</RvctClst>
             <GenPPlst>0</GenPPlst>
-            <AdsCpuType></AdsCpuType>
+            <AdsCpuType>ARM926EJ-S</AdsCpuType>
             <RvctDeviceName></RvctDeviceName>
             <mOS>0</mOS>
             <uocRom>0</uocRom>
             <uocRam>0</uocRam>
             <hadIROM>0</hadIROM>
-            <hadIRAM>0</hadIRAM>
+            <hadIRAM>1</hadIRAM>
             <hadXRAM>0</hadXRAM>
             <uocXRam>0</uocXRam>
             <RvdsVP>0</RvdsVP>
+            <RvdsMve>0</RvdsMve>
             <hadIRAM2>0</hadIRAM2>
             <hadIROM2>0</hadIROM2>
             <StupSel>0</StupSel>
             <useUlib>0</useUlib>
             <EndSel>0</EndSel>
             <uLtcg>0</uLtcg>
+            <nSecure>0</nSecure>
             <RoSelD>3</RoSelD>
             <RwSelD>3</RwSelD>
             <CodeSel>0</CodeSel>
@@ -267,8 +282,8 @@
               </Ocm6>
               <IRAM>
                 <Type>0</Type>
-                <StartAddress>0x200000</StartAddress>
-                <Size>0x1000</Size>
+                <StartAddress>0x0</StartAddress>
+                <Size>0x1</Size>
               </IRAM>
               <IROM>
                 <Type>1</Type>
@@ -323,7 +338,7 @@
               <OCR_RVCT9>
                 <Type>0</Type>
                 <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
+                <Size>0x1</Size>
               </OCR_RVCT9>
               <OCR_RVCT10>
                 <Type>0</Type>
@@ -347,6 +362,16 @@
             <wLevel>2</wLevel>
             <uThumb>0</uThumb>
             <uSurpInc>0</uSurpInc>
+            <uC99>0</uC99>
+            <uGnu>0</uGnu>
+            <useXO>0</useXO>
+            <v6Lang>1</v6Lang>
+            <v6LangP>1</v6LangP>
+            <vShortEn>1</vShortEn>
+            <vShortWch>1</vShortWch>
+            <v6Lto>0</v6Lto>
+            <v6WtE>0</v6WtE>
+            <v6Rtti>0</v6Rtti>
             <VariousControls>
               <MiscControls>--c99</MiscControls>
               <Define>RT_USING_INTERRUPT_INFO</Define>
@@ -363,6 +388,8 @@
             <SwStkChk>0</SwStkChk>
             <NoWarn>0</NoWarn>
             <uSurpInc>0</uSurpInc>
+            <useXO>0</useXO>
+            <uClangAs>0</uClangAs>
             <VariousControls>
               <MiscControls></MiscControls>
               <Define></Define>
@@ -379,6 +406,7 @@
             <useFile>0</useFile>
             <TextAddressRange>0x20000000</TextAddressRange>
             <DataAddressRange>0x20800000</DataAddressRange>
+            <pXoBase></pXoBase>
             <ScatterFile>.\linking_scripts\nuc980.sct</ScatterFile>
             <IncludeLibs></IncludeLibs>
             <IncludeLibsPath></IncludeLibsPath>

+ 0 - 387
bsp/nuvoton/nk-980iot/template.uvprojx

@@ -1,387 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
-<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
-
-  <SchemaVersion>2.1</SchemaVersion>
-
-  <Header>### uVision Project, (C) Keil Software</Header>
-
-  <Targets>
-    <Target>
-      <TargetName>rtthread</TargetName>
-      <ToolsetNumber>0x4</ToolsetNumber>
-      <ToolsetName>ARM-ADS</ToolsetName>
-      <uAC6>0</uAC6>
-      <TargetOption>
-        <TargetCommonOption>
-          <Device>Nuvoton_ARM9_Series</Device>
-          <Vendor>Nuvoton</Vendor>
-          <Cpu></Cpu>
-          <FlashUtilSpec></FlashUtilSpec>
-          <StartupFile></StartupFile>
-          <FlashDriverDll></FlashDriverDll>
-          <DeviceId>0</DeviceId>
-          <RegisterFile></RegisterFile>
-          <MemoryEnv></MemoryEnv>
-          <Cmp></Cmp>
-          <Asm></Asm>
-          <Linker></Linker>
-          <OHString></OHString>
-          <InfinionOptionDll></InfinionOptionDll>
-          <SLE66CMisc></SLE66CMisc>
-          <SLE66AMisc></SLE66AMisc>
-          <SLE66LinkerMisc></SLE66LinkerMisc>
-          <SFDFile></SFDFile>
-          <bCustSvd>0</bCustSvd>
-          <UseEnv>0</UseEnv>
-          <BinPath></BinPath>
-          <IncludePath></IncludePath>
-          <LibPath></LibPath>
-          <RegisterFilePath>Atmel\SAM9260\</RegisterFilePath>
-          <DBRegisterFilePath>Atmel\SAM9260\</DBRegisterFilePath>
-          <TargetStatus>
-            <Error>0</Error>
-            <ExitCodeStop>0</ExitCodeStop>
-            <ButtonStop>0</ButtonStop>
-            <NotGenerated>0</NotGenerated>
-            <InvalidFlash>1</InvalidFlash>
-          </TargetStatus>
-          <OutputDirectory>.\build\keil5\</OutputDirectory>
-          <OutputName>rtthread</OutputName>
-          <CreateExecutable>1</CreateExecutable>
-          <CreateLib>0</CreateLib>
-          <CreateHexFile>1</CreateHexFile>
-          <DebugInformation>1</DebugInformation>
-          <BrowseInformation>1</BrowseInformation>
-          <ListingPath>.\build\keil5\</ListingPath>
-          <HexFormatSelection>1</HexFormatSelection>
-          <Merge32K>0</Merge32K>
-          <CreateBatchFile>0</CreateBatchFile>
-          <BeforeCompile>
-            <RunUserProg1>0</RunUserProg1>
-            <RunUserProg2>0</RunUserProg2>
-            <UserProg1Name></UserProg1Name>
-            <UserProg2Name></UserProg2Name>
-            <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
-            <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
-            <nStopU1X>0</nStopU1X>
-            <nStopU2X>0</nStopU2X>
-          </BeforeCompile>
-          <BeforeMake>
-            <RunUserProg1>0</RunUserProg1>
-            <RunUserProg2>0</RunUserProg2>
-            <UserProg1Name></UserProg1Name>
-            <UserProg2Name></UserProg2Name>
-            <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
-            <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
-            <nStopB1X>0</nStopB1X>
-            <nStopB2X>0</nStopB2X>
-          </BeforeMake>
-          <AfterMake>
-            <RunUserProg1>1</RunUserProg1>
-            <RunUserProg2>0</RunUserProg2>
-            <UserProg1Name>fromelf.exe --bin --output "$L@L.bin" "$L@L.axf"</UserProg1Name>
-            <UserProg2Name></UserProg2Name>
-            <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
-            <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
-            <nStopA1X>0</nStopA1X>
-            <nStopA2X>0</nStopA2X>
-          </AfterMake>
-          <SelectedForBatchBuild>0</SelectedForBatchBuild>
-          <SVCSIdString></SVCSIdString>
-        </TargetCommonOption>
-        <CommonProperty>
-          <UseCPPCompiler>0</UseCPPCompiler>
-          <RVCTCodeConst>0</RVCTCodeConst>
-          <RVCTZI>0</RVCTZI>
-          <RVCTOtherData>0</RVCTOtherData>
-          <ModuleSelection>0</ModuleSelection>
-          <IncludeInBuild>1</IncludeInBuild>
-          <AlwaysBuild>0</AlwaysBuild>
-          <GenerateAssemblyFile>0</GenerateAssemblyFile>
-          <AssembleAssemblyFile>0</AssembleAssemblyFile>
-          <PublicsOnly>0</PublicsOnly>
-          <StopOnExitCode>3</StopOnExitCode>
-          <CustomArgument></CustomArgument>
-          <IncludeLibraryModules></IncludeLibraryModules>
-          <ComprImg>1</ComprImg>
-        </CommonProperty>
-        <DllOption>
-          <SimDllName>SARM.DLL</SimDllName>
-          <SimDllArguments>-cAT91SAM9260</SimDllArguments>
-          <SimDlgDll>DARMATS9.DLL</SimDlgDll>
-          <SimDlgDllArguments>-p91SAM9260</SimDlgDllArguments>
-          <TargetDllName>SARM.DLL</TargetDllName>
-          <TargetDllArguments></TargetDllArguments>
-          <TargetDlgDll>TARMATS9.DLL</TargetDlgDll>
-          <TargetDlgDllArguments>-p91SAM9260</TargetDlgDllArguments>
-        </DllOption>
-        <DebugOption>
-          <OPTHX>
-            <HexSelection>1</HexSelection>
-            <HexRangeLowAddress>0</HexRangeLowAddress>
-            <HexRangeHighAddress>0</HexRangeHighAddress>
-            <HexOffset>0</HexOffset>
-            <Oh166RecLen>16</Oh166RecLen>
-          </OPTHX>
-        </DebugOption>
-        <Utilities>
-          <Flash1>
-            <UseTargetDll>1</UseTargetDll>
-            <UseExternalTool>0</UseExternalTool>
-            <RunIndependent>0</RunIndependent>
-            <UpdateFlashBeforeDebugging>0</UpdateFlashBeforeDebugging>
-            <Capability>1</Capability>
-            <DriverSelection>4098</DriverSelection>
-          </Flash1>
-          <bUseTDR>0</bUseTDR>
-          <Flash2>Segger\JLTAgdi.dll</Flash2>
-          <Flash3>"" ()</Flash3>
-          <Flash4></Flash4>
-          <pFcarmOut></pFcarmOut>
-          <pFcarmGrp></pFcarmGrp>
-          <pFcArmRoot></pFcArmRoot>
-          <FcArmLst>0</FcArmLst>
-        </Utilities>
-        <TargetArmAds>
-          <ArmAdsMisc>
-            <GenerateListings>0</GenerateListings>
-            <asHll>1</asHll>
-            <asAsm>1</asAsm>
-            <asMacX>1</asMacX>
-            <asSyms>1</asSyms>
-            <asFals>1</asFals>
-            <asDbgD>1</asDbgD>
-            <asForm>1</asForm>
-            <ldLst>0</ldLst>
-            <ldmm>1</ldmm>
-            <ldXref>1</ldXref>
-            <BigEnd>0</BigEnd>
-            <AdsALst>1</AdsALst>
-            <AdsACrf>1</AdsACrf>
-            <AdsANop>0</AdsANop>
-            <AdsANot>0</AdsANot>
-            <AdsLLst>1</AdsLLst>
-            <AdsLmap>1</AdsLmap>
-            <AdsLcgr>1</AdsLcgr>
-            <AdsLsym>1</AdsLsym>
-            <AdsLszi>1</AdsLszi>
-            <AdsLtoi>1</AdsLtoi>
-            <AdsLsun>1</AdsLsun>
-            <AdsLven>1</AdsLven>
-            <AdsLsxf>1</AdsLsxf>
-            <RvctClst>0</RvctClst>
-            <GenPPlst>0</GenPPlst>
-            <AdsCpuType>ARM926EJ-S</AdsCpuType>
-            <RvctDeviceName></RvctDeviceName>
-            <mOS>0</mOS>
-            <uocRom>0</uocRom>
-            <uocRam>0</uocRam>
-            <hadIROM>1</hadIROM>
-            <hadIRAM>1</hadIRAM>
-            <hadXRAM>0</hadXRAM>
-            <uocXRam>0</uocXRam>
-            <RvdsVP>0</RvdsVP>
-            <RvdsMve>0</RvdsMve>
-            <hadIRAM2>1</hadIRAM2>
-            <hadIROM2>0</hadIROM2>
-            <StupSel>8</StupSel>
-            <useUlib>0</useUlib>
-            <EndSel>0</EndSel>
-            <uLtcg>0</uLtcg>
-            <nSecure>0</nSecure>
-            <RoSelD>3</RoSelD>
-            <RwSelD>3</RwSelD>
-            <CodeSel>0</CodeSel>
-            <OptFeed>0</OptFeed>
-            <NoZi1>0</NoZi1>
-            <NoZi2>0</NoZi2>
-            <NoZi3>0</NoZi3>
-            <NoZi4>0</NoZi4>
-            <NoZi5>0</NoZi5>
-            <Ro1Chk>0</Ro1Chk>
-            <Ro2Chk>0</Ro2Chk>
-            <Ro3Chk>0</Ro3Chk>
-            <Ir1Chk>0</Ir1Chk>
-            <Ir2Chk>0</Ir2Chk>
-            <Ra1Chk>0</Ra1Chk>
-            <Ra2Chk>0</Ra2Chk>
-            <Ra3Chk>0</Ra3Chk>
-            <Im1Chk>0</Im1Chk>
-            <Im2Chk>0</Im2Chk>
-            <OnChipMemories>
-              <Ocm1>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm1>
-              <Ocm2>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm2>
-              <Ocm3>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm3>
-              <Ocm4>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm4>
-              <Ocm5>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm5>
-              <Ocm6>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm6>
-              <IRAM>
-                <Type>0</Type>
-                <StartAddress>0x200000</StartAddress>
-                <Size>0x1000</Size>
-              </IRAM>
-              <IROM>
-                <Type>1</Type>
-                <StartAddress>0x100000</StartAddress>
-                <Size>0x8000</Size>
-              </IROM>
-              <XRAM>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </XRAM>
-              <OCR_RVCT1>
-                <Type>1</Type>
-                <StartAddress>0x20000000</StartAddress>
-                <Size>0x800000</Size>
-              </OCR_RVCT1>
-              <OCR_RVCT2>
-                <Type>1</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </OCR_RVCT2>
-              <OCR_RVCT3>
-                <Type>1</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </OCR_RVCT3>
-              <OCR_RVCT4>
-                <Type>1</Type>
-                <StartAddress>0x100000</StartAddress>
-                <Size>0x8000</Size>
-              </OCR_RVCT4>
-              <OCR_RVCT5>
-                <Type>1</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </OCR_RVCT5>
-              <OCR_RVCT6>
-                <Type>0</Type>
-                <StartAddress>0x20800000</StartAddress>
-                <Size>0x1800000</Size>
-              </OCR_RVCT6>
-              <OCR_RVCT7>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </OCR_RVCT7>
-              <OCR_RVCT8>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </OCR_RVCT8>
-              <OCR_RVCT9>
-                <Type>0</Type>
-                <StartAddress>0x200000</StartAddress>
-                <Size>0x1000</Size>
-              </OCR_RVCT9>
-              <OCR_RVCT10>
-                <Type>0</Type>
-                <StartAddress>0x300000</StartAddress>
-                <Size>0x1000</Size>
-              </OCR_RVCT10>
-            </OnChipMemories>
-            <RvctStartVector></RvctStartVector>
-          </ArmAdsMisc>
-          <Cads>
-            <interw>1</interw>
-            <Optim>1</Optim>
-            <oTime>0</oTime>
-            <SplitLS>0</SplitLS>
-            <OneElfS>0</OneElfS>
-            <Strict>0</Strict>
-            <EnumInt>0</EnumInt>
-            <PlainCh>0</PlainCh>
-            <Ropi>0</Ropi>
-            <Rwpi>0</Rwpi>
-            <wLevel>2</wLevel>
-            <uThumb>0</uThumb>
-            <uSurpInc>0</uSurpInc>
-            <uC99>0</uC99>
-            <uGnu>0</uGnu>
-            <useXO>0</useXO>
-            <v6Lang>1</v6Lang>
-            <v6LangP>1</v6LangP>
-            <vShortEn>1</vShortEn>
-            <vShortWch>1</vShortWch>
-            <v6Lto>0</v6Lto>
-            <v6WtE>0</v6WtE>
-            <v6Rtti>0</v6Rtti>
-            <VariousControls>
-              <MiscControls>--c99</MiscControls>
-              <Define></Define>
-              <Undefine></Undefine>
-              <IncludePath></IncludePath>
-            </VariousControls>
-          </Cads>
-          <Aads>
-            <interw>1</interw>
-            <Ropi>0</Ropi>
-            <Rwpi>0</Rwpi>
-            <thumb>0</thumb>
-            <SplitLS>0</SplitLS>
-            <SwStkChk>0</SwStkChk>
-            <NoWarn>0</NoWarn>
-            <uSurpInc>0</uSurpInc>
-            <useXO>0</useXO>
-            <uClangAs>0</uClangAs>
-            <VariousControls>
-              <MiscControls></MiscControls>
-              <Define></Define>
-              <Undefine></Undefine>
-              <IncludePath></IncludePath>
-            </VariousControls>
-          </Aads>
-          <LDads>
-            <umfTarg>0</umfTarg>
-            <Ropi>0</Ropi>
-            <Rwpi>0</Rwpi>
-            <noStLib>0</noStLib>
-            <RepFail>1</RepFail>
-            <useFile>0</useFile>
-            <TextAddressRange>0x20000000</TextAddressRange>
-            <DataAddressRange>0x20800000</DataAddressRange>
-            <pXoBase></pXoBase>
-            <ScatterFile>.\linking_scripts\nuc980.sct</ScatterFile>
-            <IncludeLibs></IncludeLibs>
-            <IncludeLibsPath></IncludeLibsPath>
-            <Misc></Misc>
-            <LinkerInputFile></LinkerInputFile>
-            <DisabledWarnings></DisabledWarnings>
-          </LDads>
-        </TargetArmAds>
-      </TargetOption>
-    </Target>
-  </Targets>
-
-  <RTE>
-    <apis/>
-    <components/>
-    <files/>
-  </RTE>
-
-</Project>

+ 46 - 64
bsp/nuvoton/nk-n9h30/.config

@@ -94,17 +94,8 @@ CONFIG_RT_USING_USER_MAIN=y
 CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
 CONFIG_RT_MAIN_THREAD_PRIORITY=10
 # CONFIG_RT_USING_LEGACY is not set
-
-#
-# C++ features
-#
-# CONFIG_RT_USING_CPLUSPLUS is not set
-
-#
-# Command shell
-#
-CONFIG_RT_USING_FINSH=y
 CONFIG_RT_USING_MSH=y
+CONFIG_RT_USING_FINSH=y
 CONFIG_FINSH_USING_MSH=y
 CONFIG_FINSH_THREAD_NAME="tshell"
 CONFIG_FINSH_THREAD_PRIORITY=20
@@ -118,10 +109,6 @@ CONFIG_FINSH_USING_DESCRIPTION=y
 # CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
 # CONFIG_FINSH_USING_AUTH is not set
 CONFIG_FINSH_ARG_MAX=10
-
-#
-# Device virtual file system
-#
 CONFIG_RT_USING_DFS=y
 CONFIG_DFS_USING_POSIX=y
 CONFIG_DFS_USING_WORKDIR=y
@@ -156,6 +143,13 @@ CONFIG_RT_USING_DFS_DEVFS=y
 # CONFIG_RT_USING_DFS_ROMFS is not set
 # CONFIG_RT_USING_DFS_RAMFS is not set
 # CONFIG_RT_USING_DFS_NFS is not set
+CONFIG_RT_USING_FAL=y
+CONFIG_FAL_DEBUG_CONFIG=y
+CONFIG_FAL_DEBUG=1
+CONFIG_FAL_PART_HAS_TABLE_CFG=y
+CONFIG_FAL_USING_SFUD_PORT=y
+CONFIG_FAL_USING_NOR_FLASH_DEV_NAME="norflash0"
+# CONFIG_RT_USING_LWP is not set
 
 #
 # Device Drivers
@@ -190,6 +184,7 @@ CONFIG_RT_USING_ALARM=y
 # CONFIG_RT_USING_SOFT_RTC is not set
 # CONFIG_RT_USING_SDIO 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=y
@@ -244,7 +239,7 @@ CONFIG_RT_VCOM_TX_TIMEOUT=1000
 CONFIG_RT_USB_MSTORAGE_DISK_NAME="ramdisk1"
 
 #
-# POSIX layer and C standard library
+# C/C++ and POSIX layer
 #
 CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 
@@ -275,14 +270,11 @@ CONFIG_RT_USING_POSIX_SELECT=y
 #
 # Socket is in the 'Network' category
 #
+# CONFIG_RT_USING_CPLUSPLUS is not set
 
 #
 # Network
 #
-
-#
-# Socket abstraction layer
-#
 CONFIG_RT_USING_SAL=y
 CONFIG_SAL_INTERNET_CHECK=y
 
@@ -291,10 +283,6 @@ CONFIG_SAL_INTERNET_CHECK=y
 #
 CONFIG_SAL_USING_LWIP=y
 CONFIG_SAL_USING_POSIX=y
-
-#
-# Network interface device
-#
 CONFIG_RT_USING_NETDEV=y
 CONFIG_NETDEV_USING_IFCONFIG=y
 CONFIG_NETDEV_USING_PING=y
@@ -304,14 +292,13 @@ CONFIG_NETDEV_USING_AUTO_DEFAULT=y
 CONFIG_NETDEV_IPV4=1
 CONFIG_NETDEV_IPV6=0
 # CONFIG_NETDEV_IPV6_SCOPES is not set
-
-#
-# light weight TCP/IP stack
-#
 CONFIG_RT_USING_LWIP=y
+# CONFIG_RT_USING_LWIP_LOCAL_VERSION is not set
 # CONFIG_RT_USING_LWIP141 is not set
 CONFIG_RT_USING_LWIP203=y
 # CONFIG_RT_USING_LWIP212 is not set
+# CONFIG_RT_USING_LWIP_LATEST is not set
+CONFIG_RT_USING_LWIP_VER_NUM=0x20003
 # CONFIG_RT_USING_LWIP_IPV6 is not set
 CONFIG_RT_LWIP_MEM_ALIGNMENT=4
 CONFIG_RT_LWIP_IGMP=y
@@ -361,18 +348,9 @@ CONFIG_LWIP_NETIF_LOOPBACK=1
 CONFIG_RT_LWIP_STATS=y
 # CONFIG_RT_LWIP_USING_HW_CHECKSUM is not set
 CONFIG_RT_LWIP_USING_PING=y
+# CONFIG_LWIP_USING_DHCPD is not set
 # CONFIG_RT_LWIP_DEBUG is not set
-
-#
-# AT commands
-#
 # CONFIG_RT_USING_AT is not set
-# CONFIG_LWIP_USING_DHCPD is not set
-
-#
-# VBUS(Virtual Software BUS)
-#
-# CONFIG_RT_USING_VBUS is not set
 
 #
 # Utilities
@@ -384,7 +362,7 @@ CONFIG_UTEST_THR_STACK_SIZE=4096
 CONFIG_UTEST_THR_PRIORITY=20
 # CONFIG_RT_USING_VAR_EXPORT is not set
 # CONFIG_RT_USING_RT_LINK is not set
-# CONFIG_RT_USING_LWP is not set
+# CONFIG_RT_USING_VBUS is not set
 
 #
 # RT-Thread Utestcases
@@ -398,6 +376,7 @@ CONFIG_UTEST_THR_PRIORITY=20
 #
 # IoT - internet of things
 #
+# CONFIG_PKG_USING_LWIP is not set
 # CONFIG_PKG_USING_LORAWAN_DRIVER is not set
 # CONFIG_PKG_USING_PAHOMQTT is not set
 # CONFIG_PKG_USING_UMQTT is not set
@@ -408,12 +387,8 @@ CONFIG_UTEST_THR_PRIORITY=20
 # CONFIG_PKG_USING_KAWAII_MQTT is not set
 # CONFIG_PKG_USING_BC28_MQTT is not set
 # CONFIG_PKG_USING_WEBTERMINAL is not set
-# CONFIG_PKG_USING_CJSON is not set
-# CONFIG_PKG_USING_JSMN is not set
 # CONFIG_PKG_USING_LIBMODBUS is not set
 # CONFIG_PKG_USING_FREEMODBUS is not set
-# CONFIG_PKG_USING_LJSON is not set
-# CONFIG_PKG_USING_EZXML is not set
 # CONFIG_PKG_USING_NANOPB is not set
 
 #
@@ -467,16 +442,13 @@ CONFIG_UTEST_THR_PRIORITY=20
 # CONFIG_PKG_USING_ABUP_FOTA is not set
 # CONFIG_PKG_USING_LIBCURL2RTT is not set
 # CONFIG_PKG_USING_CAPNP is not set
-# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
 # CONFIG_PKG_USING_AGILE_TELNET is not set
 # CONFIG_PKG_USING_NMEALIB is not set
-# CONFIG_PKG_USING_AGILE_JSMN is not set
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK 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
-# CONFIG_PKG_USING_RAPIDJSON is not set
 # CONFIG_PKG_USING_BSAL is not set
 # CONFIG_PKG_USING_AGILE_MODBUS is not set
 # CONFIG_PKG_USING_AGILE_FTP is not set
@@ -501,6 +473,22 @@ CONFIG_UTEST_THR_PRIORITY=20
 #
 # language packages
 #
+
+#
+# JSON: JavaScript Object Notation, a lightweight data-interchange format
+#
+# CONFIG_PKG_USING_CJSON is not set
+# CONFIG_PKG_USING_LJSON is not set
+# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
+# CONFIG_PKG_USING_RAPIDJSON is not set
+# CONFIG_PKG_USING_JSMN is not set
+# CONFIG_PKG_USING_AGILE_JSMN is not set
+
+#
+# XML: Extensible Markup Language
+#
+# CONFIG_PKG_USING_SIMPLE_XML is not set
+# CONFIG_PKG_USING_EZXML is not set
 # CONFIG_PKG_USING_LUATOS_SOC is not set
 # CONFIG_PKG_USING_LUA is not set
 # CONFIG_PKG_USING_JERRYSCRIPT is not set
@@ -598,6 +586,8 @@ CONFIG_PKG_LV_MUSIC_DEMO_VER="v0.1.1"
 # CONFIG_PKG_USING_SOLAR_TERMS is not set
 # CONFIG_PKG_USING_GAN_ZHI is not set
 # CONFIG_PKG_USING_FDT is not set
+# CONFIG_PKG_USING_CBOX is not set
+# CONFIG_PKG_USING_SNOWFLAKE is not set
 
 #
 # system packages
@@ -640,28 +630,12 @@ CONFIG_PKG_LV_MUSIC_DEMO_VER="v0.1.1"
 # CONFIG_PKG_USING_UC_CLK is not set
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
-# CONFIG_RT_USING_ARDUINO is not set
+# CONFIG_PKG_USING_RTDUINO is not set
 # CONFIG_PKG_USING_GUIENGINE is not set
 # CONFIG_PKG_USING_PERSIMMON is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
-CONFIG_PKG_USING_FAL=y
-CONFIG_PKG_FAL_PATH="/packages/system/fal"
-CONFIG_FAL_DEBUG_CONFIG=y
-CONFIG_FAL_DEBUG=1
-CONFIG_FAL_PART_HAS_TABLE_CFG=y
-CONFIG_FAL_USING_SFUD_PORT=y
-CONFIG_FAL_USING_NOR_FLASH_DEV_NAME="norflash0"
-# CONFIG_PKG_USING_FAL_V10000 is not set
-# CONFIG_PKG_USING_FAL_V00500 is not set
-# CONFIG_PKG_USING_FAL_V00400 is not set
-# CONFIG_PKG_USING_FAL_V00300 is not set
-# CONFIG_PKG_USING_FAL_V00200 is not set
-# CONFIG_PKG_USING_FAL_V00100 is not set
-CONFIG_PKG_USING_FAL_LATEST_VERSION=y
-CONFIG_PKG_FAL_VER="latest"
-CONFIG_PKG_FAL_VER_NUM=0x99999
 # CONFIG_PKG_USING_FLASHDB is not set
 # CONFIG_PKG_USING_SQLITE is not set
 # CONFIG_PKG_USING_RTI is not set
@@ -692,6 +666,7 @@ CONFIG_PKG_RAMDISK_VER="latest"
 # CONFIG_PKG_USING_MCUBOOT is not set
 # CONFIG_PKG_USING_TINYUSB is not set
 # CONFIG_PKG_USING_CHERRYUSB is not set
+# CONFIG_PKG_USING_KMULTI_RTIMER is not set
 
 #
 # peripheral libraries and drivers
@@ -715,6 +690,7 @@ CONFIG_PKG_RAMDISK_VER="latest"
 # CONFIG_PKG_USING_WM_LIBRARIES is not set
 # CONFIG_PKG_USING_KENDRYTE_SDK is not set
 # CONFIG_PKG_USING_INFRARED is not set
+# CONFIG_PKG_USING_MULTI_INFRARED is not set
 # CONFIG_PKG_USING_AGILE_BUTTON is not set
 # CONFIG_PKG_USING_AGILE_LED is not set
 # CONFIG_PKG_USING_AT24CXX is not set
@@ -771,6 +747,7 @@ CONFIG_PKG_RAMDISK_VER="latest"
 # CONFIG_PKG_USING_SOFT_SERIAL is not set
 # CONFIG_PKG_USING_MB85RS16 is not set
 # CONFIG_PKG_USING_CW2015 is not set
+# CONFIG_PKG_USING_RFM300 is not set
 
 #
 # AI packages
@@ -789,6 +766,10 @@ CONFIG_PKG_RAMDISK_VER="latest"
 # miscellaneous packages
 #
 
+#
+# project laboratory
+#
+
 #
 # samples: kernel and components samples
 #
@@ -839,6 +820,7 @@ CONFIG_PKG_RAMDISK_VER="latest"
 # CONFIG_PKG_USING_DESIGN_PATTERN is not set
 # CONFIG_PKG_USING_CONTROLLER is not set
 # CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
+# CONFIG_PKG_USING_MFBD is not set
 
 #
 # Hardware Drivers Config
@@ -966,8 +948,8 @@ CONFIG_NU_PKG_USING_UTILS=y
 CONFIG_NU_PKG_USING_NAU8822=y
 # CONFIG_NU_PKG_USING_DA9062 is not set
 # CONFIG_NU_PKG_USING_ILI9341 is not set
+# CONFIG_NU_PKG_USING_SSD1963 is not set
+# CONFIG_NU_PKG_USING_TPC is not set
 CONFIG_NU_PKG_USING_ADC_TOUCH=y
 # CONFIG_NU_PKG_USING_ADC_TOUCH_SW is not set
 # CONFIG_NU_PKG_USING_SPINAND is not set
-CONFIG_BOARD_USE_UTEST=y
-CONFIG_UTEST_CMD_PREFIX="bsp.nuvoton.nk-n9h30.test.utest."

+ 3 - 3
bsp/nuvoton/nk-n9h30/README.md

@@ -43,13 +43,13 @@ Nuvoton offers HMI platforms which are embedded with Nuvoton N9H MPU.  The N9H s
 |SPI NOR flash | W25Q256JVEQ (32 MB) | Supported |
 
 ## 2. Supported compiler
-Support GCC, MDK4 and MDK5 IDE/compilers. More information of these compiler version as following:
+Support GCC and MDK IDE/compilers. More information of these compiler version as following:
 | IDE/Compiler  | Tested version            |
 | ---------- | ---------------------------- |
-| MDK5       | 5.26.2                       |
+| MDK        | uVision 5.25.2               |
 | GCC        | 6-2017-q1-update             |
 
-Notice: Please install ICE driver for development.
+Notice: Please install ICE driver for development and [NuMicro_ARM9_Device_Database_Keil](https://www.nuvoton.com/resource-download.jsp?tp_GUID=SW1820201207155701).
 
 ## 3. Program firmware
 ### 3.1 SDRAM Downloading using NuWriter

+ 7 - 0
bsp/nuvoton/nk-n9h30/applications/lvgl/lv_conf.h

@@ -13,6 +13,8 @@
 
 #include "rtconfig.h"
 
+#define LV_VERSION_EQUAL(x,y,z) (x == LVGL_VERSION_MAJOR && y==LVGL_VERSION_MINOR  && z==LVGL_VERSION_PATCH )
+
 //#define LV_USE_GPU_N9H30_GE2D   1
 
 #define LV_COLOR_DEPTH                  BSP_LCD_BPP
@@ -23,8 +25,13 @@
 #define LV_FONT_MONTSERRAT_16           1
 #define LV_USE_PERF_MONITOR             1
 
+#if LV_VERSION_EQUAL(8, 1, 0)		
 #define LV_USE_DEMO_RTT_MUSIC           1
 #define LV_DEMO_RTT_MUSIC_AUTO_PLAY     1
+#else
+#define LV_USE_DEMO_MUSIC           1
+#define LV_DEMO_MUSIC_AUTO_PLAY     1
+#endif
 
 //#define LV_DISP_DEF_REFR_PERIOD         16
 

+ 4 - 0
bsp/nuvoton/nk-n9h30/applications/lvgl/lv_port_disp.c

@@ -135,6 +135,7 @@ static void nu_flush(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t
     lv_disp_flush_ready(disp_drv);
 }
 
+#if LV_VERSION_EQUAL(8, 1, 0)
 static void nu_fill_cb(struct _lv_disp_drv_t *disp_drv, lv_color_t *dest_buf, lv_coord_t dest_width,
                        const lv_area_t *fill_area, lv_color_t color)
 {
@@ -185,6 +186,7 @@ static void nu_fill_cb(struct _lv_disp_drv_t *disp_drv, lv_color_t *dest_buf, lv
         // -> Leave GE2D
     }
 }
+#endif
 
 void nu_perf_monitor(struct _lv_disp_drv_t *disp_drv, uint32_t time, uint32_t px)
 {
@@ -271,8 +273,10 @@ void lv_port_disp_init(void)
     /*Set a display buffer*/
     disp_drv.draw_buf = &disp_buf;
 
+#if LV_VERSION_EQUAL(8, 1, 0)		
     /*Fill a memory with a color (GPU only)*/
     disp_drv.gpu_fill_cb = nu_fill_cb;
+#endif
 
     /*Called after every refresh cycle to tell the rendering and flushing time + the number of flushed pixels*/
     //disp_drv.monitor_cb = nu_perf_monitor;

+ 18 - 35
bsp/nuvoton/nk-n9h30/rtconfig.h

@@ -59,14 +59,8 @@
 #define RT_USING_USER_MAIN
 #define RT_MAIN_THREAD_STACK_SIZE 2048
 #define RT_MAIN_THREAD_PRIORITY 10
-
-/* C++ features */
-
-
-/* Command shell */
-
-#define RT_USING_FINSH
 #define RT_USING_MSH
+#define RT_USING_FINSH
 #define FINSH_USING_MSH
 #define FINSH_THREAD_NAME "tshell"
 #define FINSH_THREAD_PRIORITY 20
@@ -78,9 +72,6 @@
 #define MSH_USING_BUILT_IN_COMMANDS
 #define FINSH_USING_DESCRIPTION
 #define FINSH_ARG_MAX 10
-
-/* Device virtual file system */
-
 #define RT_USING_DFS
 #define DFS_USING_POSIX
 #define DFS_USING_WORKDIR
@@ -104,6 +95,12 @@
 #define RT_DFS_ELM_REENTRANT
 #define RT_DFS_ELM_MUTEX_TIMEOUT 3000
 #define RT_USING_DFS_DEVFS
+#define RT_USING_FAL
+#define FAL_DEBUG_CONFIG
+#define FAL_DEBUG 1
+#define FAL_PART_HAS_TABLE_CFG
+#define FAL_USING_SFUD_PORT
+#define FAL_USING_NOR_FLASH_DEV_NAME "norflash0"
 
 /* Device Drivers */
 
@@ -160,7 +157,7 @@
 #define RT_VCOM_TX_TIMEOUT 1000
 #define RT_USB_MSTORAGE_DISK_NAME "ramdisk1"
 
-/* POSIX layer and C standard library */
+/* C/C++ and POSIX layer */
 
 #define RT_LIBC_DEFAULT_TIMEZONE 8
 
@@ -176,9 +173,8 @@
 
 /* Socket is in the 'Network' category */
 
-/* Network */
 
-/* Socket abstraction layer */
+/* Network */
 
 #define RT_USING_SAL
 #define SAL_INTERNET_CHECK
@@ -187,9 +183,6 @@
 
 #define SAL_USING_LWIP
 #define SAL_USING_POSIX
-
-/* Network interface device */
-
 #define RT_USING_NETDEV
 #define NETDEV_USING_IFCONFIG
 #define NETDEV_USING_PING
@@ -197,11 +190,9 @@
 #define NETDEV_USING_AUTO_DEFAULT
 #define NETDEV_IPV4 1
 #define NETDEV_IPV6 0
-
-/* light weight TCP/IP stack */
-
 #define RT_USING_LWIP
 #define RT_USING_LWIP203
+#define RT_USING_LWIP_VER_NUM 0x20003
 #define RT_LWIP_MEM_ALIGNMENT 4
 #define RT_LWIP_IGMP
 #define RT_LWIP_ICMP
@@ -244,12 +235,6 @@
 #define RT_LWIP_STATS
 #define RT_LWIP_USING_PING
 
-/* AT commands */
-
-
-/* VBUS(Virtual Software BUS) */
-
-
 /* Utilities */
 
 #define RT_USING_UTEST
@@ -280,6 +265,11 @@
 
 /* language packages */
 
+/* JSON: JavaScript Object Notation, a lightweight data-interchange format */
+
+
+/* XML: Extensible Markup Language */
+
 
 /* multimedia packages */
 
@@ -315,14 +305,6 @@
 
 /* Micrium: Micrium software products porting for RT-Thread */
 
-#define RT_USING_FAL
-#define FAL_DEBUG_CONFIG
-#define FAL_DEBUG 1
-#define FAL_PART_HAS_TABLE_CFG
-#define FAL_USING_SFUD_PORT
-#define FAL_USING_NOR_FLASH_DEV_NAME "norflash0"
-#define RT_USING_FAL_LATEST_VERSION
-#define PKG_FAL_VER_NUM 0x99999
 #define PKG_USING_RAMDISK
 #define PKG_USING_RAMDISK_LATEST_VERSION
 
@@ -334,6 +316,8 @@
 
 /* miscellaneous packages */
 
+/* project laboratory */
+
 /* samples: kernel and components samples */
 
 
@@ -420,7 +404,6 @@
 
 #define NU_PKG_USING_UTILS
 #define NU_PKG_USING_NAU8822
-#define BOARD_USE_UTEST
-#define UTEST_CMD_PREFIX "bsp.nuvoton.nk-n9h30.test.utest."
+#define NU_PKG_USING_ADC_TOUCH
 
 #endif

+ 41 - 12
bsp/nuvoton/nk-n9h30/template.uvproj

@@ -10,11 +10,13 @@
       <TargetName>rtthread</TargetName>
       <ToolsetNumber>0x4</ToolsetNumber>
       <ToolsetName>ARM-ADS</ToolsetName>
+      <pCCUsed>5060750::V5.06 update 6 (build 750)::ARMCC</pCCUsed>
+      <uAC6>0</uAC6>
       <TargetOption>
         <TargetCommonOption>
           <Device>Nuvoton_ARM9_Series</Device>
           <Vendor>Nuvoton</Vendor>
-          <Cpu></Cpu>
+          <Cpu>IRAM(0x0-0x0) CLOCK(000000000) CPUTYPE(ARM926EJ-S)</Cpu>
           <FlashUtilSpec></FlashUtilSpec>
           <StartupFile></StartupFile>
           <FlashDriverDll></FlashDriverDll>
@@ -30,6 +32,7 @@
           <SLE66AMisc></SLE66AMisc>
           <SLE66LinkerMisc></SLE66LinkerMisc>
           <SFDFile></SFDFile>
+          <bCustSvd>0</bCustSvd>
           <UseEnv>0</UseEnv>
           <BinPath></BinPath>
           <IncludePath></IncludePath>
@@ -43,7 +46,7 @@
             <NotGenerated>0</NotGenerated>
             <InvalidFlash>1</InvalidFlash>
           </TargetStatus>
-          <OutputDirectory>.\Objects\</OutputDirectory>
+          <OutputDirectory>.\build\keil4\</OutputDirectory>
           <OutputName>rtthread</OutputName>
           <CreateExecutable>1</CreateExecutable>
           <CreateLib>0</CreateLib>
@@ -71,14 +74,18 @@
             <UserProg2Name></UserProg2Name>
             <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
             <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+            <nStopB1X>0</nStopB1X>
+            <nStopB2X>0</nStopB2X>
           </BeforeMake>
           <AfterMake>
-            <RunUserProg1>0</RunUserProg1>
+            <RunUserProg1>1</RunUserProg1>
             <RunUserProg2>0</RunUserProg2>
-            <UserProg1Name></UserProg1Name>
+            <UserProg1Name>fromelf.exe --bin --output "$L@L.bin" "$L@L.axf"</UserProg1Name>
             <UserProg2Name></UserProg2Name>
             <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
             <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+            <nStopA1X>0</nStopA1X>
+            <nStopA2X>0</nStopA2X>
           </AfterMake>
           <SelectedForBatchBuild>0</SelectedForBatchBuild>
           <SVCSIdString></SVCSIdString>
@@ -97,6 +104,7 @@
           <StopOnExitCode>3</StopOnExitCode>
           <CustomArgument></CustomArgument>
           <IncludeLibraryModules></IncludeLibraryModules>
+          <ComprImg>1</ComprImg>
         </CommonProperty>
         <DllOption>
           <SimDllName>SARM.DLL</SimDllName>
@@ -126,6 +134,7 @@
             <RestoreFunctions>1</RestoreFunctions>
             <RestoreToolbox>1</RestoreToolbox>
             <LimitSpeedToRealTime>0</LimitSpeedToRealTime>
+            <RestoreSysVw>1</RestoreSysVw>
           </Simulator>
           <Target>
             <UseTarget>1</UseTarget>
@@ -137,9 +146,10 @@
             <RestoreFunctions>0</RestoreFunctions>
             <RestoreToolbox>1</RestoreToolbox>
             <RestoreTracepoints>1</RestoreTracepoints>
+            <RestoreSysVw>1</RestoreSysVw>
           </Target>
           <RunDebugAfterBuild>0</RunDebugAfterBuild>
-          <TargetSelection>6</TargetSelection>
+          <TargetSelection>18</TargetSelection>
           <SimDlls>
             <CpuDll></CpuDll>
             <CpuDllArguments></CpuDllArguments>
@@ -152,7 +162,7 @@
             <CpuDllArguments></CpuDllArguments>
             <PeripheralDll></PeripheralDll>
             <PeripheralDllArguments></PeripheralDllArguments>
-            <InitializationFile>..\libraries\nuc980\Script\NUC980xx61.ini</InitializationFile>
+            <InitializationFile>..\libraries\n9h30\Script\InitDDR2.ini</InitializationFile>
             <Driver>Segger\JLTAgdi.dll</Driver>
           </TargetDlls>
         </DebugOption>
@@ -167,8 +177,12 @@
           </Flash1>
           <bUseTDR>0</bUseTDR>
           <Flash2>Segger\JLTAgdi.dll</Flash2>
-          <Flash3>"" ()</Flash3>
+          <Flash3></Flash3>
           <Flash4></Flash4>
+          <pFcarmOut></pFcarmOut>
+          <pFcarmGrp></pFcarmGrp>
+          <pFcArmRoot></pFcArmRoot>
+          <FcArmLst>0</FcArmLst>
         </Utilities>
         <TargetArmAds>
           <ArmAdsMisc>
@@ -199,22 +213,24 @@
             <AdsLsxf>1</AdsLsxf>
             <RvctClst>0</RvctClst>
             <GenPPlst>0</GenPPlst>
-            <AdsCpuType></AdsCpuType>
+            <AdsCpuType>ARM926EJ-S</AdsCpuType>
             <RvctDeviceName></RvctDeviceName>
             <mOS>0</mOS>
             <uocRom>0</uocRom>
             <uocRam>0</uocRam>
             <hadIROM>0</hadIROM>
-            <hadIRAM>0</hadIRAM>
+            <hadIRAM>1</hadIRAM>
             <hadXRAM>0</hadXRAM>
             <uocXRam>0</uocXRam>
             <RvdsVP>0</RvdsVP>
+            <RvdsMve>0</RvdsMve>
             <hadIRAM2>0</hadIRAM2>
             <hadIROM2>0</hadIROM2>
             <StupSel>0</StupSel>
             <useUlib>0</useUlib>
             <EndSel>0</EndSel>
             <uLtcg>0</uLtcg>
+            <nSecure>0</nSecure>
             <RoSelD>3</RoSelD>
             <RwSelD>3</RwSelD>
             <CodeSel>0</CodeSel>
@@ -267,8 +283,8 @@
               </Ocm6>
               <IRAM>
                 <Type>0</Type>
-                <StartAddress>0x200000</StartAddress>
-                <Size>0x1000</Size>
+                <StartAddress>0x0</StartAddress>
+                <Size>0x1</Size>
               </IRAM>
               <IROM>
                 <Type>1</Type>
@@ -323,7 +339,7 @@
               <OCR_RVCT9>
                 <Type>0</Type>
                 <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
+                <Size>0x1</Size>
               </OCR_RVCT9>
               <OCR_RVCT10>
                 <Type>0</Type>
@@ -347,6 +363,16 @@
             <wLevel>2</wLevel>
             <uThumb>0</uThumb>
             <uSurpInc>0</uSurpInc>
+            <uC99>0</uC99>
+            <uGnu>0</uGnu>
+            <useXO>0</useXO>
+            <v6Lang>1</v6Lang>
+            <v6LangP>1</v6LangP>
+            <vShortEn>1</vShortEn>
+            <vShortWch>1</vShortWch>
+            <v6Lto>0</v6Lto>
+            <v6WtE>0</v6WtE>
+            <v6Rtti>0</v6Rtti>
             <VariousControls>
               <MiscControls>--c99</MiscControls>
               <Define>RT_USING_INTERRUPT_INFO</Define>
@@ -363,6 +389,8 @@
             <SwStkChk>0</SwStkChk>
             <NoWarn>0</NoWarn>
             <uSurpInc>0</uSurpInc>
+            <useXO>0</useXO>
+            <uClangAs>0</uClangAs>
             <VariousControls>
               <MiscControls></MiscControls>
               <Define></Define>
@@ -379,6 +407,7 @@
             <useFile>0</useFile>
             <TextAddressRange>0x20000000</TextAddressRange>
             <DataAddressRange>0x20800000</DataAddressRange>
+            <pXoBase></pXoBase>
             <ScatterFile>.\linking_scripts\n9h30.sct</ScatterFile>
             <IncludeLibs></IncludeLibs>
             <IncludeLibsPath></IncludeLibsPath>

+ 0 - 387
bsp/nuvoton/nk-n9h30/template.uvprojx

@@ -1,387 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
-<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
-
-  <SchemaVersion>2.1</SchemaVersion>
-
-  <Header>### uVision Project, (C) Keil Software</Header>
-
-  <Targets>
-    <Target>
-      <TargetName>rtthread</TargetName>
-      <ToolsetNumber>0x4</ToolsetNumber>
-      <ToolsetName>ARM-ADS</ToolsetName>
-      <uAC6>0</uAC6>
-      <TargetOption>
-        <TargetCommonOption>
-          <Device>Nuvoton_ARM9_Series</Device>
-          <Vendor>Nuvoton</Vendor>
-          <Cpu></Cpu>
-          <FlashUtilSpec></FlashUtilSpec>
-          <StartupFile></StartupFile>
-          <FlashDriverDll></FlashDriverDll>
-          <DeviceId>0</DeviceId>
-          <RegisterFile></RegisterFile>
-          <MemoryEnv></MemoryEnv>
-          <Cmp></Cmp>
-          <Asm></Asm>
-          <Linker></Linker>
-          <OHString></OHString>
-          <InfinionOptionDll></InfinionOptionDll>
-          <SLE66CMisc></SLE66CMisc>
-          <SLE66AMisc></SLE66AMisc>
-          <SLE66LinkerMisc></SLE66LinkerMisc>
-          <SFDFile></SFDFile>
-          <bCustSvd>0</bCustSvd>
-          <UseEnv>0</UseEnv>
-          <BinPath></BinPath>
-          <IncludePath></IncludePath>
-          <LibPath></LibPath>
-          <RegisterFilePath>Atmel\SAM9260\</RegisterFilePath>
-          <DBRegisterFilePath>Atmel\SAM9260\</DBRegisterFilePath>
-          <TargetStatus>
-            <Error>0</Error>
-            <ExitCodeStop>0</ExitCodeStop>
-            <ButtonStop>0</ButtonStop>
-            <NotGenerated>0</NotGenerated>
-            <InvalidFlash>1</InvalidFlash>
-          </TargetStatus>
-          <OutputDirectory>.\build\keil5\</OutputDirectory>
-          <OutputName>rtthread</OutputName>
-          <CreateExecutable>1</CreateExecutable>
-          <CreateLib>0</CreateLib>
-          <CreateHexFile>1</CreateHexFile>
-          <DebugInformation>1</DebugInformation>
-          <BrowseInformation>1</BrowseInformation>
-          <ListingPath>.\build\keil5\</ListingPath>
-          <HexFormatSelection>1</HexFormatSelection>
-          <Merge32K>0</Merge32K>
-          <CreateBatchFile>0</CreateBatchFile>
-          <BeforeCompile>
-            <RunUserProg1>0</RunUserProg1>
-            <RunUserProg2>0</RunUserProg2>
-            <UserProg1Name></UserProg1Name>
-            <UserProg2Name></UserProg2Name>
-            <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
-            <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
-            <nStopU1X>0</nStopU1X>
-            <nStopU2X>0</nStopU2X>
-          </BeforeCompile>
-          <BeforeMake>
-            <RunUserProg1>0</RunUserProg1>
-            <RunUserProg2>0</RunUserProg2>
-            <UserProg1Name></UserProg1Name>
-            <UserProg2Name></UserProg2Name>
-            <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
-            <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
-            <nStopB1X>0</nStopB1X>
-            <nStopB2X>0</nStopB2X>
-          </BeforeMake>
-          <AfterMake>
-            <RunUserProg1>1</RunUserProg1>
-            <RunUserProg2>0</RunUserProg2>
-            <UserProg1Name>fromelf.exe --bin --output "$L@L.bin" "$L@L.axf"</UserProg1Name>
-            <UserProg2Name></UserProg2Name>
-            <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
-            <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
-            <nStopA1X>0</nStopA1X>
-            <nStopA2X>0</nStopA2X>
-          </AfterMake>
-          <SelectedForBatchBuild>0</SelectedForBatchBuild>
-          <SVCSIdString></SVCSIdString>
-        </TargetCommonOption>
-        <CommonProperty>
-          <UseCPPCompiler>0</UseCPPCompiler>
-          <RVCTCodeConst>0</RVCTCodeConst>
-          <RVCTZI>0</RVCTZI>
-          <RVCTOtherData>0</RVCTOtherData>
-          <ModuleSelection>0</ModuleSelection>
-          <IncludeInBuild>1</IncludeInBuild>
-          <AlwaysBuild>0</AlwaysBuild>
-          <GenerateAssemblyFile>0</GenerateAssemblyFile>
-          <AssembleAssemblyFile>0</AssembleAssemblyFile>
-          <PublicsOnly>0</PublicsOnly>
-          <StopOnExitCode>3</StopOnExitCode>
-          <CustomArgument></CustomArgument>
-          <IncludeLibraryModules></IncludeLibraryModules>
-          <ComprImg>1</ComprImg>
-        </CommonProperty>
-        <DllOption>
-          <SimDllName>SARM.DLL</SimDllName>
-          <SimDllArguments>-cAT91SAM9260</SimDllArguments>
-          <SimDlgDll>DARMATS9.DLL</SimDlgDll>
-          <SimDlgDllArguments>-p91SAM9260</SimDlgDllArguments>
-          <TargetDllName>SARM.DLL</TargetDllName>
-          <TargetDllArguments></TargetDllArguments>
-          <TargetDlgDll>TARMATS9.DLL</TargetDlgDll>
-          <TargetDlgDllArguments>-p91SAM9260</TargetDlgDllArguments>
-        </DllOption>
-        <DebugOption>
-          <OPTHX>
-            <HexSelection>1</HexSelection>
-            <HexRangeLowAddress>0</HexRangeLowAddress>
-            <HexRangeHighAddress>0</HexRangeHighAddress>
-            <HexOffset>0</HexOffset>
-            <Oh166RecLen>16</Oh166RecLen>
-          </OPTHX>
-        </DebugOption>
-        <Utilities>
-          <Flash1>
-            <UseTargetDll>1</UseTargetDll>
-            <UseExternalTool>0</UseExternalTool>
-            <RunIndependent>0</RunIndependent>
-            <UpdateFlashBeforeDebugging>0</UpdateFlashBeforeDebugging>
-            <Capability>1</Capability>
-            <DriverSelection>4098</DriverSelection>
-          </Flash1>
-          <bUseTDR>0</bUseTDR>
-          <Flash2>Segger\JLTAgdi.dll</Flash2>
-          <Flash3>"" ()</Flash3>
-          <Flash4></Flash4>
-          <pFcarmOut></pFcarmOut>
-          <pFcarmGrp></pFcarmGrp>
-          <pFcArmRoot></pFcArmRoot>
-          <FcArmLst>0</FcArmLst>
-        </Utilities>
-        <TargetArmAds>
-          <ArmAdsMisc>
-            <GenerateListings>0</GenerateListings>
-            <asHll>1</asHll>
-            <asAsm>1</asAsm>
-            <asMacX>1</asMacX>
-            <asSyms>1</asSyms>
-            <asFals>1</asFals>
-            <asDbgD>1</asDbgD>
-            <asForm>1</asForm>
-            <ldLst>0</ldLst>
-            <ldmm>1</ldmm>
-            <ldXref>1</ldXref>
-            <BigEnd>0</BigEnd>
-            <AdsALst>1</AdsALst>
-            <AdsACrf>1</AdsACrf>
-            <AdsANop>0</AdsANop>
-            <AdsANot>0</AdsANot>
-            <AdsLLst>1</AdsLLst>
-            <AdsLmap>1</AdsLmap>
-            <AdsLcgr>1</AdsLcgr>
-            <AdsLsym>1</AdsLsym>
-            <AdsLszi>1</AdsLszi>
-            <AdsLtoi>1</AdsLtoi>
-            <AdsLsun>1</AdsLsun>
-            <AdsLven>1</AdsLven>
-            <AdsLsxf>1</AdsLsxf>
-            <RvctClst>0</RvctClst>
-            <GenPPlst>0</GenPPlst>
-            <AdsCpuType>ARM926EJ-S</AdsCpuType>
-            <RvctDeviceName></RvctDeviceName>
-            <mOS>0</mOS>
-            <uocRom>0</uocRom>
-            <uocRam>0</uocRam>
-            <hadIROM>1</hadIROM>
-            <hadIRAM>1</hadIRAM>
-            <hadXRAM>0</hadXRAM>
-            <uocXRam>0</uocXRam>
-            <RvdsVP>0</RvdsVP>
-            <RvdsMve>0</RvdsMve>
-            <hadIRAM2>1</hadIRAM2>
-            <hadIROM2>0</hadIROM2>
-            <StupSel>8</StupSel>
-            <useUlib>0</useUlib>
-            <EndSel>0</EndSel>
-            <uLtcg>0</uLtcg>
-            <nSecure>0</nSecure>
-            <RoSelD>3</RoSelD>
-            <RwSelD>3</RwSelD>
-            <CodeSel>0</CodeSel>
-            <OptFeed>0</OptFeed>
-            <NoZi1>0</NoZi1>
-            <NoZi2>0</NoZi2>
-            <NoZi3>0</NoZi3>
-            <NoZi4>0</NoZi4>
-            <NoZi5>0</NoZi5>
-            <Ro1Chk>0</Ro1Chk>
-            <Ro2Chk>0</Ro2Chk>
-            <Ro3Chk>0</Ro3Chk>
-            <Ir1Chk>0</Ir1Chk>
-            <Ir2Chk>0</Ir2Chk>
-            <Ra1Chk>0</Ra1Chk>
-            <Ra2Chk>0</Ra2Chk>
-            <Ra3Chk>0</Ra3Chk>
-            <Im1Chk>0</Im1Chk>
-            <Im2Chk>0</Im2Chk>
-            <OnChipMemories>
-              <Ocm1>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm1>
-              <Ocm2>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm2>
-              <Ocm3>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm3>
-              <Ocm4>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm4>
-              <Ocm5>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm5>
-              <Ocm6>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm6>
-              <IRAM>
-                <Type>0</Type>
-                <StartAddress>0x200000</StartAddress>
-                <Size>0x1000</Size>
-              </IRAM>
-              <IROM>
-                <Type>1</Type>
-                <StartAddress>0x100000</StartAddress>
-                <Size>0x8000</Size>
-              </IROM>
-              <XRAM>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </XRAM>
-              <OCR_RVCT1>
-                <Type>1</Type>
-                <StartAddress>0x20000000</StartAddress>
-                <Size>0x800000</Size>
-              </OCR_RVCT1>
-              <OCR_RVCT2>
-                <Type>1</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </OCR_RVCT2>
-              <OCR_RVCT3>
-                <Type>1</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </OCR_RVCT3>
-              <OCR_RVCT4>
-                <Type>1</Type>
-                <StartAddress>0x100000</StartAddress>
-                <Size>0x8000</Size>
-              </OCR_RVCT4>
-              <OCR_RVCT5>
-                <Type>1</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </OCR_RVCT5>
-              <OCR_RVCT6>
-                <Type>0</Type>
-                <StartAddress>0x20800000</StartAddress>
-                <Size>0x1800000</Size>
-              </OCR_RVCT6>
-              <OCR_RVCT7>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </OCR_RVCT7>
-              <OCR_RVCT8>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </OCR_RVCT8>
-              <OCR_RVCT9>
-                <Type>0</Type>
-                <StartAddress>0x200000</StartAddress>
-                <Size>0x1000</Size>
-              </OCR_RVCT9>
-              <OCR_RVCT10>
-                <Type>0</Type>
-                <StartAddress>0x300000</StartAddress>
-                <Size>0x1000</Size>
-              </OCR_RVCT10>
-            </OnChipMemories>
-            <RvctStartVector></RvctStartVector>
-          </ArmAdsMisc>
-          <Cads>
-            <interw>1</interw>
-            <Optim>1</Optim>
-            <oTime>0</oTime>
-            <SplitLS>0</SplitLS>
-            <OneElfS>0</OneElfS>
-            <Strict>0</Strict>
-            <EnumInt>0</EnumInt>
-            <PlainCh>0</PlainCh>
-            <Ropi>0</Ropi>
-            <Rwpi>0</Rwpi>
-            <wLevel>2</wLevel>
-            <uThumb>0</uThumb>
-            <uSurpInc>0</uSurpInc>
-            <uC99>0</uC99>
-            <uGnu>0</uGnu>
-            <useXO>0</useXO>
-            <v6Lang>1</v6Lang>
-            <v6LangP>1</v6LangP>
-            <vShortEn>1</vShortEn>
-            <vShortWch>1</vShortWch>
-            <v6Lto>0</v6Lto>
-            <v6WtE>0</v6WtE>
-            <v6Rtti>0</v6Rtti>
-            <VariousControls>
-              <MiscControls>--c99</MiscControls>
-              <Define></Define>
-              <Undefine></Undefine>
-              <IncludePath></IncludePath>
-            </VariousControls>
-          </Cads>
-          <Aads>
-            <interw>1</interw>
-            <Ropi>0</Ropi>
-            <Rwpi>0</Rwpi>
-            <thumb>0</thumb>
-            <SplitLS>0</SplitLS>
-            <SwStkChk>0</SwStkChk>
-            <NoWarn>0</NoWarn>
-            <uSurpInc>0</uSurpInc>
-            <useXO>0</useXO>
-            <uClangAs>0</uClangAs>
-            <VariousControls>
-              <MiscControls></MiscControls>
-              <Define></Define>
-              <Undefine></Undefine>
-              <IncludePath></IncludePath>
-            </VariousControls>
-          </Aads>
-          <LDads>
-            <umfTarg>0</umfTarg>
-            <Ropi>0</Ropi>
-            <Rwpi>0</Rwpi>
-            <noStLib>0</noStLib>
-            <RepFail>1</RepFail>
-            <useFile>0</useFile>
-            <TextAddressRange>0x20000000</TextAddressRange>
-            <DataAddressRange>0x20800000</DataAddressRange>
-            <pXoBase></pXoBase>
-            <ScatterFile>.\linking_scripts\n9h30.sct</ScatterFile>
-            <IncludeLibs></IncludeLibs>
-            <IncludeLibsPath></IncludeLibsPath>
-            <Misc></Misc>
-            <LinkerInputFile></LinkerInputFile>
-            <DisabledWarnings></DisabledWarnings>
-          </LDads>
-        </TargetArmAds>
-      </TargetOption>
-    </Target>
-  </Targets>
-
-  <RTE>
-    <apis/>
-    <components/>
-    <files/>
-  </RTE>
-
-</Project>

+ 48 - 63
bsp/nuvoton/nk-rtu980/.config

@@ -94,17 +94,8 @@ CONFIG_RT_USING_USER_MAIN=y
 CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
 CONFIG_RT_MAIN_THREAD_PRIORITY=10
 # CONFIG_RT_USING_LEGACY is not set
-
-#
-# C++ features
-#
-# CONFIG_RT_USING_CPLUSPLUS is not set
-
-#
-# Command shell
-#
-CONFIG_RT_USING_FINSH=y
 CONFIG_RT_USING_MSH=y
+CONFIG_RT_USING_FINSH=y
 CONFIG_FINSH_USING_MSH=y
 CONFIG_FINSH_THREAD_NAME="tshell"
 CONFIG_FINSH_THREAD_PRIORITY=20
@@ -118,10 +109,6 @@ CONFIG_FINSH_USING_DESCRIPTION=y
 # CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
 # CONFIG_FINSH_USING_AUTH is not set
 CONFIG_FINSH_ARG_MAX=10
-
-#
-# Device virtual file system
-#
 CONFIG_RT_USING_DFS=y
 CONFIG_DFS_USING_POSIX=y
 CONFIG_DFS_USING_WORKDIR=y
@@ -156,6 +143,13 @@ CONFIG_RT_USING_DFS_DEVFS=y
 # CONFIG_RT_USING_DFS_ROMFS is not set
 # CONFIG_RT_USING_DFS_RAMFS is not set
 # CONFIG_RT_USING_DFS_NFS is not set
+CONFIG_RT_USING_FAL=y
+CONFIG_FAL_DEBUG_CONFIG=y
+CONFIG_FAL_DEBUG=1
+CONFIG_FAL_PART_HAS_TABLE_CFG=y
+CONFIG_FAL_USING_SFUD_PORT=y
+CONFIG_FAL_USING_NOR_FLASH_DEV_NAME="norflash0"
+# CONFIG_RT_USING_LWP is not set
 
 #
 # Device Drivers
@@ -190,6 +184,7 @@ CONFIG_RT_USING_RTC=y
 CONFIG_RT_USING_SOFT_RTC=y
 # CONFIG_RT_USING_SDIO 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=y
@@ -262,7 +257,7 @@ CONFIG_RT_VCOM_TX_TIMEOUT=1000
 CONFIG_RT_USB_MSTORAGE_DISK_NAME="ramdisk1"
 
 #
-# POSIX layer and C standard library
+# C/C++ and POSIX layer
 #
 CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 
@@ -293,14 +288,11 @@ CONFIG_RT_USING_POSIX_SELECT=y
 #
 # Socket is in the 'Network' category
 #
+# CONFIG_RT_USING_CPLUSPLUS is not set
 
 #
 # Network
 #
-
-#
-# Socket abstraction layer
-#
 CONFIG_RT_USING_SAL=y
 # CONFIG_SAL_INTERNET_CHECK is not set
 
@@ -309,10 +301,6 @@ CONFIG_RT_USING_SAL=y
 #
 CONFIG_SAL_USING_LWIP=y
 CONFIG_SAL_USING_POSIX=y
-
-#
-# Network interface device
-#
 CONFIG_RT_USING_NETDEV=y
 CONFIG_NETDEV_USING_IFCONFIG=y
 CONFIG_NETDEV_USING_PING=y
@@ -322,14 +310,13 @@ CONFIG_NETDEV_USING_AUTO_DEFAULT=y
 CONFIG_NETDEV_IPV4=1
 CONFIG_NETDEV_IPV6=0
 # CONFIG_NETDEV_IPV6_SCOPES is not set
-
-#
-# light weight TCP/IP stack
-#
 CONFIG_RT_USING_LWIP=y
+# CONFIG_RT_USING_LWIP_LOCAL_VERSION is not set
 # CONFIG_RT_USING_LWIP141 is not set
 # CONFIG_RT_USING_LWIP203 is not set
 CONFIG_RT_USING_LWIP212=y
+# CONFIG_RT_USING_LWIP_LATEST is not set
+CONFIG_RT_USING_LWIP_VER_NUM=0x20102
 # CONFIG_RT_USING_LWIP_IPV6 is not set
 CONFIG_RT_LWIP_MEM_ALIGNMENT=4
 CONFIG_RT_LWIP_IGMP=y
@@ -379,18 +366,9 @@ CONFIG_LWIP_NETIF_LOOPBACK=1
 CONFIG_RT_LWIP_STATS=y
 # CONFIG_RT_LWIP_USING_HW_CHECKSUM is not set
 CONFIG_RT_LWIP_USING_PING=y
+# CONFIG_LWIP_USING_DHCPD is not set
 # CONFIG_RT_LWIP_DEBUG is not set
-
-#
-# AT commands
-#
 # CONFIG_RT_USING_AT is not set
-# CONFIG_LWIP_USING_DHCPD is not set
-
-#
-# VBUS(Virtual Software BUS)
-#
-# CONFIG_RT_USING_VBUS is not set
 
 #
 # Utilities
@@ -402,7 +380,7 @@ CONFIG_UTEST_THR_STACK_SIZE=4096
 CONFIG_UTEST_THR_PRIORITY=20
 # CONFIG_RT_USING_VAR_EXPORT is not set
 # CONFIG_RT_USING_RT_LINK is not set
-# CONFIG_RT_USING_LWP is not set
+# CONFIG_RT_USING_VBUS is not set
 
 #
 # RT-Thread Utestcases
@@ -416,6 +394,7 @@ CONFIG_UTEST_THR_PRIORITY=20
 #
 # IoT - internet of things
 #
+# CONFIG_PKG_USING_LWIP is not set
 # CONFIG_PKG_USING_LORAWAN_DRIVER is not set
 # CONFIG_PKG_USING_PAHOMQTT is not set
 # CONFIG_PKG_USING_UMQTT is not set
@@ -426,12 +405,8 @@ CONFIG_UTEST_THR_PRIORITY=20
 # CONFIG_PKG_USING_KAWAII_MQTT is not set
 # CONFIG_PKG_USING_BC28_MQTT is not set
 # CONFIG_PKG_USING_WEBTERMINAL is not set
-# CONFIG_PKG_USING_CJSON is not set
-# CONFIG_PKG_USING_JSMN is not set
 # CONFIG_PKG_USING_LIBMODBUS is not set
 # CONFIG_PKG_USING_FREEMODBUS is not set
-# CONFIG_PKG_USING_LJSON is not set
-# CONFIG_PKG_USING_EZXML is not set
 # CONFIG_PKG_USING_NANOPB is not set
 
 #
@@ -501,16 +476,13 @@ CONFIG_PKG_NETUTILS_VER_NUM=0x99999
 # CONFIG_PKG_USING_ABUP_FOTA is not set
 # CONFIG_PKG_USING_LIBCURL2RTT is not set
 # CONFIG_PKG_USING_CAPNP is not set
-# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
 # CONFIG_PKG_USING_AGILE_TELNET is not set
 # CONFIG_PKG_USING_NMEALIB is not set
-# CONFIG_PKG_USING_AGILE_JSMN is not set
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK 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
-# CONFIG_PKG_USING_RAPIDJSON is not set
 # CONFIG_PKG_USING_BSAL is not set
 # CONFIG_PKG_USING_AGILE_MODBUS is not set
 # CONFIG_PKG_USING_AGILE_FTP is not set
@@ -535,6 +507,22 @@ CONFIG_PKG_NETUTILS_VER_NUM=0x99999
 #
 # language packages
 #
+
+#
+# JSON: JavaScript Object Notation, a lightweight data-interchange format
+#
+# CONFIG_PKG_USING_CJSON is not set
+# CONFIG_PKG_USING_LJSON is not set
+# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
+# CONFIG_PKG_USING_RAPIDJSON is not set
+# CONFIG_PKG_USING_JSMN is not set
+# CONFIG_PKG_USING_AGILE_JSMN is not set
+
+#
+# XML: Extensible Markup Language
+#
+# CONFIG_PKG_USING_SIMPLE_XML is not set
+# CONFIG_PKG_USING_EZXML is not set
 # CONFIG_PKG_USING_LUATOS_SOC is not set
 # CONFIG_PKG_USING_LUA is not set
 # CONFIG_PKG_USING_JERRYSCRIPT is not set
@@ -622,6 +610,8 @@ CONFIG_PKG_NETUTILS_VER_NUM=0x99999
 # CONFIG_PKG_USING_SOLAR_TERMS is not set
 # CONFIG_PKG_USING_GAN_ZHI is not set
 # CONFIG_PKG_USING_FDT is not set
+# CONFIG_PKG_USING_CBOX is not set
+# CONFIG_PKG_USING_SNOWFLAKE is not set
 
 #
 # system packages
@@ -664,27 +654,12 @@ CONFIG_PKG_NETUTILS_VER_NUM=0x99999
 # CONFIG_PKG_USING_UC_CLK is not set
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
-# CONFIG_RT_USING_ARDUINO is not set
+# CONFIG_PKG_USING_RTDUINO is not set
 # CONFIG_PKG_USING_GUIENGINE is not set
 # CONFIG_PKG_USING_PERSIMMON is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
-CONFIG_PKG_USING_FAL=y
-CONFIG_PKG_FAL_PATH="/packages/system/fal"
-CONFIG_FAL_DEBUG_CONFIG=y
-CONFIG_FAL_DEBUG=1
-CONFIG_FAL_PART_HAS_TABLE_CFG=y
-CONFIG_FAL_USING_SFUD_PORT=y
-CONFIG_FAL_USING_NOR_FLASH_DEV_NAME="norflash0"
-# CONFIG_PKG_USING_FAL_V00500 is not set
-# CONFIG_PKG_USING_FAL_V00400 is not set
-# CONFIG_PKG_USING_FAL_V00300 is not set
-# CONFIG_PKG_USING_FAL_V00200 is not set
-# CONFIG_PKG_USING_FAL_V00100 is not set
-CONFIG_PKG_USING_FAL_LATEST_VERSION=y
-CONFIG_PKG_FAL_VER="latest"
-CONFIG_PKG_FAL_VER_NUM=0x99999
 # CONFIG_PKG_USING_FLASHDB is not set
 # CONFIG_PKG_USING_SQLITE is not set
 # CONFIG_PKG_USING_RTI is not set
@@ -715,6 +690,7 @@ CONFIG_PKG_RAMDISK_VER="latest"
 # CONFIG_PKG_USING_MCUBOOT is not set
 # CONFIG_PKG_USING_TINYUSB is not set
 # CONFIG_PKG_USING_CHERRYUSB is not set
+# CONFIG_PKG_USING_KMULTI_RTIMER is not set
 
 #
 # peripheral libraries and drivers
@@ -738,6 +714,7 @@ CONFIG_PKG_RAMDISK_VER="latest"
 # CONFIG_PKG_USING_WM_LIBRARIES is not set
 # CONFIG_PKG_USING_KENDRYTE_SDK is not set
 # CONFIG_PKG_USING_INFRARED is not set
+# CONFIG_PKG_USING_MULTI_INFRARED is not set
 # CONFIG_PKG_USING_AGILE_BUTTON is not set
 # CONFIG_PKG_USING_AGILE_LED is not set
 # CONFIG_PKG_USING_AT24CXX is not set
@@ -794,6 +771,7 @@ CONFIG_PKG_RAMDISK_VER="latest"
 # CONFIG_PKG_USING_SOFT_SERIAL is not set
 # CONFIG_PKG_USING_MB85RS16 is not set
 # CONFIG_PKG_USING_CW2015 is not set
+# CONFIG_PKG_USING_RFM300 is not set
 
 #
 # AI packages
@@ -812,6 +790,10 @@ CONFIG_PKG_RAMDISK_VER="latest"
 # miscellaneous packages
 #
 
+#
+# project laboratory
+#
+
 #
 # samples: kernel and components samples
 #
@@ -848,6 +830,7 @@ CONFIG_PKG_OPTPARSE_VER="latest"
 # CONFIG_PKG_USING_CANFESTIVAL is not set
 # CONFIG_PKG_USING_ZLIB is not set
 # CONFIG_PKG_USING_MINIZIP is not set
+# CONFIG_PKG_USING_HEATSHRINK is not set
 # CONFIG_PKG_USING_DSTR is not set
 # CONFIG_PKG_USING_TINYFRAME is not set
 # CONFIG_PKG_USING_KENDRYTE_DEMO is not set
@@ -865,6 +848,7 @@ CONFIG_PKG_OPTPARSE_VER="latest"
 # CONFIG_PKG_USING_DESIGN_PATTERN is not set
 # CONFIG_PKG_USING_CONTROLLER is not set
 # CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
+# CONFIG_PKG_USING_MFBD is not set
 
 #
 # Hardware Drivers Config
@@ -978,6 +962,7 @@ CONFIG_NU_PKG_USING_DEMO=y
 # CONFIG_NU_PKG_USING_NAU8822 is not set
 # CONFIG_NU_PKG_USING_DA9062 is not set
 # CONFIG_NU_PKG_USING_ILI9341 is not set
+# CONFIG_NU_PKG_USING_SSD1963 is not set
+# CONFIG_NU_PKG_USING_TPC is not set
+# CONFIG_NU_PKG_USING_ADC_TOUCH is not set
 # CONFIG_NU_PKG_USING_SPINAND is not set
-CONFIG_BOARD_USE_UTEST=y
-CONFIG_UTEST_CMD_PREFIX="bsp.nuvoton.nk-rtu980.test.utest."

+ 4 - 6
bsp/nuvoton/nk-rtu980/README.md

@@ -44,15 +44,13 @@ NuMaker-RTU-NUC980, also known as Chili, is a Nuvoton’s development platform t
 |VCOM | For console | Ready.(Need to install VCOM driver) |
 
 ## 2. Supported compiler
-Support GCC, MDK4 and MDK5 IDE/compilers. More information of these compiler version as following:
-
+Support GCC and MDK IDE/compilers. More information of these compiler version as following:
 | IDE/Compiler  | Tested version            |
 | ---------- | ---------------------------- |
-| MDK4       | 4.76                         |
-| MDK5       | 5.26.2                       |
-| GCC        | GCC 5.4.1 20160919 (release) |
+| MDK        | uVision 5.25.2               |
+| GCC        | 6-2017-q1-update             |
 
-Notice: Please install ICE driver for development.
+Notice: Please install ICE driver for development and [NuMicro_ARM9_Device_Database_Keil](https://www.nuvoton.com/resource-download.jsp?tp_GUID=SW1820201207155701).
 
 ## 3. Program firmware
 ### 3.1 SDRAM Downloading using NuWriter

+ 17 - 35
bsp/nuvoton/nk-rtu980/rtconfig.h

@@ -58,14 +58,8 @@
 #define RT_USING_USER_MAIN
 #define RT_MAIN_THREAD_STACK_SIZE 2048
 #define RT_MAIN_THREAD_PRIORITY 10
-
-/* C++ features */
-
-
-/* Command shell */
-
-#define RT_USING_FINSH
 #define RT_USING_MSH
+#define RT_USING_FINSH
 #define FINSH_USING_MSH
 #define FINSH_THREAD_NAME "tshell"
 #define FINSH_THREAD_PRIORITY 20
@@ -77,9 +71,6 @@
 #define MSH_USING_BUILT_IN_COMMANDS
 #define FINSH_USING_DESCRIPTION
 #define FINSH_ARG_MAX 10
-
-/* Device virtual file system */
-
 #define RT_USING_DFS
 #define DFS_USING_POSIX
 #define DFS_USING_WORKDIR
@@ -103,6 +94,12 @@
 #define RT_DFS_ELM_REENTRANT
 #define RT_DFS_ELM_MUTEX_TIMEOUT 3000
 #define RT_USING_DFS_DEVFS
+#define RT_USING_FAL
+#define FAL_DEBUG_CONFIG
+#define FAL_DEBUG 1
+#define FAL_PART_HAS_TABLE_CFG
+#define FAL_USING_SFUD_PORT
+#define FAL_USING_NOR_FLASH_DEV_NAME "norflash0"
 
 /* Device Drivers */
 
@@ -171,7 +168,7 @@
 #define RT_VCOM_TX_TIMEOUT 1000
 #define RT_USB_MSTORAGE_DISK_NAME "ramdisk1"
 
-/* POSIX layer and C standard library */
+/* C/C++ and POSIX layer */
 
 #define RT_LIBC_DEFAULT_TIMEZONE 8
 
@@ -187,9 +184,8 @@
 
 /* Socket is in the 'Network' category */
 
-/* Network */
 
-/* Socket abstraction layer */
+/* Network */
 
 #define RT_USING_SAL
 
@@ -197,9 +193,6 @@
 
 #define SAL_USING_LWIP
 #define SAL_USING_POSIX
-
-/* Network interface device */
-
 #define RT_USING_NETDEV
 #define NETDEV_USING_IFCONFIG
 #define NETDEV_USING_PING
@@ -207,11 +200,9 @@
 #define NETDEV_USING_AUTO_DEFAULT
 #define NETDEV_IPV4 1
 #define NETDEV_IPV6 0
-
-/* light weight TCP/IP stack */
-
 #define RT_USING_LWIP
 #define RT_USING_LWIP212
+#define RT_USING_LWIP_VER_NUM 0x20102
 #define RT_LWIP_MEM_ALIGNMENT 4
 #define RT_LWIP_IGMP
 #define RT_LWIP_ICMP
@@ -255,12 +246,6 @@
 #define RT_LWIP_STATS
 #define RT_LWIP_USING_PING
 
-/* AT commands */
-
-
-/* VBUS(Virtual Software BUS) */
-
-
 /* Utilities */
 
 #define RT_USING_UTEST
@@ -303,6 +288,11 @@
 
 /* language packages */
 
+/* JSON: JavaScript Object Notation, a lightweight data-interchange format */
+
+
+/* XML: Extensible Markup Language */
+
 
 /* multimedia packages */
 
@@ -334,14 +324,6 @@
 
 /* Micrium: Micrium software products porting for RT-Thread */
 
-#define RT_USING_FAL
-#define FAL_DEBUG_CONFIG
-#define FAL_DEBUG 1
-#define FAL_PART_HAS_TABLE_CFG
-#define FAL_USING_SFUD_PORT
-#define FAL_USING_NOR_FLASH_DEV_NAME "norflash0"
-#define RT_USING_FAL_LATEST_VERSION
-#define PKG_FAL_VER_NUM 0x99999
 #define PKG_USING_RAMDISK
 #define PKG_USING_RAMDISK_LATEST_VERSION
 
@@ -353,6 +335,8 @@
 
 /* miscellaneous packages */
 
+/* project laboratory */
+
 /* samples: kernel and components samples */
 
 
@@ -429,7 +413,5 @@
 
 #define NU_PKG_USING_UTILS
 #define NU_PKG_USING_DEMO
-#define BOARD_USE_UTEST
-#define UTEST_CMD_PREFIX "bsp.nuvoton.nk-rtu980.test.utest."
 
 #endif

+ 43 - 14
bsp/nuvoton/nk-rtu980/template.uvproj

@@ -10,11 +10,13 @@
       <TargetName>rtthread</TargetName>
       <ToolsetNumber>0x4</ToolsetNumber>
       <ToolsetName>ARM-ADS</ToolsetName>
+      <pCCUsed>5060750::V5.06 update 6 (build 750)::ARMCC</pCCUsed>
+      <uAC6>0</uAC6>
       <TargetOption>
         <TargetCommonOption>
           <Device>Nuvoton_ARM9_Series</Device>
           <Vendor>Nuvoton</Vendor>
-          <Cpu></Cpu>
+          <Cpu>IRAM(0x0-0x0) CLOCK(000000000) CPUTYPE(ARM926EJ-S)</Cpu>
           <FlashUtilSpec></FlashUtilSpec>
           <StartupFile></StartupFile>
           <FlashDriverDll></FlashDriverDll>
@@ -30,6 +32,7 @@
           <SLE66AMisc></SLE66AMisc>
           <SLE66LinkerMisc></SLE66LinkerMisc>
           <SFDFile></SFDFile>
+          <bCustSvd>0</bCustSvd>
           <UseEnv>0</UseEnv>
           <BinPath></BinPath>
           <IncludePath></IncludePath>
@@ -43,14 +46,14 @@
             <NotGenerated>0</NotGenerated>
             <InvalidFlash>1</InvalidFlash>
           </TargetStatus>
-          <OutputDirectory>.\Objects\</OutputDirectory>
+          <OutputDirectory>.\build\keil4\</OutputDirectory>
           <OutputName>rtthread</OutputName>
           <CreateExecutable>1</CreateExecutable>
           <CreateLib>0</CreateLib>
           <CreateHexFile>0</CreateHexFile>
           <DebugInformation>1</DebugInformation>
           <BrowseInformation>1</BrowseInformation>
-          <ListingPath>.\Listings\</ListingPath>
+          <ListingPath>.\build\keil4\</ListingPath>
           <HexFormatSelection>1</HexFormatSelection>
           <Merge32K>0</Merge32K>
           <CreateBatchFile>0</CreateBatchFile>
@@ -71,14 +74,18 @@
             <UserProg2Name></UserProg2Name>
             <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
             <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+            <nStopB1X>0</nStopB1X>
+            <nStopB2X>0</nStopB2X>
           </BeforeMake>
           <AfterMake>
-            <RunUserProg1>0</RunUserProg1>
+            <RunUserProg1>1</RunUserProg1>
             <RunUserProg2>0</RunUserProg2>
-            <UserProg1Name></UserProg1Name>
+            <UserProg1Name>fromelf.exe --bin --output "$L@L.bin" "$L@L.axf"</UserProg1Name>
             <UserProg2Name></UserProg2Name>
             <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
             <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+            <nStopA1X>0</nStopA1X>
+            <nStopA2X>0</nStopA2X>
           </AfterMake>
           <SelectedForBatchBuild>0</SelectedForBatchBuild>
           <SVCSIdString></SVCSIdString>
@@ -97,6 +104,7 @@
           <StopOnExitCode>3</StopOnExitCode>
           <CustomArgument></CustomArgument>
           <IncludeLibraryModules></IncludeLibraryModules>
+          <ComprImg>1</ComprImg>
         </CommonProperty>
         <DllOption>
           <SimDllName>SARM.DLL</SimDllName>
@@ -118,7 +126,7 @@
           </OPTHX>
           <Simulator>
             <UseSimulator>0</UseSimulator>
-            <LoadApplicationAtStartup>1</LoadApplicationAtStartup>
+            <LoadApplicationAtStartup>0</LoadApplicationAtStartup>
             <RunToMain>1</RunToMain>
             <RestoreBreakpoints>1</RestoreBreakpoints>
             <RestoreWatchpoints>1</RestoreWatchpoints>
@@ -126,10 +134,11 @@
             <RestoreFunctions>1</RestoreFunctions>
             <RestoreToolbox>1</RestoreToolbox>
             <LimitSpeedToRealTime>0</LimitSpeedToRealTime>
+            <RestoreSysVw>1</RestoreSysVw>
           </Simulator>
           <Target>
             <UseTarget>1</UseTarget>
-            <LoadApplicationAtStartup>0</LoadApplicationAtStartup>
+            <LoadApplicationAtStartup>1</LoadApplicationAtStartup>
             <RunToMain>0</RunToMain>
             <RestoreBreakpoints>1</RestoreBreakpoints>
             <RestoreWatchpoints>1</RestoreWatchpoints>
@@ -137,9 +146,10 @@
             <RestoreFunctions>0</RestoreFunctions>
             <RestoreToolbox>1</RestoreToolbox>
             <RestoreTracepoints>1</RestoreTracepoints>
+            <RestoreSysVw>1</RestoreSysVw>
           </Target>
           <RunDebugAfterBuild>0</RunDebugAfterBuild>
-          <TargetSelection>6</TargetSelection>
+          <TargetSelection>18</TargetSelection>
           <SimDlls>
             <CpuDll></CpuDll>
             <CpuDllArguments></CpuDllArguments>
@@ -167,8 +177,12 @@
           </Flash1>
           <bUseTDR>0</bUseTDR>
           <Flash2>Segger\JLTAgdi.dll</Flash2>
-          <Flash3>"" ()</Flash3>
+          <Flash3></Flash3>
           <Flash4></Flash4>
+          <pFcarmOut></pFcarmOut>
+          <pFcarmGrp></pFcarmGrp>
+          <pFcArmRoot></pFcArmRoot>
+          <FcArmLst>0</FcArmLst>
         </Utilities>
         <TargetArmAds>
           <ArmAdsMisc>
@@ -199,22 +213,24 @@
             <AdsLsxf>1</AdsLsxf>
             <RvctClst>0</RvctClst>
             <GenPPlst>0</GenPPlst>
-            <AdsCpuType></AdsCpuType>
+            <AdsCpuType>ARM926EJ-S</AdsCpuType>
             <RvctDeviceName></RvctDeviceName>
             <mOS>0</mOS>
             <uocRom>0</uocRom>
             <uocRam>0</uocRam>
             <hadIROM>0</hadIROM>
-            <hadIRAM>0</hadIRAM>
+            <hadIRAM>1</hadIRAM>
             <hadXRAM>0</hadXRAM>
             <uocXRam>0</uocXRam>
             <RvdsVP>0</RvdsVP>
+            <RvdsMve>0</RvdsMve>
             <hadIRAM2>0</hadIRAM2>
             <hadIROM2>0</hadIROM2>
             <StupSel>0</StupSel>
             <useUlib>0</useUlib>
             <EndSel>0</EndSel>
             <uLtcg>0</uLtcg>
+            <nSecure>0</nSecure>
             <RoSelD>3</RoSelD>
             <RwSelD>3</RwSelD>
             <CodeSel>0</CodeSel>
@@ -267,8 +283,8 @@
               </Ocm6>
               <IRAM>
                 <Type>0</Type>
-                <StartAddress>0x200000</StartAddress>
-                <Size>0x1000</Size>
+                <StartAddress>0x0</StartAddress>
+                <Size>0x1</Size>
               </IRAM>
               <IROM>
                 <Type>1</Type>
@@ -323,7 +339,7 @@
               <OCR_RVCT9>
                 <Type>0</Type>
                 <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
+                <Size>0x1</Size>
               </OCR_RVCT9>
               <OCR_RVCT10>
                 <Type>0</Type>
@@ -347,6 +363,16 @@
             <wLevel>2</wLevel>
             <uThumb>0</uThumb>
             <uSurpInc>0</uSurpInc>
+            <uC99>0</uC99>
+            <uGnu>0</uGnu>
+            <useXO>0</useXO>
+            <v6Lang>1</v6Lang>
+            <v6LangP>1</v6LangP>
+            <vShortEn>1</vShortEn>
+            <vShortWch>1</vShortWch>
+            <v6Lto>0</v6Lto>
+            <v6WtE>0</v6WtE>
+            <v6Rtti>0</v6Rtti>
             <VariousControls>
               <MiscControls>--c99</MiscControls>
               <Define>RT_USING_INTERRUPT_INFO</Define>
@@ -363,6 +389,8 @@
             <SwStkChk>0</SwStkChk>
             <NoWarn>0</NoWarn>
             <uSurpInc>0</uSurpInc>
+            <useXO>0</useXO>
+            <uClangAs>0</uClangAs>
             <VariousControls>
               <MiscControls></MiscControls>
               <Define></Define>
@@ -379,6 +407,7 @@
             <useFile>0</useFile>
             <TextAddressRange>0x20000000</TextAddressRange>
             <DataAddressRange>0x20800000</DataAddressRange>
+            <pXoBase></pXoBase>
             <ScatterFile>.\linking_scripts\nuc980.sct</ScatterFile>
             <IncludeLibs></IncludeLibs>
             <IncludeLibsPath></IncludeLibsPath>

+ 0 - 387
bsp/nuvoton/nk-rtu980/template.uvprojx

@@ -1,387 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
-<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
-
-  <SchemaVersion>2.1</SchemaVersion>
-
-  <Header>### uVision Project, (C) Keil Software</Header>
-
-  <Targets>
-    <Target>
-      <TargetName>rtthread</TargetName>
-      <ToolsetNumber>0x4</ToolsetNumber>
-      <ToolsetName>ARM-ADS</ToolsetName>
-      <uAC6>0</uAC6>
-      <TargetOption>
-        <TargetCommonOption>
-          <Device>Nuvoton_ARM9_Series</Device>
-          <Vendor>Nuvoton</Vendor>
-          <Cpu></Cpu>
-          <FlashUtilSpec></FlashUtilSpec>
-          <StartupFile></StartupFile>
-          <FlashDriverDll></FlashDriverDll>
-          <DeviceId>0</DeviceId>
-          <RegisterFile></RegisterFile>
-          <MemoryEnv></MemoryEnv>
-          <Cmp></Cmp>
-          <Asm></Asm>
-          <Linker></Linker>
-          <OHString></OHString>
-          <InfinionOptionDll></InfinionOptionDll>
-          <SLE66CMisc></SLE66CMisc>
-          <SLE66AMisc></SLE66AMisc>
-          <SLE66LinkerMisc></SLE66LinkerMisc>
-          <SFDFile></SFDFile>
-          <bCustSvd>0</bCustSvd>
-          <UseEnv>0</UseEnv>
-          <BinPath></BinPath>
-          <IncludePath></IncludePath>
-          <LibPath></LibPath>
-          <RegisterFilePath>Atmel\SAM9260\</RegisterFilePath>
-          <DBRegisterFilePath>Atmel\SAM9260\</DBRegisterFilePath>
-          <TargetStatus>
-            <Error>0</Error>
-            <ExitCodeStop>0</ExitCodeStop>
-            <ButtonStop>0</ButtonStop>
-            <NotGenerated>0</NotGenerated>
-            <InvalidFlash>1</InvalidFlash>
-          </TargetStatus>
-          <OutputDirectory>.\build\keil5\</OutputDirectory>
-          <OutputName>rtthread</OutputName>
-          <CreateExecutable>1</CreateExecutable>
-          <CreateLib>0</CreateLib>
-          <CreateHexFile>1</CreateHexFile>
-          <DebugInformation>1</DebugInformation>
-          <BrowseInformation>1</BrowseInformation>
-          <ListingPath>.\build\keil5\</ListingPath>
-          <HexFormatSelection>1</HexFormatSelection>
-          <Merge32K>0</Merge32K>
-          <CreateBatchFile>0</CreateBatchFile>
-          <BeforeCompile>
-            <RunUserProg1>0</RunUserProg1>
-            <RunUserProg2>0</RunUserProg2>
-            <UserProg1Name></UserProg1Name>
-            <UserProg2Name></UserProg2Name>
-            <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
-            <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
-            <nStopU1X>0</nStopU1X>
-            <nStopU2X>0</nStopU2X>
-          </BeforeCompile>
-          <BeforeMake>
-            <RunUserProg1>0</RunUserProg1>
-            <RunUserProg2>0</RunUserProg2>
-            <UserProg1Name></UserProg1Name>
-            <UserProg2Name></UserProg2Name>
-            <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
-            <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
-            <nStopB1X>0</nStopB1X>
-            <nStopB2X>0</nStopB2X>
-          </BeforeMake>
-          <AfterMake>
-            <RunUserProg1>1</RunUserProg1>
-            <RunUserProg2>0</RunUserProg2>
-            <UserProg1Name>fromelf.exe --bin --output "$L@L.bin" "$L@L.axf"</UserProg1Name>
-            <UserProg2Name></UserProg2Name>
-            <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
-            <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
-            <nStopA1X>0</nStopA1X>
-            <nStopA2X>0</nStopA2X>
-          </AfterMake>
-          <SelectedForBatchBuild>0</SelectedForBatchBuild>
-          <SVCSIdString></SVCSIdString>
-        </TargetCommonOption>
-        <CommonProperty>
-          <UseCPPCompiler>0</UseCPPCompiler>
-          <RVCTCodeConst>0</RVCTCodeConst>
-          <RVCTZI>0</RVCTZI>
-          <RVCTOtherData>0</RVCTOtherData>
-          <ModuleSelection>0</ModuleSelection>
-          <IncludeInBuild>1</IncludeInBuild>
-          <AlwaysBuild>0</AlwaysBuild>
-          <GenerateAssemblyFile>0</GenerateAssemblyFile>
-          <AssembleAssemblyFile>0</AssembleAssemblyFile>
-          <PublicsOnly>0</PublicsOnly>
-          <StopOnExitCode>3</StopOnExitCode>
-          <CustomArgument></CustomArgument>
-          <IncludeLibraryModules></IncludeLibraryModules>
-          <ComprImg>1</ComprImg>
-        </CommonProperty>
-        <DllOption>
-          <SimDllName>SARM.DLL</SimDllName>
-          <SimDllArguments>-cAT91SAM9260</SimDllArguments>
-          <SimDlgDll>DARMATS9.DLL</SimDlgDll>
-          <SimDlgDllArguments>-p91SAM9260</SimDlgDllArguments>
-          <TargetDllName>SARM.DLL</TargetDllName>
-          <TargetDllArguments></TargetDllArguments>
-          <TargetDlgDll>TARMATS9.DLL</TargetDlgDll>
-          <TargetDlgDllArguments>-p91SAM9260</TargetDlgDllArguments>
-        </DllOption>
-        <DebugOption>
-          <OPTHX>
-            <HexSelection>1</HexSelection>
-            <HexRangeLowAddress>0</HexRangeLowAddress>
-            <HexRangeHighAddress>0</HexRangeHighAddress>
-            <HexOffset>0</HexOffset>
-            <Oh166RecLen>16</Oh166RecLen>
-          </OPTHX>
-        </DebugOption>
-        <Utilities>
-          <Flash1>
-            <UseTargetDll>1</UseTargetDll>
-            <UseExternalTool>0</UseExternalTool>
-            <RunIndependent>0</RunIndependent>
-            <UpdateFlashBeforeDebugging>0</UpdateFlashBeforeDebugging>
-            <Capability>1</Capability>
-            <DriverSelection>4098</DriverSelection>
-          </Flash1>
-          <bUseTDR>0</bUseTDR>
-          <Flash2>Segger\JLTAgdi.dll</Flash2>
-          <Flash3>"" ()</Flash3>
-          <Flash4></Flash4>
-          <pFcarmOut></pFcarmOut>
-          <pFcarmGrp></pFcarmGrp>
-          <pFcArmRoot></pFcArmRoot>
-          <FcArmLst>0</FcArmLst>
-        </Utilities>
-        <TargetArmAds>
-          <ArmAdsMisc>
-            <GenerateListings>0</GenerateListings>
-            <asHll>1</asHll>
-            <asAsm>1</asAsm>
-            <asMacX>1</asMacX>
-            <asSyms>1</asSyms>
-            <asFals>1</asFals>
-            <asDbgD>1</asDbgD>
-            <asForm>1</asForm>
-            <ldLst>0</ldLst>
-            <ldmm>1</ldmm>
-            <ldXref>1</ldXref>
-            <BigEnd>0</BigEnd>
-            <AdsALst>1</AdsALst>
-            <AdsACrf>1</AdsACrf>
-            <AdsANop>0</AdsANop>
-            <AdsANot>0</AdsANot>
-            <AdsLLst>1</AdsLLst>
-            <AdsLmap>1</AdsLmap>
-            <AdsLcgr>1</AdsLcgr>
-            <AdsLsym>1</AdsLsym>
-            <AdsLszi>1</AdsLszi>
-            <AdsLtoi>1</AdsLtoi>
-            <AdsLsun>1</AdsLsun>
-            <AdsLven>1</AdsLven>
-            <AdsLsxf>1</AdsLsxf>
-            <RvctClst>0</RvctClst>
-            <GenPPlst>0</GenPPlst>
-            <AdsCpuType>ARM926EJ-S</AdsCpuType>
-            <RvctDeviceName></RvctDeviceName>
-            <mOS>0</mOS>
-            <uocRom>0</uocRom>
-            <uocRam>0</uocRam>
-            <hadIROM>1</hadIROM>
-            <hadIRAM>1</hadIRAM>
-            <hadXRAM>0</hadXRAM>
-            <uocXRam>0</uocXRam>
-            <RvdsVP>0</RvdsVP>
-            <RvdsMve>0</RvdsMve>
-            <hadIRAM2>1</hadIRAM2>
-            <hadIROM2>0</hadIROM2>
-            <StupSel>8</StupSel>
-            <useUlib>0</useUlib>
-            <EndSel>0</EndSel>
-            <uLtcg>0</uLtcg>
-            <nSecure>0</nSecure>
-            <RoSelD>3</RoSelD>
-            <RwSelD>3</RwSelD>
-            <CodeSel>0</CodeSel>
-            <OptFeed>0</OptFeed>
-            <NoZi1>0</NoZi1>
-            <NoZi2>0</NoZi2>
-            <NoZi3>0</NoZi3>
-            <NoZi4>0</NoZi4>
-            <NoZi5>0</NoZi5>
-            <Ro1Chk>0</Ro1Chk>
-            <Ro2Chk>0</Ro2Chk>
-            <Ro3Chk>0</Ro3Chk>
-            <Ir1Chk>0</Ir1Chk>
-            <Ir2Chk>0</Ir2Chk>
-            <Ra1Chk>0</Ra1Chk>
-            <Ra2Chk>0</Ra2Chk>
-            <Ra3Chk>0</Ra3Chk>
-            <Im1Chk>0</Im1Chk>
-            <Im2Chk>0</Im2Chk>
-            <OnChipMemories>
-              <Ocm1>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm1>
-              <Ocm2>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm2>
-              <Ocm3>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm3>
-              <Ocm4>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm4>
-              <Ocm5>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm5>
-              <Ocm6>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm6>
-              <IRAM>
-                <Type>0</Type>
-                <StartAddress>0x200000</StartAddress>
-                <Size>0x1000</Size>
-              </IRAM>
-              <IROM>
-                <Type>1</Type>
-                <StartAddress>0x100000</StartAddress>
-                <Size>0x8000</Size>
-              </IROM>
-              <XRAM>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </XRAM>
-              <OCR_RVCT1>
-                <Type>1</Type>
-                <StartAddress>0x20000000</StartAddress>
-                <Size>0x800000</Size>
-              </OCR_RVCT1>
-              <OCR_RVCT2>
-                <Type>1</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </OCR_RVCT2>
-              <OCR_RVCT3>
-                <Type>1</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </OCR_RVCT3>
-              <OCR_RVCT4>
-                <Type>1</Type>
-                <StartAddress>0x100000</StartAddress>
-                <Size>0x8000</Size>
-              </OCR_RVCT4>
-              <OCR_RVCT5>
-                <Type>1</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </OCR_RVCT5>
-              <OCR_RVCT6>
-                <Type>0</Type>
-                <StartAddress>0x20800000</StartAddress>
-                <Size>0x1800000</Size>
-              </OCR_RVCT6>
-              <OCR_RVCT7>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </OCR_RVCT7>
-              <OCR_RVCT8>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </OCR_RVCT8>
-              <OCR_RVCT9>
-                <Type>0</Type>
-                <StartAddress>0x200000</StartAddress>
-                <Size>0x1000</Size>
-              </OCR_RVCT9>
-              <OCR_RVCT10>
-                <Type>0</Type>
-                <StartAddress>0x300000</StartAddress>
-                <Size>0x1000</Size>
-              </OCR_RVCT10>
-            </OnChipMemories>
-            <RvctStartVector></RvctStartVector>
-          </ArmAdsMisc>
-          <Cads>
-            <interw>1</interw>
-            <Optim>1</Optim>
-            <oTime>0</oTime>
-            <SplitLS>0</SplitLS>
-            <OneElfS>0</OneElfS>
-            <Strict>0</Strict>
-            <EnumInt>0</EnumInt>
-            <PlainCh>0</PlainCh>
-            <Ropi>0</Ropi>
-            <Rwpi>0</Rwpi>
-            <wLevel>2</wLevel>
-            <uThumb>0</uThumb>
-            <uSurpInc>0</uSurpInc>
-            <uC99>0</uC99>
-            <uGnu>0</uGnu>
-            <useXO>0</useXO>
-            <v6Lang>1</v6Lang>
-            <v6LangP>1</v6LangP>
-            <vShortEn>1</vShortEn>
-            <vShortWch>1</vShortWch>
-            <v6Lto>0</v6Lto>
-            <v6WtE>0</v6WtE>
-            <v6Rtti>0</v6Rtti>
-            <VariousControls>
-              <MiscControls>--c99</MiscControls>
-              <Define></Define>
-              <Undefine></Undefine>
-              <IncludePath></IncludePath>
-            </VariousControls>
-          </Cads>
-          <Aads>
-            <interw>1</interw>
-            <Ropi>0</Ropi>
-            <Rwpi>0</Rwpi>
-            <thumb>0</thumb>
-            <SplitLS>0</SplitLS>
-            <SwStkChk>0</SwStkChk>
-            <NoWarn>0</NoWarn>
-            <uSurpInc>0</uSurpInc>
-            <useXO>0</useXO>
-            <uClangAs>0</uClangAs>
-            <VariousControls>
-              <MiscControls></MiscControls>
-              <Define></Define>
-              <Undefine></Undefine>
-              <IncludePath></IncludePath>
-            </VariousControls>
-          </Aads>
-          <LDads>
-            <umfTarg>0</umfTarg>
-            <Ropi>0</Ropi>
-            <Rwpi>0</Rwpi>
-            <noStLib>0</noStLib>
-            <RepFail>1</RepFail>
-            <useFile>0</useFile>
-            <TextAddressRange>0x20000000</TextAddressRange>
-            <DataAddressRange>0x20800000</DataAddressRange>
-            <pXoBase></pXoBase>
-            <ScatterFile>.\linking_scripts\nuc980.sct</ScatterFile>
-            <IncludeLibs></IncludeLibs>
-            <IncludeLibsPath></IncludeLibsPath>
-            <Misc></Misc>
-            <LinkerInputFile></LinkerInputFile>
-            <DisabledWarnings></DisabledWarnings>
-          </LDads>
-        </TargetArmAds>
-      </TargetOption>
-    </Target>
-  </Targets>
-
-  <RTE>
-    <apis/>
-    <components/>
-    <files/>
-  </RTE>
-
-</Project>

+ 45 - 63
bsp/nuvoton/numaker-iot-m487/.config

@@ -7,7 +7,6 @@
 # RT-Thread Kernel
 #
 CONFIG_RT_NAME_MAX=8
-# CONFIG_RT_USING_BIG_ENDIAN is not set
 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set
 # CONFIG_RT_USING_SMP is not set
 CONFIG_RT_ALIGN_SIZE=4
@@ -94,17 +93,8 @@ CONFIG_RT_USING_USER_MAIN=y
 CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
 CONFIG_RT_MAIN_THREAD_PRIORITY=10
 # CONFIG_RT_USING_LEGACY is not set
-
-#
-# C++ features
-#
-# CONFIG_RT_USING_CPLUSPLUS is not set
-
-#
-# Command shell
-#
-CONFIG_RT_USING_FINSH=y
 CONFIG_RT_USING_MSH=y
+CONFIG_RT_USING_FINSH=y
 CONFIG_FINSH_USING_MSH=y
 CONFIG_FINSH_THREAD_NAME="tshell"
 CONFIG_FINSH_THREAD_PRIORITY=20
@@ -118,10 +108,6 @@ CONFIG_FINSH_USING_DESCRIPTION=y
 # CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
 # CONFIG_FINSH_USING_AUTH is not set
 CONFIG_FINSH_ARG_MAX=10
-
-#
-# Device virtual file system
-#
 CONFIG_RT_USING_DFS=y
 CONFIG_DFS_USING_POSIX=y
 CONFIG_DFS_USING_WORKDIR=y
@@ -155,6 +141,12 @@ CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000
 CONFIG_RT_USING_DFS_DEVFS=y
 # CONFIG_RT_USING_DFS_ROMFS is not set
 # CONFIG_RT_USING_DFS_RAMFS is not set
+CONFIG_RT_USING_FAL=y
+CONFIG_FAL_DEBUG_CONFIG=y
+CONFIG_FAL_DEBUG=1
+CONFIG_FAL_PART_HAS_TABLE_CFG=y
+# CONFIG_FAL_USING_SFUD_PORT is not set
+# CONFIG_RT_USING_LWP is not set
 
 #
 # Device Drivers
@@ -194,6 +186,7 @@ CONFIG_RT_USING_RTC=y
 # CONFIG_RT_USING_SOFT_RTC is not set
 # CONFIG_RT_USING_SDIO 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=y
@@ -275,7 +268,7 @@ CONFIG_RT_USB_DEVICE_HID_MOUSE=y
 # CONFIG_RT_USB_DEVICE_HID_MEDIA is not set
 
 #
-# POSIX layer and C standard library
+# C/C++ and POSIX layer
 #
 CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 
@@ -306,14 +299,11 @@ CONFIG_RT_USING_POSIX_SELECT=y
 #
 # Socket is in the 'Network' category
 #
+# CONFIG_RT_USING_CPLUSPLUS is not set
 
 #
 # Network
 #
-
-#
-# Socket abstraction layer
-#
 CONFIG_RT_USING_SAL=y
 CONFIG_SAL_INTERNET_CHECK=y
 
@@ -322,10 +312,6 @@ CONFIG_SAL_INTERNET_CHECK=y
 #
 CONFIG_SAL_USING_AT=y
 CONFIG_SAL_USING_POSIX=y
-
-#
-# Network interface device
-#
 CONFIG_RT_USING_NETDEV=y
 CONFIG_NETDEV_USING_IFCONFIG=y
 CONFIG_NETDEV_USING_PING=y
@@ -335,15 +321,7 @@ CONFIG_NETDEV_USING_AUTO_DEFAULT=y
 CONFIG_NETDEV_IPV4=1
 CONFIG_NETDEV_IPV6=0
 # CONFIG_NETDEV_IPV6_SCOPES is not set
-
-#
-# light weight TCP/IP stack
-#
 # CONFIG_RT_USING_LWIP is not set
-
-#
-# AT commands
-#
 CONFIG_RT_USING_AT=y
 # CONFIG_AT_DEBUG is not set
 # CONFIG_AT_USING_SERVER is not set
@@ -355,11 +333,6 @@ CONFIG_AT_USING_CLI=y
 CONFIG_AT_CMD_MAX_LEN=512
 CONFIG_AT_SW_VERSION_NUM=0x10301
 
-#
-# VBUS(Virtual Software BUS)
-#
-# CONFIG_RT_USING_VBUS is not set
-
 #
 # Utilities
 #
@@ -370,7 +343,7 @@ CONFIG_UTEST_THR_STACK_SIZE=4096
 CONFIG_UTEST_THR_PRIORITY=20
 # CONFIG_RT_USING_VAR_EXPORT is not set
 # CONFIG_RT_USING_RT_LINK is not set
-# CONFIG_RT_USING_LWP is not set
+# CONFIG_RT_USING_VBUS is not set
 
 #
 # RT-Thread Utestcases
@@ -384,6 +357,7 @@ CONFIG_UTEST_THR_PRIORITY=20
 #
 # IoT - internet of things
 #
+# CONFIG_PKG_USING_LWIP is not set
 # CONFIG_PKG_USING_LORAWAN_DRIVER is not set
 # CONFIG_PKG_USING_PAHOMQTT is not set
 # CONFIG_PKG_USING_UMQTT is not set
@@ -394,12 +368,8 @@ CONFIG_UTEST_THR_PRIORITY=20
 # CONFIG_PKG_USING_KAWAII_MQTT is not set
 # CONFIG_PKG_USING_BC28_MQTT is not set
 # CONFIG_PKG_USING_WEBTERMINAL is not set
-# CONFIG_PKG_USING_CJSON is not set
-# CONFIG_PKG_USING_JSMN is not set
 # CONFIG_PKG_USING_LIBMODBUS is not set
 # CONFIG_PKG_USING_FREEMODBUS is not set
-# CONFIG_PKG_USING_LJSON is not set
-# CONFIG_PKG_USING_EZXML is not set
 # CONFIG_PKG_USING_NANOPB is not set
 
 #
@@ -473,6 +443,7 @@ CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
 # CONFIG_PKG_USING_JOYLINK is not set
 # CONFIG_PKG_USING_EZ_IOT_OS is not set
 # CONFIG_PKG_USING_NIMBLE is not set
+# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
 # CONFIG_PKG_USING_OTA_DOWNLOADER is not set
 # CONFIG_PKG_USING_IPMSG is not set
 # CONFIG_PKG_USING_LSSDP is not set
@@ -486,16 +457,13 @@ CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
 # CONFIG_PKG_USING_ABUP_FOTA is not set
 # CONFIG_PKG_USING_LIBCURL2RTT is not set
 # CONFIG_PKG_USING_CAPNP is not set
-# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
 # CONFIG_PKG_USING_AGILE_TELNET is not set
 # CONFIG_PKG_USING_NMEALIB is not set
-# CONFIG_PKG_USING_AGILE_JSMN is not set
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK 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
-# CONFIG_PKG_USING_RAPIDJSON is not set
 # CONFIG_PKG_USING_BSAL is not set
 # CONFIG_PKG_USING_AGILE_MODBUS is not set
 # CONFIG_PKG_USING_AGILE_FTP is not set
@@ -520,6 +488,22 @@ CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
 #
 # language packages
 #
+
+#
+# JSON: JavaScript Object Notation, a lightweight data-interchange format
+#
+# CONFIG_PKG_USING_CJSON is not set
+# CONFIG_PKG_USING_LJSON is not set
+# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
+# CONFIG_PKG_USING_RAPIDJSON is not set
+# CONFIG_PKG_USING_JSMN is not set
+# CONFIG_PKG_USING_AGILE_JSMN is not set
+
+#
+# XML: Extensible Markup Language
+#
+# CONFIG_PKG_USING_SIMPLE_XML is not set
+# CONFIG_PKG_USING_EZXML is not set
 # CONFIG_PKG_USING_LUATOS_SOC is not set
 # CONFIG_PKG_USING_LUA is not set
 # CONFIG_PKG_USING_JERRYSCRIPT is not set
@@ -607,6 +591,8 @@ CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
 # CONFIG_PKG_USING_SOLAR_TERMS is not set
 # CONFIG_PKG_USING_GAN_ZHI is not set
 # CONFIG_PKG_USING_FDT is not set
+# CONFIG_PKG_USING_CBOX is not set
+# CONFIG_PKG_USING_SNOWFLAKE is not set
 
 #
 # system packages
@@ -649,26 +635,12 @@ CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
 # CONFIG_PKG_USING_UC_CLK is not set
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
-# CONFIG_RT_USING_ARDUINO is not set
+# CONFIG_PKG_USING_RTDUINO is not set
 # CONFIG_PKG_USING_GUIENGINE is not set
 # CONFIG_PKG_USING_PERSIMMON is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
-CONFIG_PKG_USING_FAL=y
-CONFIG_PKG_FAL_PATH="/packages/system/fal"
-CONFIG_FAL_DEBUG_CONFIG=y
-CONFIG_FAL_DEBUG=1
-CONFIG_FAL_PART_HAS_TABLE_CFG=y
-# CONFIG_FAL_USING_SFUD_PORT is not set
-# CONFIG_PKG_USING_FAL_V00500 is not set
-# CONFIG_PKG_USING_FAL_V00400 is not set
-# CONFIG_PKG_USING_FAL_V00300 is not set
-# CONFIG_PKG_USING_FAL_V00200 is not set
-# CONFIG_PKG_USING_FAL_V00100 is not set
-CONFIG_PKG_USING_FAL_LATEST_VERSION=y
-CONFIG_PKG_FAL_VER="latest"
-CONFIG_PKG_FAL_VER_NUM=0x99999
 # CONFIG_PKG_USING_FLASHDB is not set
 # CONFIG_PKG_USING_SQLITE is not set
 # CONFIG_PKG_USING_RTI is not set
@@ -694,7 +666,8 @@ CONFIG_PKG_FAL_VER_NUM=0x99999
 # CONFIG_PKG_USING_ARM_2D is not set
 # CONFIG_PKG_USING_MCUBOOT is not set
 # CONFIG_PKG_USING_TINYUSB is not set
-# CONFIG_PKG_USING_USB_STACK is not set
+# CONFIG_PKG_USING_CHERRYUSB is not set
+# CONFIG_PKG_USING_KMULTI_RTIMER is not set
 
 #
 # peripheral libraries and drivers
@@ -718,6 +691,7 @@ CONFIG_PKG_FAL_VER_NUM=0x99999
 # CONFIG_PKG_USING_WM_LIBRARIES is not set
 # CONFIG_PKG_USING_KENDRYTE_SDK is not set
 # CONFIG_PKG_USING_INFRARED is not set
+# CONFIG_PKG_USING_MULTI_INFRARED is not set
 # CONFIG_PKG_USING_AGILE_BUTTON is not set
 # CONFIG_PKG_USING_AGILE_LED is not set
 # CONFIG_PKG_USING_AT24CXX is not set
@@ -774,6 +748,7 @@ CONFIG_PKG_FAL_VER_NUM=0x99999
 # CONFIG_PKG_USING_SOFT_SERIAL is not set
 # CONFIG_PKG_USING_MB85RS16 is not set
 # CONFIG_PKG_USING_CW2015 is not set
+# CONFIG_PKG_USING_RFM300 is not set
 
 #
 # AI packages
@@ -792,6 +767,10 @@ CONFIG_PKG_FAL_VER_NUM=0x99999
 # miscellaneous packages
 #
 
+#
+# project laboratory
+#
+
 #
 # samples: kernel and components samples
 #
@@ -824,6 +803,7 @@ CONFIG_PKG_FAL_VER_NUM=0x99999
 # CONFIG_PKG_USING_CANFESTIVAL is not set
 # CONFIG_PKG_USING_ZLIB is not set
 # CONFIG_PKG_USING_MINIZIP is not set
+# CONFIG_PKG_USING_HEATSHRINK is not set
 # CONFIG_PKG_USING_DSTR is not set
 # CONFIG_PKG_USING_TINYFRAME is not set
 # CONFIG_PKG_USING_KENDRYTE_DEMO is not set
@@ -841,6 +821,7 @@ CONFIG_PKG_FAL_VER_NUM=0x99999
 # CONFIG_PKG_USING_DESIGN_PATTERN is not set
 # CONFIG_PKG_USING_CONTROLLER is not set
 # CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
+# CONFIG_PKG_USING_MFBD is not set
 
 #
 # Hardware Drivers Config
@@ -980,6 +961,7 @@ CONFIG_NU_PKG_USING_NAU88L25=y
 # CONFIG_NU_PKG_USING_NAU8822 is not set
 # CONFIG_NU_PKG_USING_DA9062 is not set
 # CONFIG_NU_PKG_USING_ILI9341 is not set
+# CONFIG_NU_PKG_USING_SSD1963 is not set
+# CONFIG_NU_PKG_USING_TPC is not set
+# CONFIG_NU_PKG_USING_ADC_TOUCH is not set
 # CONFIG_NU_PKG_USING_SPINAND is not set
-CONFIG_BOARD_USE_UTEST=y
-CONFIG_UTEST_CMD_PREFIX="bsp.nuvoton.numaker-iot-m487.test.utest."

+ 14 - 33
bsp/nuvoton/numaker-iot-m487/rtconfig.h

@@ -57,14 +57,8 @@
 #define RT_USING_USER_MAIN
 #define RT_MAIN_THREAD_STACK_SIZE 2048
 #define RT_MAIN_THREAD_PRIORITY 10
-
-/* C++ features */
-
-
-/* Command shell */
-
-#define RT_USING_FINSH
 #define RT_USING_MSH
+#define RT_USING_FINSH
 #define FINSH_USING_MSH
 #define FINSH_THREAD_NAME "tshell"
 #define FINSH_THREAD_PRIORITY 20
@@ -76,9 +70,6 @@
 #define MSH_USING_BUILT_IN_COMMANDS
 #define FINSH_USING_DESCRIPTION
 #define FINSH_ARG_MAX 10
-
-/* Device virtual file system */
-
 #define RT_USING_DFS
 #define DFS_USING_POSIX
 #define DFS_USING_WORKDIR
@@ -101,6 +92,10 @@
 #define RT_DFS_ELM_REENTRANT
 #define RT_DFS_ELM_MUTEX_TIMEOUT 3000
 #define RT_USING_DFS_DEVFS
+#define RT_USING_FAL
+#define FAL_DEBUG_CONFIG
+#define FAL_DEBUG 1
+#define FAL_PART_HAS_TABLE_CFG
 
 /* Device Drivers */
 
@@ -178,7 +173,7 @@
 #define RT_USB_DEVICE_HID
 #define RT_USB_DEVICE_HID_MOUSE
 
-/* POSIX layer and C standard library */
+/* C/C++ and POSIX layer */
 
 #define RT_LIBC_DEFAULT_TIMEZONE 8
 
@@ -194,9 +189,8 @@
 
 /* Socket is in the 'Network' category */
 
-/* Network */
 
-/* Socket abstraction layer */
+/* Network */
 
 #define RT_USING_SAL
 #define SAL_INTERNET_CHECK
@@ -205,9 +199,6 @@
 
 #define SAL_USING_AT
 #define SAL_USING_POSIX
-
-/* Network interface device */
-
 #define RT_USING_NETDEV
 #define NETDEV_USING_IFCONFIG
 #define NETDEV_USING_PING
@@ -215,12 +206,6 @@
 #define NETDEV_USING_AUTO_DEFAULT
 #define NETDEV_IPV4 1
 #define NETDEV_IPV6 0
-
-/* light weight TCP/IP stack */
-
-
-/* AT commands */
-
 #define RT_USING_AT
 #define AT_USING_CLIENT
 #define AT_CLIENT_NUM_MAX 1
@@ -229,9 +214,6 @@
 #define AT_CMD_MAX_LEN 512
 #define AT_SW_VERSION_NUM 0x10301
 
-/* VBUS(Virtual Software BUS) */
-
-
 /* Utilities */
 
 #define RT_USING_UTEST
@@ -268,6 +250,11 @@
 
 /* language packages */
 
+/* JSON: JavaScript Object Notation, a lightweight data-interchange format */
+
+
+/* XML: Extensible Markup Language */
+
 
 /* multimedia packages */
 
@@ -299,12 +286,6 @@
 
 /* Micrium: Micrium software products porting for RT-Thread */
 
-#define PKG_USING_FAL
-#define FAL_DEBUG_CONFIG
-#define FAL_DEBUG 1
-#define FAL_PART_HAS_TABLE_CFG
-#define PKG_USING_FAL_LATEST_VERSION
-#define PKG_FAL_VER_NUM 0x99999
 
 /* peripheral libraries and drivers */
 
@@ -314,6 +295,8 @@
 
 /* miscellaneous packages */
 
+/* project laboratory */
+
 /* samples: kernel and components samples */
 
 
@@ -398,7 +381,5 @@
 #define NU_PKG_USING_DEMO
 #define NU_PKG_USING_BMX055
 #define NU_PKG_USING_NAU88L25
-#define BOARD_USE_UTEST
-#define UTEST_CMD_PREFIX "bsp.nuvoton.numaker-iot-m487.test.utest."
 
 #endif

+ 61 - 65
bsp/nuvoton/numaker-m032ki/.config

@@ -7,7 +7,6 @@
 # RT-Thread Kernel
 #
 CONFIG_RT_NAME_MAX=8
-# CONFIG_RT_USING_BIG_ENDIAN is not set
 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set
 # CONFIG_RT_USING_SMP is not set
 CONFIG_RT_ALIGN_SIZE=4
@@ -96,17 +95,8 @@ CONFIG_RT_USING_USER_MAIN=y
 CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
 CONFIG_RT_MAIN_THREAD_PRIORITY=10
 # CONFIG_RT_USING_LEGACY is not set
-
-#
-# C++ features
-#
-# CONFIG_RT_USING_CPLUSPLUS is not set
-
-#
-# Command shell
-#
-CONFIG_RT_USING_FINSH=y
 CONFIG_RT_USING_MSH=y
+CONFIG_RT_USING_FINSH=y
 CONFIG_FINSH_USING_MSH=y
 CONFIG_FINSH_THREAD_NAME="tshell"
 CONFIG_FINSH_THREAD_PRIORITY=20
@@ -120,10 +110,6 @@ CONFIG_FINSH_USING_DESCRIPTION=y
 # CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
 # CONFIG_FINSH_USING_AUTH is not set
 CONFIG_FINSH_ARG_MAX=10
-
-#
-# Device virtual file system
-#
 CONFIG_RT_USING_DFS=y
 CONFIG_DFS_USING_POSIX=y
 CONFIG_DFS_USING_WORKDIR=y
@@ -135,6 +121,8 @@ CONFIG_DFS_FD_MAX=16
 CONFIG_RT_USING_DFS_DEVFS=y
 # CONFIG_RT_USING_DFS_ROMFS is not set
 # CONFIG_RT_USING_DFS_RAMFS is not set
+# CONFIG_RT_USING_FAL is not set
+# CONFIG_RT_USING_LWP is not set
 
 #
 # Device Drivers
@@ -199,9 +187,8 @@ CONFIG_RT_USB_DEVICE_HID_MOUSE=y
 # CONFIG_RT_USB_DEVICE_HID_MEDIA is not set
 
 #
-# POSIX layer and C standard library
+# C/C++ and POSIX layer
 #
-# CONFIG_RT_USING_MODULE is not set
 CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 
 #
@@ -210,7 +197,9 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_RT_USING_POSIX_FS is not set
 # CONFIG_RT_USING_POSIX_DELAY is not set
 # CONFIG_RT_USING_POSIX_CLOCK is not set
+# CONFIG_RT_USING_POSIX_TIMER is not set
 # CONFIG_RT_USING_PTHREADS is not set
+# CONFIG_RT_USING_MODULE is not set
 
 #
 # Interprocess Communication (IPC)
@@ -222,36 +211,16 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 #
 # Socket is in the 'Network' category
 #
+# CONFIG_RT_USING_CPLUSPLUS is not set
 
 #
 # Network
 #
-
-#
-# Socket abstraction layer
-#
 # CONFIG_RT_USING_SAL is not set
-
-#
-# Network interface device
-#
 # CONFIG_RT_USING_NETDEV is not set
-
-#
-# light weight TCP/IP stack
-#
 # CONFIG_RT_USING_LWIP is not set
-
-#
-# AT commands
-#
 # CONFIG_RT_USING_AT is not set
 
-#
-# VBUS(Virtual Software BUS)
-#
-# CONFIG_RT_USING_VBUS is not set
-
 #
 # Utilities
 #
@@ -262,7 +231,7 @@ CONFIG_UTEST_THR_STACK_SIZE=4096
 CONFIG_UTEST_THR_PRIORITY=20
 # CONFIG_RT_USING_VAR_EXPORT is not set
 # CONFIG_RT_USING_RT_LINK is not set
-# CONFIG_RT_USING_LWP is not set
+# CONFIG_RT_USING_VBUS is not set
 
 #
 # RT-Thread Utestcases
@@ -300,6 +269,7 @@ CONFIG_UTEST_SMALL_MEM_TC=y
 #
 # IoT - internet of things
 #
+# CONFIG_PKG_USING_LWIP is not set
 # CONFIG_PKG_USING_LORAWAN_DRIVER is not set
 # CONFIG_PKG_USING_PAHOMQTT is not set
 # CONFIG_PKG_USING_UMQTT is not set
@@ -310,12 +280,8 @@ CONFIG_UTEST_SMALL_MEM_TC=y
 # CONFIG_PKG_USING_KAWAII_MQTT is not set
 # CONFIG_PKG_USING_BC28_MQTT is not set
 # CONFIG_PKG_USING_WEBTERMINAL is not set
-# CONFIG_PKG_USING_CJSON is not set
-# CONFIG_PKG_USING_JSMN is not set
 # CONFIG_PKG_USING_LIBMODBUS is not set
 # CONFIG_PKG_USING_FREEMODBUS is not set
-# CONFIG_PKG_USING_LJSON is not set
-# CONFIG_PKG_USING_EZXML is not set
 # CONFIG_PKG_USING_NANOPB is not set
 
 #
@@ -355,6 +321,7 @@ CONFIG_UTEST_SMALL_MEM_TC=y
 # CONFIG_PKG_USING_JOYLINK is not set
 # CONFIG_PKG_USING_EZ_IOT_OS is not set
 # CONFIG_PKG_USING_NIMBLE is not set
+# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
 # CONFIG_PKG_USING_OTA_DOWNLOADER is not set
 # CONFIG_PKG_USING_IPMSG is not set
 # CONFIG_PKG_USING_LSSDP is not set
@@ -368,16 +335,13 @@ CONFIG_UTEST_SMALL_MEM_TC=y
 # CONFIG_PKG_USING_ABUP_FOTA is not set
 # CONFIG_PKG_USING_LIBCURL2RTT is not set
 # CONFIG_PKG_USING_CAPNP is not set
-# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
 # CONFIG_PKG_USING_AGILE_TELNET is not set
 # CONFIG_PKG_USING_NMEALIB is not set
-# CONFIG_PKG_USING_AGILE_JSMN is not set
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK 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
-# CONFIG_PKG_USING_RAPIDJSON is not set
 # CONFIG_PKG_USING_BSAL is not set
 # CONFIG_PKG_USING_AGILE_MODBUS is not set
 # CONFIG_PKG_USING_AGILE_FTP is not set
@@ -402,6 +366,22 @@ CONFIG_UTEST_SMALL_MEM_TC=y
 #
 # language packages
 #
+
+#
+# JSON: JavaScript Object Notation, a lightweight data-interchange format
+#
+# CONFIG_PKG_USING_CJSON is not set
+# CONFIG_PKG_USING_LJSON is not set
+# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
+# CONFIG_PKG_USING_RAPIDJSON is not set
+# CONFIG_PKG_USING_JSMN is not set
+# CONFIG_PKG_USING_AGILE_JSMN is not set
+
+#
+# XML: Extensible Markup Language
+#
+# CONFIG_PKG_USING_SIMPLE_XML is not set
+# CONFIG_PKG_USING_EZXML is not set
 # CONFIG_PKG_USING_LUATOS_SOC is not set
 # CONFIG_PKG_USING_LUA is not set
 # CONFIG_PKG_USING_JERRYSCRIPT is not set
@@ -446,6 +426,7 @@ CONFIG_UTEST_SMALL_MEM_TC=y
 # CONFIG_PKG_USING_MCURSES is not set
 # CONFIG_PKG_USING_TERMBOX is not set
 # CONFIG_PKG_USING_VT100 is not set
+# CONFIG_PKG_USING_QRCODE is not set
 
 #
 # tools packages
@@ -456,7 +437,6 @@ CONFIG_UTEST_SMALL_MEM_TC=y
 # CONFIG_PKG_USING_SYSTEMVIEW is not set
 # CONFIG_PKG_USING_SEGGER_RTT is not set
 # CONFIG_PKG_USING_RDB is not set
-# CONFIG_PKG_USING_QRCODE is not set
 # CONFIG_PKG_USING_ULOG_EASYFLASH is not set
 # CONFIG_PKG_USING_ULOG_FILE is not set
 # CONFIG_PKG_USING_LOGMGR is not set
@@ -489,6 +469,8 @@ CONFIG_UTEST_SMALL_MEM_TC=y
 # CONFIG_PKG_USING_SOLAR_TERMS is not set
 # CONFIG_PKG_USING_GAN_ZHI is not set
 # CONFIG_PKG_USING_FDT is not set
+# CONFIG_PKG_USING_CBOX is not set
+# CONFIG_PKG_USING_SNOWFLAKE is not set
 
 #
 # system packages
@@ -507,6 +489,7 @@ CONFIG_UTEST_SMALL_MEM_TC=y
 # CONFIG_PKG_USING_POSIX_GETLINE is not set
 # CONFIG_PKG_USING_POSIX_WCWIDTH is not set
 # CONFIG_PKG_USING_POSIX_ITOA is not set
+# CONFIG_PKG_USING_POSIX_STRINGS is not set
 
 #
 # acceleration: Assembly language or algorithmic acceleration packages
@@ -530,12 +513,11 @@ CONFIG_UTEST_SMALL_MEM_TC=y
 # CONFIG_PKG_USING_UC_CLK is not set
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
-# CONFIG_RT_USING_ARDUINO is not set
+# CONFIG_PKG_USING_RTDUINO is not set
 # CONFIG_PKG_USING_GUIENGINE is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
-# CONFIG_PKG_USING_FAL is not set
 # CONFIG_PKG_USING_FLASHDB is not set
 # CONFIG_PKG_USING_SQLITE is not set
 # CONFIG_PKG_USING_RTI is not set
@@ -561,7 +543,8 @@ CONFIG_UTEST_SMALL_MEM_TC=y
 # CONFIG_PKG_USING_ARM_2D is not set
 # CONFIG_PKG_USING_MCUBOOT is not set
 # CONFIG_PKG_USING_TINYUSB is not set
-# CONFIG_PKG_USING_USB_STACK is not set
+# CONFIG_PKG_USING_CHERRYUSB is not set
+# CONFIG_PKG_USING_KMULTI_RTIMER is not set
 
 #
 # peripheral libraries and drivers
@@ -585,6 +568,7 @@ CONFIG_UTEST_SMALL_MEM_TC=y
 # CONFIG_PKG_USING_WM_LIBRARIES is not set
 # CONFIG_PKG_USING_KENDRYTE_SDK is not set
 # CONFIG_PKG_USING_INFRARED is not set
+# CONFIG_PKG_USING_MULTI_INFRARED is not set
 # CONFIG_PKG_USING_AGILE_BUTTON is not set
 # CONFIG_PKG_USING_AGILE_LED is not set
 # CONFIG_PKG_USING_AT24CXX is not set
@@ -618,6 +602,7 @@ CONFIG_UTEST_SMALL_MEM_TC=y
 # CONFIG_PKG_USING_SSD1306 is not set
 # CONFIG_PKG_USING_QKEY is not set
 # CONFIG_PKG_USING_RS485 is not set
+# CONFIG_PKG_USING_RS232 is not set
 # CONFIG_PKG_USING_NES is not set
 # CONFIG_PKG_USING_VIRTUAL_SENSOR is not set
 # CONFIG_PKG_USING_VDEVICE is not set
@@ -640,6 +625,7 @@ CONFIG_UTEST_SMALL_MEM_TC=y
 # CONFIG_PKG_USING_SOFT_SERIAL is not set
 # CONFIG_PKG_USING_MB85RS16 is not set
 # CONFIG_PKG_USING_CW2015 is not set
+# CONFIG_PKG_USING_RFM300 is not set
 
 #
 # AI packages
@@ -658,6 +644,10 @@ CONFIG_UTEST_SMALL_MEM_TC=y
 # miscellaneous packages
 #
 
+#
+# project laboratory
+#
+
 #
 # samples: kernel and components samples
 #
@@ -690,6 +680,7 @@ CONFIG_UTEST_SMALL_MEM_TC=y
 # CONFIG_PKG_USING_CANFESTIVAL is not set
 # CONFIG_PKG_USING_ZLIB is not set
 # CONFIG_PKG_USING_MINIZIP is not set
+# CONFIG_PKG_USING_HEATSHRINK is not set
 # CONFIG_PKG_USING_DSTR is not set
 # CONFIG_PKG_USING_TINYFRAME is not set
 # CONFIG_PKG_USING_KENDRYTE_DEMO is not set
@@ -705,19 +696,9 @@ CONFIG_UTEST_SMALL_MEM_TC=y
 # CONFIG_PKG_USING_LWGPS is not set
 # CONFIG_PKG_USING_STATE_MACHINE is not set
 # CONFIG_PKG_USING_DESIGN_PATTERN is not set
-
-#
-# Nuvoton Packages Config
-#
-CONFIG_NU_PKG_USING_UTILS=y
-CONFIG_NU_PKG_USING_DEMO=y
-# CONFIG_NU_PKG_USING_BMX055 is not set
-# CONFIG_NU_PKG_USING_MAX31875 is not set
-# CONFIG_NU_PKG_USING_NAU88L25 is not set
-# CONFIG_NU_PKG_USING_NAU8822 is not set
-# CONFIG_NU_PKG_USING_DA9062 is not set
-# CONFIG_NU_PKG_USING_ILI9341 is not set
-# CONFIG_NU_PKG_USING_SPINAND is not set
+# CONFIG_PKG_USING_CONTROLLER is not set
+# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
+# CONFIG_PKG_USING_MFBD is not set
 
 #
 # Hardware Drivers Config
@@ -797,5 +778,20 @@ CONFIG_BSP_USING_NULINKME=y
 # Board extended module drivers
 #
 # CONFIG_BOARD_USING_STORAGE_SPIFLASH is not set
-CONFIG_BOARD_USE_UTEST=y
-CONFIG_UTEST_CMD_PREFIX="bsp.nuvoton.numaker-m032ki.test.utest."
+# CONFIG_BOARD_USING_LCD_ILI9341 is not set
+
+#
+# Nuvoton Packages Config
+#
+CONFIG_NU_PKG_USING_UTILS=y
+CONFIG_NU_PKG_USING_DEMO=y
+# CONFIG_NU_PKG_USING_BMX055 is not set
+# CONFIG_NU_PKG_USING_MAX31875 is not set
+# CONFIG_NU_PKG_USING_NAU88L25 is not set
+# CONFIG_NU_PKG_USING_NAU8822 is not set
+# CONFIG_NU_PKG_USING_DA9062 is not set
+# CONFIG_NU_PKG_USING_ILI9341 is not set
+# CONFIG_NU_PKG_USING_SSD1963 is not set
+# CONFIG_NU_PKG_USING_TPC is not set
+# CONFIG_NU_PKG_USING_ADC_TOUCH is not set
+# CONFIG_NU_PKG_USING_SPINAND is not set

+ 15 - 32
bsp/nuvoton/numaker-m032ki/rtconfig.h

@@ -57,14 +57,8 @@
 #define RT_USING_USER_MAIN
 #define RT_MAIN_THREAD_STACK_SIZE 2048
 #define RT_MAIN_THREAD_PRIORITY 10
-
-/* C++ features */
-
-
-/* Command shell */
-
-#define RT_USING_FINSH
 #define RT_USING_MSH
+#define RT_USING_FINSH
 #define FINSH_USING_MSH
 #define FINSH_THREAD_NAME "tshell"
 #define FINSH_THREAD_PRIORITY 20
@@ -76,9 +70,6 @@
 #define MSH_USING_BUILT_IN_COMMANDS
 #define FINSH_USING_DESCRIPTION
 #define FINSH_ARG_MAX 10
-
-/* Device virtual file system */
-
 #define RT_USING_DFS
 #define DFS_USING_POSIX
 #define DFS_USING_WORKDIR
@@ -115,7 +106,7 @@
 #define RT_USB_DEVICE_HID
 #define RT_USB_DEVICE_HID_MOUSE
 
-/* POSIX layer and C standard library */
+/* C/C++ and POSIX layer */
 
 #define RT_LIBC_DEFAULT_TIMEZONE 8
 
@@ -127,21 +118,8 @@
 
 /* Socket is in the 'Network' category */
 
-/* Network */
-
-/* Socket abstraction layer */
-
-
-/* Network interface device */
-
-
-/* light weight TCP/IP stack */
-
-
-/* AT commands */
 
-
-/* VBUS(Virtual Software BUS) */
+/* Network */
 
 
 /* Utilities */
@@ -186,6 +164,11 @@
 
 /* language packages */
 
+/* JSON: JavaScript Object Notation, a lightweight data-interchange format */
+
+
+/* XML: Extensible Markup Language */
+
 
 /* multimedia packages */
 
@@ -226,17 +209,14 @@
 
 /* miscellaneous packages */
 
+/* project laboratory */
+
 /* samples: kernel and components samples */
 
 
 /* entertainment: terminal games and other interesting software packages */
 
 
-/* Nuvoton Packages Config */
-
-#define NU_PKG_USING_UTILS
-#define NU_PKG_USING_DEMO
-
 /* Hardware Drivers Config */
 
 /* On-chip Peripheral Drivers */
@@ -282,7 +262,10 @@
 
 /* Board extended module drivers */
 
-#define BOARD_USE_UTEST
-#define UTEST_CMD_PREFIX "bsp.nuvoton.numaker-m032ki.test.utest."
+
+/* Nuvoton Packages Config */
+
+#define NU_PKG_USING_UTILS
+#define NU_PKG_USING_DEMO
 
 #endif

+ 49 - 63
bsp/nuvoton/numaker-m2354/.config

@@ -7,7 +7,6 @@
 # RT-Thread Kernel
 #
 CONFIG_RT_NAME_MAX=8
-# CONFIG_RT_USING_BIG_ENDIAN is not set
 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set
 # CONFIG_RT_USING_SMP is not set
 CONFIG_RT_ALIGN_SIZE=4
@@ -91,17 +90,8 @@ CONFIG_RT_USING_USER_MAIN=y
 CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
 CONFIG_RT_MAIN_THREAD_PRIORITY=10
 # CONFIG_RT_USING_LEGACY is not set
-
-#
-# C++ features
-#
-# CONFIG_RT_USING_CPLUSPLUS is not set
-
-#
-# Command shell
-#
-CONFIG_RT_USING_FINSH=y
 CONFIG_RT_USING_MSH=y
+CONFIG_RT_USING_FINSH=y
 CONFIG_FINSH_USING_MSH=y
 CONFIG_FINSH_THREAD_NAME="tshell"
 CONFIG_FINSH_THREAD_PRIORITY=20
@@ -115,10 +105,6 @@ CONFIG_FINSH_USING_DESCRIPTION=y
 # CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
 # CONFIG_FINSH_USING_AUTH is not set
 CONFIG_FINSH_ARG_MAX=10
-
-#
-# Device virtual file system
-#
 CONFIG_RT_USING_DFS=y
 CONFIG_DFS_USING_POSIX=y
 CONFIG_DFS_USING_WORKDIR=y
@@ -152,6 +138,11 @@ CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000
 CONFIG_RT_USING_DFS_DEVFS=y
 # CONFIG_RT_USING_DFS_ROMFS is not set
 # CONFIG_RT_USING_DFS_RAMFS is not set
+CONFIG_RT_USING_FAL=y
+CONFIG_FAL_DEBUG_CONFIG=y
+CONFIG_FAL_DEBUG=1
+CONFIG_FAL_PART_HAS_TABLE_CFG=y
+# CONFIG_FAL_USING_SFUD_PORT is not set
 
 #
 # Device Drivers
@@ -191,6 +182,7 @@ CONFIG_RT_USING_RTC=y
 # CONFIG_RT_USING_SOFT_RTC is not set
 # CONFIG_RT_USING_SDIO 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=y
@@ -272,9 +264,8 @@ CONFIG_RT_USB_DEVICE_HID_MOUSE=y
 # CONFIG_RT_USB_DEVICE_HID_MEDIA is not set
 
 #
-# POSIX layer and C standard library
+# C/C++ and POSIX layer
 #
-# CONFIG_RT_USING_MODULE is not set
 CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 
 #
@@ -290,7 +281,9 @@ CONFIG_RT_USING_POSIX_SELECT=y
 # CONFIG_RT_USING_POSIX_MMAN is not set
 # CONFIG_RT_USING_POSIX_DELAY is not set
 # CONFIG_RT_USING_POSIX_CLOCK is not set
+# CONFIG_RT_USING_POSIX_TIMER is not set
 # CONFIG_RT_USING_PTHREADS is not set
+# CONFIG_RT_USING_MODULE is not set
 
 #
 # Interprocess Communication (IPC)
@@ -302,14 +295,11 @@ CONFIG_RT_USING_POSIX_SELECT=y
 #
 # Socket is in the 'Network' category
 #
+# CONFIG_RT_USING_CPLUSPLUS is not set
 
 #
 # Network
 #
-
-#
-# Socket abstraction layer
-#
 CONFIG_RT_USING_SAL=y
 CONFIG_SAL_INTERNET_CHECK=y
 
@@ -318,10 +308,6 @@ CONFIG_SAL_INTERNET_CHECK=y
 #
 CONFIG_SAL_USING_AT=y
 CONFIG_SAL_USING_POSIX=y
-
-#
-# Network interface device
-#
 CONFIG_RT_USING_NETDEV=y
 CONFIG_NETDEV_USING_IFCONFIG=y
 CONFIG_NETDEV_USING_PING=y
@@ -331,15 +317,7 @@ CONFIG_NETDEV_USING_AUTO_DEFAULT=y
 CONFIG_NETDEV_IPV4=1
 CONFIG_NETDEV_IPV6=0
 # CONFIG_NETDEV_IPV6_SCOPES is not set
-
-#
-# light weight TCP/IP stack
-#
 # CONFIG_RT_USING_LWIP is not set
-
-#
-# AT commands
-#
 CONFIG_RT_USING_AT=y
 # CONFIG_AT_DEBUG is not set
 # CONFIG_AT_USING_SERVER is not set
@@ -351,11 +329,6 @@ CONFIG_AT_USING_CLI=y
 CONFIG_AT_CMD_MAX_LEN=2048
 CONFIG_AT_SW_VERSION_NUM=0x10301
 
-#
-# VBUS(Virtual Software BUS)
-#
-# CONFIG_RT_USING_VBUS is not set
-
 #
 # Utilities
 #
@@ -366,6 +339,7 @@ CONFIG_UTEST_THR_STACK_SIZE=4096
 CONFIG_UTEST_THR_PRIORITY=20
 # CONFIG_RT_USING_VAR_EXPORT is not set
 # CONFIG_RT_USING_RT_LINK is not set
+# CONFIG_RT_USING_VBUS is not set
 
 #
 # RT-Thread Utestcases
@@ -379,6 +353,7 @@ CONFIG_UTEST_THR_PRIORITY=20
 #
 # IoT - internet of things
 #
+# CONFIG_PKG_USING_LWIP is not set
 # CONFIG_PKG_USING_LORAWAN_DRIVER is not set
 # CONFIG_PKG_USING_PAHOMQTT is not set
 # CONFIG_PKG_USING_UMQTT is not set
@@ -389,12 +364,8 @@ CONFIG_UTEST_THR_PRIORITY=20
 # CONFIG_PKG_USING_KAWAII_MQTT is not set
 # CONFIG_PKG_USING_BC28_MQTT is not set
 # CONFIG_PKG_USING_WEBTERMINAL is not set
-# CONFIG_PKG_USING_CJSON is not set
-# CONFIG_PKG_USING_JSMN is not set
 # CONFIG_PKG_USING_LIBMODBUS is not set
 # CONFIG_PKG_USING_FREEMODBUS is not set
-# CONFIG_PKG_USING_LJSON is not set
-# CONFIG_PKG_USING_EZXML is not set
 # CONFIG_PKG_USING_NANOPB is not set
 
 #
@@ -423,7 +394,9 @@ CONFIG_PKG_AT_DEVICE_PATH="/packages/iot/at_device"
 # CONFIG_AT_DEVICE_USING_ESP32 is not set
 CONFIG_AT_DEVICE_USING_ESP8266=y
 CONFIG_AT_DEVICE_ESP8266_INIT_ASYN=y
+CONFIG_AT_DEVICE_ESP8266_SOCKET=y
 # CONFIG_AT_DEVICE_ESP8266_SAMPLE is not set
+# CONFIG_AT_DEVICE_ESP8266_SAMPLE_BSP_TAKEOVER is not set
 # CONFIG_AT_DEVICE_USING_RW007 is not set
 # CONFIG_AT_DEVICE_USING_SIM800C is not set
 # CONFIG_AT_DEVICE_USING_SIM76XX is not set
@@ -466,6 +439,7 @@ CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
 # CONFIG_PKG_USING_JOYLINK is not set
 # CONFIG_PKG_USING_EZ_IOT_OS is not set
 # CONFIG_PKG_USING_NIMBLE is not set
+# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
 # CONFIG_PKG_USING_OTA_DOWNLOADER is not set
 # CONFIG_PKG_USING_IPMSG is not set
 # CONFIG_PKG_USING_LSSDP is not set
@@ -479,16 +453,13 @@ CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
 # CONFIG_PKG_USING_ABUP_FOTA is not set
 # CONFIG_PKG_USING_LIBCURL2RTT is not set
 # CONFIG_PKG_USING_CAPNP is not set
-# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
 # CONFIG_PKG_USING_AGILE_TELNET is not set
 # CONFIG_PKG_USING_NMEALIB is not set
-# CONFIG_PKG_USING_AGILE_JSMN is not set
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK 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
-# CONFIG_PKG_USING_RAPIDJSON is not set
 # CONFIG_PKG_USING_BSAL is not set
 # CONFIG_PKG_USING_AGILE_MODBUS is not set
 # CONFIG_PKG_USING_AGILE_FTP is not set
@@ -513,6 +484,22 @@ CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
 #
 # language packages
 #
+
+#
+# JSON: JavaScript Object Notation, a lightweight data-interchange format
+#
+# CONFIG_PKG_USING_CJSON is not set
+# CONFIG_PKG_USING_LJSON is not set
+# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
+# CONFIG_PKG_USING_RAPIDJSON is not set
+# CONFIG_PKG_USING_JSMN is not set
+# CONFIG_PKG_USING_AGILE_JSMN is not set
+
+#
+# XML: Extensible Markup Language
+#
+# CONFIG_PKG_USING_SIMPLE_XML is not set
+# CONFIG_PKG_USING_EZXML is not set
 # CONFIG_PKG_USING_LUATOS_SOC is not set
 # CONFIG_PKG_USING_LUA is not set
 # CONFIG_PKG_USING_JERRYSCRIPT is not set
@@ -600,6 +587,8 @@ CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
 # CONFIG_PKG_USING_SOLAR_TERMS is not set
 # CONFIG_PKG_USING_GAN_ZHI is not set
 # CONFIG_PKG_USING_FDT is not set
+# CONFIG_PKG_USING_CBOX is not set
+# CONFIG_PKG_USING_SNOWFLAKE is not set
 
 #
 # system packages
@@ -642,25 +631,11 @@ CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
 # CONFIG_PKG_USING_UC_CLK is not set
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
-# CONFIG_RT_USING_ARDUINO is not set
+# CONFIG_PKG_USING_RTDUINO is not set
 # CONFIG_PKG_USING_GUIENGINE is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
-CONFIG_PKG_USING_FAL=y
-CONFIG_PKG_FAL_PATH="/packages/system/fal"
-CONFIG_FAL_DEBUG_CONFIG=y
-CONFIG_FAL_DEBUG=1
-CONFIG_FAL_PART_HAS_TABLE_CFG=y
-# CONFIG_FAL_USING_SFUD_PORT is not set
-# CONFIG_PKG_USING_FAL_V00500 is not set
-# CONFIG_PKG_USING_FAL_V00400 is not set
-# CONFIG_PKG_USING_FAL_V00300 is not set
-# CONFIG_PKG_USING_FAL_V00200 is not set
-# CONFIG_PKG_USING_FAL_V00100 is not set
-CONFIG_PKG_USING_FAL_LATEST_VERSION=y
-CONFIG_PKG_FAL_VER="latest"
-CONFIG_PKG_FAL_VER_NUM=0x99999
 # CONFIG_PKG_USING_FLASHDB is not set
 # CONFIG_PKG_USING_SQLITE is not set
 # CONFIG_PKG_USING_RTI is not set
@@ -686,7 +661,8 @@ CONFIG_PKG_FAL_VER_NUM=0x99999
 # CONFIG_PKG_USING_ARM_2D is not set
 # CONFIG_PKG_USING_MCUBOOT is not set
 # CONFIG_PKG_USING_TINYUSB is not set
-# CONFIG_PKG_USING_USB_STACK is not set
+# CONFIG_PKG_USING_CHERRYUSB is not set
+# CONFIG_PKG_USING_KMULTI_RTIMER is not set
 
 #
 # peripheral libraries and drivers
@@ -710,6 +686,7 @@ CONFIG_PKG_FAL_VER_NUM=0x99999
 # CONFIG_PKG_USING_WM_LIBRARIES is not set
 # CONFIG_PKG_USING_KENDRYTE_SDK is not set
 # CONFIG_PKG_USING_INFRARED is not set
+# CONFIG_PKG_USING_MULTI_INFRARED is not set
 # CONFIG_PKG_USING_AGILE_BUTTON is not set
 # CONFIG_PKG_USING_AGILE_LED is not set
 # CONFIG_PKG_USING_AT24CXX is not set
@@ -766,6 +743,7 @@ CONFIG_PKG_FAL_VER_NUM=0x99999
 # CONFIG_PKG_USING_SOFT_SERIAL is not set
 # CONFIG_PKG_USING_MB85RS16 is not set
 # CONFIG_PKG_USING_CW2015 is not set
+# CONFIG_PKG_USING_RFM300 is not set
 
 #
 # AI packages
@@ -784,6 +762,10 @@ CONFIG_PKG_FAL_VER_NUM=0x99999
 # miscellaneous packages
 #
 
+#
+# project laboratory
+#
+
 #
 # samples: kernel and components samples
 #
@@ -816,6 +798,7 @@ CONFIG_PKG_FAL_VER_NUM=0x99999
 # CONFIG_PKG_USING_CANFESTIVAL is not set
 # CONFIG_PKG_USING_ZLIB is not set
 # CONFIG_PKG_USING_MINIZIP is not set
+# CONFIG_PKG_USING_HEATSHRINK is not set
 # CONFIG_PKG_USING_DSTR is not set
 # CONFIG_PKG_USING_TINYFRAME is not set
 # CONFIG_PKG_USING_KENDRYTE_DEMO is not set
@@ -833,6 +816,7 @@ CONFIG_PKG_FAL_VER_NUM=0x99999
 # CONFIG_PKG_USING_DESIGN_PATTERN is not set
 # CONFIG_PKG_USING_CONTROLLER is not set
 # CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
+# CONFIG_PKG_USING_MFBD is not set
 
 #
 # Hardware Drivers Config
@@ -937,6 +921,7 @@ CONFIG_BOARD_USING_OTG=y
 #
 # Board extended module drivers
 #
+# CONFIG_BOARD_USING_LCD_ILI9341 is not set
 CONFIG_BOARD_USING_SEGMENT_LCD=y
 
 #
@@ -950,6 +935,7 @@ CONFIG_NU_PKG_USING_DEMO=y
 # CONFIG_NU_PKG_USING_NAU8822 is not set
 # CONFIG_NU_PKG_USING_DA9062 is not set
 # CONFIG_NU_PKG_USING_ILI9341 is not set
+# CONFIG_NU_PKG_USING_SSD1963 is not set
+# CONFIG_NU_PKG_USING_TPC is not set
+# CONFIG_NU_PKG_USING_ADC_TOUCH is not set
 # CONFIG_NU_PKG_USING_SPINAND is not set
-CONFIG_BOARD_USE_UTEST=y
-CONFIG_UTEST_CMD_PREFIX="bsp.nuvoton.numaker-m2354.test.utest."

+ 15 - 33
bsp/nuvoton/numaker-m2354/rtconfig.h

@@ -53,14 +53,8 @@
 #define RT_USING_USER_MAIN
 #define RT_MAIN_THREAD_STACK_SIZE 2048
 #define RT_MAIN_THREAD_PRIORITY 10
-
-/* C++ features */
-
-
-/* Command shell */
-
-#define RT_USING_FINSH
 #define RT_USING_MSH
+#define RT_USING_FINSH
 #define FINSH_USING_MSH
 #define FINSH_THREAD_NAME "tshell"
 #define FINSH_THREAD_PRIORITY 20
@@ -72,9 +66,6 @@
 #define MSH_USING_BUILT_IN_COMMANDS
 #define FINSH_USING_DESCRIPTION
 #define FINSH_ARG_MAX 10
-
-/* Device virtual file system */
-
 #define RT_USING_DFS
 #define DFS_USING_POSIX
 #define DFS_USING_WORKDIR
@@ -97,6 +88,10 @@
 #define RT_DFS_ELM_REENTRANT
 #define RT_DFS_ELM_MUTEX_TIMEOUT 3000
 #define RT_USING_DFS_DEVFS
+#define RT_USING_FAL
+#define FAL_DEBUG_CONFIG
+#define FAL_DEBUG 1
+#define FAL_PART_HAS_TABLE_CFG
 
 /* Device Drivers */
 
@@ -176,7 +171,7 @@
 #define RT_USB_DEVICE_HID
 #define RT_USB_DEVICE_HID_MOUSE
 
-/* POSIX layer and C standard library */
+/* C/C++ and POSIX layer */
 
 #define RT_LIBC_DEFAULT_TIMEZONE 8
 
@@ -192,9 +187,8 @@
 
 /* Socket is in the 'Network' category */
 
-/* Network */
 
-/* Socket abstraction layer */
+/* Network */
 
 #define RT_USING_SAL
 #define SAL_INTERNET_CHECK
@@ -203,9 +197,6 @@
 
 #define SAL_USING_AT
 #define SAL_USING_POSIX
-
-/* Network interface device */
-
 #define RT_USING_NETDEV
 #define NETDEV_USING_IFCONFIG
 #define NETDEV_USING_PING
@@ -213,12 +204,6 @@
 #define NETDEV_USING_AUTO_DEFAULT
 #define NETDEV_IPV4 1
 #define NETDEV_IPV6 0
-
-/* light weight TCP/IP stack */
-
-
-/* AT commands */
-
 #define RT_USING_AT
 #define AT_USING_CLIENT
 #define AT_CLIENT_NUM_MAX 1
@@ -227,9 +212,6 @@
 #define AT_CMD_MAX_LEN 2048
 #define AT_SW_VERSION_NUM 0x10301
 
-/* VBUS(Virtual Software BUS) */
-
-
 /* Utilities */
 
 #define RT_USING_UTEST
@@ -254,6 +236,7 @@
 #define PKG_USING_AT_DEVICE
 #define AT_DEVICE_USING_ESP8266
 #define AT_DEVICE_ESP8266_INIT_ASYN
+#define AT_DEVICE_ESP8266_SOCKET
 #define PKG_USING_AT_DEVICE_LATEST_VERSION
 #define PKG_AT_DEVICE_VER_NUM 0x99999
 
@@ -265,6 +248,11 @@
 
 /* language packages */
 
+/* JSON: JavaScript Object Notation, a lightweight data-interchange format */
+
+
+/* XML: Extensible Markup Language */
+
 
 /* multimedia packages */
 
@@ -296,12 +284,6 @@
 
 /* Micrium: Micrium software products porting for RT-Thread */
 
-#define RT_USING_FAL
-#define FAL_DEBUG_CONFIG
-#define FAL_DEBUG 1
-#define FAL_PART_HAS_TABLE_CFG
-#define RT_USING_FAL_LATEST_VERSION
-#define PKG_FAL_VER_NUM 0x99999
 
 /* peripheral libraries and drivers */
 
@@ -311,6 +293,8 @@
 
 /* miscellaneous packages */
 
+/* project laboratory */
+
 /* samples: kernel and components samples */
 
 
@@ -379,7 +363,5 @@
 
 #define NU_PKG_USING_UTILS
 #define NU_PKG_USING_DEMO
-#define BOARD_USE_UTEST
-#define UTEST_CMD_PREFIX "bsp.nuvoton.numaker-m2354.test.utest."
 
 #endif

+ 49 - 64
bsp/nuvoton/numaker-pfm-m487/.config

@@ -7,7 +7,6 @@
 # RT-Thread Kernel
 #
 CONFIG_RT_NAME_MAX=8
-# CONFIG_RT_USING_BIG_ENDIAN is not set
 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set
 # CONFIG_RT_USING_SMP is not set
 CONFIG_RT_ALIGN_SIZE=4
@@ -94,17 +93,8 @@ CONFIG_RT_USING_USER_MAIN=y
 CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
 CONFIG_RT_MAIN_THREAD_PRIORITY=10
 # CONFIG_RT_USING_LEGACY is not set
-
-#
-# C++ features
-#
-# CONFIG_RT_USING_CPLUSPLUS is not set
-
-#
-# Command shell
-#
-CONFIG_RT_USING_FINSH=y
 CONFIG_RT_USING_MSH=y
+CONFIG_RT_USING_FINSH=y
 CONFIG_FINSH_USING_MSH=y
 CONFIG_FINSH_THREAD_NAME="tshell"
 CONFIG_FINSH_THREAD_PRIORITY=20
@@ -118,10 +108,6 @@ CONFIG_FINSH_USING_DESCRIPTION=y
 # CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
 # CONFIG_FINSH_USING_AUTH is not set
 CONFIG_FINSH_ARG_MAX=10
-
-#
-# Device virtual file system
-#
 CONFIG_RT_USING_DFS=y
 CONFIG_DFS_USING_POSIX=y
 CONFIG_DFS_USING_WORKDIR=y
@@ -156,6 +142,12 @@ CONFIG_RT_USING_DFS_DEVFS=y
 # CONFIG_RT_USING_DFS_ROMFS is not set
 # CONFIG_RT_USING_DFS_RAMFS is not set
 # CONFIG_RT_USING_DFS_NFS is not set
+CONFIG_RT_USING_FAL=y
+CONFIG_FAL_DEBUG_CONFIG=y
+CONFIG_FAL_DEBUG=1
+CONFIG_FAL_PART_HAS_TABLE_CFG=y
+# CONFIG_FAL_USING_SFUD_PORT is not set
+# CONFIG_RT_USING_LWP is not set
 
 #
 # Device Drivers
@@ -195,6 +187,7 @@ CONFIG_RT_USING_RTC=y
 # CONFIG_RT_USING_SOFT_RTC is not set
 # CONFIG_RT_USING_SDIO 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=y
@@ -277,7 +270,7 @@ CONFIG_RT_USB_DEVICE_HID_MOUSE=y
 # CONFIG_RT_USB_DEVICE_HID_MEDIA is not set
 
 #
-# POSIX layer and C standard library
+# C/C++ and POSIX layer
 #
 CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 
@@ -308,14 +301,11 @@ CONFIG_RT_USING_POSIX_DEVIO=y
 #
 # Socket is in the 'Network' category
 #
+# CONFIG_RT_USING_CPLUSPLUS is not set
 
 #
 # Network
 #
-
-#
-# Socket abstraction layer
-#
 CONFIG_RT_USING_SAL=y
 CONFIG_SAL_INTERNET_CHECK=y
 
@@ -325,10 +315,6 @@ CONFIG_SAL_INTERNET_CHECK=y
 CONFIG_SAL_USING_LWIP=y
 # CONFIG_SAL_USING_POSIX is not set
 CONFIG_SAL_SOCKETS_NUM=16
-
-#
-# Network interface device
-#
 CONFIG_RT_USING_NETDEV=y
 CONFIG_NETDEV_USING_IFCONFIG=y
 CONFIG_NETDEV_USING_PING=y
@@ -338,14 +324,13 @@ CONFIG_NETDEV_USING_AUTO_DEFAULT=y
 CONFIG_NETDEV_IPV4=1
 CONFIG_NETDEV_IPV6=0
 # CONFIG_NETDEV_IPV6_SCOPES is not set
-
-#
-# light weight TCP/IP stack
-#
 CONFIG_RT_USING_LWIP=y
+# CONFIG_RT_USING_LWIP_LOCAL_VERSION is not set
 # CONFIG_RT_USING_LWIP141 is not set
 CONFIG_RT_USING_LWIP203=y
 # CONFIG_RT_USING_LWIP212 is not set
+# CONFIG_RT_USING_LWIP_LATEST is not set
+CONFIG_RT_USING_LWIP_VER_NUM=0x20003
 # CONFIG_RT_USING_LWIP_IPV6 is not set
 CONFIG_RT_LWIP_MEM_ALIGNMENT=4
 CONFIG_RT_LWIP_IGMP=y
@@ -395,18 +380,9 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
 # CONFIG_RT_LWIP_STATS is not set
 # CONFIG_RT_LWIP_USING_HW_CHECKSUM is not set
 CONFIG_RT_LWIP_USING_PING=y
+# CONFIG_LWIP_USING_DHCPD is not set
 # CONFIG_RT_LWIP_DEBUG is not set
-
-#
-# AT commands
-#
 # CONFIG_RT_USING_AT is not set
-# CONFIG_LWIP_USING_DHCPD is not set
-
-#
-# VBUS(Virtual Software BUS)
-#
-# CONFIG_RT_USING_VBUS is not set
 
 #
 # Utilities
@@ -418,7 +394,7 @@ CONFIG_UTEST_THR_STACK_SIZE=4096
 CONFIG_UTEST_THR_PRIORITY=20
 # CONFIG_RT_USING_VAR_EXPORT is not set
 # CONFIG_RT_USING_RT_LINK is not set
-# CONFIG_RT_USING_LWP is not set
+# CONFIG_RT_USING_VBUS is not set
 
 #
 # RT-Thread Utestcases
@@ -432,6 +408,7 @@ CONFIG_UTEST_THR_PRIORITY=20
 #
 # IoT - internet of things
 #
+# CONFIG_PKG_USING_LWIP is not set
 # CONFIG_PKG_USING_LORAWAN_DRIVER is not set
 # CONFIG_PKG_USING_PAHOMQTT is not set
 # CONFIG_PKG_USING_UMQTT is not set
@@ -442,12 +419,8 @@ CONFIG_UTEST_THR_PRIORITY=20
 # CONFIG_PKG_USING_KAWAII_MQTT is not set
 # CONFIG_PKG_USING_BC28_MQTT is not set
 # CONFIG_PKG_USING_WEBTERMINAL is not set
-# CONFIG_PKG_USING_CJSON is not set
-# CONFIG_PKG_USING_JSMN is not set
 # CONFIG_PKG_USING_LIBMODBUS is not set
 # CONFIG_PKG_USING_FREEMODBUS is not set
-# CONFIG_PKG_USING_LJSON is not set
-# CONFIG_PKG_USING_EZXML is not set
 # CONFIG_PKG_USING_NANOPB is not set
 
 #
@@ -487,6 +460,7 @@ CONFIG_UTEST_THR_PRIORITY=20
 # CONFIG_PKG_USING_JOYLINK is not set
 # CONFIG_PKG_USING_EZ_IOT_OS is not set
 # CONFIG_PKG_USING_NIMBLE is not set
+# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
 # CONFIG_PKG_USING_OTA_DOWNLOADER is not set
 # CONFIG_PKG_USING_IPMSG is not set
 # CONFIG_PKG_USING_LSSDP is not set
@@ -500,16 +474,13 @@ CONFIG_UTEST_THR_PRIORITY=20
 # CONFIG_PKG_USING_ABUP_FOTA is not set
 # CONFIG_PKG_USING_LIBCURL2RTT is not set
 # CONFIG_PKG_USING_CAPNP is not set
-# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
 # CONFIG_PKG_USING_AGILE_TELNET is not set
 # CONFIG_PKG_USING_NMEALIB is not set
-# CONFIG_PKG_USING_AGILE_JSMN is not set
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK 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
-# CONFIG_PKG_USING_RAPIDJSON is not set
 # CONFIG_PKG_USING_BSAL is not set
 # CONFIG_PKG_USING_AGILE_MODBUS is not set
 # CONFIG_PKG_USING_AGILE_FTP is not set
@@ -534,6 +505,22 @@ CONFIG_UTEST_THR_PRIORITY=20
 #
 # language packages
 #
+
+#
+# JSON: JavaScript Object Notation, a lightweight data-interchange format
+#
+# CONFIG_PKG_USING_CJSON is not set
+# CONFIG_PKG_USING_LJSON is not set
+# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
+# CONFIG_PKG_USING_RAPIDJSON is not set
+# CONFIG_PKG_USING_JSMN is not set
+# CONFIG_PKG_USING_AGILE_JSMN is not set
+
+#
+# XML: Extensible Markup Language
+#
+# CONFIG_PKG_USING_SIMPLE_XML is not set
+# CONFIG_PKG_USING_EZXML is not set
 # CONFIG_PKG_USING_LUATOS_SOC is not set
 # CONFIG_PKG_USING_LUA is not set
 # CONFIG_PKG_USING_JERRYSCRIPT is not set
@@ -621,6 +608,8 @@ CONFIG_UTEST_THR_PRIORITY=20
 # CONFIG_PKG_USING_SOLAR_TERMS is not set
 # CONFIG_PKG_USING_GAN_ZHI is not set
 # CONFIG_PKG_USING_FDT is not set
+# CONFIG_PKG_USING_CBOX is not set
+# CONFIG_PKG_USING_SNOWFLAKE is not set
 
 #
 # system packages
@@ -663,26 +652,12 @@ CONFIG_UTEST_THR_PRIORITY=20
 # CONFIG_PKG_USING_UC_CLK is not set
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
-# CONFIG_RT_USING_ARDUINO is not set
+# CONFIG_PKG_USING_RTDUINO is not set
 # CONFIG_PKG_USING_GUIENGINE is not set
 # CONFIG_PKG_USING_PERSIMMON is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
-CONFIG_PKG_USING_FAL=y
-CONFIG_PKG_FAL_PATH="/packages/system/fal"
-CONFIG_FAL_DEBUG_CONFIG=y
-CONFIG_FAL_DEBUG=1
-CONFIG_FAL_PART_HAS_TABLE_CFG=y
-# CONFIG_FAL_USING_SFUD_PORT is not set
-# CONFIG_PKG_USING_FAL_V00500 is not set
-# CONFIG_PKG_USING_FAL_V00400 is not set
-# CONFIG_PKG_USING_FAL_V00300 is not set
-# CONFIG_PKG_USING_FAL_V00200 is not set
-# CONFIG_PKG_USING_FAL_V00100 is not set
-CONFIG_PKG_USING_FAL_LATEST_VERSION=y
-CONFIG_PKG_FAL_VER="latest"
-CONFIG_PKG_FAL_VER_NUM=0x99999
 # CONFIG_PKG_USING_FLASHDB is not set
 # CONFIG_PKG_USING_SQLITE is not set
 # CONFIG_PKG_USING_RTI is not set
@@ -708,7 +683,8 @@ CONFIG_PKG_FAL_VER_NUM=0x99999
 # CONFIG_PKG_USING_ARM_2D is not set
 # CONFIG_PKG_USING_MCUBOOT is not set
 # CONFIG_PKG_USING_TINYUSB is not set
-# CONFIG_PKG_USING_USB_STACK is not set
+# CONFIG_PKG_USING_CHERRYUSB is not set
+# CONFIG_PKG_USING_KMULTI_RTIMER is not set
 
 #
 # peripheral libraries and drivers
@@ -732,6 +708,7 @@ CONFIG_PKG_FAL_VER_NUM=0x99999
 # CONFIG_PKG_USING_WM_LIBRARIES is not set
 # CONFIG_PKG_USING_KENDRYTE_SDK is not set
 # CONFIG_PKG_USING_INFRARED is not set
+# CONFIG_PKG_USING_MULTI_INFRARED is not set
 # CONFIG_PKG_USING_AGILE_BUTTON is not set
 # CONFIG_PKG_USING_AGILE_LED is not set
 # CONFIG_PKG_USING_AT24CXX is not set
@@ -788,6 +765,7 @@ CONFIG_PKG_FAL_VER_NUM=0x99999
 # CONFIG_PKG_USING_SOFT_SERIAL is not set
 # CONFIG_PKG_USING_MB85RS16 is not set
 # CONFIG_PKG_USING_CW2015 is not set
+# CONFIG_PKG_USING_RFM300 is not set
 
 #
 # AI packages
@@ -806,6 +784,10 @@ CONFIG_PKG_FAL_VER_NUM=0x99999
 # miscellaneous packages
 #
 
+#
+# project laboratory
+#
+
 #
 # samples: kernel and components samples
 #
@@ -838,6 +820,7 @@ CONFIG_PKG_FAL_VER_NUM=0x99999
 # CONFIG_PKG_USING_CANFESTIVAL is not set
 # CONFIG_PKG_USING_ZLIB is not set
 # CONFIG_PKG_USING_MINIZIP is not set
+# CONFIG_PKG_USING_HEATSHRINK is not set
 # CONFIG_PKG_USING_DSTR is not set
 # CONFIG_PKG_USING_TINYFRAME is not set
 # CONFIG_PKG_USING_KENDRYTE_DEMO is not set
@@ -855,6 +838,7 @@ CONFIG_PKG_FAL_VER_NUM=0x99999
 # CONFIG_PKG_USING_DESIGN_PATTERN is not set
 # CONFIG_PKG_USING_CONTROLLER is not set
 # CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
+# CONFIG_PKG_USING_MFBD is not set
 
 #
 # Hardware Drivers Config
@@ -979,6 +963,7 @@ CONFIG_NU_PKG_USING_NAU88L25=y
 # CONFIG_NU_PKG_USING_NAU8822 is not set
 # CONFIG_NU_PKG_USING_DA9062 is not set
 # CONFIG_NU_PKG_USING_ILI9341 is not set
+# CONFIG_NU_PKG_USING_SSD1963 is not set
+# CONFIG_NU_PKG_USING_TPC is not set
+# CONFIG_NU_PKG_USING_ADC_TOUCH is not set
 # CONFIG_NU_PKG_USING_SPINAND is not set
-CONFIG_BOARD_USE_UTEST=y
-CONFIG_UTEST_CMD_PREFIX="bsp.nuvoton.numaker-pfm-m487.test.utest."

+ 15 - 33
bsp/nuvoton/numaker-pfm-m487/rtconfig.h

@@ -57,14 +57,8 @@
 #define RT_USING_USER_MAIN
 #define RT_MAIN_THREAD_STACK_SIZE 2048
 #define RT_MAIN_THREAD_PRIORITY 10
-
-/* C++ features */
-
-
-/* Command shell */
-
-#define RT_USING_FINSH
 #define RT_USING_MSH
+#define RT_USING_FINSH
 #define FINSH_USING_MSH
 #define FINSH_THREAD_NAME "tshell"
 #define FINSH_THREAD_PRIORITY 20
@@ -76,9 +70,6 @@
 #define MSH_USING_BUILT_IN_COMMANDS
 #define FINSH_USING_DESCRIPTION
 #define FINSH_ARG_MAX 10
-
-/* Device virtual file system */
-
 #define RT_USING_DFS
 #define DFS_USING_POSIX
 #define DFS_USING_WORKDIR
@@ -101,6 +92,10 @@
 #define RT_DFS_ELM_REENTRANT
 #define RT_DFS_ELM_MUTEX_TIMEOUT 3000
 #define RT_USING_DFS_DEVFS
+#define RT_USING_FAL
+#define FAL_DEBUG_CONFIG
+#define FAL_DEBUG 1
+#define FAL_PART_HAS_TABLE_CFG
 
 /* Device Drivers */
 
@@ -176,7 +171,7 @@
 #define RT_USB_DEVICE_HID
 #define RT_USB_DEVICE_HID_MOUSE
 
-/* POSIX layer and C standard library */
+/* C/C++ and POSIX layer */
 
 #define RT_LIBC_DEFAULT_TIMEZONE 8
 
@@ -190,9 +185,8 @@
 
 /* Socket is in the 'Network' category */
 
-/* Network */
 
-/* Socket abstraction layer */
+/* Network */
 
 #define RT_USING_SAL
 #define SAL_INTERNET_CHECK
@@ -201,9 +195,6 @@
 
 #define SAL_USING_LWIP
 #define SAL_SOCKETS_NUM 16
-
-/* Network interface device */
-
 #define RT_USING_NETDEV
 #define NETDEV_USING_IFCONFIG
 #define NETDEV_USING_PING
@@ -211,11 +202,9 @@
 #define NETDEV_USING_AUTO_DEFAULT
 #define NETDEV_IPV4 1
 #define NETDEV_IPV6 0
-
-/* light weight TCP/IP stack */
-
 #define RT_USING_LWIP
 #define RT_USING_LWIP203
+#define RT_USING_LWIP_VER_NUM 0x20003
 #define RT_LWIP_MEM_ALIGNMENT 4
 #define RT_LWIP_IGMP
 #define RT_LWIP_ICMP
@@ -256,12 +245,6 @@
 #define LWIP_NETIF_LOOPBACK 0
 #define RT_LWIP_USING_PING
 
-/* AT commands */
-
-
-/* VBUS(Virtual Software BUS) */
-
-
 /* Utilities */
 
 #define RT_USING_UTEST
@@ -292,6 +275,11 @@
 
 /* language packages */
 
+/* JSON: JavaScript Object Notation, a lightweight data-interchange format */
+
+
+/* XML: Extensible Markup Language */
+
 
 /* multimedia packages */
 
@@ -323,12 +311,6 @@
 
 /* Micrium: Micrium software products porting for RT-Thread */
 
-#define RT_USING_FAL
-#define FAL_DEBUG_CONFIG
-#define FAL_DEBUG 1
-#define FAL_PART_HAS_TABLE_CFG
-#define RT_USING_FAL_LATEST_VERSION
-#define PKG_FAL_VER_NUM 0x99999
 
 /* peripheral libraries and drivers */
 
@@ -338,6 +320,8 @@
 
 /* miscellaneous packages */
 
+/* project laboratory */
+
 /* samples: kernel and components samples */
 
 
@@ -410,7 +394,5 @@
 #define NU_PKG_USING_UTILS
 #define NU_PKG_USING_DEMO
 #define NU_PKG_USING_NAU88L25
-#define BOARD_USE_UTEST
-#define UTEST_CMD_PREFIX "bsp.nuvoton.numaker-pfm-m487.test.utest."
 
 #endif