summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWayne Lin <[email protected]>2021-12-17 17:20:33 +0800
committerBernard Xiong <[email protected]>2021-12-30 01:39:17 +0800
commit9966f195b4a7c7204f808fe50a221440ec88151a (patch)
treea4f37eeb4825649dd09a8918e9e0b7144fae4b62
parent57165329ac2509bf2ec2bfef67fce22409886b31 (diff)
Support LVGLv81 RTT music demo for N9H30 and NUC980.
-rw-r--r--bsp/nuvoton/libraries/m480/StdDriver/src/nu_can.c148
-rw-r--r--bsp/nuvoton/libraries/m480/StdDriver/src/nu_qspi.c4
-rw-r--r--bsp/nuvoton/libraries/n9h30/Driver/Include/nu_lcd.h3
-rw-r--r--bsp/nuvoton/libraries/n9h30/Driver/Source/nu_lcd.c56
-rw-r--r--bsp/nuvoton/libraries/n9h30/Driver/Source/nu_sdh.c4
-rw-r--r--bsp/nuvoton/libraries/n9h30/rtt_port/drv_adc_touch.c2
-rw-r--r--bsp/nuvoton/libraries/n9h30/rtt_port/drv_ge2d.c90
-rw-r--r--bsp/nuvoton/libraries/n9h30/rtt_port/drv_vpost.c94
-rw-r--r--bsp/nuvoton/libraries/nu_packages/ILI9341/lcd_ili9341.c18
-rw-r--r--bsp/nuvoton/nk-980iot/applications/SConscript12
-rw-r--r--bsp/nuvoton/nk-980iot/applications/lvgl/SConscript17
-rw-r--r--bsp/nuvoton/nk-980iot/applications/lvgl/port/SConscript10
-rw-r--r--bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_conf.h31
-rw-r--r--bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_demo.c50
-rw-r--r--bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_port_disp.c105
-rw-r--r--bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_port_disp.h23
-rw-r--r--bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_port_indev.c58
-rw-r--r--bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_port_indev.h28
-rw-r--r--bsp/nuvoton/nk-n9h30/.config220
-rw-r--r--bsp/nuvoton/nk-n9h30/applications/SConscript12
-rw-r--r--bsp/nuvoton/nk-n9h30/applications/lvgl/SConscript17
-rw-r--r--bsp/nuvoton/nk-n9h30/applications/lvgl/port/SConscript10
-rw-r--r--bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_conf.h32
-rw-r--r--bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_demo.c51
-rw-r--r--bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_port_disp.c133
-rw-r--r--bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_port_disp.h23
-rw-r--r--bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_port_indev.c59
-rw-r--r--bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_port_indev.h28
-rw-r--r--bsp/nuvoton/nk-n9h30/board/board_dev.c7
-rw-r--r--bsp/nuvoton/numaker-iot-m487/.config319
-rw-r--r--bsp/nuvoton/numaker-m032ki/.config200
-rw-r--r--bsp/nuvoton/numaker-m2354/.config261
-rw-r--r--bsp/nuvoton/numaker-pfm-m487/.config302
-rw-r--r--bsp/nuvoton/numaker-pfm-m487/applications/SConscript12
-rw-r--r--bsp/nuvoton/numaker-pfm-m487/board/board_dev.c2
35 files changed, 1984 insertions, 457 deletions
diff --git a/bsp/nuvoton/libraries/m480/StdDriver/src/nu_can.c b/bsp/nuvoton/libraries/m480/StdDriver/src/nu_can.c
index 741451add4..081fe44056 100644
--- a/bsp/nuvoton/libraries/m480/StdDriver/src/nu_can.c
+++ b/bsp/nuvoton/libraries/m480/StdDriver/src/nu_can.c
@@ -60,19 +60,19 @@ static int can_update_spt(int sampl_pt, int tseg, int *tseg1, int *tseg2);
*/
static uint32_t LockIF(CAN_T *tCAN)
{
- uint32_t u32CanNo;
+ uint32_t u32CanNo = 0ul;
uint32_t u32FreeIfNo;
uint32_t u32IntMask;
#if defined(CAN1)
- if(tCAN == CAN0)
+ if (tCAN == CAN0)
u32CanNo = 0ul;
- else if(tCAN == CAN1)
+ else if (tCAN == CAN1)
u32CanNo = 1ul;
- #if defined(CAN2)
- else if(tCAN == CAN2)
+#if defined(CAN2)
+ else if (tCAN == CAN2)
u32CanNo = 2ul;
- #endif
+#endif
#else /* defined(CAN0) || defined(CAN) */
u32CanNo = 0ul;
#endif
@@ -84,9 +84,9 @@ static uint32_t LockIF(CAN_T *tCAN)
tCAN->CON = tCAN->CON & ~(CAN_CON_IE_Msk | CAN_CON_SIE_Msk | CAN_CON_EIE_Msk);
/* Check interface 1 is available or not */
- if((tCAN->IF[0ul].CREQ & CAN_IF_CREQ_BUSY_Msk) == 0ul)
+ if ((tCAN->IF[0ul].CREQ & CAN_IF_CREQ_BUSY_Msk) == 0ul)
{
- if(gu8LockCanIf[u32CanNo][0ul] == 0ul)
+ if (gu8LockCanIf[u32CanNo][0ul] == 0ul)
{
gu8LockCanIf[u32CanNo][0ul] = 1u;
u32FreeIfNo = 0ul;
@@ -100,11 +100,11 @@ static uint32_t LockIF(CAN_T *tCAN)
}
/* Or check interface 2 is available or not */
- if(u32FreeIfNo == 2ul)
+ if (u32FreeIfNo == 2ul)
{
- if((tCAN->IF[1ul].CREQ & CAN_IF_CREQ_BUSY_Msk) == 0ul)
+ if ((tCAN->IF[1ul].CREQ & CAN_IF_CREQ_BUSY_Msk) == 0ul)
{
- if(gu8LockCanIf[u32CanNo][1ul] == 0ul)
+ if (gu8LockCanIf[u32CanNo][1ul] == 0ul)
{
gu8LockCanIf[u32CanNo][1ul] = 1u;
u32FreeIfNo = 1ul;
@@ -142,9 +142,9 @@ static uint32_t LockIF_TL(CAN_T *tCAN)
uint32_t u32Count;
uint32_t u32FreeIfNo;
- for(u32Count = 0ul; u32Count < RETRY_COUNTS; u32Count++)
+ for (u32Count = 0ul; u32Count < RETRY_COUNTS; u32Count++)
{
- if((u32FreeIfNo = LockIF(tCAN)) != 2ul)
+ if ((u32FreeIfNo = LockIF(tCAN)) != 2ul)
{
break;
}
@@ -166,22 +166,22 @@ static uint32_t LockIF_TL(CAN_T *tCAN)
static void ReleaseIF(CAN_T *tCAN, uint32_t u32IfNo)
{
uint32_t u32IntMask;
- uint32_t u32CanNo;
+ uint32_t u32CanNo = 0ul;
- if(u32IfNo >= 2ul)
+ if (u32IfNo >= 2ul)
{
}
else
{
#if defined(CAN1)
- if(tCAN == CAN0)
- u32CanNo = 0ul;
- else if(tCAN == CAN1)
- u32CanNo = 1ul;
- #if defined(CAN2)
- else if(tCAN == CAN2)
- u32CanNo = 2ul;
- #endif
+ if (tCAN == CAN0)
+ u32CanNo = 0ul;
+ else if (tCAN == CAN1)
+ u32CanNo = 1ul;
+#if defined(CAN2)
+ else if (tCAN == CAN2)
+ u32CanNo = 2ul;
+#endif
#else /* defined(CAN0) || defined(CAN) */
u32CanNo = 0ul;
#endif
@@ -261,7 +261,7 @@ void CAN_EnterInitMode(CAN_T *tCAN, uint8_t u8Mask)
void CAN_LeaveInitMode(CAN_T *tCAN)
{
tCAN->CON &= (~(CAN_CON_INIT_Msk | CAN_CON_CCE_Msk));
- while(tCAN->CON & CAN_CON_INIT_Msk)
+ while (tCAN->CON & CAN_CON_INIT_Msk)
{
/* Check INIT bit is released */
}
@@ -278,9 +278,9 @@ void CAN_WaitMsg(CAN_T *tCAN)
{
tCAN->STATUS = 0x0ul; /* clr status */
- while(1)
+ while (1)
{
- if(tCAN->IF[1].MCON & CAN_IF_MCON_NEWDAT_Msk) /* check new data */
+ if (tCAN->IF[1].MCON & CAN_IF_MCON_NEWDAT_Msk) /* check new data */
{
/* New Data IN */
break;
@@ -289,7 +289,7 @@ void CAN_WaitMsg(CAN_T *tCAN)
{
}
- if(tCAN->STATUS & CAN_STATUS_RXOK_Msk)
+ if (tCAN->STATUS & CAN_STATUS_RXOK_Msk)
{
/* Rx OK */
}
@@ -297,7 +297,7 @@ void CAN_WaitMsg(CAN_T *tCAN)
{
}
- if(tCAN->STATUS & CAN_STATUS_LEC_Msk)
+ if (tCAN->STATUS & CAN_STATUS_LEC_Msk)
{
/* Error */
}
@@ -382,18 +382,18 @@ uint32_t CAN_IsNewDataReceived(CAN_T *tCAN, uint8_t u8MsgObj)
* the user should be call CAN_EnterTestMode(CAN_TEST_BASIC) and let CAN controller enter
* basic mode of test mode. Please notice IF1 Registers used as Tx Buffer in basic mode.
*/
-int32_t CAN_BasicSendMsg(CAN_T *tCAN, STR_CANMSG_T* pCanMsg)
+int32_t CAN_BasicSendMsg(CAN_T *tCAN, STR_CANMSG_T *pCanMsg)
{
uint32_t i = 0ul;
int32_t rev = 1l;
- while(tCAN->IF[0].CREQ & CAN_IF_CREQ_BUSY_Msk)
+ while (tCAN->IF[0].CREQ & CAN_IF_CREQ_BUSY_Msk)
{
}
tCAN->STATUS &= (~CAN_STATUS_TXOK_Msk);
- if(pCanMsg->IdType == CAN_STD_ID)
+ if (pCanMsg->IdType == CAN_STD_ID)
{
/* standard ID*/
tCAN->IF[0].ARB1 = 0ul;
@@ -407,7 +407,7 @@ int32_t CAN_BasicSendMsg(CAN_T *tCAN, STR_CANMSG_T* pCanMsg)
}
- if(pCanMsg->FrameType)
+ if (pCanMsg->FrameType)
{
tCAN->IF[0].ARB2 |= CAN_IF_ARB2_DIR_Msk;
}
@@ -424,7 +424,7 @@ int32_t CAN_BasicSendMsg(CAN_T *tCAN, STR_CANMSG_T* pCanMsg)
/* request transmission*/
tCAN->IF[0].CREQ &= (~CAN_IF_CREQ_BUSY_Msk);
- if(tCAN->IF[0].CREQ & CAN_IF_CREQ_BUSY_Msk)
+ if (tCAN->IF[0].CREQ & CAN_IF_CREQ_BUSY_Msk)
{
/* Cannot clear busy for sending ...*/
rev = 0l; /* return FALSE */
@@ -433,9 +433,9 @@ int32_t CAN_BasicSendMsg(CAN_T *tCAN, STR_CANMSG_T* pCanMsg)
{
tCAN->IF[0].CREQ |= CAN_IF_CREQ_BUSY_Msk; /* sending */
- for(i = 0ul; i < 0xFFFFFul; i++)
+ for (i = 0ul; i < 0xFFFFFul; i++)
{
- if((tCAN->IF[0].CREQ & CAN_IF_CREQ_BUSY_Msk) == 0ul)
+ if ((tCAN->IF[0].CREQ & CAN_IF_CREQ_BUSY_Msk) == 0ul)
{
break;
}
@@ -444,7 +444,7 @@ int32_t CAN_BasicSendMsg(CAN_T *tCAN, STR_CANMSG_T* pCanMsg)
}
}
- if(i >= 0xFFFFFul)
+ if (i >= 0xFFFFFul)
{
/* Cannot send out... */
rev = 0l; /* return FALSE */
@@ -467,11 +467,11 @@ int32_t CAN_BasicSendMsg(CAN_T *tCAN, STR_CANMSG_T* pCanMsg)
* TRUE Receive a message success.
*
*/
-int32_t CAN_BasicReceiveMsg(CAN_T *tCAN, STR_CANMSG_T* pCanMsg)
+int32_t CAN_BasicReceiveMsg(CAN_T *tCAN, STR_CANMSG_T *pCanMsg)
{
int32_t rev = 1l;
- if((tCAN->IF[1].MCON & CAN_IF_MCON_NEWDAT_Msk) == 0ul)
+ if ((tCAN->IF[1].MCON & CAN_IF_MCON_NEWDAT_Msk) == 0ul)
{
/* In basic mode, receive data always save in IF2 */
rev = 0; /* return FALSE */
@@ -486,7 +486,7 @@ int32_t CAN_BasicReceiveMsg(CAN_T *tCAN, STR_CANMSG_T* pCanMsg)
| CAN_IF_CMASK_DATAA_Msk
| CAN_IF_CMASK_DATAB_Msk;
- if((tCAN->IF[1].ARB2 & CAN_IF_ARB2_XTD_Msk) == 0ul)
+ if ((tCAN->IF[1].ARB2 & CAN_IF_ARB2_XTD_Msk) == 0ul)
{
/* standard ID*/
pCanMsg->IdType = CAN_STD_ID;
@@ -541,7 +541,7 @@ int32_t CAN_SetRxMsgObjAndMsk(CAN_T *tCAN, uint8_t u8MsgObj, uint8_t u8idType, u
uint32_t u32MsgIfNum;
/* Get and lock a free interface */
- if((u32MsgIfNum = LockIF_TL(tCAN)) == 2ul)
+ if ((u32MsgIfNum = LockIF_TL(tCAN)) == 2ul)
{
rev = 0; /* return FALSE */
}
@@ -551,7 +551,7 @@ int32_t CAN_SetRxMsgObjAndMsk(CAN_T *tCAN, uint8_t u8MsgObj, uint8_t u8idType, u
tCAN->IF[u32MsgIfNum].CMASK = CAN_IF_CMASK_WRRD_Msk | CAN_IF_CMASK_MASK_Msk | CAN_IF_CMASK_ARB_Msk |
CAN_IF_CMASK_CONTROL_Msk | CAN_IF_CMASK_DATAA_Msk | CAN_IF_CMASK_DATAB_Msk;
- if(u8idType == CAN_STD_ID) /* According STD/EXT ID format,Configure Mask and Arbitration register */
+ if (u8idType == CAN_STD_ID) /* According STD/EXT ID format,Configure Mask and Arbitration register */
{
tCAN->IF[u32MsgIfNum].ARB1 = 0ul;
tCAN->IF[u32MsgIfNum].ARB2 = CAN_IF_ARB2_MSGVAL_Msk | (u32id & 0x7FFul) << 2;
@@ -567,7 +567,7 @@ int32_t CAN_SetRxMsgObjAndMsk(CAN_T *tCAN, uint8_t u8MsgObj, uint8_t u8idType, u
/* tCAN->IF[u32MsgIfNum].MCON |= CAN_IF_MCON_UMASK_Msk | CAN_IF_MCON_RXIE_Msk; */
tCAN->IF[u32MsgIfNum].MCON = CAN_IF_MCON_UMASK_Msk | CAN_IF_MCON_RXIE_Msk;
- if(u8singleOrFifoLast)
+ if (u8singleOrFifoLast)
{
tCAN->IF[u32MsgIfNum].MCON |= CAN_IF_MCON_EOB_Msk;
}
@@ -611,7 +611,7 @@ int32_t CAN_SetRxMsgObj(CAN_T *tCAN, uint8_t u8MsgObj, uint8_t u8idType, uint32_
uint32_t u32MsgIfNum;
/* Get and lock a free interface */
- if((u32MsgIfNum = LockIF_TL(tCAN)) == 2ul)
+ if ((u32MsgIfNum = LockIF_TL(tCAN)) == 2ul)
{
rev = 0; /* return FALSE */
}
@@ -621,7 +621,7 @@ int32_t CAN_SetRxMsgObj(CAN_T *tCAN, uint8_t u8MsgObj, uint8_t u8idType, uint32_
tCAN->IF[u32MsgIfNum].CMASK = CAN_IF_CMASK_WRRD_Msk | CAN_IF_CMASK_MASK_Msk | CAN_IF_CMASK_ARB_Msk |
CAN_IF_CMASK_CONTROL_Msk | CAN_IF_CMASK_DATAA_Msk | CAN_IF_CMASK_DATAB_Msk;
- if(u8idType == CAN_STD_ID) /* According STD/EXT ID format,Configure Mask and Arbitration register */
+ if (u8idType == CAN_STD_ID) /* According STD/EXT ID format,Configure Mask and Arbitration register */
{
tCAN->IF[u32MsgIfNum].ARB1 = 0ul;
tCAN->IF[u32MsgIfNum].ARB2 = CAN_IF_ARB2_MSGVAL_Msk | (u32id & 0x7FFul) << 2;
@@ -634,7 +634,7 @@ int32_t CAN_SetRxMsgObj(CAN_T *tCAN, uint8_t u8MsgObj, uint8_t u8idType, uint32_
/* tCAN->IF[u8MsgIfNum].MCON |= CAN_IF_MCON_UMASK_Msk | CAN_IF_MCON_RXIE_Msk; */
tCAN->IF[u32MsgIfNum].MCON = CAN_IF_MCON_UMASK_Msk | CAN_IF_MCON_RXIE_Msk;
- if(u8singleOrFifoLast)
+ if (u8singleOrFifoLast)
{
tCAN->IF[u32MsgIfNum].MCON |= CAN_IF_MCON_EOB_Msk;
}
@@ -668,19 +668,19 @@ int32_t CAN_SetRxMsgObj(CAN_T *tCAN, uint8_t u8MsgObj, uint8_t u8idType, uint32_
* @retval FALSE No any message received
* @details Gets the message, if received.
*/
-int32_t CAN_ReadMsgObj(CAN_T *tCAN, uint8_t u8MsgObj, uint8_t u8Release, STR_CANMSG_T* pCanMsg)
+int32_t CAN_ReadMsgObj(CAN_T *tCAN, uint8_t u8MsgObj, uint8_t u8Release, STR_CANMSG_T *pCanMsg)
{
int32_t rev = 1l;
uint32_t u32MsgIfNum;
- if(!CAN_IsNewDataReceived(tCAN, u8MsgObj))
+ if (!CAN_IsNewDataReceived(tCAN, u8MsgObj))
{
rev = 0; /* return FALSE */
}
else
{
/* Get and lock a free interface */
- if((u32MsgIfNum = LockIF_TL(tCAN)) == 2ul)
+ if ((u32MsgIfNum = LockIF_TL(tCAN)) == 2ul)
{
rev = 0; /* return FALSE */
}
@@ -699,12 +699,12 @@ int32_t CAN_ReadMsgObj(CAN_T *tCAN, uint8_t u8MsgObj, uint8_t u8Release, STR_CAN
tCAN->IF[u32MsgIfNum].CREQ = 1ul + u8MsgObj;
- while(tCAN->IF[u32MsgIfNum].CREQ & CAN_IF_CREQ_BUSY_Msk)
+ while (tCAN->IF[u32MsgIfNum].CREQ & CAN_IF_CREQ_BUSY_Msk)
{
/*Wait*/
}
- if((tCAN->IF[u32MsgIfNum].ARB2 & CAN_IF_ARB2_XTD_Msk) == 0ul)
+ if ((tCAN->IF[u32MsgIfNum].ARB2 & CAN_IF_ARB2_XTD_Msk) == 0ul)
{
/* standard ID*/
pCanMsg->IdType = CAN_STD_ID;
@@ -758,12 +758,12 @@ uint32_t CAN_SetBaudRate(CAN_T *tCAN, uint32_t u32BaudRate)
CAN_EnterInitMode(tCAN, (uint8_t)0);
SystemCoreClockUpdate();
- if((tCAN == CAN0) || (tCAN == CAN2))
+ if ((tCAN == CAN0) || (tCAN == CAN2))
{
u64PCLK_DIV = (uint64_t)(CLK->PCLKDIV & CLK_PCLKDIV_APB0DIV_Msk);
u64PCLK_DIV = (uint64_t)(1 << u64PCLK_DIV);
}
- else if(tCAN == CAN1)
+ else if (tCAN == CAN1)
{
u64PCLK_DIV = (uint64_t)((CLK->PCLKDIV & CLK_PCLKDIV_APB1DIV_Msk) >> CLK_PCLKDIV_APB1DIV_Pos);
u64PCLK_DIV = (uint64_t)(1 << u64PCLK_DIV);
@@ -771,7 +771,7 @@ uint32_t CAN_SetBaudRate(CAN_T *tCAN, uint32_t u32BaudRate)
clock_freq = SystemCoreClock / u64PCLK_DIV;
- if(u32BaudRate >= (uint32_t)1000000)
+ if (u32BaudRate >= (uint32_t)1000000)
{
u32BaudRate = (uint32_t)1000000;
}
@@ -901,7 +901,7 @@ uint32_t CAN_Open(CAN_T *tCAN, uint32_t u32BaudRate, uint32_t u32Mode)
u32CurrentBitRate = CAN_SetBaudRate(tCAN, u32BaudRate);
- if(u32Mode == CAN_BASIC_MODE)
+ if (u32Mode == CAN_BASIC_MODE)
{
CAN_EnterTestMode(tCAN, (uint8_t)CAN_TEST_BASIC_Msk);
}
@@ -925,12 +925,12 @@ uint32_t CAN_Open(CAN_T *tCAN, uint32_t u32BaudRate, uint32_t u32Mode)
* @details The two sets of interface registers (IF1 and IF2) control the software access to the Message RAM.
* They buffer the data to be transferred to and from the RAM, avoiding conflicts between software accesses and message reception/transmission.
*/
-int32_t CAN_SetTxMsg(CAN_T *tCAN, uint32_t u32MsgNum, STR_CANMSG_T* pCanMsg)
+int32_t CAN_SetTxMsg(CAN_T *tCAN, uint32_t u32MsgNum, STR_CANMSG_T *pCanMsg)
{
int32_t rev = 1l;
uint32_t u32MsgIfNum;
- if((u32MsgIfNum = LockIF_TL(tCAN)) == 2ul)
+ if ((u32MsgIfNum = LockIF_TL(tCAN)) == 2ul)
{
rev = 0; /* return FALSE */
}
@@ -940,7 +940,7 @@ int32_t CAN_SetTxMsg(CAN_T *tCAN, uint32_t u32MsgNum, STR_CANMSG_T* pCanMsg)
tCAN->IF[u32MsgIfNum].CMASK = CAN_IF_CMASK_WRRD_Msk | CAN_IF_CMASK_MASK_Msk | CAN_IF_CMASK_ARB_Msk |
CAN_IF_CMASK_CONTROL_Msk | CAN_IF_CMASK_DATAA_Msk | CAN_IF_CMASK_DATAB_Msk;
- if(pCanMsg->IdType == CAN_STD_ID)
+ if (pCanMsg->IdType == CAN_STD_ID)
{
/* standard ID*/
tCAN->IF[u32MsgIfNum].ARB1 = 0ul;
@@ -954,7 +954,7 @@ int32_t CAN_SetTxMsg(CAN_T *tCAN, uint32_t u32MsgNum, STR_CANMSG_T* pCanMsg)
CAN_IF_ARB2_DIR_Msk | CAN_IF_ARB2_XTD_Msk | CAN_IF_ARB2_MSGVAL_Msk;
}
- if(pCanMsg->FrameType)
+ if (pCanMsg->FrameType)
{
tCAN->IF[u32MsgIfNum].ARB2 |= CAN_IF_ARB2_DIR_Msk;
}
@@ -992,7 +992,7 @@ int32_t CAN_TriggerTxMsg(CAN_T *tCAN, uint32_t u32MsgNum)
int32_t rev = 1l;
uint32_t u32MsgIfNum;
- if((u32MsgIfNum = LockIF_TL(tCAN)) == 2ul)
+ if ((u32MsgIfNum = LockIF_TL(tCAN)) == 2ul)
{
rev = 0; /* return FALSE */
}
@@ -1006,7 +1006,7 @@ int32_t CAN_TriggerTxMsg(CAN_T *tCAN, uint32_t u32MsgNum)
tCAN->IF[u32MsgIfNum].CREQ = 1ul + u32MsgNum;
- while(tCAN->IF[u32MsgIfNum].CREQ & CAN_IF_CREQ_BUSY_Msk)
+ while (tCAN->IF[u32MsgIfNum].CREQ & CAN_IF_CREQ_BUSY_Msk)
{
/*Wait*/
}
@@ -1076,9 +1076,9 @@ int32_t CAN_SetRxMsg(CAN_T *tCAN, uint32_t u32MsgNum, uint32_t u32IDType, uint32
int32_t rev = (int32_t)TRUE;
uint32_t u32TimeOutCount = 0ul;
- while(CAN_SetRxMsgObj(tCAN, (uint8_t)u32MsgNum, (uint8_t)u32IDType, u32ID, (uint8_t)TRUE) == (int32_t)FALSE)
+ while (CAN_SetRxMsgObj(tCAN, (uint8_t)u32MsgNum, (uint8_t)u32IDType, u32ID, (uint8_t)TRUE) == (int32_t)FALSE)
{
- if(++u32TimeOutCount >= RETRY_COUNTS)
+ if (++u32TimeOutCount >= RETRY_COUNTS)
{
rev = (int32_t)(FALSE); /* return FALSE */
break;
@@ -1113,9 +1113,9 @@ int32_t CAN_SetRxMsgAndMsk(CAN_T *tCAN, uint32_t u32MsgNum, uint32_t u32IDType,
int32_t rev = (int32_t)TRUE;
uint32_t u32TimeOutCount = 0ul;
- while(CAN_SetRxMsgObjAndMsk(tCAN, (uint8_t)u32MsgNum, (uint8_t)u32IDType, u32ID, u32IDMask, (uint8_t)TRUE) == (int32_t)FALSE)
+ while (CAN_SetRxMsgObjAndMsk(tCAN, (uint8_t)u32MsgNum, (uint8_t)u32IDType, u32ID, u32IDMask, (uint8_t)TRUE) == (int32_t)FALSE)
{
- if(++u32TimeOutCount >= RETRY_COUNTS)
+ if (++u32TimeOutCount >= RETRY_COUNTS)
{
rev = (int32_t)FALSE;
break;
@@ -1152,13 +1152,13 @@ int32_t CAN_SetMultiRxMsg(CAN_T *tCAN, uint32_t u32MsgNum, uint32_t u32MsgCount,
uint32_t u32TimeOutCount;
uint32_t u32EOB_Flag = 0ul;
- for(i = 1ul; i <= u32MsgCount; i++)
+ for (i = 1ul; i <= u32MsgCount; i++)
{
u32TimeOutCount = 0ul;
u32MsgNum += (i - 1ul);
- if(i == u32MsgCount)
+ if (i == u32MsgCount)
{
u32EOB_Flag = 1ul;
}
@@ -1166,9 +1166,9 @@ int32_t CAN_SetMultiRxMsg(CAN_T *tCAN, uint32_t u32MsgNum, uint32_t u32MsgCount,
{
}
- while(CAN_SetRxMsgObj(tCAN, (uint8_t)u32MsgNum, (uint8_t)u32IDType, u32ID, (uint8_t)u32EOB_Flag) == (int32_t)FALSE)
+ while (CAN_SetRxMsgObj(tCAN, (uint8_t)u32MsgNum, (uint8_t)u32IDType, u32ID, (uint8_t)u32EOB_Flag) == (int32_t)FALSE)
{
- if(++u32TimeOutCount >= RETRY_COUNTS)
+ if (++u32TimeOutCount >= RETRY_COUNTS)
{
rev = (int32_t)FALSE;
break;
@@ -1196,20 +1196,20 @@ int32_t CAN_SetMultiRxMsg(CAN_T *tCAN, uint32_t u32MsgNum, uint32_t u32MsgCount,
* @details The receive/transmit priority for the Message Objects is attached to the message number.
* Message Object 1 has the highest priority, while Message Object 32 has the lowest priority.
*/
-int32_t CAN_Transmit(CAN_T *tCAN, uint32_t u32MsgNum, STR_CANMSG_T* pCanMsg)
+int32_t CAN_Transmit(CAN_T *tCAN, uint32_t u32MsgNum, STR_CANMSG_T *pCanMsg)
{
int32_t rev = (int32_t)TRUE;
uint32_t u32Tmp;
u32Tmp = (tCAN->TEST & CAN_TEST_BASIC_Msk);
- if((tCAN->CON & CAN_CON_TEST_Msk) && u32Tmp)
+ if ((tCAN->CON & CAN_CON_TEST_Msk) && u32Tmp)
{
rev = CAN_BasicSendMsg(tCAN, pCanMsg);
}
else
{
- if(CAN_SetTxMsg(tCAN, u32MsgNum, pCanMsg) == FALSE)
+ if (CAN_SetTxMsg(tCAN, u32MsgNum, pCanMsg) == FALSE)
{
rev = (int32_t)FALSE;
}
@@ -1235,14 +1235,14 @@ int32_t CAN_Transmit(CAN_T *tCAN, uint32_t u32MsgNum, STR_CANMSG_T* pCanMsg)
* @details The Interface Registers avoid conflict between the CPU accesses to the Message RAM and CAN message reception
* and transmission by buffering the data to be transferred.
*/
-int32_t CAN_Receive(CAN_T *tCAN, uint32_t u32MsgNum, STR_CANMSG_T* pCanMsg)
+int32_t CAN_Receive(CAN_T *tCAN, uint32_t u32MsgNum, STR_CANMSG_T *pCanMsg)
{
int32_t rev = (int32_t)TRUE;
uint32_t u32Tmp;
u32Tmp = (tCAN->TEST & CAN_TEST_BASIC_Msk);
- if((tCAN->CON & CAN_CON_TEST_Msk) && u32Tmp)
+ if ((tCAN->CON & CAN_CON_TEST_Msk) && u32Tmp)
{
rev = CAN_BasicReceiveMsg(tCAN, pCanMsg);
}
@@ -1267,7 +1267,7 @@ void CAN_CLR_INT_PENDING_BIT(CAN_T *tCAN, uint8_t u32MsgNum)
{
uint32_t u32MsgIfNum;
- if((u32MsgIfNum = LockIF_TL(tCAN)) == 2ul)
+ if ((u32MsgIfNum = LockIF_TL(tCAN)) == 2ul)
{
u32MsgIfNum = 0ul;
}
diff --git a/bsp/nuvoton/libraries/m480/StdDriver/src/nu_qspi.c b/bsp/nuvoton/libraries/m480/StdDriver/src/nu_qspi.c
index ea08e43f70..29b1cf9759 100644
--- a/bsp/nuvoton/libraries/m480/StdDriver/src/nu_qspi.c
+++ b/bsp/nuvoton/libraries/m480/StdDriver/src/nu_qspi.c
@@ -322,6 +322,10 @@ uint32_t QSPI_SetBusClock(QSPI_T *qspi, uint32_t u32BusClock)
u32ClkSrc = __HIRC; /* Clock source is HIRC */
}
}
+ else
+ {
+ return 0;
+ }
if (u32BusClock >= u32HCLKFreq)
{
diff --git a/bsp/nuvoton/libraries/n9h30/Driver/Include/nu_lcd.h b/bsp/nuvoton/libraries/n9h30/Driver/Include/nu_lcd.h
index 910d708845..bffcdcd589 100644
--- a/bsp/nuvoton/libraries/n9h30/Driver/Include/nu_lcd.h
+++ b/bsp/nuvoton/libraries/n9h30/Driver/Include/nu_lcd.h
@@ -231,6 +231,9 @@ void vpostMPUWriteAddr(uint16_t uscmd);
void vpostMPUWriteData(uint16_t usdata);
uint32_t vpostMPUReadData(void);
VPOST_T *vpostLCMGetInstance(uint32_t u32DisplayPanelID);
+void vpostSetFrameBuffer(uint8_t *pu8BufPtr);
+void vpostSetOSDBuffer(uint8_t *pu8BufPtr);
+uint8_t *vpostGetMultiOSDBuffer(uint32_t u32Cnt);
/*@}*/ /* end of group N9H30_LCD_EXPORTED_FUNCTIONS */
diff --git a/bsp/nuvoton/libraries/n9h30/Driver/Source/nu_lcd.c b/bsp/nuvoton/libraries/n9h30/Driver/Source/nu_lcd.c
index 138641f002..423d03ec56 100644
--- a/bsp/nuvoton/libraries/n9h30/Driver/Source/nu_lcd.c
+++ b/bsp/nuvoton/libraries/n9h30/Driver/Source/nu_lcd.c
@@ -234,6 +234,12 @@ uint8_t *vpostGetFrameBuffer(void)
return (uint8_t *)((uint32_t)u8BufPtr | 0x80000000);
}
+void vpostSetFrameBuffer(uint8_t *pu8BufPtr)
+{
+ outpw(REG_LCM_VA_BADDR0, (uint32_t)((uint32_t)pu8BufPtr | 0x80000000));
+ outpw(REG_LCM_VA_FBCTRL, inpw(REG_LCM_VA_FBCTRL) & ~(1 << 30) & ~VPOSTB_DB_EN);
+}
+
/**
* @brief Get the pointer of frame buffer
@@ -536,6 +542,56 @@ uint8_t *vpostGetOSDBuffer(void)
}
/**
+ * @brief Get the pointer of OSD buffer
+ * @param[in] u32Cnt is the frame buffer count to allocate. Min value is 1.
+ * @return pointer of frame buffer
+ * @retval NULL fail.
+ * @note before calling this function, display width, height and source format must be set first.
+ */
+uint8_t *vpostGetMultiOSDBuffer(uint32_t u32Cnt)
+{
+ uint32_t u32BytePerPixel;
+ uint8_t *u8BufPtr;
+
+ if ((curOSDDev.nOSDWidth == 0) || (curOSDDev.nOSDHeight == 0))
+ {
+ return NULL;
+ }
+
+ switch (curOSDDev.ucOSDSrcFormat)
+ {
+ case OSD_SRC_YUV422:
+ case OSD_SRC_YCBCR422:
+ case OSD_SRC_RGB565:
+ u32BytePerPixel = 2;
+ break;
+
+ case OSD_SRC_RGB666:
+ case OSD_SRC_RGB888:
+ u32BytePerPixel = 4;
+ break;
+
+ default:
+ u32BytePerPixel = 2;
+ }
+
+ u8BufPtr = (uint8_t *)malloc((curOSDDev.nOSDWidth * curOSDDev.nOSDHeight * u32BytePerPixel) * u32Cnt + 32);
+ if (u8BufPtr == NULL)
+ return NULL;
+ u8BufPtr = (uint8_t *)shift_pointer((uint32_t)u8BufPtr, 32);
+
+ outpw(REG_LCM_OSD_BADDR, (uint32_t)((uint32_t)u8BufPtr | 0x80000000));
+
+ return (uint8_t *)((uint32_t)u8BufPtr | 0x80000000);
+
+}
+
+void vpostSetOSDBuffer(uint8_t *u8BufPtr)
+{
+ outpw(REG_LCM_OSD_BADDR, (uint32_t)((uint32_t)u8BufPtr | 0x80000000));
+}
+
+/**
* @brief Enable OSD function
* @param none
* @return none
diff --git a/bsp/nuvoton/libraries/n9h30/Driver/Source/nu_sdh.c b/bsp/nuvoton/libraries/n9h30/Driver/Source/nu_sdh.c
index 5ebe2bdc78..0cfd172a21 100644
--- a/bsp/nuvoton/libraries/n9h30/Driver/Source/nu_sdh.c
+++ b/bsp/nuvoton/libraries/n9h30/Driver/Source/nu_sdh.c
@@ -283,6 +283,10 @@ uint32_t SDH_CardDetection(SDH_T *sdh, SDH_INFO_T *pSD, uint32_t card_num)
u32INTSTS_CDSTS_Msk = SDH_INTSTS_CDSTS1_Msk;
u32CTL_CLKKEEP_Msk = SDH_CTL_CLKKEEP1_Msk;
}
+ else
+ {
+ return FALSE;
+ }
if ((sdh->INTEN & u32INTEN_CDSRC_Msk) == u32INTEN_CDSRC_Msk) /* Card detect pin from GPIO */
{
diff --git a/bsp/nuvoton/libraries/n9h30/rtt_port/drv_adc_touch.c b/bsp/nuvoton/libraries/n9h30/rtt_port/drv_adc_touch.c
index cefdb168ab..20a29634fb 100644
--- a/bsp/nuvoton/libraries/n9h30/rtt_port/drv_adc_touch.c
+++ b/bsp/nuvoton/libraries/n9h30/rtt_port/drv_adc_touch.c
@@ -216,7 +216,7 @@ static void adc_touch_entry(void *parameter)
|| touch_point.event == RT_TOUCH_EVENT_UP
|| touch_point.event == RT_TOUCH_EVENT_MOVE)
{
-#if defined(PKG_USING_LITTLEVGL2RTT)
+#if defined(PKG_USING_LITTLEVGL2RTT) || defined(PKG_USING_LVGL)
extern void littlevgl2rtt_send_input_event(rt_int16_t x, rt_int16_t y, rt_uint8_t state);
littlevgl2rtt_send_input_event(touch_point.x_coordinate, touch_point.y_coordinate, touch_point.event);
#endif
diff --git a/bsp/nuvoton/libraries/n9h30/rtt_port/drv_ge2d.c b/bsp/nuvoton/libraries/n9h30/rtt_port/drv_ge2d.c
index 2e6bfd3748..6862dce23e 100644
--- a/bsp/nuvoton/libraries/n9h30/rtt_port/drv_ge2d.c
+++ b/bsp/nuvoton/libraries/n9h30/rtt_port/drv_ge2d.c
@@ -8,11 +8,16 @@
*****************************************************************************/
#include "rtthread.h"
+#include <rtdevice.h>
+#include <rthw.h>
+
#include "NuMicro.h"
#include <drv_sys.h>
+#include <rtdevice.h>
+#include <rthw.h>
//#define DEBUG
-#define DEF_COND_WAIT 1
+#define DEF_COND_WAIT
static unsigned int GFX_BPP;
static unsigned int GFX_WIDTH;
@@ -32,7 +37,6 @@ static unsigned int GFX_HEIGHT;
#define PP 4 // Quadrant 4
#define ABS(x) (((x)>0)?(x):-(x))
-#define MAX(a,b) (((a)>(b))?(a):(b))
/* octant code of line drawing */
@@ -595,7 +599,7 @@ struct nu_ge2d
rt_mutex_t lock;
#if defined(DEF_COND_WAIT)
- rt_sem_t signal;
+ struct rt_completion signal;
#endif
};
typedef struct nu_ge2d *nu_ge2d_t;
@@ -619,14 +623,21 @@ static struct nu_ge2d g_sNuGe2d =
}
#if defined(DEF_COND_WAIT)
+#define NU_GE2D_GO() { \
+ rt_completion_init(&(g_sNuGe2d.signal)); \
+ outpw(REG_GE2D_TRG, 1); \
+ }
+
#define NU_GE2D_COND_WAIT() { \
- rt_err_t result = rt_sem_take(g_sNuGe2d.signal, RT_WAITING_FOREVER); \
- RT_ASSERT(result == RT_EOK); \
+ if( (inpw(REG_GE2D_INTSTS) & 0x01) == 0 ) \
+ { \
+ rt_thread_mdelay(1); \
+ rt_completion_wait(&g_sNuGe2d.signal, 100); \
+ } \
}
#define NU_GE2D_SIGNAL() { \
- rt_err_t result = rt_sem_release(g_sNuGe2d.signal); \
- RT_ASSERT(result == RT_EOK); \
+ rt_completion_done(&g_sNuGe2d.signal); \
}
/* Interrupt Service Routine for GE2D */
static void nu_ge2d_isr(int vector, void *param)
@@ -638,6 +649,10 @@ static void nu_ge2d_isr(int vector, void *param)
NU_GE2D_SIGNAL();
}
#else
+#define NU_GE2D_GO() { \
+ outpw(REG_GE2D_TRG, 1); \
+ }
+
#define NU_GE2D_COND_WAIT() { \
while ((inpw(REG_GE2D_INTSTS) & 0x01) == 0); \
outpw(REG_GE2D_INTSTS, 1); \
@@ -692,7 +707,7 @@ void ge2dClearScreen(int color)
dest_dimension = GFX_HEIGHT << 16 | GFX_WIDTH;
outpw(REG_GE2D_RTGLSZ, dest_dimension);
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -785,7 +800,7 @@ void ge2dInit(int bpp, int width, int height, void *destination)
uint32_t u32Size = (8 * 8 * (GFX_BPP / 8)) * 2;
GFX_PAT_ADDR = (void *)rt_malloc_align(u32Size, u32Size);
RT_ASSERT(GFX_PAT_ADDR != RT_NULL);
- sysprintf("[%s] Allocated %d@0x%08x.\n", __func__, u32Size, GFX_PAT_ADDR);
+ //sysprintf("[%s] Allocated %d@0x%08x.\n", __func__, u32Size, GFX_PAT_ADDR);
}
}
@@ -1016,7 +1031,7 @@ void ge2dBitblt_ScreenToScreen(int srcx, int srcy, int destx, int desty, int wid
outpw(REG_GE2D_MISCTL, data32);
}
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -1155,7 +1170,7 @@ void ge2dBitblt_ScreenToScreenRop(int srcx, int srcy, int destx, int desty, int
outpw(REG_GE2D_CTL, cmd32);
}
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -1279,7 +1294,7 @@ void ge2dBitblt_SourceToDestination(int srcx, int srcy, int destx, int desty, in
outpw(REG_GE2D_MISCTL, data32);
}
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -1402,7 +1417,7 @@ void ge2dDrawFrame(int x1, int y1, int x2, int y2, int color, int opt)
outpw(REG_GE2D_MISCTL, inpw(REG_GE2D_MISCTL)); // address caculation
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -1509,7 +1524,7 @@ void ge2dLine_DrawSolidLine(int x1, int y1, int x2, int y2, int color)
outpw(REG_GE2D_CLPBBR, _ClipBR);
}
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -1616,7 +1631,7 @@ void ge2dLine_DrawSolidLine_RGB565(int x1, int y1, int x2, int y2, int color)
outpw(REG_GE2D_CLPBBR, _ClipBR);
}
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -1731,7 +1746,7 @@ void ge2dLine_DrawStyledLine(int x1, int y1, int x2, int y2, int style, int fgco
outpw(REG_GE2D_MISCTL, temp32); // address caculation
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -1845,7 +1860,7 @@ void ge2dLine_DrawStyledLine_RGB565(int x1, int y1, int x2, int y2, int style, i
outpw(REG_GE2D_MISCTL, temp32); // address caculation
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -1900,7 +1915,7 @@ void ge2dFill_Solid(int dx, int dy, int width, int height, int color)
outpw(REG_GE2D_CTL, cmd32);
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -1954,7 +1969,7 @@ void ge2dFill_Solid_RGB565(int dx, int dy, int width, int height, int color)
outpw(REG_GE2D_CTL, cmd32);
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -2010,7 +2025,7 @@ void ge2dFill_SolidBackground(int dx, int dy, int width, int height, int color)
outpw(REG_GE2D_CTL, cmd32);
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -2061,7 +2076,7 @@ void ge2dFill_ColorPattern(int dx, int dy, int width, int height)
outpw(REG_GE2D_CLPBBR, _ClipBR);
}
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -2115,7 +2130,7 @@ void ge2dFill_MonoPattern(int dx, int dy, int width, int height, int opt)
outpw(REG_GE2D_CLPBBR, _ClipBR);
}
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -2166,7 +2181,7 @@ void ge2dFill_ColorPatternROP(int sx, int sy, int width, int height, int rop)
outpw(REG_GE2D_CLPBBR, _ClipBR);
}
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -2221,7 +2236,7 @@ void ge2dFill_MonoPatternROP(int sx, int sy, int width, int height, int rop, int
outpw(REG_GE2D_CLPBBR, _ClipBR);
}
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -2286,7 +2301,7 @@ void ge2dFill_TileBlt(int srcx, int srcy, int destx, int desty, int width, int h
tile_ctl = (y_count << 8) | (x_count);
outpw(REG_GE2D_TCNTVHSF, tile_ctl);
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -2327,7 +2342,7 @@ void ge2dHostBlt_Write(int x, int y, int width, int height, void *buf)
dest_dimension = height << 16 | width;
outpw(REG_GE2D_RTGLSZ, dest_dimension);
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
ptr32 = (UINT32 *)buf;
for (i = 0; i < height; i++) // 120
@@ -2394,7 +2409,7 @@ void ge2dHostBlt_Read(int x, int y, int width, int height, void *buf)
dest_dimension = height << 16 | width;
outpw(REG_GE2D_RTGLSZ, dest_dimension);
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
ptr32 = (UINT32 *)buf;
for (i = 0; i < height; i++)
@@ -2498,7 +2513,7 @@ void ge2dHostBlt_Sprite(int x, int y, int width, int height, void *buf)
outpw(REG_GE2D_MISCTL, data32);
}
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
ptr32 = (UINT32 *)buf;
for (i = 0; i < height; i++)
@@ -2598,7 +2613,7 @@ void ge2dRotation(int srcx, int srcy, int destx, int desty, int width, int heigh
/* set rotation reference point xy register, then nothing happened */
outpw(REG_GE2D_CTL, cmd32);
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -2688,7 +2703,7 @@ void ge2dSpriteBlt_Screen(int destx, int desty, int sprite_width, int sprite_hei
outpw(REG_GE2D_CTL, cmd32);
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -2778,7 +2793,7 @@ void ge2dSpriteBltx_Screen(int x, int y, int sprite_sx, int sprite_sy, int width
outpw(REG_GE2D_MISCTL, data32);
}
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -2876,7 +2891,7 @@ void ge2dSpriteBlt_ScreenRop(int x, int y, int sprite_width, int sprite_height,
outpw(REG_GE2D_CTL, cmd32);
}
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -2978,7 +2993,7 @@ void ge2dSpriteBltx_ScreenRop(int x, int y, int sprite_sx, int sprite_sy, int wi
outpw(REG_GE2D_CTL, cmd32);
}
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -3044,7 +3059,7 @@ void ge2dColorExpansionBlt(int x, int y, int width, int height, int fore_color,
outpw(REG_GE2D_CLPBBR, _ClipBR);
}
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -3094,7 +3109,7 @@ void ge2dHostColorExpansionBlt(int x, int y, int width, int height, int fore_col
dest_dimension = height << 16 | width;
outpw(REG_GE2D_RTGLSZ, dest_dimension);
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
ptr32 = (UINT32 *)buf;
for (i = 0; i < height; i++)
@@ -3411,7 +3426,7 @@ void ge2dFont_PutChar(int x, int y, char asc_code, int fore_color, int back_colo
dest_dimension = height << 16 | width;
outpw(REG_GE2D_RTGLSZ, dest_dimension);
- outpw(REG_GE2D_TRG, 1);
+ NU_GE2D_GO();
NU_GE2D_COND_WAIT();
@@ -3453,8 +3468,7 @@ int rt_hw_ge2d_init(void)
#if defined(DEF_COND_WAIT)
rt_kprintf("with_cond_wait\n");
- g_sNuGe2d.signal = rt_sem_create("ge2d_wait", 0, RT_IPC_FLAG_FIFO);
- RT_ASSERT(g_sNuGe2d.signal != RT_NULL);
+ rt_completion_init(&(g_sNuGe2d.signal));
/* Install ISR & Respond the IRQ */
rt_hw_interrupt_install(g_sNuGe2d.irqn, nu_ge2d_isr, &g_sNuGe2d, g_sNuGe2d.name);
diff --git a/bsp/nuvoton/libraries/n9h30/rtt_port/drv_vpost.c b/bsp/nuvoton/libraries/n9h30/rtt_port/drv_vpost.c
index 50c45ee915..b25eab57ec 100644
--- a/bsp/nuvoton/libraries/n9h30/rtt_port/drv_vpost.c
+++ b/bsp/nuvoton/libraries/n9h30/rtt_port/drv_vpost.c
@@ -22,6 +22,8 @@
/* Private typedef --------------------------------------------------------------*/
+#define DEF_VPOST_BUFFER_NUMBER 2
+
typedef enum
{
eVpost_LCD,
@@ -43,6 +45,10 @@ struct nu_vpost
};
typedef struct nu_vpost *nu_vpost_t;
+static volatile uint32_t g_u32VSyncBlank = 0;
+static volatile uint32_t g_u32VSyncLastCommit = 0;
+static struct rt_completion vsync_wq;
+
static struct nu_vpost nu_fbdev[eVpost_Cnt] =
{
{
@@ -151,6 +157,43 @@ static rt_err_t vpost_layer_control(rt_device_t dev, int cmd, void *args)
}
break;
+ /* FBIO_PANDISPLAY + WAIT_VSYNC Mechanism */
+ case RTGRAPHIC_CTRL_RECT_UPDATE:
+ {
+ if (args != RT_NULL)
+ {
+ uint8_t *pu8BufPtr = (uint8_t *)args;
+ g_u32VSyncLastCommit = g_u32VSyncBlank;
+
+ /* Pan display */
+ switch (psVpost->layer)
+ {
+ case eVpost_LCD:
+ vpostSetFrameBuffer(pu8BufPtr);
+ break;
+
+#if defined(BSP_USING_VPOST_OSD)
+ case eVpost_OSD:
+ vpostSetOSDBuffer(pu8BufPtr);
+ break;
+#endif
+
+ default:
+ return -RT_ERROR;
+ }
+
+ /*Wait sync*/
+ while (g_u32VSyncLastCommit == g_u32VSyncBlank)
+ {
+ rt_completion_init(&vsync_wq);
+ rt_completion_wait(&vsync_wq, RT_TICK_PER_SECOND / 60);
+ }
+ }
+ else
+ return -RT_ERROR;
+ }
+ break;
+
default:
break;
}
@@ -166,9 +209,43 @@ static rt_err_t vpost_layer_init(rt_device_t dev)
/* Enable VPOST engine clock. */
nu_sys_ipclk_enable(LCDCKEN);
+ rt_completion_init(&vsync_wq);
+ outpw(REG_LCM_INT_CS, VPOSTB_UNDERRUN_EN | VPOSTB_DISP_F_EN);
+ outpw(REG_LCM_DCCS, (inpw(REG_LCM_DCCS) | (1 << 4)));
+
return RT_EOK;
}
+static void nu_vpost_isr(int vector, void *param)
+{
+ /*
+ #define VPOSTB_DISP_F_INT ((UINT32)1<<31)
+ #define VPOSTB_DISP_F_STATUS (1<<30)
+ #define VPOSTB_UNDERRUN_INT (1<<29)
+ #define VPOSTB_BUS_ERROR_INT (1<<28)
+ #define VPOSTB_FLY_ERR (1<<27)
+ #define VPOSTB_UNDERRUN_EN (1<<1)
+ #define VPOSTB_DISP_F_EN (1)
+ */
+
+ uint32_t u32VpostIRQStatus = inpw(REG_LCM_INT_CS);
+ if (u32VpostIRQStatus & VPOSTB_DISP_F_STATUS)
+ {
+ outpw(REG_LCM_INT_CS, inpw(REG_LCM_INT_CS) | VPOSTB_DISP_F_STATUS);
+
+ g_u32VSyncBlank++;
+ rt_completion_done(&vsync_wq);
+ }
+ else if (u32VpostIRQStatus & VPOSTB_UNDERRUN_INT)
+ {
+ outpw(REG_LCM_INT_CS, inpw(REG_LCM_INT_CS) | VPOSTB_UNDERRUN_INT);
+ }
+ else if (u32VpostIRQStatus & VPOSTB_BUS_ERROR_INT)
+ {
+ outpw(REG_LCM_INT_CS, inpw(REG_LCM_INT_CS) | VPOSTB_BUS_ERROR_INT);
+ }
+}
+
int rt_hw_vpost_init(void)
{
int i = -1;
@@ -177,13 +254,8 @@ int rt_hw_vpost_init(void)
VPOST_T *psVpostLcmInst = vpostLCMGetInstance(VPOST_USING_LCD_IDX);
RT_ASSERT(psVpostLcmInst != RT_NULL);
-#if (LCM_USING_BPP==4 )
- /* LCD clock is selected from UPLL and divide to 30MHz */
- outpw(REG_CLK_DIVCTL1, (inpw(REG_CLK_DIVCTL1) & ~0xff1f) | 0x918);
-#else
/* LCD clock is selected from UPLL and divide to 20MHz */
outpw(REG_CLK_DIVCTL1, (inpw(REG_CLK_DIVCTL1) & ~0xff1f) | 0xE18);
-#endif
/* Initial LCM */
vpostLCMInit(VPOST_USING_LCD_IDX);
@@ -213,7 +285,7 @@ int rt_hw_vpost_init(void)
#else
vpostSetVASrc(VA_SRC_RGB565);
#endif
- psVpost->info.framebuffer = (rt_uint8_t *)vpostGetFrameBuffer();
+ psVpost->info.framebuffer = (rt_uint8_t *)vpostGetMultiFrameBuffer(DEF_VPOST_BUFFER_NUMBER);
}
#if defined(BSP_USING_VPOST_OSD)
else if (psVpost->layer == eVpost_OSD)
@@ -225,7 +297,7 @@ int rt_hw_vpost_init(void)
#else
vpostSetOSDSrc(OSD_SRC_RGB565);
#endif
- psVpost->info.framebuffer = (rt_uint8_t *)vpostGetOSDBuffer();
+ psVpost->info.framebuffer = (rt_uint8_t *)vpostGetMultiOSDBuffer(DEF_VPOST_BUFFER_NUMBER);
}
#endif
@@ -242,10 +314,16 @@ int rt_hw_vpost_init(void)
psVpost->dev.close = vpost_layer_close;
psVpost->dev.control = vpost_layer_control;
- /* register graphic device driver */
+ /* Register graphic device driver */
ret = rt_device_register(&psVpost->dev, psVpost->name, RT_DEVICE_FLAG_RDWR);
RT_ASSERT(ret == RT_EOK);
+ if (psVpost->layer == eVpost_LCD)
+ {
+ rt_hw_interrupt_install(psVpost->irqn, nu_vpost_isr, psVpost, psVpost->name);
+ rt_hw_interrupt_umask(psVpost->irqn);
+ }
+
rt_kprintf("%s's fbmem at 0x%08x.\n", psVpost->name, psVpost->info.framebuffer);
}
diff --git a/bsp/nuvoton/libraries/nu_packages/ILI9341/lcd_ili9341.c b/bsp/nuvoton/libraries/nu_packages/ILI9341/lcd_ili9341.c
index 40d2e53e45..1ea99cb886 100644
--- a/bsp/nuvoton/libraries/nu_packages/ILI9341/lcd_ili9341.c
+++ b/bsp/nuvoton/libraries/nu_packages/ILI9341/lcd_ili9341.c
@@ -17,6 +17,10 @@
#include <rtdevice.h>
#include <lcd_ili9341.h>
+#if defined(NU_PKG_ILI9341_WITH_OFFSCREEN_FRAMEBUFFER)
+ #define DEF_VRAM_BUFFER_NUMBER 2
+#endif
+
static struct rt_device_graphic_info g_Ili9341Info =
{
.bits_per_pixel = 16,
@@ -270,8 +274,18 @@ static rt_err_t ili9341_lcd_control(rt_device_t dev, int cmd, void *args)
case RTGRAPHIC_CTRL_RECT_UPDATE:
{
#if defined(NU_PKG_ILI9341_WITH_OFFSCREEN_FRAMEBUFFER)
+ struct rt_device_rect_info *psRectInfo = args;
+ rt_uint16_t *pixels = (rt_uint16_t *)g_Ili9341Info.framebuffer;
RT_ASSERT(args != RT_NULL);
- ili9341_fillrect((uint16_t *)g_Ili9341Info.framebuffer, (struct rt_device_rect_info *) args);
+
+ if (psRectInfo->y >= g_Ili9341Info.height)
+ {
+ int buf_id = psRectInfo->y / g_Ili9341Info.height;
+ pixels += g_Ili9341Info.width * g_Ili9341Info.height * buf_id;
+ psRectInfo->y %= g_Ili9341Info.height;
+ }
+
+ ili9341_fillrect(pixels, psRectInfo);
#else
/* nothong to be done */
#endif
@@ -310,7 +324,7 @@ int rt_hw_lcd_ili9341_init(void)
lcd_device.user_data = &ili9341_ops;
#if defined(NU_PKG_ILI9341_WITH_OFFSCREEN_FRAMEBUFFER)
- g_Ili9341Info.framebuffer = rt_malloc_align(g_Ili9341Info.bits_per_pixel / 2 * g_Ili9341Info.height * g_Ili9341Info.width, 32);
+ g_Ili9341Info.framebuffer = rt_malloc_align((DEF_VRAM_BUFFER_NUMBER * g_Ili9341Info.width * g_Ili9341Info.height * (g_Ili9341Info.bits_per_pixel / 8)) + 32, 32);
RT_ASSERT(g_Ili9341Info.framebuffer != RT_NULL);
#endif
diff --git a/bsp/nuvoton/nk-980iot/applications/SConscript b/bsp/nuvoton/nk-980iot/applications/SConscript
index 9ffdbcd0f9..3769d125df 100644
--- a/bsp/nuvoton/nk-980iot/applications/SConscript
+++ b/bsp/nuvoton/nk-980iot/applications/SConscript
@@ -3,9 +3,19 @@
from building import *
cwd = GetCurrentDir()
+objs = []
+list = os.listdir(cwd)
+for d in list:
+ path = os.path.join(cwd, d)
+ if os.path.isfile(os.path.join(path, 'SConscript')):
+ objs = objs + SConscript(os.path.join(d, 'SConscript'))
+
src = Glob('*.c') + Glob('*.cpp')
CPPPATH = [cwd, str(Dir('#'))]
group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH)
-Return('group')
+objs = objs + group
+
+Return('objs')
+
diff --git a/bsp/nuvoton/nk-980iot/applications/lvgl/SConscript b/bsp/nuvoton/nk-980iot/applications/lvgl/SConscript
new file mode 100644
index 0000000000..4cb03b1c72
--- /dev/null
+++ b/bsp/nuvoton/nk-980iot/applications/lvgl/SConscript
@@ -0,0 +1,17 @@
+Import('RTT_ROOT')
+from building import *
+
+import os
+
+objs = []
+
+if GetDepend('PKG_USING_LVGL'):
+ cwd = GetCurrentDir()
+ list = os.listdir(cwd)
+ for d in list:
+ path = os.path.join(cwd, d)
+ if os.path.isfile(os.path.join(path, 'SConscript')):
+ objs = objs + SConscript(os.path.join(d, 'SConscript'))
+
+Return('objs')
+
diff --git a/bsp/nuvoton/nk-980iot/applications/lvgl/port/SConscript b/bsp/nuvoton/nk-980iot/applications/lvgl/port/SConscript
new file mode 100644
index 0000000000..0ca25f18d4
--- /dev/null
+++ b/bsp/nuvoton/nk-980iot/applications/lvgl/port/SConscript
@@ -0,0 +1,10 @@
+from building import *
+
+cwd = GetCurrentDir()
+src = Glob('*.c')
+CPPPATH = [cwd]
+
+group = DefineGroup('LVGL-port', src, depend = [''], CPPPATH = CPPPATH)
+
+Return('group')
+
diff --git a/bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_conf.h b/bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_conf.h
new file mode 100644
index 0000000000..1ea0ae2016
--- /dev/null
+++ b/bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_conf.h
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-10-18 Meco Man First version
+ */
+
+#ifndef LV_CONF_H
+#define LV_CONF_H
+
+//#define LV_USE_EXTERNAL_RENDERER 1
+
+#define LV_USE_PERF_MONITOR 1
+#define LV_COLOR_DEPTH 16
+
+#define LV_HOR_RES_MAX (320)
+#define LV_VER_RES_MAX (240)
+
+
+#define LV_USE_DEMO_RTT_MUSIC 1
+#define LV_USE_DEMO_MUSIC 1
+#define LV_FONT_MONTSERRAT_12 1
+#define LV_FONT_MONTSERRAT_16 1
+#define LV_DEMO_MUSIC_AUTO_PLAY 1
+#define LV_DEMO_RTT_MUSIC_AUTO_PLAY 1
+
+//#define CONFIG_LV_LOG_LEVEL LV_LOG_LEVEL_TRACE
+#endif
diff --git a/bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_demo.c b/bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_demo.c
new file mode 100644
index 0000000000..0f9ca49a4c
--- /dev/null
+++ b/bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_demo.c
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-10-17 Meco Man First version
+ */
+#include <rtthread.h>
+#include <lvgl.h>
+#include <lv_port_indev.h>
+#define DBG_TAG "LVGL"
+#define DBG_LVL DBG_INFO
+#include <rtdbg.h>
+
+#ifndef LV_THREAD_STACK_SIZE
+ #define LV_THREAD_STACK_SIZE 10240
+#endif
+
+#ifndef LV_THREAD_PRIO
+ #define LV_THREAD_PRIO 20
+#endif
+
+static void lvgl_thread(void *parameter)
+{
+ extern void lv_demo_music(void);
+ lv_demo_music();
+
+ while (1)
+ {
+ lv_task_handler();
+ rt_thread_mdelay(1);
+ }
+}
+
+static int lvgl_demo_init(void)
+{
+ rt_thread_t tid;
+
+ tid = rt_thread_create("LVGL", lvgl_thread, RT_NULL, LV_THREAD_STACK_SIZE, LV_THREAD_PRIO, 10);
+ if (tid == RT_NULL)
+ {
+ LOG_E("Fail to create 'LVGL' thread");
+ }
+ rt_thread_startup(tid);
+
+ return 0;
+}
+INIT_APP_EXPORT(lvgl_demo_init);
diff --git a/bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_port_disp.c b/bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_port_disp.c
new file mode 100644
index 0000000000..34cda04180
--- /dev/null
+++ b/bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_port_disp.c
@@ -0,0 +1,105 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-12-17 Wayne The first version
+ */
+#include <lvgl.h>
+
+#define LOG_TAG "lvgl.disp"
+#define DBG_ENABLE
+#define DBG_SECTION_NAME LOG_TAG
+#define DBG_LEVEL DBG_ERROR
+#define DBG_COLOR
+#include <rtdbg.h>
+
+/*A static or global variable to store the buffers*/
+static lv_disp_draw_buf_t disp_buf;
+static lv_disp_drv_t disp_drv; /*Descriptor of a display driver*/
+
+static rt_device_t lcd_device = 0;
+static struct rt_device_graphic_info info;
+
+static void lcd_fb_flush(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p)
+{
+ /* Rendering */
+ struct rt_device_rect_info rect;
+
+ rect.x = area->x1;
+ rect.y = area->y1;
+ rect.width = area->x2 - area->x1 + 1;
+ rect.height = area->y2 - area->y1 + 1;
+
+ if ((uint32_t)info.framebuffer != (uint32_t)color_p)
+ {
+ rect.y += info.height;
+ }
+
+ rt_device_control(lcd_device, RTGRAPHIC_CTRL_RECT_UPDATE, &rect);
+ lv_disp_flush_ready(disp_drv);
+}
+
+void lcd_perf_monitor(struct _lv_disp_drv_t *disp_drv, uint32_t time, uint32_t px)
+{
+ rt_kprintf("Elapsed: %dms, Pixel: %d, Bytes:%d\n", time, px, px * sizeof(lv_color_t));
+}
+
+void lv_port_disp_init(void)
+{
+ rt_err_t result;
+ void *buf_1 = RT_NULL;
+
+ lcd_device = rt_device_find("lcd");
+ if (lcd_device == 0)
+ {
+ LOG_E("error!");
+ return;
+ }
+
+ /* get framebuffer address */
+ result = rt_device_control(lcd_device, RTGRAPHIC_CTRL_GET_INFO, &info);
+ if (result != RT_EOK)
+ {
+ LOG_E("error!");
+ /* get device information failed */
+ return;
+ }
+
+ RT_ASSERT(info.bits_per_pixel == 8 || info.bits_per_pixel == 16 ||
+ info.bits_per_pixel == 24 || info.bits_per_pixel == 32);
+
+ buf_1 = (void *)info.framebuffer;
+ rt_kprintf("lv buf_1=%08x\n", buf_1);
+
+ /*Initialize `disp_buf` with the buffer(s).*/
+ lv_disp_draw_buf_init(&disp_buf, buf_1, NULL, info.width * info.height);
+
+ result = rt_device_open(lcd_device, 0);
+ if (result != RT_EOK)
+ {
+ LOG_E("error!");
+ return;
+ }
+
+ lv_disp_drv_init(&disp_drv); /*Basic initialization*/
+
+ /*Set the resolution of the display*/
+ disp_drv.hor_res = info.width;
+ disp_drv.ver_res = info.height;
+ //disp_drv.full_refresh = 1;
+
+ /*Set a display buffer*/
+ disp_drv.draw_buf = &disp_buf;
+
+ /*Write the internal buffer (draw_buf) to the display*/
+ disp_drv.flush_cb = lcd_fb_flush;
+
+ /* Called after every refresh cycle to tell the rendering and flushing time + the number of flushed pixels */
+ //disp_drv.monitor_cb = lcd_perf_monitor;
+
+ /*Finally register the driver*/
+ lv_disp_drv_register(&disp_drv);
+}
diff --git a/bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_port_disp.h b/bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_port_disp.h
new file mode 100644
index 0000000000..ef39eb03cd
--- /dev/null
+++ b/bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_port_disp.h
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-10-18 Meco Man The first version
+ */
+#ifndef LV_PORT_DISP_H
+#define LV_PORT_DISP_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void lv_port_disp_init(void);
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif
diff --git a/bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_port_indev.c b/bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_port_indev.c
new file mode 100644
index 0000000000..edcc4bc7f3
--- /dev/null
+++ b/bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_port_indev.c
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-10-18 Meco Man The first version
+ */
+#include <lvgl.h>
+#include <stdbool.h>
+#include <rtdevice.h>
+#include "touch.h"
+
+static lv_indev_state_t last_state = LV_INDEV_STATE_REL;
+static rt_int16_t last_x = 0;
+static rt_int16_t last_y = 0;
+
+static void input_read(lv_indev_drv_t *indev_drv, lv_indev_data_t *data)
+{
+ data->point.x = last_x;
+ data->point.y = last_y;
+ data->state = last_state;
+}
+
+void littlevgl2rtt_send_input_event(rt_int16_t x, rt_int16_t y, rt_uint8_t state)
+{
+ switch (state)
+ {
+ case RT_TOUCH_EVENT_UP:
+ last_state = LV_INDEV_STATE_RELEASED;
+ break;
+ case RT_TOUCH_EVENT_DOWN:
+ last_x = x;
+ last_y = y;
+ last_state = LV_INDEV_STATE_PRESSED;
+ break;
+ case RT_TOUCH_EVENT_MOVE:
+ last_x = x;
+ last_y = y;
+ break;
+ }
+}
+
+
+lv_indev_t *button_indev;
+
+void lv_port_indev_init(void)
+{
+ static lv_indev_drv_t indev_drv;
+
+ lv_indev_drv_init(&indev_drv); /*Basic initialization*/
+ indev_drv.type = LV_INDEV_TYPE_POINTER;
+ indev_drv.read_cb = input_read;
+
+ /*Register the driver in LVGL and save the created input device object*/
+ button_indev = lv_indev_drv_register(&indev_drv);
+}
diff --git a/bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_port_indev.h b/bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_port_indev.h
new file mode 100644
index 0000000000..dec92bccbc
--- /dev/null
+++ b/bsp/nuvoton/nk-980iot/applications/lvgl/port/lv_port_indev.h
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-10-18 Meco Man The first version
+ */
+#ifndef LV_PORT_INDEV_H
+#define LV_PORT_INDEV_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <lv_hal_indev.h>
+
+extern lv_indev_t *button_indev;
+
+void lv_port_indev_init(void);
+void lv_port_indev_input(rt_int16_t x, rt_int16_t y, lv_indev_state_t state);
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif
diff --git a/bsp/nuvoton/nk-n9h30/.config b/bsp/nuvoton/nk-n9h30/.config
index 2591df59b6..3da0dba2c2 100644
--- a/bsp/nuvoton/nk-n9h30/.config
+++ b/bsp/nuvoton/nk-n9h30/.config
@@ -415,6 +415,7 @@ CONFIG_UTEST_THR_PRIORITY=20
# CONFIG_PKG_USING_AT_DEVICE is not set
# CONFIG_PKG_USING_ATSRV_SOCKET is not set
# CONFIG_PKG_USING_WIZNET is not set
+# CONFIG_PKG_USING_ZB_COORDINATOR is not set
#
# IoT Cloud
@@ -455,12 +456,18 @@ CONFIG_UTEST_THR_PRIORITY=20
# CONFIG_PKG_USING_AGILE_MODBUS is not set
# CONFIG_PKG_USING_AGILE_FTP is not set
# CONFIG_PKG_USING_EMBEDDEDPROTO is not set
+# CONFIG_PKG_USING_RT_LINK_HW is not set
+# CONFIG_PKG_USING_LORA_PKT_FWD is not set
+# CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set
+# CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set
+# CONFIG_PKG_USING_HM is not set
+# CONFIG_PKG_USING_SMALL_MODBUS is not set
#
# security packages
#
# CONFIG_PKG_USING_MBEDTLS is not set
-# CONFIG_PKG_USING_libsodium is not set
+# CONFIG_PKG_USING_LIBSODIUM is not set
# CONFIG_PKG_USING_TINYCRYPT is not set
# CONFIG_PKG_USING_TFM is not set
# CONFIG_PKG_USING_YD_CRYPTO is not set
@@ -471,36 +478,51 @@ CONFIG_UTEST_THR_PRIORITY=20
# CONFIG_PKG_USING_LUA is not set
# CONFIG_PKG_USING_JERRYSCRIPT is not set
# CONFIG_PKG_USING_MICROPYTHON is not set
+# CONFIG_PKG_USING_PIKASCRIPT is not set
#
# multimedia packages
#
+
+#
+# LVGL: powerful and easy-to-use embedded GUI library
+#
+CONFIG_PKG_USING_LVGL=y
+CONFIG_PKG_LVGL_PATH="/packages/multimedia/LVGL/LVGL"
+# CONFIG_PKG_LVGL_ENABLE_LOG is not set
+# CONFIG_PKG_USING_LVGL_LATEST_VERSION is not set
+CONFIG_PKG_USING_LVGL_V810=y
+CONFIG_PKG_LVGL_VER="v8.1.0"
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
+CONFIG_PKG_USING_LV_MUSIC_DEMO=y
+CONFIG_PKG_LV_MUSIC_DEMO_PATH="/packages/multimedia/LVGL/lv_music_demo"
+CONFIG_PKG_USING_LV_MUSIC_DEMO_LATEST_VERSION=y
+CONFIG_PKG_LV_MUSIC_DEMO_VER="latest"
+
+#
+# u8g2: a monochrome graphic library
+#
+# CONFIG_PKG_USING_U8G2_OFFICIAL is not set
+# CONFIG_PKG_USING_U8G2 is not set
# 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
# CONFIG_PKG_USING_AZUREGUIX is not set
# CONFIG_PKG_USING_TOUCHGFX2RTT is not set
-CONFIG_PKG_USING_NUEMWIN=y
-CONFIG_PKG_NUEMWIN_PATH="/packages/multimedia/NUemWin"
-CONFIG_PKG_NUEMWIN_MEM_SIZE=4
-CONFIG_PKG_USING_NUEMWIN_EXAMPLE=y
-CONFIG_PKG_USING_NUEMWIN_GUIDEMO=y
-# CONFIG_PKG_USING_NUEMWIN_SIMPLEDEMO is not set
-CONFIG_PKG_USING_NUEMWIN_LATEST_VERSION=y
-CONFIG_PKG_NUEMWIN_VER="latest"
-CONFIG_PKG_NUEMWIN_VER_NUM=0x99999
+# CONFIG_PKG_USING_NUEMWIN is not set
+# CONFIG_PKG_USING_MP3PLAYER is not set
+# CONFIG_PKG_USING_TINYJPEG is not set
+# CONFIG_PKG_USING_UGUI is not set
+
+#
+# PainterEngine: A cross-platform graphics application framework written in C language
+#
+# CONFIG_PKG_USING_PAINTERENGINE is not set
+# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set
#
# tools packages
@@ -509,6 +531,7 @@ CONFIG_PKG_NUEMWIN_VER_NUM=0x99999
# CONFIG_PKG_USING_EASYFLASH is not set
# CONFIG_PKG_USING_EASYLOGGER is not set
# CONFIG_PKG_USING_SYSTEMVIEW is not set
+# CONFIG_PKG_USING_SEGGER_RTT is not set
# CONFIG_PKG_USING_RDB is not set
# CONFIG_PKG_USING_QRCODE is not set
# CONFIG_PKG_USING_ULOG_EASYFLASH is not set
@@ -524,10 +547,60 @@ CONFIG_PKG_NUEMWIN_VER_NUM=0x99999
# CONFIG_PKG_USING_BS8116A is not set
# CONFIG_PKG_USING_GPS_RMC is not set
# CONFIG_PKG_USING_URLENCODE is not set
+# CONFIG_PKG_USING_UMCN is not set
+# CONFIG_PKG_USING_LWRB2RTT is not set
+# CONFIG_PKG_USING_CPU_USAGE is not set
+# CONFIG_PKG_USING_GBK2UTF8 is not set
+# CONFIG_PKG_USING_VCONSOLE is not set
+# CONFIG_PKG_USING_KDB is not set
+# CONFIG_PKG_USING_WAMR is not set
+# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set
+# CONFIG_PKG_USING_LWLOG is not set
+# CONFIG_PKG_USING_ANV_TRACE is not set
+# CONFIG_PKG_USING_ANV_MEMLEAK is not set
+# CONFIG_PKG_USING_ANV_TESTSUIT is not set
+# 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_SOLAR_TERMS is not set
+# CONFIG_PKG_USING_GAN_ZHI is not set
+# CONFIG_PKG_USING_FDT is not set
#
# system packages
#
+
+#
+# enhanced kernel services
+#
+# CONFIG_PKG_USING_RT_MEMCPY_CM is not set
+# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
+# CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set
+
+#
+# acceleration: Assembly language or algorithmic acceleration packages
+#
+# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
+# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
+# CONFIG_PKG_USING_QFPLIB_M3 is not set
+
+#
+# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
+#
+# CONFIG_PKG_USING_CMSIS_5 is not set
+# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
+
+#
+# Micrium: Micrium software products porting for RT-Thread
+#
+# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set
+# CONFIG_PKG_USING_UCOSII_WRAPPER is not set
+# CONFIG_PKG_USING_UC_CRC is not set
+# 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_GUIENGINE is not set
# CONFIG_PKG_USING_PERSIMMON is not set
# CONFIG_PKG_USING_CAIRO is not set
@@ -551,32 +624,6 @@ 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
-CONFIG_PKG_USING_LITTLEVGL2RTT=y
-CONFIG_PKG_LITTLEVGL2RTT_PATH="/packages/system/LittlevGL2RTT"
-CONFIG_PKG_USING_LITTLEVGL2RTT_V001=y
-# CONFIG_PKG_USING_LITTLEVGL2RTT_LATEST_VERSION is not set
-CONFIG_PKG_LITTLEVGL2RTT_VER="v0.0.1"
-
-#
-# LittlevGL2RTT Options
-#
-# CONFIG_LV_MEM_STATIC is not set
-CONFIG_LV_MEM_DYNAMIC=y
-CONFIG_LV_MEM_CUSTOM=1
-# CONFIG_LV_COLOR_DEPTH_1 is not set
-# CONFIG_LV_COLOR_DEPTH_8 is not set
-# CONFIG_LV_COLOR_DEPTH_16 is not set
-# CONFIG_LV_COLOR_DEPTH_24 is not set
-CONFIG_LV_COLOR_DEPTH_32=y
-CONFIG_LV_COLOR_DEPTH=32
-CONFIG_LV_HOR_RES=800
-CONFIG_LV_VER_RES=480
-CONFIG_LV_DPI=50
-CONFIG_LV_GC_DISABLE=y
-# CONFIG_LV_GC_ENABLE is not set
-CONFIG_LV_ENABLE_GC=0
-CONFIG_LITTLEVGL2RTT_USING_DEMO=y
-# CONFIG_PKG_USING_CMSIS 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
@@ -595,26 +642,16 @@ CONFIG_PKG_USING_RAMDISK_LATEST_VERSION=y
CONFIG_PKG_RAMDISK_VER="latest"
# CONFIG_PKG_USING_MININI is not set
# CONFIG_PKG_USING_QBOOT is not set
-
-#
-# Micrium: Micrium software products porting for RT-Thread
-#
-# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set
-# CONFIG_PKG_USING_UCOSII_WRAPPER is not set
-# CONFIG_PKG_USING_UC_CRC is not set
-# 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_PKG_USING_PPOOL is not set
# CONFIG_PKG_USING_OPENAMP is not set
-# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
-# CONFIG_PKG_USING_RT_MEMCPY_CM is not set
-# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
-# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
-# CONFIG_PKG_USING_QFPLIB_M3 is not set
# CONFIG_PKG_USING_LPM is not set
# CONFIG_PKG_USING_TLSF is not set
# CONFIG_PKG_USING_EVENT_RECORDER is not set
+# CONFIG_PKG_USING_ARM_2D is not set
+# CONFIG_PKG_USING_WCWIDTH 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
#
# peripheral libraries and drivers
@@ -626,7 +663,6 @@ CONFIG_PKG_RAMDISK_VER="latest"
# CONFIG_PKG_USING_AS7341 is not set
# CONFIG_PKG_USING_STM32_SDIO is not set
# CONFIG_PKG_USING_ICM20608 is not set
-# CONFIG_PKG_USING_U8G2 is not set
# CONFIG_PKG_USING_BUTTON is not set
# CONFIG_PKG_USING_PCF8574 is not set
# CONFIG_PKG_USING_SX12XX is not set
@@ -639,7 +675,6 @@ 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_ROSSERIAL 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
@@ -683,6 +718,16 @@ CONFIG_PKG_RAMDISK_VER="latest"
# CONFIG_PKG_USING_MFOC is not set
# CONFIG_PKG_USING_TMC51XX is not set
# CONFIG_PKG_USING_TCA9534 is not set
+# CONFIG_PKG_USING_KOBUKI is not set
+# CONFIG_PKG_USING_ROSSERIAL is not set
+# CONFIG_PKG_USING_MICRO_ROS is not set
+# CONFIG_PKG_USING_MCP23008 is not set
+# CONFIG_PKG_USING_BLUETRUM_SDK is not set
+# CONFIG_PKG_USING_MISAKA_AT24CXX is not set
+# CONFIG_PKG_USING_MISAKA_RGB_BLING is not set
+# CONFIG_PKG_USING_BL_MCU_SDK is not set
+# CONFIG_PKG_USING_SOFT_SERIAL is not set
+# CONFIG_PKG_USING_MB85RS16 is not set
#
# AI packages
@@ -700,12 +745,29 @@ CONFIG_PKG_RAMDISK_VER="latest"
#
# miscellaneous packages
#
+
+#
+# samples: kernel and components samples
+#
+# CONFIG_PKG_USING_KERNEL_SAMPLES is not set
+# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
+# CONFIG_PKG_USING_NETWORK_SAMPLES is not set
+# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
+
+#
+# entertainment: terminal games and other interesting software packages
+#
+# CONFIG_PKG_USING_CMATRIX is not set
+# CONFIG_PKG_USING_SL is not set
+# CONFIG_PKG_USING_CAL is not set
+# CONFIG_PKG_USING_ACLOCK is not set
+# CONFIG_PKG_USING_THREES is not set
+# CONFIG_PKG_USING_2048 is not set
+# CONFIG_PKG_USING_SNAKE is not set
+# CONFIG_PKG_USING_TETRIS is not set
+# CONFIG_PKG_USING_DONUT is not set
# CONFIG_PKG_USING_LIBCSV is not set
-CONFIG_PKG_USING_OPTPARSE=y
-CONFIG_PKG_OPTPARSE_PATH="/packages/misc/optparse"
-CONFIG_PKG_USING_OPTPARSE_LATEST_VERSION=y
-CONFIG_PKG_OPTPARSE_VER="latest"
-# CONFIG_OPTPARSE_USING_DEMO is not set
+# CONFIG_PKG_USING_OPTPARSE is not set
# CONFIG_PKG_USING_FASTLZ is not set
# CONFIG_PKG_USING_MINILZO is not set
# CONFIG_PKG_USING_QUICKLZ is not set
@@ -714,42 +776,25 @@ CONFIG_PKG_OPTPARSE_VER="latest"
# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
# CONFIG_PKG_USING_CANFESTIVAL is not set
# CONFIG_PKG_USING_ZLIB is not set
+# CONFIG_PKG_USING_MINIZIP 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
# CONFIG_PKG_USING_DIGITALCTRL is not set
# CONFIG_PKG_USING_UPACKER is not set
# CONFIG_PKG_USING_UPARAM is not set
-
-#
-# samples: kernel and components samples
-#
-# CONFIG_PKG_USING_KERNEL_SAMPLES is not set
-# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
-# CONFIG_PKG_USING_NETWORK_SAMPLES is not set
-# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
# CONFIG_PKG_USING_HELLO is not set
# CONFIG_PKG_USING_VI is not set
-# CONFIG_PKG_USING_VI_LATEST_VERSION is not set
# CONFIG_PKG_USING_KI is not set
# CONFIG_PKG_USING_ARMv7M_DWT is not set
# CONFIG_PKG_USING_VT100 is not set
# CONFIG_PKG_USING_UKAL is not set
# CONFIG_PKG_USING_CRCLIB is not set
-
-#
-# entertainment: terminal games and other interesting software packages
-#
-# CONFIG_PKG_USING_THREES is not set
-# CONFIG_PKG_USING_2048 is not set
-# CONFIG_PKG_USING_SNAKE is not set
-# CONFIG_PKG_USING_TETRIS is not set
-# CONFIG_PKG_USING_DONUT is not set
-# CONFIG_PKG_USING_ACLOCK is not set
# CONFIG_PKG_USING_LWGPS is not set
# CONFIG_PKG_USING_STATE_MACHINE is not set
# CONFIG_PKG_USING_MCURSES is not set
# CONFIG_PKG_USING_COWSAY is not set
+# CONFIG_PKG_USING_TERMBOX is not set
#
# Nuvoton Packages Config
@@ -821,7 +866,8 @@ CONFIG_BSP_USING_I2C=y
CONFIG_BSP_USING_I2C0=y
# CONFIG_BSP_USING_I2C1 is not set
CONFIG_BSP_USING_SDH=y
-# CONFIG_BSP_USING_SDH0 is not set
+# CONFIG_BSP_USING_EMMC is not set
+CONFIG_BSP_USING_SDH0=y
CONFIG_BSP_USING_SDH1=y
CONFIG_NU_SDH_HOTPLUG=y
# CONFIG_NU_SDH_MOUNT_ON_ROOT is not set
diff --git a/bsp/nuvoton/nk-n9h30/applications/SConscript b/bsp/nuvoton/nk-n9h30/applications/SConscript
index 9ffdbcd0f9..3769d125df 100644
--- a/bsp/nuvoton/nk-n9h30/applications/SConscript
+++ b/bsp/nuvoton/nk-n9h30/applications/SConscript
@@ -3,9 +3,19 @@
from building import *
cwd = GetCurrentDir()
+objs = []
+list = os.listdir(cwd)
+for d in list:
+ path = os.path.join(cwd, d)
+ if os.path.isfile(os.path.join(path, 'SConscript')):
+ objs = objs + SConscript(os.path.join(d, 'SConscript'))
+
src = Glob('*.c') + Glob('*.cpp')
CPPPATH = [cwd, str(Dir('#'))]
group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH)
-Return('group')
+objs = objs + group
+
+Return('objs')
+
diff --git a/bsp/nuvoton/nk-n9h30/applications/lvgl/SConscript b/bsp/nuvoton/nk-n9h30/applications/lvgl/SConscript
new file mode 100644
index 0000000000..4cb03b1c72
--- /dev/null
+++ b/bsp/nuvoton/nk-n9h30/applications/lvgl/SConscript
@@ -0,0 +1,17 @@
+Import('RTT_ROOT')
+from building import *
+
+import os
+
+objs = []
+
+if GetDepend('PKG_USING_LVGL'):
+ cwd = GetCurrentDir()
+ list = os.listdir(cwd)
+ for d in list:
+ path = os.path.join(cwd, d)
+ if os.path.isfile(os.path.join(path, 'SConscript')):
+ objs = objs + SConscript(os.path.join(d, 'SConscript'))
+
+Return('objs')
+
diff --git a/bsp/nuvoton/nk-n9h30/applications/lvgl/port/SConscript b/bsp/nuvoton/nk-n9h30/applications/lvgl/port/SConscript
new file mode 100644
index 0000000000..0ca25f18d4
--- /dev/null
+++ b/bsp/nuvoton/nk-n9h30/applications/lvgl/port/SConscript
@@ -0,0 +1,10 @@
+from building import *
+
+cwd = GetCurrentDir()
+src = Glob('*.c')
+CPPPATH = [cwd]
+
+group = DefineGroup('LVGL-port', src, depend = [''], CPPPATH = CPPPATH)
+
+Return('group')
+
diff --git a/bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_conf.h b/bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_conf.h
new file mode 100644
index 0000000000..dd3e3c4b88
--- /dev/null
+++ b/bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_conf.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-10-18 Meco Man First version
+ */
+
+#ifndef LV_CONF_H
+#define LV_CONF_H
+
+//#define LV_USE_EXTERNAL_RENDERER 1
+#define LV_USE_GPU_N9H30_GE2D 1
+
+//#define LV_USE_PERF_MONITOR 1
+#define LV_COLOR_DEPTH 32
+
+#define LV_HOR_RES_MAX (800)
+#define LV_VER_RES_MAX (480)
+
+
+#define LV_USE_DEMO_RTT_MUSIC 1
+#define LV_USE_DEMO_MUSIC 1
+#define LV_FONT_MONTSERRAT_12 1
+#define LV_FONT_MONTSERRAT_16 1
+#define LV_DEMO_MUSIC_AUTO_PLAY 1
+#define LV_DEMO_RTT_MUSIC_AUTO_PLAY 1
+
+//#define CONFIG_LV_LOG_LEVEL LV_LOG_LEVEL_TRACE
+#endif
diff --git a/bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_demo.c b/bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_demo.c
new file mode 100644
index 0000000000..8ed63b84ac
--- /dev/null
+++ b/bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_demo.c
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-10-17 Meco Man First version
+ */
+#include <rtthread.h>
+#include <lvgl.h>
+#include <lv_port_indev.h>
+#define DBG_TAG "LVGL"
+#define DBG_LVL DBG_INFO
+#include <rtdbg.h>
+
+#ifndef LV_THREAD_STACK_SIZE
+ #define LV_THREAD_STACK_SIZE 10240
+#endif
+
+#ifndef LV_THREAD_PRIO
+ #define LV_THREAD_PRIO 20
+#endif
+
+static void lvgl_thread(void *parameter)
+{
+ extern void lv_demo_music(void);
+ lv_demo_music();
+
+ while (1)
+ {
+ lv_task_handler();
+ rt_thread_mdelay(1);
+ }
+}
+
+static int lvgl_demo(void)
+{
+ rt_thread_t tid;
+
+ tid = rt_thread_create("LVGL", lvgl_thread, RT_NULL, LV_THREAD_STACK_SIZE, LV_THREAD_PRIO, 10);
+ if (tid == RT_NULL)
+ {
+ LOG_E("Fail to create 'LVGL' thread");
+ }
+ rt_thread_startup(tid);
+
+ return 0;
+}
+INIT_APP_EXPORT(lvgl_demo);
+//MSH_CMD_EXPORT(lvgl_demo, start lvgl music demo);
diff --git a/bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_port_disp.c b/bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_port_disp.c
new file mode 100644
index 0000000000..b7c08f2675
--- /dev/null
+++ b/bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_port_disp.c
@@ -0,0 +1,133 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-12-17 Wayne The first version
+ */
+#include <lvgl.h>
+
+#define LOG_TAG "lvgl.disp"
+#define DBG_ENABLE
+#define DBG_SECTION_NAME LOG_TAG
+#define DBG_LEVEL DBG_ERROR
+#define DBG_COLOR
+#include <rtdbg.h>
+
+/*A static or global variable to store the buffers*/
+static lv_disp_draw_buf_t disp_buf;
+static rt_device_t lcd_device = 0;
+static struct rt_device_graphic_info info;
+static lv_disp_drv_t disp_drv; /*Descriptor of a display driver*/
+
+extern void ge2dInit(int bpp, int width, int height, void *destination);
+extern void ge2dSpriteBlt_Screen(int destx, int desty, int sprite_width, int sprite_height, void *buf);
+extern int ge2dBitblt_SetAlphaMode(int opt, int ks, int kd);
+extern void ge2dSpriteBltx_Screen(int x, int y, int sprite_sx, int sprite_sy, int width, int height, int sprite_width, int sprite_height, void *buf);
+extern void ge2dClip_SetClip(int x1, int y1, int x2, int y2);
+extern void ge2dFill_Solid_RGB565(int dx, int dy, int width, int height, int color);
+extern void ge2dFill_Solid(int dx, int dy, int width, int height, int color);
+
+static void lcd_fb_flush(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p)
+{
+ /* Use ping-pong buffer updating without memory-copy. */
+ rt_device_control(lcd_device, RTGRAPHIC_CTRL_RECT_UPDATE, color_p);
+
+ lv_disp_flush_ready(disp_drv);
+}
+
+void ge2d_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)
+{
+ int32_t act_x1 = fill_area->x1 < 0 ? 0 : fill_area->x1;
+ int32_t act_y1 = fill_area->y1 < 0 ? 0 : fill_area->y1;
+ int32_t act_x2 = fill_area->x2 > info.width - 1 ? info.width - 1 : fill_area->x2;
+ int32_t act_y2 = fill_area->y2 > info.height - 1 ? info.height - 1 : fill_area->y2;
+ int32_t fill_area_w = act_x2 - act_x1 + 1;
+ int32_t fill_area_h = act_y2 - act_y1 + 1;
+
+ // Enter GE2D ->
+ ge2dInit(sizeof(lv_color_t) * 8, info.width, info.height, (void *)dest_buf);
+ ge2dClip_SetClip(act_x1, act_y1, act_x2, act_y2);
+ if (sizeof(lv_color_t) == 4)
+ {
+ ge2dFill_Solid(act_x1, act_y1, fill_area_w, fill_area_h, color.full);
+ }
+ else if (sizeof(lv_color_t) == 2)
+ {
+ ge2dFill_Solid_RGB565(act_x1, act_y1, fill_area_w, fill_area_h, color.full);
+ }
+ ge2dClip_SetClip(-1, 0, 0, 0);
+ // -> Leave GE2D
+}
+
+void lcd_perf_monitor(struct _lv_disp_drv_t *disp_drv, uint32_t time, uint32_t px)
+{
+ rt_kprintf("Elapsed: %dms, Pixel: %d, Bytes:%d\n", time, px, px * sizeof(lv_color_t));
+}
+
+void lv_port_disp_init(void)
+{
+ rt_err_t result;
+ void *buf_1 = RT_NULL;
+ void *buf_2 = RT_NULL;
+
+ lcd_device = rt_device_find("lcd");
+ if (lcd_device == 0)
+ {
+ LOG_E("error!");
+ return;
+ }
+
+ /* get framebuffer address */
+ result = rt_device_control(lcd_device, RTGRAPHIC_CTRL_GET_INFO, &info);
+ if (result != RT_EOK)
+ {
+ LOG_E("error!");
+ /* get device information failed */
+ return;
+ }
+
+ RT_ASSERT(info.bits_per_pixel == 8 || info.bits_per_pixel == 16 ||
+ info.bits_per_pixel == 24 || info.bits_per_pixel == 32);
+
+ buf_1 = (void *)info.framebuffer;
+ rt_kprintf("lv buf_1=%08x\n", buf_1);
+
+ buf_2 = (void *)((uint32_t)info.framebuffer + info.height * info.width * info.bits_per_pixel / 8);
+ rt_kprintf("lv buf_2=%08x\n", buf_2);
+
+ /*Initialize `disp_buf` with the buffer(s).*/
+ lv_disp_draw_buf_init(&disp_buf, buf_1, buf_2, info.width * info.height);
+
+ result = rt_device_open(lcd_device, 0);
+ if (result != RT_EOK)
+ {
+ LOG_E("error!");
+ return;
+ }
+
+ lv_disp_drv_init(&disp_drv); /*Basic initialization*/
+
+ /*Set the resolution of the display*/
+ disp_drv.hor_res = info.width;
+ disp_drv.ver_res = info.height;
+ disp_drv.full_refresh = 1;
+
+ /*Set a display buffer*/
+ disp_drv.draw_buf = &disp_buf;
+
+ /*Write the internal buffer (draw_buf) to the display*/
+ disp_drv.flush_cb = lcd_fb_flush;
+
+ /*Fill a memory with a color (GPU only)*/
+ disp_drv.gpu_fill_cb = ge2d_fill_cb;
+
+ /* Called after every refresh cycle to tell the rendering and flushing time + the number of flushed pixels */
+ //disp_drv.monitor_cb = lcd_perf_monitor;
+
+ /*Finally register the driver*/
+ lv_disp_drv_register(&disp_drv);
+}
diff --git a/bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_port_disp.h b/bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_port_disp.h
new file mode 100644
index 0000000000..ef39eb03cd
--- /dev/null
+++ b/bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_port_disp.h
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-10-18 Meco Man The first version
+ */
+#ifndef LV_PORT_DISP_H
+#define LV_PORT_DISP_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void lv_port_disp_init(void);
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif
diff --git a/bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_port_indev.c b/bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_port_indev.c
new file mode 100644
index 0000000000..b2f2e91e10
--- /dev/null
+++ b/bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_port_indev.c
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-10-18 Meco Man The first version
+ * 2021-12-17 Wayne Add input event
+ */
+#include <lvgl.h>
+#include <stdbool.h>
+#include <rtdevice.h>
+#include "touch.h"
+
+static lv_indev_state_t last_state = LV_INDEV_STATE_REL;
+static rt_int16_t last_x = 0;
+static rt_int16_t last_y = 0;
+
+static void input_read(lv_indev_drv_t *indev_drv, lv_indev_data_t *data)
+{
+ data->point.x = last_x;
+ data->point.y = last_y;
+ data->state = last_state;
+}
+
+void littlevgl2rtt_send_input_event(rt_int16_t x, rt_int16_t y, rt_uint8_t state)
+{
+ switch (state)
+ {
+ case RT_TOUCH_EVENT_UP:
+ last_state = LV_INDEV_STATE_RELEASED;
+ break;
+ case RT_TOUCH_EVENT_DOWN:
+ last_x = x;
+ last_y = y;
+ last_state = LV_INDEV_STATE_PRESSED;
+ break;
+ case RT_TOUCH_EVENT_MOVE:
+ last_x = x;
+ last_y = y;
+ break;
+ }
+}
+
+
+lv_indev_t *button_indev;
+
+void lv_port_indev_init(void)
+{
+ static lv_indev_drv_t indev_drv;
+
+ lv_indev_drv_init(&indev_drv); /*Basic initialization*/
+ indev_drv.type = LV_INDEV_TYPE_POINTER;
+ indev_drv.read_cb = input_read;
+
+ /*Register the driver in LVGL and save the created input device object*/
+ button_indev = lv_indev_drv_register(&indev_drv);
+}
diff --git a/bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_port_indev.h b/bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_port_indev.h
new file mode 100644
index 0000000000..dec92bccbc
--- /dev/null
+++ b/bsp/nuvoton/nk-n9h30/applications/lvgl/port/lv_port_indev.h
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-10-18 Meco Man The first version
+ */
+#ifndef LV_PORT_INDEV_H
+#define LV_PORT_INDEV_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <lv_hal_indev.h>
+
+extern lv_indev_t *button_indev;
+
+void lv_port_indev_init(void);
+void lv_port_indev_input(rt_int16_t x, rt_int16_t y, lv_indev_state_t state);
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif
diff --git a/bsp/nuvoton/nk-n9h30/board/board_dev.c b/bsp/nuvoton/nk-n9h30/board/board_dev.c
index 297b79351f..42d1bdac94 100644
--- a/bsp/nuvoton/nk-n9h30/board/board_dev.c
+++ b/bsp/nuvoton/nk-n9h30/board/board_dev.c
@@ -259,12 +259,7 @@ int rt_hw_lcm_port(void)
}
#endif
-#if defined(RT_USING_PIN)
- /* set LCM_BLEN pin mode to output */
- rt_pin_mode(LCM_BLEN, PIN_MODE_OUTPUT);
- rt_pin_write(LCM_BLEN, PIN_HIGH);
-#endif
-
+ /* Use PWM to control backlight. */
LCMLightOn();
return 0;
diff --git a/bsp/nuvoton/numaker-iot-m487/.config b/bsp/nuvoton/numaker-iot-m487/.config
index a828d7042d..af27ea8b60 100644
--- a/bsp/nuvoton/numaker-iot-m487/.config
+++ b/bsp/nuvoton/numaker-iot-m487/.config
@@ -7,6 +7,7 @@
# 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
@@ -21,6 +22,13 @@ CONFIG_RT_USING_IDLE_HOOK=y
CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
CONFIG_IDLE_THREAD_STACK_SIZE=1024
# CONFIG_RT_USING_TIMER_SOFT is not set
+
+#
+# kservice optimization
+#
+# CONFIG_RT_KSERVICE_USING_STDLIB is not set
+# CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
+# CONFIG_RT_USING_ASM_MEMCPY is not set
CONFIG_RT_DEBUG=y
CONFIG_RT_DEBUG_COLOR=y
# CONFIG_RT_DEBUG_INIT_CONFIG is not set
@@ -52,6 +60,7 @@ CONFIG_RT_USING_MEMPOOL=y
# CONFIG_RT_USING_NOHEAP is not set
CONFIG_RT_USING_SMALL_MEM=y
# CONFIG_RT_USING_SLAB is not set
+# CONFIG_RT_USING_USERHEAP is not set
# CONFIG_RT_USING_MEMTRACE is not set
CONFIG_RT_USING_HEAP=y
@@ -64,7 +73,8 @@ CONFIG_RT_USING_DEVICE=y
CONFIG_RT_USING_CONSOLE=y
CONFIG_RT_CONSOLEBUF_SIZE=256
CONFIG_RT_CONSOLE_DEVICE_NAME="uart0"
-CONFIG_RT_VER_NUM=0x40002
+# CONFIG_RT_PRINTF_LONGLONG is not set
+CONFIG_RT_VER_NUM=0x40004
CONFIG_ARCH_ARM=y
CONFIG_RT_USING_CPU_FFS=y
CONFIG_ARCH_ARM_CORTEX_M=y
@@ -88,19 +98,19 @@ CONFIG_RT_MAIN_THREAD_PRIORITY=10
# Command shell
#
CONFIG_RT_USING_FINSH=y
+CONFIG_RT_USING_MSH=y
+CONFIG_FINSH_USING_MSH=y
CONFIG_FINSH_THREAD_NAME="tshell"
+CONFIG_FINSH_THREAD_PRIORITY=20
+CONFIG_FINSH_THREAD_STACK_SIZE=2048
CONFIG_FINSH_USING_HISTORY=y
CONFIG_FINSH_HISTORY_LINES=5
CONFIG_FINSH_USING_SYMTAB=y
+CONFIG_FINSH_CMD_SIZE=80
+CONFIG_MSH_USING_BUILT_IN_COMMANDS=y
CONFIG_FINSH_USING_DESCRIPTION=y
# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
-CONFIG_FINSH_THREAD_PRIORITY=20
-CONFIG_FINSH_THREAD_STACK_SIZE=2048
-CONFIG_FINSH_CMD_SIZE=80
# CONFIG_FINSH_USING_AUTH is not set
-CONFIG_FINSH_USING_MSH=y
-CONFIG_FINSH_USING_MSH_DEFAULT=y
-# CONFIG_FINSH_USING_MSH_ONLY is not set
CONFIG_FINSH_ARG_MAX=10
#
@@ -124,16 +134,20 @@ CONFIG_RT_DFS_ELM_WORD_ACCESS=y
# CONFIG_RT_DFS_ELM_USE_LFN_2 is not set
CONFIG_RT_DFS_ELM_USE_LFN_3=y
CONFIG_RT_DFS_ELM_USE_LFN=3
+CONFIG_RT_DFS_ELM_LFN_UNICODE_0=y
+# CONFIG_RT_DFS_ELM_LFN_UNICODE_1 is not set
+# CONFIG_RT_DFS_ELM_LFN_UNICODE_2 is not set
+# CONFIG_RT_DFS_ELM_LFN_UNICODE_3 is not set
+CONFIG_RT_DFS_ELM_LFN_UNICODE=0
CONFIG_RT_DFS_ELM_MAX_LFN=255
CONFIG_RT_DFS_ELM_DRIVES=8
CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=4096
# CONFIG_RT_DFS_ELM_USE_ERASE is not set
CONFIG_RT_DFS_ELM_REENTRANT=y
+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_DFS_UFFS is not set
-# CONFIG_RT_USING_DFS_JFFS2 is not set
#
# Device Drivers
@@ -144,6 +158,8 @@ CONFIG_RT_USING_SYSTEM_WORKQUEUE=y
CONFIG_RT_SYSTEM_WORKQUEUE_STACKSIZE=2048
CONFIG_RT_SYSTEM_WORKQUEUE_PRIORITY=23
CONFIG_RT_USING_SERIAL=y
+CONFIG_RT_USING_SERIAL_V1=y
+# CONFIG_RT_USING_SERIAL_V2 is not set
CONFIG_RT_SERIAL_USING_DMA=y
CONFIG_RT_SERIAL_RB_BUFSZ=2048
CONFIG_RT_USING_CAN=y
@@ -154,8 +170,10 @@ CONFIG_RT_USING_I2C=y
# CONFIG_RT_I2C_DEBUG is not set
CONFIG_RT_USING_I2C_BITOPS=y
# CONFIG_RT_I2C_BITOPS_DEBUG is not set
+# CONFIG_RT_USING_PHY is not set
CONFIG_RT_USING_PIN=y
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 is not set
@@ -163,9 +181,6 @@ CONFIG_RT_USING_PM=y
CONFIG_RT_USING_RTC=y
# CONFIG_RT_USING_ALARM is not set
# CONFIG_RT_USING_SOFT_RTC is not set
-CONFIG_RTC_SYNC_USING_NTP=y
-CONFIG_RTC_NTP_FIRST_SYNC_DELAY=30
-CONFIG_RTC_NTP_SYNC_PERIOD=3600
# CONFIG_RT_USING_SDIO is not set
CONFIG_RT_USING_SPI=y
CONFIG_RT_USING_QSPI=y
@@ -226,9 +241,11 @@ CONFIG_RT_HWCRYPTO_USING_CRC_04C11DB7=y
#
# Using USB
#
+CONFIG_RT_USING_USB=y
CONFIG_RT_USING_USB_HOST=y
CONFIG_RT_USBH_MSTORAGE=y
CONFIG_UDISK_MOUNTPOINT="/mnt/udisk/"
+# CONFIG_RT_USBH_HID is not set
CONFIG_RT_USING_USB_DEVICE=y
CONFIG_RT_USBD_THREAD_STACK_SZ=4096
CONFIG_USB_VENDOR_ID=0x0FFE
@@ -250,12 +267,16 @@ CONFIG_RT_USB_DEVICE_HID_MOUSE=y
# POSIX layer and C standard library
#
CONFIG_RT_USING_LIBC=y
+CONFIG_RT_LIBC_USING_TIME=y
+# CONFIG_RT_LIBC_USING_FILEIO is not set
+# CONFIG_RT_USING_MODULE is not set
+CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_RT_USING_PTHREADS is not set
CONFIG_RT_USING_POSIX=y
# CONFIG_RT_USING_POSIX_MMAP is not set
# CONFIG_RT_USING_POSIX_TERMIOS is not set
+# CONFIG_RT_USING_POSIX_GETLINE is not set
# CONFIG_RT_USING_POSIX_AIO is not set
-# CONFIG_RT_USING_MODULE is not set
#
# Network
@@ -265,6 +286,7 @@ CONFIG_RT_USING_POSIX=y
# Socket abstraction layer
#
CONFIG_RT_USING_SAL=y
+CONFIG_SAL_INTERNET_CHECK=y
#
# protocol stack implement
@@ -302,7 +324,7 @@ CONFIG_AT_USING_SOCKET=y
CONFIG_AT_USING_CLI=y
# CONFIG_AT_PRINT_RAW_CMD is not set
CONFIG_AT_CMD_MAX_LEN=512
-CONFIG_AT_SW_VERSION_NUM=0x10300
+CONFIG_AT_SW_VERSION_NUM=0x10301
#
# VBUS(Virtual Software BUS)
@@ -317,15 +339,23 @@ CONFIG_AT_SW_VERSION_NUM=0x10300
CONFIG_RT_USING_UTEST=y
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
#
+# RT-Thread Utestcases
+#
+# CONFIG_RT_USING_UTESTCASES is not set
+
+#
# RT-Thread online packages
#
#
# IoT - internet of things
#
+# CONFIG_PKG_USING_LORAWAN_DRIVER is not set
# CONFIG_PKG_USING_PAHOMQTT is not set
# CONFIG_PKG_USING_UMQTT is not set
# CONFIG_PKG_USING_WEBCLIENT is not set
@@ -359,20 +389,10 @@ CONFIG_UTEST_THR_PRIORITY=20
# CONFIG_PKG_USING_RW007 is not set
# CONFIG_PKG_USING_COAP is not set
# CONFIG_PKG_USING_NOPOLL is not set
-CONFIG_PKG_USING_NETUTILS=y
-CONFIG_PKG_NETUTILS_PATH="/packages/iot/netutils"
-# CONFIG_PKG_NETUTILS_TFTP is not set
-CONFIG_PKG_NETUTILS_IPERF=y
-CONFIG_PKG_NETUTILS_NTP=y
-CONFIG_NETUTILS_NTP_TIMEZONE=8
-CONFIG_NETUTILS_NTP_HOSTNAME="cn.ntp.org.cn"
-CONFIG_NETUTILS_NTP_HOSTNAME2="ntp.rt-thread.org"
-CONFIG_NETUTILS_NTP_HOSTNAME3="edu.ntp.org.cn"
-# CONFIG_PKG_NETUTILS_TELNET is not set
-# CONFIG_PKG_USING_NETUTILS_V110 is not set
-# CONFIG_PKG_USING_NETUTILS_V100 is not set
-CONFIG_PKG_USING_NETUTILS_LATEST_VERSION=y
-CONFIG_PKG_NETUTILS_VER="latest"
+# CONFIG_PKG_USING_NETUTILS is not set
+# CONFIG_PKG_USING_NETUTILS_LATEST_VERSION is not set
+# CONFIG_PKG_USING_NETUTILS_V131 is not set
+# CONFIG_PKG_USING_NETUTILS_V130 is not set
# CONFIG_PKG_USING_CMUX is not set
# CONFIG_PKG_USING_PPP_DEVICE is not set
CONFIG_PKG_USING_AT_DEVICE=y
@@ -397,6 +417,10 @@ CONFIG_AT_DEVICE_ESP8266_INIT_ASYN=y
# CONFIG_AT_DEVICE_USING_EC200X is not set
# CONFIG_AT_DEVICE_USING_N21 is not set
# CONFIG_AT_DEVICE_USING_N58 is not set
+# CONFIG_AT_DEVICE_USING_M5311 is not set
+# CONFIG_AT_DEVICE_USING_L610 is not set
+# CONFIG_AT_DEVICE_USING_N720 is not set
+# CONFIG_PKG_USING_AT_DEVICE_V204 is not set
# CONFIG_PKG_USING_AT_DEVICE_V203 is not set
# CONFIG_PKG_USING_AT_DEVICE_V202 is not set
# CONFIG_PKG_USING_AT_DEVICE_V201 is not set
@@ -406,6 +430,7 @@ CONFIG_PKG_AT_DEVICE_VER="latest"
CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
# CONFIG_PKG_USING_ATSRV_SOCKET is not set
# CONFIG_PKG_USING_WIZNET is not set
+# CONFIG_PKG_USING_ZB_COORDINATOR is not set
#
# IoT Cloud
@@ -414,7 +439,7 @@ CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
# CONFIG_PKG_USING_GAGENT_CLOUD is not set
# CONFIG_PKG_USING_ALI_IOTKIT is not set
# CONFIG_PKG_USING_AZURE is not set
-# CONFIG_PKG_USING_TENCENT_IOTHUB is not set
+# CONFIG_PKG_USING_TENCENT_IOT_EXPLORER is not set
# CONFIG_PKG_USING_JIOT-C-SDK is not set
# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
# CONFIG_PKG_USING_JOYLINK is not set
@@ -426,8 +451,6 @@ CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
# CONFIG_PKG_USING_LIBRWS is not set
# CONFIG_PKG_USING_TCPSERVER is not set
# CONFIG_PKG_USING_PROTOBUF_C is not set
-# CONFIG_PKG_USING_ONNX_PARSER is not set
-# CONFIG_PKG_USING_ONNX_BACKEND is not set
# CONFIG_PKG_USING_DLT645 is not set
# CONFIG_PKG_USING_QXWZ is not set
# CONFIG_PKG_USING_SMTP_CLIENT is not set
@@ -436,6 +459,24 @@ CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
# 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
+# CONFIG_PKG_USING_EMBEDDEDPROTO is not set
+# CONFIG_PKG_USING_RT_LINK_HW is not set
+# CONFIG_PKG_USING_LORA_PKT_FWD is not set
+# CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set
+# CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set
+# CONFIG_PKG_USING_HM is not set
+# CONFIG_PKG_USING_SMALL_MODBUS is not set
#
# security packages
@@ -444,6 +485,7 @@ CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
# CONFIG_PKG_USING_libsodium is not set
# CONFIG_PKG_USING_TINYCRYPT is not set
# CONFIG_PKG_USING_TFM is not set
+# CONFIG_PKG_USING_YD_CRYPTO is not set
#
# language packages
@@ -451,23 +493,44 @@ CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
# CONFIG_PKG_USING_LUA is not set
# CONFIG_PKG_USING_JERRYSCRIPT is not set
# CONFIG_PKG_USING_MICROPYTHON is not set
+# CONFIG_PKG_USING_PIKASCRIPT is not set
#
# multimedia packages
#
+
+#
+# LVGL: powerful and easy-to-use embedded GUI library
+#
+# CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
+
+#
+# u8g2: a monochrome graphic library
+#
+# CONFIG_PKG_USING_U8G2_OFFICIAL is not set
+# CONFIG_PKG_USING_U8G2 is not set
# 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 is not set
# CONFIG_PKG_USING_WAVPLAYER_V020 is not set
-CONFIG_PKG_USING_WAVPLAYER_LATEST_VERSION=y
-CONFIG_PKG_WAVPLAYER_VER="latest"
+# CONFIG_PKG_USING_WAVPLAYER_LATEST_VERSION is not set
# CONFIG_PKG_USING_TJPGD is not set
+# CONFIG_PKG_USING_PDFGEN is not set
+# CONFIG_PKG_USING_HELIX is not set
+# CONFIG_PKG_USING_AZUREGUIX is not set
+# CONFIG_PKG_USING_TOUCHGFX2RTT is not set
+# CONFIG_PKG_USING_NUEMWIN is not set
+# CONFIG_PKG_USING_MP3PLAYER is not set
+# CONFIG_PKG_USING_TINYJPEG is not set
+# CONFIG_PKG_USING_UGUI is not set
+
+#
+# PainterEngine: A cross-platform graphics application framework written in C language
+#
+# CONFIG_PKG_USING_PAINTERENGINE is not set
+# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set
#
# tools packages
@@ -476,26 +539,80 @@ CONFIG_PKG_WAVPLAYER_VER="latest"
# CONFIG_PKG_USING_EASYFLASH is not set
# CONFIG_PKG_USING_EASYLOGGER is not set
# CONFIG_PKG_USING_SYSTEMVIEW is not set
+# CONFIG_PKG_USING_SEGGER_RTT is not set
# CONFIG_PKG_USING_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
# CONFIG_PKG_USING_ADBD is not set
# CONFIG_PKG_USING_COREMARK is not set
# CONFIG_PKG_USING_DHRYSTONE is not set
+# CONFIG_PKG_USING_MEMORYPERF is not set
# CONFIG_PKG_USING_NR_MICRO_SHELL is not set
# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set
# CONFIG_PKG_USING_LUNAR_CALENDAR is not set
# CONFIG_PKG_USING_BS8116A is not set
+# CONFIG_PKG_USING_GPS_RMC is not set
# CONFIG_PKG_USING_URLENCODE is not set
+# CONFIG_PKG_USING_UMCN is not set
+# CONFIG_PKG_USING_LWRB2RTT is not set
+# CONFIG_PKG_USING_CPU_USAGE is not set
+# CONFIG_PKG_USING_GBK2UTF8 is not set
+# CONFIG_PKG_USING_VCONSOLE is not set
+# CONFIG_PKG_USING_KDB is not set
+# CONFIG_PKG_USING_WAMR is not set
+# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set
+# CONFIG_PKG_USING_LWLOG is not set
+# CONFIG_PKG_USING_ANV_TRACE is not set
+# CONFIG_PKG_USING_ANV_MEMLEAK is not set
+# CONFIG_PKG_USING_ANV_TESTSUIT is not set
+# 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_SOLAR_TERMS is not set
+# CONFIG_PKG_USING_GAN_ZHI is not set
+# CONFIG_PKG_USING_FDT is not set
#
# system packages
#
+
+#
+# rt_kprintf: enhanced rt_kprintf packages
+#
+# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
+# CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set
+
+#
+# acceleration: Assembly language or algorithmic acceleration packages
+#
+# CONFIG_PKG_USING_RT_MEMCPY_CM is not set
+# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
+# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
+# CONFIG_PKG_USING_QFPLIB_M3 is not set
+
+#
+# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
+#
+# CONFIG_PKG_USING_CMSIS_5 is not set
+# CONFIG_PKG_USING_CMSIS_5_AUX is not set
+# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
+
+#
+# Micrium: Micrium software products porting for RT-Thread
+#
+# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set
+# CONFIG_PKG_USING_UCOSII_WRAPPER is not set
+# CONFIG_PKG_USING_UC_CRC is not set
+# 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_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_LWEXT4 is not set
# CONFIG_PKG_USING_PARTITION is not set
CONFIG_PKG_USING_FAL=y
CONFIG_PKG_FAL_PATH="/packages/system/fal"
@@ -514,16 +631,30 @@ 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
-# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
-# CONFIG_PKG_USING_CMSIS 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 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
# CONFIG_PKG_USING_EV is not set
# CONFIG_PKG_USING_SYSWATCH is not set
# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set
# CONFIG_PKG_USING_PLCCORE is not set
+# CONFIG_PKG_USING_RAMDISK is not set
+# CONFIG_PKG_USING_MININI is not set
+# CONFIG_PKG_USING_QBOOT is not set
+# CONFIG_PKG_USING_PPOOL is not set
+# CONFIG_PKG_USING_OPENAMP is not set
+# CONFIG_PKG_USING_LPM is not set
+# CONFIG_PKG_USING_TLSF is not set
+# CONFIG_PKG_USING_EVENT_RECORDER is not set
+# CONFIG_PKG_USING_ARM_2D is not set
+# CONFIG_PKG_USING_WCWIDTH 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
#
# peripheral libraries and drivers
@@ -532,9 +663,9 @@ CONFIG_PKG_FAL_VER_NUM=0x99999
# CONFIG_PKG_USING_REALTEK_AMEBA is not set
# CONFIG_PKG_USING_SHT2X is not set
# CONFIG_PKG_USING_SHT3X is not set
+# CONFIG_PKG_USING_AS7341 is not set
# CONFIG_PKG_USING_STM32_SDIO is not set
# CONFIG_PKG_USING_ICM20608 is not set
-# CONFIG_PKG_USING_U8G2 is not set
# CONFIG_PKG_USING_BUTTON is not set
# CONFIG_PKG_USING_PCF8574 is not set
# CONFIG_PKG_USING_SX12XX is not set
@@ -547,7 +678,6 @@ 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_ROSSERIAL 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
@@ -561,6 +691,7 @@ CONFIG_PKG_FAL_VER_NUM=0x99999
# CONFIG_PKG_USING_RPLIDAR is not set
# CONFIG_PKG_USING_AS608 is not set
# CONFIG_PKG_USING_RC522 is not set
+# CONFIG_PKG_USING_WS2812B is not set
# CONFIG_PKG_USING_EMBARC_BSP is not set
# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set
# CONFIG_PKG_USING_MULTI_RTIMER is not set
@@ -569,47 +700,105 @@ CONFIG_PKG_FAL_VER_NUM=0x99999
# CONFIG_PKG_USING_EASYBLINK is not set
# CONFIG_PKG_USING_PMS_SERIES is not set
# CONFIG_PKG_USING_CAN_YMODEM is not set
+# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set
+# CONFIG_PKG_USING_QLED is not set
+# CONFIG_PKG_USING_PAJ7620 is not set
+# CONFIG_PKG_USING_AGILE_CONSOLE is not set
+# CONFIG_PKG_USING_LD3320 is not set
+# CONFIG_PKG_USING_WK2124 is not set
+# CONFIG_PKG_USING_LY68L6400 is not set
+# CONFIG_PKG_USING_DM9051 is not set
+# CONFIG_PKG_USING_SSD1306 is not set
+# CONFIG_PKG_USING_QKEY is not set
+# CONFIG_PKG_USING_RS485 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
+# CONFIG_PKG_USING_SGM706 is not set
+# CONFIG_PKG_USING_STM32WB55_SDK is not set
+# CONFIG_PKG_USING_RDA58XX is not set
+# CONFIG_PKG_USING_LIBNFC is not set
+# CONFIG_PKG_USING_MFOC is not set
+# CONFIG_PKG_USING_TMC51XX is not set
+# CONFIG_PKG_USING_TCA9534 is not set
+# CONFIG_PKG_USING_KOBUKI is not set
+# CONFIG_PKG_USING_ROSSERIAL is not set
+# CONFIG_PKG_USING_MICRO_ROS is not set
+# CONFIG_PKG_USING_MCP23008 is not set
+# CONFIG_PKG_USING_BLUETRUM_SDK is not set
+# CONFIG_PKG_USING_MISAKA_AT24CXX is not set
+# CONFIG_PKG_USING_MISAKA_RGB_BLING is not set
+# CONFIG_PKG_USING_BL_MCU_SDK is not set
+# CONFIG_PKG_USING_SOFT_SERIAL is not set
+# CONFIG_PKG_USING_MB85RS16 is not set
+
+#
+# AI packages
+#
+# CONFIG_PKG_USING_LIBANN is not set
+# CONFIG_PKG_USING_NNOM is not set
+# CONFIG_PKG_USING_ONNX_BACKEND is not set
+# CONFIG_PKG_USING_ONNX_PARSER is not set
+# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set
+# CONFIG_PKG_USING_ELAPACK is not set
+# CONFIG_PKG_USING_ULAPACK is not set
+# CONFIG_PKG_USING_QUEST is not set
+# CONFIG_PKG_USING_NAXOS is not set
#
# miscellaneous packages
#
+
+#
+# samples: kernel and components samples
+#
+# CONFIG_PKG_USING_KERNEL_SAMPLES is not set
+# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
+# CONFIG_PKG_USING_NETWORK_SAMPLES is not set
+# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
+
+#
+# entertainment: terminal games and other interesting software packages
+#
+# CONFIG_PKG_USING_CMATRIX is not set
+# CONFIG_PKG_USING_SL is not set
+# CONFIG_PKG_USING_CAL is not set
+# CONFIG_PKG_USING_ACLOCK is not set
+# CONFIG_PKG_USING_THREES is not set
+# CONFIG_PKG_USING_2048 is not set
+# CONFIG_PKG_USING_SNAKE is not set
+# CONFIG_PKG_USING_TETRIS is not set
+# CONFIG_PKG_USING_DONUT is not set
# CONFIG_PKG_USING_LIBCSV is not set
-CONFIG_PKG_USING_OPTPARSE=y
-CONFIG_PKG_OPTPARSE_PATH="/packages/misc/optparse"
-CONFIG_PKG_USING_OPTPARSE_V100=y
+# CONFIG_PKG_USING_OPTPARSE is not set
# CONFIG_PKG_USING_OPTPARSE_LATEST_VERSION is not set
-CONFIG_PKG_OPTPARSE_VER="v1.0.0"
-# CONFIG_OPTPARSE_USING_DEMO is not set
# CONFIG_PKG_USING_FASTLZ is not set
# CONFIG_PKG_USING_MINILZO is not set
# CONFIG_PKG_USING_QUICKLZ is not set
+# CONFIG_PKG_USING_LZMA is not set
# CONFIG_PKG_USING_MULTIBUTTON is not set
# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
# CONFIG_PKG_USING_CANFESTIVAL is not set
# CONFIG_PKG_USING_ZLIB is not set
+# CONFIG_PKG_USING_MINIZIP 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
# CONFIG_PKG_USING_DIGITALCTRL is not set
# CONFIG_PKG_USING_UPACKER is not set
# CONFIG_PKG_USING_UPARAM is not set
-
-#
-# samples: kernel and components samples
-#
-# CONFIG_PKG_USING_KERNEL_SAMPLES is not set
-# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
-# CONFIG_PKG_USING_NETWORK_SAMPLES is not set
-# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
# CONFIG_PKG_USING_HELLO is not set
# CONFIG_PKG_USING_VI is not set
-# CONFIG_PKG_USING_NNOM is not set
-# CONFIG_PKG_USING_LIBANN is not set
-# CONFIG_PKG_USING_ELAPACK is not set
+# CONFIG_PKG_USING_KI is not set
# CONFIG_PKG_USING_ARMv7M_DWT is not set
# CONFIG_PKG_USING_VT100 is not set
-# CONFIG_PKG_USING_ULAPACK is not set
# CONFIG_PKG_USING_UKAL is not set
+# CONFIG_PKG_USING_CRCLIB is not set
+# CONFIG_PKG_USING_LWGPS is not set
+# CONFIG_PKG_USING_STATE_MACHINE is not set
+# CONFIG_PKG_USING_MCURSES is not set
+# CONFIG_PKG_USING_COWSAY is not set
+# CONFIG_PKG_USING_TERMBOX is not set
#
# Nuvoton Packages Config
@@ -619,7 +808,10 @@ CONFIG_NU_PKG_USING_DEMO=y
CONFIG_NU_PKG_USING_BMX055=y
# CONFIG_NU_PKG_USING_MAX31875 is not set
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_SPINAND is not set
#
# Hardware Drivers Config
@@ -629,9 +821,10 @@ CONFIG_NU_PKG_USING_NAU88L25=y
# On-chip Peripheral Drivers
#
CONFIG_SOC_SERIES_M480=y
-# CONFIG_BSP_USE_STDDRIVER_SOURCE is not set
+CONFIG_BSP_USE_STDDRIVER_SOURCE=y
CONFIG_BSP_USING_PDMA=y
CONFIG_NU_PDMA_MEMFUN_ACTOR_MAX=2
+CONFIG_NU_PDMA_SGTBL_POOL_SIZE=16
CONFIG_BSP_USING_FMC=y
CONFIG_BSP_USING_GPIO=y
CONFIG_BSP_USING_CLK=y
@@ -679,6 +872,7 @@ CONFIG_BSP_USING_SDH0=y
# CONFIG_BSP_USING_SDH1 is not set
CONFIG_NU_SDH_USING_PDMA=y
CONFIG_NU_SDH_HOTPLUG=y
+# CONFIG_NU_SDH_MOUNT_ON_ROOT is not set
# CONFIG_BSP_USING_CAN is not set
# CONFIG_BSP_USING_BPWM is not set
# CONFIG_BSP_USING_EPWM is not set
@@ -720,6 +914,7 @@ CONFIG_BSP_USING_USBD=y
# CONFIG_BSP_USING_HSUSBD is not set
# CONFIG_BSP_USING_USBH is not set
CONFIG_BSP_USING_HSUSBH=y
+CONFIG_NU_USBHOST_HUB_POLLING_INTERVAL=100
# CONFIG_BSP_USING_HSOTG is not set
#
diff --git a/bsp/nuvoton/numaker-m032ki/.config b/bsp/nuvoton/numaker-m032ki/.config
index e94f821c48..28840559ae 100644
--- a/bsp/nuvoton/numaker-m032ki/.config
+++ b/bsp/nuvoton/numaker-m032ki/.config
@@ -7,6 +7,7 @@
# 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
@@ -29,6 +30,7 @@ CONFIG_RT_TIMER_THREAD_STACK_SIZE=512
#
# CONFIG_RT_KSERVICE_USING_STDLIB is not set
# CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
+# CONFIG_RT_USING_ASM_MEMCPY is not set
CONFIG_RT_DEBUG=y
# CONFIG_RT_DEBUG_COLOR is not set
# CONFIG_RT_DEBUG_INIT_CONFIG is not set
@@ -73,6 +75,7 @@ CONFIG_RT_USING_DEVICE=y
CONFIG_RT_USING_CONSOLE=y
CONFIG_RT_CONSOLEBUF_SIZE=256
CONFIG_RT_CONSOLE_DEVICE_NAME="uart0"
+# CONFIG_RT_PRINTF_LONGLONG is not set
CONFIG_RT_VER_NUM=0x40004
CONFIG_ARCH_ARM=y
# CONFIG_RT_USING_CPU_FFS is not set
@@ -97,19 +100,19 @@ CONFIG_RT_MAIN_THREAD_PRIORITY=10
# Command shell
#
CONFIG_RT_USING_FINSH=y
+CONFIG_RT_USING_MSH=y
+CONFIG_FINSH_USING_MSH=y
CONFIG_FINSH_THREAD_NAME="tshell"
+CONFIG_FINSH_THREAD_PRIORITY=20
+CONFIG_FINSH_THREAD_STACK_SIZE=4096
CONFIG_FINSH_USING_HISTORY=y
CONFIG_FINSH_HISTORY_LINES=5
CONFIG_FINSH_USING_SYMTAB=y
+CONFIG_FINSH_CMD_SIZE=80
+CONFIG_MSH_USING_BUILT_IN_COMMANDS=y
CONFIG_FINSH_USING_DESCRIPTION=y
# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
-CONFIG_FINSH_THREAD_PRIORITY=20
-CONFIG_FINSH_THREAD_STACK_SIZE=4096
-CONFIG_FINSH_CMD_SIZE=80
# CONFIG_FINSH_USING_AUTH is not set
-CONFIG_FINSH_USING_MSH=y
-CONFIG_FINSH_USING_MSH_DEFAULT=y
-# CONFIG_FINSH_USING_MSH_ONLY is not set
CONFIG_FINSH_ARG_MAX=10
#
@@ -133,6 +136,8 @@ CONFIG_RT_USING_DEVICE_IPC=y
CONFIG_RT_PIPE_BUFSZ=512
# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set
CONFIG_RT_USING_SERIAL=y
+CONFIG_RT_USING_SERIAL_V1=y
+# CONFIG_RT_USING_SERIAL_V2 is not set
CONFIG_RT_SERIAL_USING_DMA=y
CONFIG_RT_SERIAL_RB_BUFSZ=64
# CONFIG_RT_USING_CAN is not set
@@ -164,18 +169,13 @@ CONFIG_RT_USING_WDT=y
#
# Using USB
#
+CONFIG_RT_USING_USB=y
# CONFIG_RT_USING_USB_HOST is not set
CONFIG_RT_USING_USB_DEVICE=y
CONFIG_RT_USBD_THREAD_STACK_SZ=4096
CONFIG_USB_VENDOR_ID=0x0FFE
CONFIG_USB_PRODUCT_ID=0x0001
CONFIG_RT_USB_DEVICE_COMPOSITE=y
-# CONFIG__RT_USB_DEVICE_NONE is not set
-# CONFIG__RT_USB_DEVICE_CDC is not set
-# CONFIG__RT_USB_DEVICE_MSTORAGE is not set
-# CONFIG__RT_USB_DEVICE_HID is not set
-# CONFIG__RT_USB_DEVICE_WINUSB is not set
-# CONFIG__RT_USB_DEVICE_AUDIO is not set
# CONFIG_RT_USB_DEVICE_CDC is not set
CONFIG_RT_USB_DEVICE_NONE=y
# CONFIG_RT_USB_DEVICE_MSTORAGE is not set
@@ -191,14 +191,16 @@ CONFIG_RT_USB_DEVICE_HID_MOUSE=y
# POSIX layer and C standard library
#
CONFIG_RT_USING_LIBC=y
+CONFIG_RT_LIBC_USING_TIME=y
+# CONFIG_RT_LIBC_USING_FILEIO is not set
+# CONFIG_RT_USING_MODULE is not set
+CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_RT_USING_PTHREADS is not set
CONFIG_RT_USING_POSIX=y
# CONFIG_RT_USING_POSIX_MMAP is not set
# CONFIG_RT_USING_POSIX_TERMIOS is not set
# CONFIG_RT_USING_POSIX_GETLINE is not set
# CONFIG_RT_USING_POSIX_AIO is not set
-# CONFIG_RT_USING_MODULE is not set
-CONFIG_RT_LIBC_FIXED_TIMEZONE=8
#
# Network
@@ -237,12 +239,37 @@ CONFIG_RT_LIBC_FIXED_TIMEZONE=8
CONFIG_RT_USING_UTEST=y
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
#
# RT-Thread Utestcases
#
-# CONFIG_RT_USING_UTESTCASES is not set
+CONFIG_RT_USING_UTESTCASES=y
+
+#
+# Utest Self Testcase
+#
+CONFIG_UTEST_SELF_PASS_TC=y
+
+#
+# Kernel Testcase
+#
+# CONFIG_UTEST_IRQ_TC is not set
+# CONFIG_UTEST_SEMAPHORE_TC is not set
+# CONFIG_UTEST_EVENT_TC is not set
+# CONFIG_UTEST_TIMER_TC is not set
+# CONFIG_UTEST_MESSAGEQUEUE_TC is not set
+# CONFIG_UTEST_SIGNAL_TC is not set
+# CONFIG_UTEST_MUTEX_TC is not set
+# CONFIG_UTEST_MAILBOX_TC is not set
+# CONFIG_UTEST_THREAD_TC is not set
+
+#
+# Utest Serial Testcase
+#
+# CONFIG_UTEST_SERIAL_TC is not set
#
# RT-Thread online packages
@@ -291,6 +318,7 @@ CONFIG_UTEST_THR_PRIORITY=20
# CONFIG_PKG_USING_AT_DEVICE is not set
# CONFIG_PKG_USING_ATSRV_SOCKET is not set
# CONFIG_PKG_USING_WIZNET is not set
+# CONFIG_PKG_USING_ZB_COORDINATOR is not set
#
# IoT Cloud
@@ -331,12 +359,18 @@ CONFIG_UTEST_THR_PRIORITY=20
# CONFIG_PKG_USING_AGILE_MODBUS is not set
# CONFIG_PKG_USING_AGILE_FTP is not set
# CONFIG_PKG_USING_EMBEDDEDPROTO is not set
+# CONFIG_PKG_USING_RT_LINK_HW is not set
+# CONFIG_PKG_USING_LORA_PKT_FWD is not set
+# CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set
+# CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set
+# CONFIG_PKG_USING_HM is not set
+# CONFIG_PKG_USING_SMALL_MODBUS is not set
#
# security packages
#
# CONFIG_PKG_USING_MBEDTLS is not set
-# CONFIG_PKG_USING_libsodium is not set
+# CONFIG_PKG_USING_LIBSODIUM is not set
# CONFIG_PKG_USING_TINYCRYPT is not set
# CONFIG_PKG_USING_TFM is not set
# CONFIG_PKG_USING_YD_CRYPTO is not set
@@ -347,10 +381,24 @@ CONFIG_UTEST_THR_PRIORITY=20
# CONFIG_PKG_USING_LUA is not set
# CONFIG_PKG_USING_JERRYSCRIPT is not set
# CONFIG_PKG_USING_MICROPYTHON is not set
+# CONFIG_PKG_USING_PIKASCRIPT is not set
#
# multimedia packages
#
+
+#
+# LVGL: powerful and easy-to-use embedded GUI library
+#
+# CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
+# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
+
+#
+# u8g2: a monochrome graphic library
+#
+# CONFIG_PKG_USING_U8G2_OFFICIAL is not set
+# CONFIG_PKG_USING_U8G2 is not set
# CONFIG_PKG_USING_OPENMV is not set
# CONFIG_PKG_USING_MUPDF is not set
# CONFIG_PKG_USING_STEMWIN is not set
@@ -361,6 +409,15 @@ CONFIG_UTEST_THR_PRIORITY=20
# CONFIG_PKG_USING_AZUREGUIX is not set
# CONFIG_PKG_USING_TOUCHGFX2RTT is not set
# CONFIG_PKG_USING_NUEMWIN is not set
+# CONFIG_PKG_USING_MP3PLAYER is not set
+# CONFIG_PKG_USING_TINYJPEG is not set
+# CONFIG_PKG_USING_UGUI is not set
+
+#
+# PainterEngine: A cross-platform graphics application framework written in C language
+#
+# CONFIG_PKG_USING_PAINTERENGINE is not set
+# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set
#
# tools packages
@@ -369,6 +426,7 @@ CONFIG_UTEST_THR_PRIORITY=20
# CONFIG_PKG_USING_EASYFLASH is not set
# CONFIG_PKG_USING_EASYLOGGER is not set
# CONFIG_PKG_USING_SYSTEMVIEW is not set
+# CONFIG_PKG_USING_SEGGER_RTT is not set
# CONFIG_PKG_USING_RDB is not set
# CONFIG_PKG_USING_QRCODE is not set
# CONFIG_PKG_USING_ULOG_EASYFLASH is not set
@@ -402,10 +460,42 @@ CONFIG_UTEST_THR_PRIORITY=20
# CONFIG_PKG_USING_MEM_SANDBOX is not set
# CONFIG_PKG_USING_SOLAR_TERMS is not set
# CONFIG_PKG_USING_GAN_ZHI is not set
+# CONFIG_PKG_USING_FDT is not set
#
# system packages
#
+
+#
+# enhanced kernel services
+#
+# CONFIG_PKG_USING_RT_MEMCPY_CM is not set
+# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
+# CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set
+
+#
+# acceleration: Assembly language or algorithmic acceleration packages
+#
+# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
+# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
+# CONFIG_PKG_USING_QFPLIB_M3 is not set
+
+#
+# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
+#
+# CONFIG_PKG_USING_CMSIS_5 is not set
+# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
+
+#
+# Micrium: Micrium software products porting for RT-Thread
+#
+# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set
+# CONFIG_PKG_USING_UCOSII_WRAPPER is not set
+# CONFIG_PKG_USING_UC_CRC is not set
+# 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_GUIENGINE is not set
# CONFIG_PKG_USING_CAIRO is not set
# CONFIG_PKG_USING_PIXMAN is not set
@@ -414,8 +504,6 @@ CONFIG_UTEST_THR_PRIORITY=20
# CONFIG_PKG_USING_FLASHDB is not set
# CONFIG_PKG_USING_SQLITE is not set
# CONFIG_PKG_USING_RTI is not set
-# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
-# CONFIG_PKG_USING_CMSIS 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
@@ -430,26 +518,16 @@ CONFIG_UTEST_THR_PRIORITY=20
# CONFIG_PKG_USING_RAMDISK is not set
# CONFIG_PKG_USING_MININI is not set
# CONFIG_PKG_USING_QBOOT is not set
-
-#
-# Micrium: Micrium software products porting for RT-Thread
-#
-# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set
-# CONFIG_PKG_USING_UCOSII_WRAPPER is not set
-# CONFIG_PKG_USING_UC_CRC is not set
-# 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_PKG_USING_PPOOL is not set
# CONFIG_PKG_USING_OPENAMP is not set
-# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
-# CONFIG_PKG_USING_RT_MEMCPY_CM is not set
-# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
-# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
-# CONFIG_PKG_USING_QFPLIB_M3 is not set
# CONFIG_PKG_USING_LPM is not set
# CONFIG_PKG_USING_TLSF is not set
# CONFIG_PKG_USING_EVENT_RECORDER is not set
+# CONFIG_PKG_USING_ARM_2D is not set
+# CONFIG_PKG_USING_WCWIDTH 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
#
# peripheral libraries and drivers
@@ -461,7 +539,6 @@ CONFIG_UTEST_THR_PRIORITY=20
# CONFIG_PKG_USING_AS7341 is not set
# CONFIG_PKG_USING_STM32_SDIO is not set
# CONFIG_PKG_USING_ICM20608 is not set
-# CONFIG_PKG_USING_U8G2 is not set
# CONFIG_PKG_USING_BUTTON is not set
# CONFIG_PKG_USING_PCF8574 is not set
# CONFIG_PKG_USING_SX12XX is not set
@@ -474,7 +551,6 @@ CONFIG_UTEST_THR_PRIORITY=20
# 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_ROSSERIAL 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
@@ -518,6 +594,16 @@ CONFIG_UTEST_THR_PRIORITY=20
# CONFIG_PKG_USING_MFOC is not set
# CONFIG_PKG_USING_TMC51XX is not set
# CONFIG_PKG_USING_TCA9534 is not set
+# CONFIG_PKG_USING_KOBUKI is not set
+# CONFIG_PKG_USING_ROSSERIAL is not set
+# CONFIG_PKG_USING_MICRO_ROS is not set
+# CONFIG_PKG_USING_MCP23008 is not set
+# CONFIG_PKG_USING_BLUETRUM_SDK is not set
+# CONFIG_PKG_USING_MISAKA_AT24CXX is not set
+# CONFIG_PKG_USING_MISAKA_RGB_BLING is not set
+# CONFIG_PKG_USING_BL_MCU_SDK is not set
+# CONFIG_PKG_USING_SOFT_SERIAL is not set
+# CONFIG_PKG_USING_MB85RS16 is not set
#
# AI packages
@@ -535,6 +621,27 @@ CONFIG_UTEST_THR_PRIORITY=20
#
# miscellaneous packages
#
+
+#
+# samples: kernel and components samples
+#
+# CONFIG_PKG_USING_KERNEL_SAMPLES is not set
+# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
+# CONFIG_PKG_USING_NETWORK_SAMPLES is not set
+# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
+
+#
+# entertainment: terminal games and other interesting software packages
+#
+# CONFIG_PKG_USING_CMATRIX is not set
+# CONFIG_PKG_USING_SL is not set
+# CONFIG_PKG_USING_CAL is not set
+# CONFIG_PKG_USING_ACLOCK is not set
+# CONFIG_PKG_USING_THREES is not set
+# CONFIG_PKG_USING_2048 is not set
+# CONFIG_PKG_USING_SNAKE is not set
+# CONFIG_PKG_USING_TETRIS is not set
+# CONFIG_PKG_USING_DONUT is not set
# CONFIG_PKG_USING_LIBCSV is not set
# CONFIG_PKG_USING_OPTPARSE is not set
# CONFIG_PKG_USING_FASTLZ is not set
@@ -545,20 +652,13 @@ CONFIG_UTEST_THR_PRIORITY=20
# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
# CONFIG_PKG_USING_CANFESTIVAL is not set
# CONFIG_PKG_USING_ZLIB is not set
+# CONFIG_PKG_USING_MINIZIP 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
# CONFIG_PKG_USING_DIGITALCTRL is not set
# CONFIG_PKG_USING_UPACKER is not set
# CONFIG_PKG_USING_UPARAM is not set
-
-#
-# samples: kernel and components samples
-#
-# CONFIG_PKG_USING_KERNEL_SAMPLES is not set
-# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
-# CONFIG_PKG_USING_NETWORK_SAMPLES is not set
-# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
# CONFIG_PKG_USING_HELLO is not set
# CONFIG_PKG_USING_VI is not set
# CONFIG_PKG_USING_KI is not set
@@ -566,20 +666,11 @@ CONFIG_UTEST_THR_PRIORITY=20
# CONFIG_PKG_USING_VT100 is not set
# CONFIG_PKG_USING_UKAL is not set
# CONFIG_PKG_USING_CRCLIB is not set
-
-#
-# entertainment: terminal games and other interesting software packages
-#
-# CONFIG_PKG_USING_THREES is not set
-# CONFIG_PKG_USING_2048 is not set
-# CONFIG_PKG_USING_SNAKE is not set
-# CONFIG_PKG_USING_TETRIS is not set
-# CONFIG_PKG_USING_DONUT is not set
-# CONFIG_PKG_USING_ACLOCK is not set
# CONFIG_PKG_USING_LWGPS is not set
# CONFIG_PKG_USING_STATE_MACHINE is not set
# CONFIG_PKG_USING_MCURSES is not set
# CONFIG_PKG_USING_COWSAY is not set
+# CONFIG_PKG_USING_TERMBOX is not set
#
# Nuvoton Packages Config
@@ -590,6 +681,7 @@ CONFIG_NU_PKG_USING_DEMO=y
# 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
@@ -601,7 +693,7 @@ CONFIG_NU_PKG_USING_DEMO=y
# On-chip Peripheral Drivers
#
CONFIG_SOC_SERIES_M032=y
-# CONFIG_BSP_USE_STDDRIVER_SOURCE is not set
+CONFIG_BSP_USE_STDDRIVER_SOURCE=y
CONFIG_BSP_USING_PDMA=y
CONFIG_NU_PDMA_MEMFUN_ACTOR_MAX=4
CONFIG_NU_PDMA_SGTBL_POOL_SIZE=16
diff --git a/bsp/nuvoton/numaker-m2354/.config b/bsp/nuvoton/numaker-m2354/.config
index afa50ed670..9e3dae1da1 100644
--- a/bsp/nuvoton/numaker-m2354/.config
+++ b/bsp/nuvoton/numaker-m2354/.config
@@ -7,6 +7,7 @@
# 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
@@ -21,6 +22,13 @@ CONFIG_RT_USING_IDLE_HOOK=y
CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
CONFIG_IDLE_THREAD_STACK_SIZE=2048
# CONFIG_RT_USING_TIMER_SOFT is not set
+
+#
+# kservice optimization
+#
+# CONFIG_RT_KSERVICE_USING_STDLIB is not set
+# CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
+# CONFIG_RT_USING_ASM_MEMCPY is not set
CONFIG_RT_DEBUG=y
CONFIG_RT_DEBUG_COLOR=y
# CONFIG_RT_DEBUG_INIT_CONFIG is not set
@@ -65,7 +73,8 @@ CONFIG_RT_USING_DEVICE=y
CONFIG_RT_USING_CONSOLE=y
CONFIG_RT_CONSOLEBUF_SIZE=256
CONFIG_RT_CONSOLE_DEVICE_NAME="uart0"
-CONFIG_RT_VER_NUM=0x40003
+# CONFIG_RT_PRINTF_LONGLONG is not set
+CONFIG_RT_VER_NUM=0x40004
# CONFIG_RT_USING_CPU_FFS is not set
# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
@@ -86,19 +95,19 @@ CONFIG_RT_MAIN_THREAD_PRIORITY=10
# Command shell
#
CONFIG_RT_USING_FINSH=y
+CONFIG_RT_USING_MSH=y
+CONFIG_FINSH_USING_MSH=y
CONFIG_FINSH_THREAD_NAME="tshell"
+CONFIG_FINSH_THREAD_PRIORITY=20
+CONFIG_FINSH_THREAD_STACK_SIZE=4096
CONFIG_FINSH_USING_HISTORY=y
CONFIG_FINSH_HISTORY_LINES=5
CONFIG_FINSH_USING_SYMTAB=y
+CONFIG_FINSH_CMD_SIZE=80
+CONFIG_MSH_USING_BUILT_IN_COMMANDS=y
CONFIG_FINSH_USING_DESCRIPTION=y
# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
-CONFIG_FINSH_THREAD_PRIORITY=20
-CONFIG_FINSH_THREAD_STACK_SIZE=4096
-CONFIG_FINSH_CMD_SIZE=80
# CONFIG_FINSH_USING_AUTH is not set
-CONFIG_FINSH_USING_MSH=y
-CONFIG_FINSH_USING_MSH_DEFAULT=y
-# CONFIG_FINSH_USING_MSH_ONLY is not set
CONFIG_FINSH_ARG_MAX=10
#
@@ -132,11 +141,10 @@ CONFIG_RT_DFS_ELM_DRIVES=2
CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=4096
# CONFIG_RT_DFS_ELM_USE_ERASE is not set
CONFIG_RT_DFS_ELM_REENTRANT=y
+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_DFS_UFFS is not set
-# CONFIG_RT_USING_DFS_JFFS2 is not set
#
# Device Drivers
@@ -147,6 +155,8 @@ CONFIG_RT_USING_SYSTEM_WORKQUEUE=y
CONFIG_RT_SYSTEM_WORKQUEUE_STACKSIZE=2048
CONFIG_RT_SYSTEM_WORKQUEUE_PRIORITY=23
CONFIG_RT_USING_SERIAL=y
+CONFIG_RT_USING_SERIAL_V1=y
+# CONFIG_RT_USING_SERIAL_V2 is not set
CONFIG_RT_SERIAL_USING_DMA=y
CONFIG_RT_SERIAL_RB_BUFSZ=2048
CONFIG_RT_USING_CAN=y
@@ -168,9 +178,6 @@ CONFIG_RT_USING_PM=y
CONFIG_RT_USING_RTC=y
# CONFIG_RT_USING_ALARM is not set
# CONFIG_RT_USING_SOFT_RTC is not set
-CONFIG_RTC_SYNC_USING_NTP=y
-CONFIG_RTC_NTP_FIRST_SYNC_DELAY=30
-CONFIG_RTC_NTP_SYNC_PERIOD=3600
# CONFIG_RT_USING_SDIO is not set
CONFIG_RT_USING_SPI=y
CONFIG_RT_USING_QSPI=y
@@ -231,9 +238,11 @@ CONFIG_RT_HWCRYPTO_USING_CRC_04C11DB7=y
#
# Using USB
#
+CONFIG_RT_USING_USB=y
CONFIG_RT_USING_USB_HOST=y
CONFIG_RT_USBH_MSTORAGE=y
CONFIG_UDISK_MOUNTPOINT="/"
+# CONFIG_RT_USBH_HID is not set
CONFIG_RT_USING_USB_DEVICE=y
CONFIG_RT_USBD_THREAD_STACK_SZ=4096
CONFIG_USB_VENDOR_ID=0x0FFE
@@ -255,13 +264,16 @@ CONFIG_RT_USB_DEVICE_HID_MOUSE=y
# POSIX layer and C standard library
#
CONFIG_RT_USING_LIBC=y
+CONFIG_RT_LIBC_USING_TIME=y
+# CONFIG_RT_LIBC_USING_FILEIO is not set
+# CONFIG_RT_USING_MODULE is not set
+CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_RT_USING_PTHREADS is not set
CONFIG_RT_USING_POSIX=y
# CONFIG_RT_USING_POSIX_MMAP is not set
# CONFIG_RT_USING_POSIX_TERMIOS is not set
# CONFIG_RT_USING_POSIX_GETLINE is not set
# CONFIG_RT_USING_POSIX_AIO is not set
-# CONFIG_RT_USING_MODULE is not set
#
# Network
@@ -324,6 +336,13 @@ CONFIG_AT_SW_VERSION_NUM=0x10301
CONFIG_RT_USING_UTEST=y
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
+
+#
+# RT-Thread Utestcases
+#
+# CONFIG_RT_USING_UTESTCASES is not set
#
# RT-Thread online packages
@@ -366,21 +385,10 @@ CONFIG_UTEST_THR_PRIORITY=20
# CONFIG_PKG_USING_RW007 is not set
# CONFIG_PKG_USING_COAP is not set
# CONFIG_PKG_USING_NOPOLL is not set
-CONFIG_PKG_USING_NETUTILS=y
-CONFIG_PKG_NETUTILS_PATH="/packages/iot/netutils"
-# CONFIG_PKG_NETUTILS_TFTP is not set
-CONFIG_PKG_NETUTILS_IPERF=y
-CONFIG_PKG_NETUTILS_NTP=y
-CONFIG_NETUTILS_NTP_TIMEZONE=8
-CONFIG_NETUTILS_NTP_HOSTNAME="time.stdtime.gov.tw"
-CONFIG_NETUTILS_NTP_HOSTNAME2="ntp.rt-thread.org"
-CONFIG_NETUTILS_NTP_HOSTNAME3="edu.ntp.org.cn"
-# CONFIG_PKG_NETUTILS_TELNET is not set
-# CONFIG_PKG_USING_NETUTILS_V120 is not set
-# CONFIG_PKG_USING_NETUTILS_V110 is not set
-# CONFIG_PKG_USING_NETUTILS_V100 is not set
-CONFIG_PKG_USING_NETUTILS_LATEST_VERSION=y
-CONFIG_PKG_NETUTILS_VER="latest"
+# CONFIG_PKG_USING_NETUTILS is not set
+# CONFIG_PKG_USING_NETUTILS_LATEST_VERSION is not set
+# CONFIG_PKG_USING_NETUTILS_V131 is not set
+# CONFIG_PKG_USING_NETUTILS_V130 is not set
# CONFIG_PKG_USING_CMUX is not set
# CONFIG_PKG_USING_PPP_DEVICE is not set
CONFIG_PKG_USING_AT_DEVICE=y
@@ -408,11 +416,17 @@ CONFIG_AT_DEVICE_ESP8266_INIT_ASYN=y
# CONFIG_AT_DEVICE_USING_M5311 is not set
# CONFIG_AT_DEVICE_USING_L610 is not set
# CONFIG_AT_DEVICE_USING_N720 is not set
+# CONFIG_PKG_USING_AT_DEVICE_V204 is not set
+# CONFIG_PKG_USING_AT_DEVICE_V203 is not set
+# CONFIG_PKG_USING_AT_DEVICE_V202 is not set
+# CONFIG_PKG_USING_AT_DEVICE_V201 is not set
+# CONFIG_PKG_USING_AT_DEVICE_V200 is not set
CONFIG_PKG_USING_AT_DEVICE_LATEST_VERSION=y
CONFIG_PKG_AT_DEVICE_VER="latest"
CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
# CONFIG_PKG_USING_ATSRV_SOCKET is not set
# CONFIG_PKG_USING_WIZNET is not set
+# CONFIG_PKG_USING_ZB_COORDINATOR is not set
#
# IoT Cloud
@@ -433,8 +447,6 @@ CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
# CONFIG_PKG_USING_LIBRWS is not set
# CONFIG_PKG_USING_TCPSERVER is not set
# CONFIG_PKG_USING_PROTOBUF_C is not set
-# CONFIG_PKG_USING_ONNX_PARSER is not set
-# CONFIG_PKG_USING_ONNX_BACKEND is not set
# CONFIG_PKG_USING_DLT645 is not set
# CONFIG_PKG_USING_QXWZ is not set
# CONFIG_PKG_USING_SMTP_CLIENT is not set
@@ -449,6 +461,18 @@ CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
# 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
+# CONFIG_PKG_USING_EMBEDDEDPROTO is not set
+# CONFIG_PKG_USING_RT_LINK_HW is not set
+# CONFIG_PKG_USING_LORA_PKT_FWD is not set
+# CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set
+# CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set
+# CONFIG_PKG_USING_HM is not set
+# CONFIG_PKG_USING_SMALL_MODBUS is not set
#
# security packages
@@ -465,18 +489,42 @@ CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
# CONFIG_PKG_USING_LUA is not set
# CONFIG_PKG_USING_JERRYSCRIPT is not set
# CONFIG_PKG_USING_MICROPYTHON is not set
+# CONFIG_PKG_USING_PIKASCRIPT is not set
#
# multimedia packages
#
+
+#
+# LVGL: powerful and easy-to-use embedded GUI library
+#
+# CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
+
+#
+# u8g2: a monochrome graphic library
+#
+# CONFIG_PKG_USING_U8G2_OFFICIAL is not set
+# CONFIG_PKG_USING_U8G2 is not set
# 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 is not set
# CONFIG_PKG_USING_TJPGD is not set
+# CONFIG_PKG_USING_PDFGEN is not set
# CONFIG_PKG_USING_HELIX is not set
# CONFIG_PKG_USING_AZUREGUIX is not set
# CONFIG_PKG_USING_TOUCHGFX2RTT is not set
+# CONFIG_PKG_USING_NUEMWIN is not set
+# CONFIG_PKG_USING_MP3PLAYER is not set
+# CONFIG_PKG_USING_TINYJPEG is not set
+# CONFIG_PKG_USING_UGUI is not set
+
+#
+# PainterEngine: A cross-platform graphics application framework written in C language
+#
+# CONFIG_PKG_USING_PAINTERENGINE is not set
+# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set
#
# tools packages
@@ -485,6 +533,7 @@ CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
# CONFIG_PKG_USING_EASYFLASH is not set
# CONFIG_PKG_USING_EASYLOGGER is not set
# CONFIG_PKG_USING_SYSTEMVIEW is not set
+# CONFIG_PKG_USING_SEGGER_RTT is not set
# CONFIG_PKG_USING_RDB is not set
# CONFIG_PKG_USING_QRCODE is not set
# CONFIG_PKG_USING_ULOG_EASYFLASH is not set
@@ -507,14 +556,56 @@ CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
# CONFIG_PKG_USING_VCONSOLE is not set
# CONFIG_PKG_USING_KDB is not set
# CONFIG_PKG_USING_WAMR is not set
+# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set
+# CONFIG_PKG_USING_LWLOG is not set
+# CONFIG_PKG_USING_ANV_TRACE is not set
+# CONFIG_PKG_USING_ANV_MEMLEAK is not set
+# CONFIG_PKG_USING_ANV_TESTSUIT is not set
+# 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_SOLAR_TERMS is not set
+# CONFIG_PKG_USING_GAN_ZHI is not set
+# CONFIG_PKG_USING_FDT is not set
#
# system packages
#
+
+#
+# rt_kprintf: enhanced rt_kprintf packages
+#
+# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
+# CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set
+
+#
+# acceleration: Assembly language or algorithmic acceleration packages
+#
+# CONFIG_PKG_USING_RT_MEMCPY_CM is not set
+# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
+# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
+# CONFIG_PKG_USING_QFPLIB_M3 is not set
+
+#
+# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
+#
+# CONFIG_PKG_USING_CMSIS_5 is not set
+# CONFIG_PKG_USING_CMSIS_5_AUX is not set
+# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
+
+#
+# Micrium: Micrium software products porting for RT-Thread
+#
+# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set
+# CONFIG_PKG_USING_UCOSII_WRAPPER is not set
+# CONFIG_PKG_USING_UC_CRC is not set
+# 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_PKG_USING_GUIENGINE is not set
# CONFIG_PKG_USING_CAIRO is not set
# CONFIG_PKG_USING_PIXMAN is not set
-# CONFIG_PKG_USING_LWEXT4 is not set
# CONFIG_PKG_USING_PARTITION is not set
CONFIG_PKG_USING_FAL=y
CONFIG_PKG_FAL_PATH="/packages/system/fal"
@@ -533,10 +624,11 @@ CONFIG_PKG_FAL_VER_NUM=0x00500
# CONFIG_PKG_USING_FLASHDB is not set
# CONFIG_PKG_USING_SQLITE is not set
# CONFIG_PKG_USING_RTI is not set
-# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
-# CONFIG_PKG_USING_CMSIS 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 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
# CONFIG_PKG_USING_EV is not set
@@ -546,23 +638,16 @@ CONFIG_PKG_FAL_VER_NUM=0x00500
# CONFIG_PKG_USING_RAMDISK is not set
# CONFIG_PKG_USING_MININI is not set
# CONFIG_PKG_USING_QBOOT is not set
-
-#
-# Micrium: Micrium software products porting for RT-Thread
-#
-# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set
-# CONFIG_PKG_USING_UCOSII_WRAPPER is not set
-# CONFIG_PKG_USING_UC_CRC is not set
-# 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_PKG_USING_PPOOL is not set
# CONFIG_PKG_USING_OPENAMP is not set
-# CONFIG_PKG_USING_RT_PRINTF is not set
-# CONFIG_PKG_USING_RT_MEMCPY_CM is not set
-# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
-# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
-# CONFIG_PKG_USING_QFPLIB_M3 is not set
+# CONFIG_PKG_USING_LPM is not set
+# CONFIG_PKG_USING_TLSF is not set
+# CONFIG_PKG_USING_EVENT_RECORDER is not set
+# CONFIG_PKG_USING_ARM_2D is not set
+# CONFIG_PKG_USING_WCWIDTH 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
#
# peripheral libraries and drivers
@@ -574,7 +659,6 @@ CONFIG_PKG_FAL_VER_NUM=0x00500
# CONFIG_PKG_USING_AS7341 is not set
# CONFIG_PKG_USING_STM32_SDIO is not set
# CONFIG_PKG_USING_ICM20608 is not set
-# CONFIG_PKG_USING_U8G2 is not set
# CONFIG_PKG_USING_BUTTON is not set
# CONFIG_PKG_USING_PCF8574 is not set
# CONFIG_PKG_USING_SX12XX is not set
@@ -587,7 +671,6 @@ CONFIG_PKG_FAL_VER_NUM=0x00500
# 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_ROSSERIAL 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
@@ -625,10 +708,60 @@ CONFIG_PKG_FAL_VER_NUM=0x00500
# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set
# CONFIG_PKG_USING_VDEVICE is not set
# CONFIG_PKG_USING_SGM706 is not set
+# CONFIG_PKG_USING_STM32WB55_SDK is not set
+# CONFIG_PKG_USING_RDA58XX is not set
+# CONFIG_PKG_USING_LIBNFC is not set
+# CONFIG_PKG_USING_MFOC is not set
+# CONFIG_PKG_USING_TMC51XX is not set
+# CONFIG_PKG_USING_TCA9534 is not set
+# CONFIG_PKG_USING_KOBUKI is not set
+# CONFIG_PKG_USING_ROSSERIAL is not set
+# CONFIG_PKG_USING_MICRO_ROS is not set
+# CONFIG_PKG_USING_MCP23008 is not set
+# CONFIG_PKG_USING_BLUETRUM_SDK is not set
+# CONFIG_PKG_USING_MISAKA_AT24CXX is not set
+# CONFIG_PKG_USING_MISAKA_RGB_BLING is not set
+# CONFIG_PKG_USING_BL_MCU_SDK is not set
+# CONFIG_PKG_USING_SOFT_SERIAL is not set
+# CONFIG_PKG_USING_MB85RS16 is not set
+
+#
+# AI packages
+#
+# CONFIG_PKG_USING_LIBANN is not set
+# CONFIG_PKG_USING_NNOM is not set
+# CONFIG_PKG_USING_ONNX_BACKEND is not set
+# CONFIG_PKG_USING_ONNX_PARSER is not set
+# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set
+# CONFIG_PKG_USING_ELAPACK is not set
+# CONFIG_PKG_USING_ULAPACK is not set
+# CONFIG_PKG_USING_QUEST is not set
+# CONFIG_PKG_USING_NAXOS is not set
#
# miscellaneous packages
#
+
+#
+# samples: kernel and components samples
+#
+# CONFIG_PKG_USING_KERNEL_SAMPLES is not set
+# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
+# CONFIG_PKG_USING_NETWORK_SAMPLES is not set
+# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
+
+#
+# entertainment: terminal games and other interesting software packages
+#
+# CONFIG_PKG_USING_CMATRIX is not set
+# CONFIG_PKG_USING_SL is not set
+# CONFIG_PKG_USING_CAL is not set
+# CONFIG_PKG_USING_ACLOCK is not set
+# CONFIG_PKG_USING_THREES is not set
+# CONFIG_PKG_USING_2048 is not set
+# CONFIG_PKG_USING_SNAKE is not set
+# CONFIG_PKG_USING_TETRIS is not set
+# CONFIG_PKG_USING_DONUT is not set
# CONFIG_PKG_USING_LIBCSV is not set
# CONFIG_PKG_USING_OPTPARSE is not set
# CONFIG_PKG_USING_FASTLZ is not set
@@ -639,42 +772,25 @@ CONFIG_PKG_FAL_VER_NUM=0x00500
# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
# CONFIG_PKG_USING_CANFESTIVAL is not set
# CONFIG_PKG_USING_ZLIB is not set
+# CONFIG_PKG_USING_MINIZIP 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
# CONFIG_PKG_USING_DIGITALCTRL is not set
# CONFIG_PKG_USING_UPACKER is not set
# CONFIG_PKG_USING_UPARAM is not set
-
-#
-# samples: kernel and components samples
-#
-# CONFIG_PKG_USING_KERNEL_SAMPLES is not set
-# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
-# CONFIG_PKG_USING_NETWORK_SAMPLES is not set
-# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
# CONFIG_PKG_USING_HELLO is not set
# CONFIG_PKG_USING_VI is not set
# CONFIG_PKG_USING_KI is not set
-# CONFIG_PKG_USING_NNOM is not set
-# CONFIG_PKG_USING_LIBANN is not set
-# CONFIG_PKG_USING_ELAPACK is not set
# CONFIG_PKG_USING_ARMv7M_DWT is not set
# CONFIG_PKG_USING_VT100 is not set
-# CONFIG_PKG_USING_ULAPACK is not set
# CONFIG_PKG_USING_UKAL is not set
# CONFIG_PKG_USING_CRCLIB is not set
-
-#
-# games: games run on RT-Thread console
-#
-# CONFIG_PKG_USING_THREES is not set
-# CONFIG_PKG_USING_2048 is not set
-# CONFIG_PKG_USING_SNAKE is not set
-# CONFIG_PKG_USING_TETRIS is not set
# CONFIG_PKG_USING_LWGPS is not set
-# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set
# CONFIG_PKG_USING_STATE_MACHINE is not set
+# CONFIG_PKG_USING_MCURSES is not set
+# CONFIG_PKG_USING_COWSAY is not set
+# CONFIG_PKG_USING_TERMBOX is not set
#
# Nuvoton Packages Config
@@ -685,6 +801,7 @@ CONFIG_NU_PKG_USING_DEMO=y
# 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
@@ -696,7 +813,7 @@ CONFIG_NU_PKG_USING_DEMO=y
# On-chip Peripheral Drivers
#
CONFIG_SOC_SERIES_M2354=y
-# CONFIG_BSP_USE_STDDRIVER_SOURCE is not set
+CONFIG_BSP_USE_STDDRIVER_SOURCE=y
CONFIG_BSP_USING_PDMA=y
CONFIG_NU_PDMA_MEMFUN_ACTOR_MAX=2
CONFIG_NU_PDMA_SGTBL_POOL_SIZE=16
diff --git a/bsp/nuvoton/numaker-pfm-m487/.config b/bsp/nuvoton/numaker-pfm-m487/.config
index 304aae34a2..a76b5f8361 100644
--- a/bsp/nuvoton/numaker-pfm-m487/.config
+++ b/bsp/nuvoton/numaker-pfm-m487/.config
@@ -7,6 +7,7 @@
# 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
@@ -21,6 +22,13 @@ CONFIG_RT_USING_IDLE_HOOK=y
CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
CONFIG_IDLE_THREAD_STACK_SIZE=1024
# CONFIG_RT_USING_TIMER_SOFT is not set
+
+#
+# kservice optimization
+#
+# CONFIG_RT_KSERVICE_USING_STDLIB is not set
+# CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
+# CONFIG_RT_USING_ASM_MEMCPY is not set
CONFIG_RT_DEBUG=y
CONFIG_RT_DEBUG_COLOR=y
# CONFIG_RT_DEBUG_INIT_CONFIG is not set
@@ -52,6 +60,7 @@ CONFIG_RT_USING_MEMPOOL=y
# CONFIG_RT_USING_NOHEAP is not set
CONFIG_RT_USING_SMALL_MEM=y
# CONFIG_RT_USING_SLAB is not set
+# CONFIG_RT_USING_USERHEAP is not set
# CONFIG_RT_USING_MEMTRACE is not set
CONFIG_RT_USING_HEAP=y
@@ -64,7 +73,8 @@ CONFIG_RT_USING_DEVICE=y
CONFIG_RT_USING_CONSOLE=y
CONFIG_RT_CONSOLEBUF_SIZE=256
CONFIG_RT_CONSOLE_DEVICE_NAME="uart0"
-CONFIG_RT_VER_NUM=0x40002
+# CONFIG_RT_PRINTF_LONGLONG is not set
+CONFIG_RT_VER_NUM=0x40004
CONFIG_ARCH_ARM=y
CONFIG_RT_USING_CPU_FFS=y
CONFIG_ARCH_ARM_CORTEX_M=y
@@ -88,19 +98,19 @@ CONFIG_RT_MAIN_THREAD_PRIORITY=10
# Command shell
#
CONFIG_RT_USING_FINSH=y
+CONFIG_RT_USING_MSH=y
+CONFIG_FINSH_USING_MSH=y
CONFIG_FINSH_THREAD_NAME="tshell"
+CONFIG_FINSH_THREAD_PRIORITY=20
+CONFIG_FINSH_THREAD_STACK_SIZE=2048
CONFIG_FINSH_USING_HISTORY=y
CONFIG_FINSH_HISTORY_LINES=5
CONFIG_FINSH_USING_SYMTAB=y
+CONFIG_FINSH_CMD_SIZE=80
+CONFIG_MSH_USING_BUILT_IN_COMMANDS=y
CONFIG_FINSH_USING_DESCRIPTION=y
# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
-CONFIG_FINSH_THREAD_PRIORITY=20
-CONFIG_FINSH_THREAD_STACK_SIZE=2048
-CONFIG_FINSH_CMD_SIZE=80
# CONFIG_FINSH_USING_AUTH is not set
-CONFIG_FINSH_USING_MSH=y
-CONFIG_FINSH_USING_MSH_DEFAULT=y
-# CONFIG_FINSH_USING_MSH_ONLY is not set
CONFIG_FINSH_ARG_MAX=10
#
@@ -124,16 +134,20 @@ CONFIG_RT_DFS_ELM_WORD_ACCESS=y
# CONFIG_RT_DFS_ELM_USE_LFN_2 is not set
CONFIG_RT_DFS_ELM_USE_LFN_3=y
CONFIG_RT_DFS_ELM_USE_LFN=3
+CONFIG_RT_DFS_ELM_LFN_UNICODE_0=y
+# CONFIG_RT_DFS_ELM_LFN_UNICODE_1 is not set
+# CONFIG_RT_DFS_ELM_LFN_UNICODE_2 is not set
+# CONFIG_RT_DFS_ELM_LFN_UNICODE_3 is not set
+CONFIG_RT_DFS_ELM_LFN_UNICODE=0
CONFIG_RT_DFS_ELM_MAX_LFN=255
CONFIG_RT_DFS_ELM_DRIVES=8
CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=4096
# CONFIG_RT_DFS_ELM_USE_ERASE is not set
CONFIG_RT_DFS_ELM_REENTRANT=y
+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_DFS_UFFS is not set
-# CONFIG_RT_USING_DFS_JFFS2 is not set
# CONFIG_RT_USING_DFS_NFS is not set
#
@@ -145,6 +159,8 @@ CONFIG_RT_USING_SYSTEM_WORKQUEUE=y
CONFIG_RT_SYSTEM_WORKQUEUE_STACKSIZE=2048
CONFIG_RT_SYSTEM_WORKQUEUE_PRIORITY=23
CONFIG_RT_USING_SERIAL=y
+CONFIG_RT_USING_SERIAL_V1=y
+# CONFIG_RT_USING_SERIAL_V2 is not set
CONFIG_RT_SERIAL_USING_DMA=y
CONFIG_RT_SERIAL_RB_BUFSZ=128
CONFIG_RT_USING_CAN=y
@@ -155,8 +171,10 @@ CONFIG_RT_USING_I2C=y
# CONFIG_RT_I2C_DEBUG is not set
CONFIG_RT_USING_I2C_BITOPS=y
# CONFIG_RT_I2C_BITOPS_DEBUG is not set
+# CONFIG_RT_USING_PHY is not set
CONFIG_RT_USING_PIN=y
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 is not set
@@ -223,9 +241,11 @@ CONFIG_RT_HWCRYPTO_USING_CRC_04C11DB7=y
#
# Using USB
#
+CONFIG_RT_USING_USB=y
CONFIG_RT_USING_USB_HOST=y
CONFIG_RT_USBH_MSTORAGE=y
CONFIG_UDISK_MOUNTPOINT="/mnt/udisk/"
+# CONFIG_RT_USBH_HID is not set
CONFIG_RT_USING_USB_DEVICE=y
CONFIG_RT_USBD_THREAD_STACK_SZ=4096
CONFIG_USB_VENDOR_ID=0x0FFE
@@ -249,12 +269,16 @@ CONFIG_RT_USB_DEVICE_HID_MOUSE=y
# POSIX layer and C standard library
#
CONFIG_RT_USING_LIBC=y
+CONFIG_RT_LIBC_USING_TIME=y
+# CONFIG_RT_LIBC_USING_FILEIO is not set
+# CONFIG_RT_USING_MODULE is not set
+CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_RT_USING_PTHREADS is not set
CONFIG_RT_USING_POSIX=y
# CONFIG_RT_USING_POSIX_MMAP is not set
# CONFIG_RT_USING_POSIX_TERMIOS is not set
+# CONFIG_RT_USING_POSIX_GETLINE is not set
# CONFIG_RT_USING_POSIX_AIO is not set
-# CONFIG_RT_USING_MODULE is not set
#
# Network
@@ -264,6 +288,7 @@ CONFIG_RT_USING_POSIX=y
# Socket abstraction layer
#
CONFIG_RT_USING_SAL=y
+CONFIG_SAL_INTERNET_CHECK=y
#
# protocol stack implement
@@ -291,8 +316,10 @@ CONFIG_NETDEV_IPV6=0
CONFIG_RT_USING_LWIP=y
# CONFIG_RT_USING_LWIP141 is not set
CONFIG_RT_USING_LWIP202=y
-# CONFIG_RT_USING_LWIP210 is not set
+# CONFIG_RT_USING_LWIP203 is not set
+# CONFIG_RT_USING_LWIP212 is not set
# CONFIG_RT_USING_LWIP_IPV6 is not set
+CONFIG_RT_LWIP_MEM_ALIGNMENT=4
CONFIG_RT_LWIP_IGMP=y
CONFIG_RT_LWIP_ICMP=y
# CONFIG_RT_LWIP_SNMP is not set
@@ -334,6 +361,7 @@ CONFIG_SO_REUSE=1
CONFIG_LWIP_SO_RCVTIMEO=1
CONFIG_LWIP_SO_SNDTIMEO=1
CONFIG_LWIP_SO_RCVBUF=1
+CONFIG_LWIP_SO_LINGER=0
# CONFIG_RT_LWIP_NETIF_LOOPBACK is not set
CONFIG_LWIP_NETIF_LOOPBACK=0
# CONFIG_RT_LWIP_STATS is not set
@@ -360,15 +388,23 @@ CONFIG_RT_LWIP_USING_PING=y
CONFIG_RT_USING_UTEST=y
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
#
+# RT-Thread Utestcases
+#
+# CONFIG_RT_USING_UTESTCASES is not set
+
+#
# RT-Thread online packages
#
#
# IoT - internet of things
#
+# CONFIG_PKG_USING_LORAWAN_DRIVER is not set
# CONFIG_PKG_USING_PAHOMQTT is not set
# CONFIG_PKG_USING_UMQTT is not set
# CONFIG_PKG_USING_WEBCLIENT is not set
@@ -408,6 +444,7 @@ CONFIG_UTEST_THR_PRIORITY=20
# CONFIG_PKG_USING_AT_DEVICE is not set
# CONFIG_PKG_USING_ATSRV_SOCKET is not set
# CONFIG_PKG_USING_WIZNET is not set
+# CONFIG_PKG_USING_ZB_COORDINATOR is not set
#
# IoT Cloud
@@ -416,7 +453,7 @@ CONFIG_UTEST_THR_PRIORITY=20
# CONFIG_PKG_USING_GAGENT_CLOUD is not set
# CONFIG_PKG_USING_ALI_IOTKIT is not set
# CONFIG_PKG_USING_AZURE is not set
-# CONFIG_PKG_USING_TENCENT_IOTHUB is not set
+# CONFIG_PKG_USING_TENCENT_IOT_EXPLORER is not set
# CONFIG_PKG_USING_JIOT-C-SDK is not set
# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
# CONFIG_PKG_USING_JOYLINK is not set
@@ -428,8 +465,6 @@ CONFIG_UTEST_THR_PRIORITY=20
# CONFIG_PKG_USING_LIBRWS is not set
# CONFIG_PKG_USING_TCPSERVER is not set
# CONFIG_PKG_USING_PROTOBUF_C is not set
-# CONFIG_PKG_USING_ONNX_PARSER is not set
-# CONFIG_PKG_USING_ONNX_BACKEND is not set
# CONFIG_PKG_USING_DLT645 is not set
# CONFIG_PKG_USING_QXWZ is not set
# CONFIG_PKG_USING_SMTP_CLIENT is not set
@@ -438,6 +473,24 @@ CONFIG_UTEST_THR_PRIORITY=20
# 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
+# CONFIG_PKG_USING_EMBEDDEDPROTO is not set
+# CONFIG_PKG_USING_RT_LINK_HW is not set
+# CONFIG_PKG_USING_LORA_PKT_FWD is not set
+# CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set
+# CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set
+# CONFIG_PKG_USING_HM is not set
+# CONFIG_PKG_USING_SMALL_MODBUS is not set
#
# security packages
@@ -446,6 +499,7 @@ CONFIG_UTEST_THR_PRIORITY=20
# CONFIG_PKG_USING_libsodium is not set
# CONFIG_PKG_USING_TINYCRYPT is not set
# CONFIG_PKG_USING_TFM is not set
+# CONFIG_PKG_USING_YD_CRYPTO is not set
#
# language packages
@@ -453,23 +507,44 @@ CONFIG_UTEST_THR_PRIORITY=20
# CONFIG_PKG_USING_LUA is not set
# CONFIG_PKG_USING_JERRYSCRIPT is not set
# CONFIG_PKG_USING_MICROPYTHON is not set
+# CONFIG_PKG_USING_PIKASCRIPT is not set
#
# multimedia packages
#
+
+#
+# LVGL: powerful and easy-to-use embedded GUI library
+#
+# CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
+
+#
+# u8g2: a monochrome graphic library
+#
+# CONFIG_PKG_USING_U8G2_OFFICIAL is not set
+# CONFIG_PKG_USING_U8G2 is not set
# 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 is not set
# CONFIG_PKG_USING_WAVPLAYER_V020 is not set
-CONFIG_PKG_USING_WAVPLAYER_LATEST_VERSION=y
-CONFIG_PKG_WAVPLAYER_VER="latest"
+# CONFIG_PKG_USING_WAVPLAYER_LATEST_VERSION is not set
# CONFIG_PKG_USING_TJPGD is not set
+# CONFIG_PKG_USING_PDFGEN is not set
+# CONFIG_PKG_USING_HELIX is not set
+# CONFIG_PKG_USING_AZUREGUIX is not set
+# CONFIG_PKG_USING_TOUCHGFX2RTT is not set
+# CONFIG_PKG_USING_NUEMWIN is not set
+# CONFIG_PKG_USING_MP3PLAYER is not set
+# CONFIG_PKG_USING_TINYJPEG is not set
+# CONFIG_PKG_USING_UGUI is not set
+
+#
+# PainterEngine: A cross-platform graphics application framework written in C language
+#
+# CONFIG_PKG_USING_PAINTERENGINE is not set
+# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set
#
# tools packages
@@ -478,26 +553,80 @@ CONFIG_PKG_WAVPLAYER_VER="latest"
# CONFIG_PKG_USING_EASYFLASH is not set
# CONFIG_PKG_USING_EASYLOGGER is not set
# CONFIG_PKG_USING_SYSTEMVIEW is not set
+# CONFIG_PKG_USING_SEGGER_RTT is not set
# CONFIG_PKG_USING_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
# CONFIG_PKG_USING_ADBD is not set
# CONFIG_PKG_USING_COREMARK is not set
# CONFIG_PKG_USING_DHRYSTONE is not set
+# CONFIG_PKG_USING_MEMORYPERF is not set
# CONFIG_PKG_USING_NR_MICRO_SHELL is not set
# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set
# CONFIG_PKG_USING_LUNAR_CALENDAR is not set
# CONFIG_PKG_USING_BS8116A is not set
+# CONFIG_PKG_USING_GPS_RMC is not set
# CONFIG_PKG_USING_URLENCODE is not set
+# CONFIG_PKG_USING_UMCN is not set
+# CONFIG_PKG_USING_LWRB2RTT is not set
+# CONFIG_PKG_USING_CPU_USAGE is not set
+# CONFIG_PKG_USING_GBK2UTF8 is not set
+# CONFIG_PKG_USING_VCONSOLE is not set
+# CONFIG_PKG_USING_KDB is not set
+# CONFIG_PKG_USING_WAMR is not set
+# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set
+# CONFIG_PKG_USING_LWLOG is not set
+# CONFIG_PKG_USING_ANV_TRACE is not set
+# CONFIG_PKG_USING_ANV_MEMLEAK is not set
+# CONFIG_PKG_USING_ANV_TESTSUIT is not set
+# 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_SOLAR_TERMS is not set
+# CONFIG_PKG_USING_GAN_ZHI is not set
+# CONFIG_PKG_USING_FDT is not set
#
# system packages
#
+
+#
+# rt_kprintf: enhanced rt_kprintf packages
+#
+# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
+# CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set
+
+#
+# acceleration: Assembly language or algorithmic acceleration packages
+#
+# CONFIG_PKG_USING_RT_MEMCPY_CM is not set
+# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
+# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
+# CONFIG_PKG_USING_QFPLIB_M3 is not set
+
+#
+# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
+#
+# CONFIG_PKG_USING_CMSIS_5 is not set
+# CONFIG_PKG_USING_CMSIS_5_AUX is not set
+# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
+
+#
+# Micrium: Micrium software products porting for RT-Thread
+#
+# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set
+# CONFIG_PKG_USING_UCOSII_WRAPPER is not set
+# CONFIG_PKG_USING_UC_CRC is not set
+# 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_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_LWEXT4 is not set
# CONFIG_PKG_USING_PARTITION is not set
CONFIG_PKG_USING_FAL=y
CONFIG_PKG_FAL_PATH="/packages/system/fal"
@@ -516,16 +645,30 @@ CONFIG_PKG_FAL_VER_NUM=0x00400
# CONFIG_PKG_USING_FLASHDB is not set
# CONFIG_PKG_USING_SQLITE is not set
# CONFIG_PKG_USING_RTI is not set
-# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
-# CONFIG_PKG_USING_CMSIS 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 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
# CONFIG_PKG_USING_EV is not set
# CONFIG_PKG_USING_SYSWATCH is not set
# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set
# CONFIG_PKG_USING_PLCCORE is not set
+# CONFIG_PKG_USING_RAMDISK is not set
+# CONFIG_PKG_USING_MININI is not set
+# CONFIG_PKG_USING_QBOOT is not set
+# CONFIG_PKG_USING_PPOOL is not set
+# CONFIG_PKG_USING_OPENAMP is not set
+# CONFIG_PKG_USING_LPM is not set
+# CONFIG_PKG_USING_TLSF is not set
+# CONFIG_PKG_USING_EVENT_RECORDER is not set
+# CONFIG_PKG_USING_ARM_2D is not set
+# CONFIG_PKG_USING_WCWIDTH 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
#
# peripheral libraries and drivers
@@ -534,9 +677,9 @@ CONFIG_PKG_FAL_VER_NUM=0x00400
# CONFIG_PKG_USING_REALTEK_AMEBA is not set
# CONFIG_PKG_USING_SHT2X is not set
# CONFIG_PKG_USING_SHT3X is not set
+# CONFIG_PKG_USING_AS7341 is not set
# CONFIG_PKG_USING_STM32_SDIO is not set
# CONFIG_PKG_USING_ICM20608 is not set
-# CONFIG_PKG_USING_U8G2 is not set
# CONFIG_PKG_USING_BUTTON is not set
# CONFIG_PKG_USING_PCF8574 is not set
# CONFIG_PKG_USING_SX12XX is not set
@@ -549,7 +692,6 @@ CONFIG_PKG_FAL_VER_NUM=0x00400
# 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_ROSSERIAL 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
@@ -563,6 +705,7 @@ CONFIG_PKG_FAL_VER_NUM=0x00400
# CONFIG_PKG_USING_RPLIDAR is not set
# CONFIG_PKG_USING_AS608 is not set
# CONFIG_PKG_USING_RC522 is not set
+# CONFIG_PKG_USING_WS2812B is not set
# CONFIG_PKG_USING_EMBARC_BSP is not set
# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set
# CONFIG_PKG_USING_MULTI_RTIMER is not set
@@ -571,47 +714,105 @@ CONFIG_PKG_FAL_VER_NUM=0x00400
# CONFIG_PKG_USING_EASYBLINK is not set
# CONFIG_PKG_USING_PMS_SERIES is not set
# CONFIG_PKG_USING_CAN_YMODEM is not set
+# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set
+# CONFIG_PKG_USING_QLED is not set
+# CONFIG_PKG_USING_PAJ7620 is not set
+# CONFIG_PKG_USING_AGILE_CONSOLE is not set
+# CONFIG_PKG_USING_LD3320 is not set
+# CONFIG_PKG_USING_WK2124 is not set
+# CONFIG_PKG_USING_LY68L6400 is not set
+# CONFIG_PKG_USING_DM9051 is not set
+# CONFIG_PKG_USING_SSD1306 is not set
+# CONFIG_PKG_USING_QKEY is not set
+# CONFIG_PKG_USING_RS485 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
+# CONFIG_PKG_USING_SGM706 is not set
+# CONFIG_PKG_USING_STM32WB55_SDK is not set
+# CONFIG_PKG_USING_RDA58XX is not set
+# CONFIG_PKG_USING_LIBNFC is not set
+# CONFIG_PKG_USING_MFOC is not set
+# CONFIG_PKG_USING_TMC51XX is not set
+# CONFIG_PKG_USING_TCA9534 is not set
+# CONFIG_PKG_USING_KOBUKI is not set
+# CONFIG_PKG_USING_ROSSERIAL is not set
+# CONFIG_PKG_USING_MICRO_ROS is not set
+# CONFIG_PKG_USING_MCP23008 is not set
+# CONFIG_PKG_USING_BLUETRUM_SDK is not set
+# CONFIG_PKG_USING_MISAKA_AT24CXX is not set
+# CONFIG_PKG_USING_MISAKA_RGB_BLING is not set
+# CONFIG_PKG_USING_BL_MCU_SDK is not set
+# CONFIG_PKG_USING_SOFT_SERIAL is not set
+# CONFIG_PKG_USING_MB85RS16 is not set
+
+#
+# AI packages
+#
+# CONFIG_PKG_USING_LIBANN is not set
+# CONFIG_PKG_USING_NNOM is not set
+# CONFIG_PKG_USING_ONNX_BACKEND is not set
+# CONFIG_PKG_USING_ONNX_PARSER is not set
+# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set
+# CONFIG_PKG_USING_ELAPACK is not set
+# CONFIG_PKG_USING_ULAPACK is not set
+# CONFIG_PKG_USING_QUEST is not set
+# CONFIG_PKG_USING_NAXOS is not set
#
# miscellaneous packages
#
+
+#
+# samples: kernel and components samples
+#
+# CONFIG_PKG_USING_KERNEL_SAMPLES is not set
+# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
+# CONFIG_PKG_USING_NETWORK_SAMPLES is not set
+# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
+
+#
+# entertainment: terminal games and other interesting software packages
+#
+# CONFIG_PKG_USING_CMATRIX is not set
+# CONFIG_PKG_USING_SL is not set
+# CONFIG_PKG_USING_CAL is not set
+# CONFIG_PKG_USING_ACLOCK is not set
+# CONFIG_PKG_USING_THREES is not set
+# CONFIG_PKG_USING_2048 is not set
+# CONFIG_PKG_USING_SNAKE is not set
+# CONFIG_PKG_USING_TETRIS is not set
+# CONFIG_PKG_USING_DONUT is not set
# CONFIG_PKG_USING_LIBCSV is not set
-CONFIG_PKG_USING_OPTPARSE=y
-CONFIG_PKG_OPTPARSE_PATH="/packages/misc/optparse"
-CONFIG_PKG_USING_OPTPARSE_V100=y
+# CONFIG_PKG_USING_OPTPARSE is not set
# CONFIG_PKG_USING_OPTPARSE_LATEST_VERSION is not set
-CONFIG_PKG_OPTPARSE_VER="v1.0.0"
-# CONFIG_OPTPARSE_USING_DEMO is not set
# CONFIG_PKG_USING_FASTLZ is not set
# CONFIG_PKG_USING_MINILZO is not set
# CONFIG_PKG_USING_QUICKLZ is not set
+# CONFIG_PKG_USING_LZMA is not set
# CONFIG_PKG_USING_MULTIBUTTON is not set
# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
# CONFIG_PKG_USING_CANFESTIVAL is not set
# CONFIG_PKG_USING_ZLIB is not set
+# CONFIG_PKG_USING_MINIZIP 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
# CONFIG_PKG_USING_DIGITALCTRL is not set
# CONFIG_PKG_USING_UPACKER is not set
# CONFIG_PKG_USING_UPARAM is not set
-
-#
-# samples: kernel and components samples
-#
-# CONFIG_PKG_USING_KERNEL_SAMPLES is not set
-# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
-# CONFIG_PKG_USING_NETWORK_SAMPLES is not set
-# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
# CONFIG_PKG_USING_HELLO is not set
# CONFIG_PKG_USING_VI is not set
-# CONFIG_PKG_USING_NNOM is not set
-# CONFIG_PKG_USING_LIBANN is not set
-# CONFIG_PKG_USING_ELAPACK is not set
+# CONFIG_PKG_USING_KI is not set
# CONFIG_PKG_USING_ARMv7M_DWT is not set
# CONFIG_PKG_USING_VT100 is not set
-# CONFIG_PKG_USING_ULAPACK is not set
# CONFIG_PKG_USING_UKAL is not set
+# CONFIG_PKG_USING_CRCLIB is not set
+# CONFIG_PKG_USING_LWGPS is not set
+# CONFIG_PKG_USING_STATE_MACHINE is not set
+# CONFIG_PKG_USING_MCURSES is not set
+# CONFIG_PKG_USING_COWSAY is not set
+# CONFIG_PKG_USING_TERMBOX is not set
#
# Nuvoton Packages Config
@@ -621,7 +822,10 @@ 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=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_SPINAND is not set
#
# Hardware Drivers Config
@@ -631,9 +835,10 @@ CONFIG_NU_PKG_USING_NAU88L25=y
# On-chip Peripheral Drivers
#
CONFIG_SOC_SERIES_M480=y
-# CONFIG_BSP_USE_STDDRIVER_SOURCE is not set
+CONFIG_BSP_USE_STDDRIVER_SOURCE=y
CONFIG_BSP_USING_PDMA=y
CONFIG_NU_PDMA_MEMFUN_ACTOR_MAX=2
+CONFIG_NU_PDMA_SGTBL_POOL_SIZE=16
CONFIG_BSP_USING_FMC=y
CONFIG_BSP_USING_GPIO=y
CONFIG_BSP_USING_CLK=y
@@ -665,19 +870,17 @@ CONFIG_BSP_USING_I2C=y
CONFIG_BSP_USING_I2C1=y
CONFIG_BSP_USING_I2C2=y
# CONFIG_BSP_USING_USCI is not set
-# CONFIG_BSP_USING_UUART0 is not set
-# CONFIG_BSP_USING_UI2C0 is not set
-# CONFIG_BSP_USING_USPI0 is not set
CONFIG_BSP_USING_SDH=y
CONFIG_BSP_USING_SDH0=y
# CONFIG_BSP_USING_SDH1 is not set
CONFIG_NU_SDH_USING_PDMA=y
CONFIG_NU_SDH_HOTPLUG=y
+# CONFIG_NU_SDH_MOUNT_ON_ROOT is not set
# CONFIG_BSP_USING_CAN is not set
# CONFIG_BSP_USING_BPWM is not set
# CONFIG_BSP_USING_EPWM is not set
CONFIG_BSP_USING_SPI=y
-# CONFIG_BSP_USING_SPI_PDMA is not set
+CONFIG_BSP_USING_SPI_PDMA=y
# CONFIG_BSP_USING_SPII2S is not set
CONFIG_BSP_USING_SPI0_NONE=y
# CONFIG_BSP_USING_SPI0 is not set
@@ -713,6 +916,7 @@ CONFIG_BSP_USING_USBD=y
# CONFIG_BSP_USING_HSUSBD is not set
# CONFIG_BSP_USING_USBH is not set
CONFIG_BSP_USING_HSUSBH=y
+CONFIG_NU_USBHOST_HUB_POLLING_INTERVAL=100
# CONFIG_BSP_USING_HSOTG is not set
#
diff --git a/bsp/nuvoton/numaker-pfm-m487/applications/SConscript b/bsp/nuvoton/numaker-pfm-m487/applications/SConscript
index 9ffdbcd0f9..3769d125df 100644
--- a/bsp/nuvoton/numaker-pfm-m487/applications/SConscript
+++ b/bsp/nuvoton/numaker-pfm-m487/applications/SConscript
@@ -3,9 +3,19 @@
from building import *
cwd = GetCurrentDir()
+objs = []
+list = os.listdir(cwd)
+for d in list:
+ path = os.path.join(cwd, d)
+ if os.path.isfile(os.path.join(path, 'SConscript')):
+ objs = objs + SConscript(os.path.join(d, 'SConscript'))
+
src = Glob('*.c') + Glob('*.cpp')
CPPPATH = [cwd, str(Dir('#'))]
group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH)
-Return('group')
+objs = objs + group
+
+Return('objs')
+
diff --git a/bsp/nuvoton/numaker-pfm-m487/board/board_dev.c b/bsp/nuvoton/numaker-pfm-m487/board/board_dev.c
index 045eed9139..5abf2e9333 100644
--- a/bsp/nuvoton/numaker-pfm-m487/board/board_dev.c
+++ b/bsp/nuvoton/numaker-pfm-m487/board/board_dev.c
@@ -153,7 +153,7 @@ INIT_COMPONENT_EXPORT(rt_hw_spiflash_init);
#if defined(BOARD_USING_SRAM0_AS_MEMHEAP)
/*
In Advance board design, SRAM address bus A16/A17/A18 are GPIO-controlled by SW, not EBI.
-So we just remap 128KB only to RTT memory heap, due to it is out of controll.
+So we just remap 128KB only to RTT memory heap, due to it is out of control.
AD0~AD15: 2^16*16bit = 128KB
*/
#include <drv_ebi.h>